.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.app-header{position:sticky;top:0;z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a}.app-header__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.75rem 1.5rem;max-width:1200px;margin-left:auto;margin-right:auto;width:100%}.app-header__brand-wrap{display:flex;align-items:center;gap:.5rem}.app-header__sidebar-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;background:none;color:var(--color-text);cursor:pointer;border-radius:8px;transition:background .15s,color .15s}.app-header__sidebar-toggle:hover{background:var(--color-border-subtle);color:var(--color-primary)}@media (max-width: 768px){.app-header__inner{padding:.625rem max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));gap:.5rem}.app-logo{font-size:1.125rem}.app-header__sidebar-toggle{display:flex}.app-nav{display:none!important}.app-header__user-trigger{min-width:44px;min-height:44px;padding:.25rem!important;justify-content:center}.app-header__chevron{display:none}}@media (max-width: 480px){.app-header__inner{padding:.5rem max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right));gap:.375rem}.app-logo{font-size:1rem}.app-logo__icon{width:24px;height:24px}.app-nav__link{padding:.5rem;min-width:40px;min-height:40px}}.app-logo{display:inline-flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--color-text);text-decoration:none;letter-spacing:-.02em;transition:color .2s}.app-logo__icon{flex-shrink:0;display:block}.app-logo:hover{color:var(--color-primary)}.app-nav{display:flex;align-items:center;gap:.25rem}.app-nav__link{padding:.5rem .875rem;font-size:.9375rem;font-weight:500;color:var(--color-text-muted);text-decoration:none;border-radius:8px;transition:color .2s,background .2s;display:inline-flex;align-items:center;gap:.5rem}.app-nav__icon{flex-shrink:0}.app-nav__link:not(.app-nav__link--active):hover{color:var(--color-text);background:var(--color-border-subtle)}.app-nav__link--active{color:var(--color-primary);background:var(--color-primary-muted)}.app-header__actions{position:relative;display:flex;align-items:center}.app-header__user-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .5rem .25rem .25rem;border:1px solid var(--color-border);border-radius:9999px;background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}.app-header__user-trigger:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-muted);background:var(--color-surface)}.app-header__avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--color-border-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-header__avatar img{width:100%;height:100%;object-fit:cover}.app-header__avatar-icon{color:var(--color-text-muted)}.app-header__chevron{color:var(--color-text-muted);transition:transform .25s ease}.app-header__chevron--open{transform:rotate(180deg)}.app-header__dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:240px;padding:.5rem 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 10px 40px #0000001f,0 2px 10px #0000000f;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:100}.app-header__dropdown--open{opacity:1;visibility:visible;transform:translateY(0)}@media (max-width: 480px){.app-header__dropdown{position:fixed;top:3.5rem;left:auto;right:max(.5rem,env(safe-area-inset-right));width:auto;min-width:240px;max-width:min(320px,calc(100vw - 1rem));max-height:min(70vh,400px);overflow-y:auto;border-radius:12px;box-shadow:0 10px 40px #00000026,0 2px 10px #00000014}.app-header__dropdown--open{transform:translateY(0)}.app-header__dropdown-item{min-height:44px;padding:.75rem 1rem}}.app-header__dropdown-head{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.125rem}.app-header__dropdown-name{font-size:.9375rem;font-weight:600;color:var(--color-text)}.app-header__dropdown-email{font-size:.8125rem;color:var(--color-text-muted);word-break:break-all}.app-header__dropdown-divider{height:1px;background:var(--color-border);margin:.25rem 0}.app-header__dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.625rem 1rem;font-size:.9375rem;color:var(--color-text);text-decoration:none;border:none;background:none;cursor:pointer;transition:background .15s,color .15s;text-align:left}.app-header__dropdown-item:hover{background:var(--color-border-subtle);color:var(--color-primary)}.app-header__dropdown-item--logout:hover{color:var(--color-error, #dc2626);background:var(--color-error-bg, #fef2f2)}.app-header__dropdown-item svg{flex-shrink:0;opacity:.85}.btn-icon{margin-right:.375rem;vertical-align:middle}.app-sidebar-overlay,.app-sidebar{display:none}@media (max-width: 768px){.app-sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:60;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.app-sidebar-overlay--open{opacity:1;visibility:visible;pointer-events:auto}.app-sidebar{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:min(280px,calc(100vw - 3rem));max-width:100%;background:var(--color-surface);border-right:1px solid var(--color-border);box-shadow:4px 0 24px #0000001f;z-index:70;transform:translate(-100%);transition:transform .25s ease;padding-top:env(safe-area-inset-top)}.app-sidebar--open{transform:translate(0)}.app-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.app-sidebar__title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;color:var(--color-text);text-decoration:none;transition:color .2s}.app-sidebar__title:hover{color:var(--color-primary)}.app-sidebar__title-icon{flex-shrink:0}.app-sidebar__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:8px;transition:background .15s,color .15s}.app-sidebar__close:hover{background:var(--color-border-subtle);color:var(--color-text)}.app-sidebar__nav{display:flex;flex-direction:column;padding:.75rem 0;gap:.25rem}.app-sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;font-size:1rem;font-weight:500;color:var(--color-text);text-decoration:none;transition:background .15s,color .15s}.app-sidebar__link:hover{background:var(--color-border-subtle);color:var(--color-primary)}.app-sidebar__link--active{background:var(--color-primary-bg, rgba(59, 130, 246, .1));color:var(--color-primary)}.app-sidebar__icon{flex-shrink:0;opacity:.9}}.app-main{flex:1;overflow:auto}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;overflow:hidden;background:var(--auth-bg)}.auth-page__bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.auth-page__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:48px 48px;animation:auth-grid-fade 1.2s ease-out}.auth-page__glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;animation:auth-glow-pulse 8s ease-in-out infinite}.auth-page__glow--1{width:400px;height:400px;background:var(--color-primary);top:-120px;right:-80px;animation-delay:0s}.auth-page__glow--2{width:300px;height:300px;background:var(--color-accent);bottom:-60px;left:-60px;animation-delay:-3s}@keyframes auth-grid-fade{0%{opacity:0}to{opacity:1}}@keyframes auth-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}.auth-theme-toggle{position:absolute;top:1.25rem;right:1.25rem;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:12px;color:#fff;cursor:pointer;transition:background .2s,transform .2s}.auth-theme-toggle:hover{background:#fff3;transform:scale(1.05)}.auth-card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--auth-card-bg);border-radius:20px;box-shadow:var(--auth-card-shadow);padding:2.5rem;animation:auth-card-in .6s cubic-bezier(.22,1,.36,1)}@keyframes auth-card-in{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card__inner{display:flex;flex-direction:column;align-items:center;text-align:center}.auth-logo{margin-bottom:1rem;animation:auth-logo-in .5s .15s ease-out both}.auth-logo__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;padding:10px;box-sizing:border-box;background:var(--color-primary-muted);border-radius:16px;color:var(--color-primary)}@keyframes auth-logo-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.auth-title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;color:var(--auth-title-color);animation:auth-text-in .5s .2s ease-out both}.auth-subtitle{margin:0 0 1.75rem;font-size:.9375rem;line-height:1.5;color:var(--auth-subtitle-color);max-width:280px;animation:auth-text-in .5s .25s ease-out both}@keyframes auth-text-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-form{width:100%;display:flex;flex-direction:column;gap:1rem;animation:auth-text-in .5s .3s ease-out both}.auth-error{padding:.75rem 1rem;background:var(--color-error-bg);color:var(--color-error);border-radius:12px;font-size:.875rem;text-align:left}.auth-button{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1.25rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.auth-button:active:not(:disabled){transform:scale(.99)}.auth-button-google{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:0 1px 2px #0000000a}.auth-button-google:hover:not(:disabled){background:var(--color-border-subtle);box-shadow:0 4px 12px #00000014}.auth-button-google:disabled{opacity:.8;cursor:not-allowed}.auth-button__loading{display:inline-flex;align-items:center;gap:.5rem}.auth-button__spinner{width:18px;height:18px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-google-icon{display:flex;align-items:center}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--color-text-muted);background:var(--color-bg)}.auth-loading p{display:flex;align-items:center;gap:.5rem}.auth-loading p:before{content:"";width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:auth-spin .7s linear infinite}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);position:relative}.landing:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,var(--color-primary-muted),transparent 60%);pointer-events:none;z-index:0}.landing-header{position:sticky;top:0;z-index:10;width:100%;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 1px 0 var(--color-border-subtle)}.landing-header__inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;max-width:1100px;margin:0 auto;width:100%}.landing-logo{display:inline-flex;align-items:center;gap:.625rem;font-size:1.25rem;font-weight:700;color:var(--color-text);text-decoration:none;letter-spacing:-.025em;transition:color .2s ease}.landing-logo:hover{color:var(--color-primary)}.landing-logo__icon{flex-shrink:0;color:var(--color-primary);transition:transform .2s ease}.landing-logo:hover .landing-logo__icon{transform:scale(1.05)}.landing-header__actions .btn-primary{background:var(--color-primary);color:var(--color-text-inverse);padding:.5rem 1rem;border-radius:8px;font-weight:600;box-shadow:0 1px 2px #0000000d;transition:background .2s ease,box-shadow .2s ease,transform .1s ease}.landing-header__actions .btn-primary:hover{background:var(--color-primary-hover);box-shadow:0 2px 8px var(--color-primary-muted)}.landing-main{position:relative;z-index:1;flex:1;padding:3rem 1.5rem 4rem;max-width:800px;margin:0 auto;width:100%}.landing-hero{text-align:center;padding:2rem 0 3.5rem}.landing-hero__title{margin:0 0 1.25rem;font-size:clamp(1.875rem,4.5vw,2.5rem);font-weight:700;line-height:1.2;color:var(--color-text);letter-spacing:-.03em;max-width:20ch;margin-left:auto;margin-right:auto}.landing-hero__title strong{color:var(--color-primary);font-weight:700}.landing-hero__subtitle{margin:0 0 2rem;font-size:1.0625rem;line-height:1.65;color:var(--color-text-muted);max-width:36em;margin-left:auto;margin-right:auto}.landing-hero__cta{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;background:var(--color-primary);color:var(--color-text-inverse);border-radius:10px;text-decoration:none;box-shadow:0 2px 8px var(--color-primary-muted),0 1px 2px #0000000f;transition:background .2s ease,box-shadow .2s ease,transform .1s ease}.landing-hero__cta:hover{background:var(--color-primary-hover);box-shadow:0 4px 14px var(--color-primary-muted),0 2px 4px #0000000f;transform:translateY(-1px)}.landing-features{margin-top:.5rem}.landing-features__title{margin:0 0 1.5rem;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.landing-features__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.landing-feature{display:flex;align-items:flex-start;gap:1.25rem;padding:1.5rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 3px #0000000a;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.landing-feature:hover{box-shadow:0 4px 16px #0000000f,0 0 0 1px var(--color-border);transform:translateY(-2px)}.landing-feature__icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex-shrink:0;background:var(--color-primary-muted);color:var(--color-primary);border-radius:12px;transition:background .2s ease,color .2s ease}.landing-feature:hover .landing-feature__icon{background:var(--color-primary);color:var(--color-text-inverse)}.landing-feature__name{margin:0 0 .375rem;font-size:1.0625rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.landing-feature__desc{margin:0;font-size:.9375rem;line-height:1.55;color:var(--color-text-muted)}.landing-footer{position:relative;z-index:1;width:100%;padding:1.5rem;background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto}.landing-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1.25rem;max-width:1100px;margin:0 auto;font-size:.8125rem;color:var(--color-text-muted);letter-spacing:.02em}.landing-footer__copy,.landing-footer__dev-name{margin:0}.landing-footer__link{color:var(--color-primary);text-decoration:none;transition:color .2s ease}.landing-footer__link:hover{color:var(--color-primary-hover);text-decoration:underline}@media (max-width: 640px){.landing-header__inner{padding:.875rem 1rem}.landing-main{padding:2rem 1rem 3rem}.landing-hero{padding:1.25rem 0 2.5rem}.landing-hero__subtitle{margin-bottom:1.5rem}.landing-feature{padding:1.25rem 1rem;gap:1rem}.landing-feature__icon{width:46px;height:46px}.landing-footer{padding:1.25rem 1rem}.landing-footer__inner{flex-direction:column;gap:.25rem}}.dashboard-hero{margin-bottom:2rem}.dashboard-page .dashboard-stats,.dashboard-page .dashboard-cards{animation:dashboard-fade-in .4s ease forwards}.dashboard-page .dashboard-stat-group{animation:dashboard-slide-up .35s ease forwards}.dashboard-page .dashboard-stat-group:nth-child(1){animation-delay:.05s}.dashboard-page .dashboard-stat-group:nth-child(2){animation-delay:.1s}.dashboard-page .dashboard-stat-group:nth-child(3){animation-delay:.15s}.dashboard-page .dashboard-stat-group:nth-child(4){animation-delay:.2s}.dashboard-page .dashboard-stat-group:nth-child(5){animation-delay:.25s}.dashboard-page .dashboard-card{animation:dashboard-card-in .35s ease forwards}.dashboard-page .dashboard-card:nth-child(1){animation-delay:.1s}.dashboard-page .dashboard-card:nth-child(2){animation-delay:.15s}.dashboard-page .dashboard-card:nth-child(3){animation-delay:.2s}@keyframes dashboard-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dashboard-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dashboard-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dashboard-hero__title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.dashboard-hero__subtitle{margin:0;font-size:1rem;color:var(--color-text-muted);line-height:1.5}.dashboard-stats{display:flex;flex-direction:column;margin-bottom:2rem}.dashboard-stats__filter{position:relative;display:inline-flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;align-self:flex-end}.dashboard-stats__filter-select{position:relative}.dashboard-stats__filter-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.dashboard-stats__filter-trigger{display:inline-flex;align-items:center;gap:.5rem;min-width:10rem;padding:.5rem .75rem .5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.dashboard-stats__filter-trigger:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted, rgba(13, 148, 136, .12))}.dashboard-stats__filter-trigger-text{flex:1}.dashboard-stats__filter-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s ease}.dashboard-stats__filter-chevron--open{transform:rotate(180deg);color:var(--color-primary)}.dashboard-stats__filter-dropdown{position:absolute;top:calc(100% + 6px);right:0;left:auto;min-width:16rem;max-width:280px;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 40px #0000001f;z-index:50;animation:dashboard-filter-drop-in .15s ease-out}.dashboard-stats__filter-all-time{display:block;width:100%;margin-top:.75rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;color:var(--color-primary);background:transparent;border:none;border-radius:6px;cursor:pointer;text-align:center;transition:background .12s ease}.dashboard-stats__filter-all-time:hover{background:var(--color-primary-muted, rgba(13, 148, 136, .12))}.dashboard-stats__filter-calendar-hint{margin:0 0 .5rem;font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-align:center}.dashboard-stats__filter-calendar-wrap{margin-top:.5rem}.dashboard-stats__filter-calendar{-webkit-user-select:none;user-select:none}.dashboard-stats__calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.5rem}.dashboard-stats__calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;font-size:1.25rem;line-height:1;color:var(--color-text-muted);background:var(--color-border-subtle);border:none;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.dashboard-stats__calendar-nav-btn:hover{background:var(--color-primary-muted, rgba(13, 148, 136, .12));color:var(--color-primary)}.dashboard-stats__calendar-title{font-size:.8125rem;font-weight:600;color:var(--color-text)}.dashboard-stats__calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.dashboard-stats__calendar-weekday{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);text-align:center}.dashboard-stats__calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dashboard-stats__calendar-day{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;height:1.75rem;padding:0;font-size:.8125rem;font-weight:500;color:var(--color-text);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.dashboard-stats__calendar-day:hover{background:var(--color-border-subtle)}.dashboard-stats__calendar-day--empty{pointer-events:none;opacity:.3}.dashboard-stats__calendar-day--in-range{background:var(--color-primary-muted, rgba(13, 148, 136, .15));color:var(--color-primary)}.dashboard-stats__calendar-day--start,.dashboard-stats__calendar-day--end{background:var(--color-primary);color:var(--color-text-inverse)}.dashboard-stats__calendar-day--start:hover,.dashboard-stats__calendar-day--end:hover{background:var(--color-primary-hover);color:var(--color-text-inverse)}[data-theme=dark] .dashboard-stats__filter-dropdown{box-shadow:0 10px 40px #0006}@keyframes dashboard-filter-drop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dashboard-stats__filter-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--color-text);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease;text-align:left}.dashboard-stats__filter-option:hover{background:var(--color-border-subtle)}.dashboard-stats__filter-option--active,.dashboard-stats__filter-option--active .dashboard-stats__filter-check{color:var(--color-primary)}.dashboard-stats__filter-check{flex-shrink:0}.dashboard-stats__heading{margin:0 0 .75rem;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.dashboard-stat__currencies{display:flex;flex-direction:column;gap:.25rem}.dashboard-stat__currency-row{font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums}.dashboard-stat--total .dashboard-stat__currency-row{font-size:1.25rem;color:var(--color-primary)}.dashboard-stat--paid .dashboard-stat__currency-row{color:var(--color-success)}.dashboard-stat--pending .dashboard-stat__currency-row{color:var(--color-warning)}.dashboard-stat--ongoing .dashboard-stat__currency-row{color:var(--color-text-muted)}.dashboard-stat--outstanding .dashboard-stat__currency-row{color:var(--color-primary)}.dashboard-stats__grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin-bottom:1.5rem}.dashboard-stats__grid--money{grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),200px));justify-content:start}.dashboard-stats__grid--nested{margin-bottom:0;grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),200px));justify-content:start}.dashboard-stat-group{margin-bottom:1.25rem}.dashboard-stat-group:last-child{margin-bottom:0}.dashboard-stat-group__label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.dashboard-stats__grid:last-of-type{margin-bottom:0}.dashboard-stats__grid--jobs{grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),200px))}.dashboard-stat{min-width:0;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;display:flex;flex-direction:column;gap:.25rem}.dashboard-stat__label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.dashboard-stat__value{font-size:1.25rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.dashboard-stat__value--number{font-size:1.5rem}.dashboard-stat__meta{font-size:.75rem;color:var(--color-text-muted)}.dashboard-stat--total .dashboard-stat__value{font-size:1.5rem;color:var(--color-primary)}.dashboard-stat--paid .dashboard-stat__value{color:var(--color-success)}.dashboard-stat--pending .dashboard-stat__value{color:var(--color-warning)}.dashboard-stat--ongoing .dashboard-stat__value{color:var(--color-text-muted)}.dashboard-stat--outstanding .dashboard-stat__value{color:var(--color-primary)}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),320px));gap:1rem;justify-content:start}.dashboard-card{min-width:0;display:block;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}.dashboard-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #00000014}.dashboard-card__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:1.5rem;color:var(--color-primary);background:var(--color-primary-muted);border-radius:12px;margin-bottom:1rem}.dashboard-card__title{margin:0 0 .25rem;font-size:1.25rem;font-weight:600;color:var(--color-text)}.dashboard-card__desc{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text-muted);line-height:1.4}.dashboard-card__count{font-size:.8125rem;font-weight:500;color:var(--color-primary)}@media (max-width: 640px){.dashboard-hero{margin-bottom:1.5rem}.dashboard-hero__title{font-size:1.5rem}.dashboard-hero__subtitle{font-size:.9375rem}.dashboard-stats__grid--money,.dashboard-stats__grid--nested,.dashboard-stats__grid--jobs{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-cards{grid-template-columns:1fr}.dashboard-stat{padding:.875rem}.dashboard-stat__value{font-size:1.125rem}.dashboard-stat__value--number{font-size:1.25rem}.dashboard-card{padding:1.25rem}.dashboard-card__icon{width:40px;height:40px;font-size:1.25rem}.dashboard-card__title{font-size:1.125rem}}.modal-content--narrow{max-width:380px}.modal-content--client,.modal-content.modal-content--client{max-width:680px}.client-form .client-form__fields{display:grid;grid-template-columns:1fr 1fr;gap:.875rem 1rem;margin-top:.25rem;margin-bottom:1rem}.client-form .client-form__field--full{grid-column:1 / -1}.client-form .form-label{margin-bottom:0}.client-form .form-label.form-check{flex-direction:row;align-items:center;gap:.5rem}.client-form input.form-input[type=checkbox]{width:auto;min-width:1.25rem;height:1.25rem;padding:0;margin:0;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.client-form-image-label{display:block;margin-bottom:.5rem;font-size:.875rem;color:var(--color-text)}.client-form-image-area{border:1px dashed var(--color-border);border-radius:8px;background:var(--color-bg);min-height:100px}.client-form-image-upload{display:flex;align-items:center;justify-content:center;min-height:100px;padding:1rem;cursor:pointer}.client-form-image-input{position:absolute;width:0;height:0;opacity:0}.client-form-image-upload-text{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-muted);font-size:.875rem}.client-form-image-upload:hover .client-form-image-upload-text{color:var(--color-primary)}.client-form-image-preview-wrap{padding:.75rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.client-form-image-preview{width:80px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--color-border)}.client-form-image-remove{flex-shrink:0}@media (max-width: 640px){.modal-content--client{max-width:none}.client-form .client-form__fields{grid-template-columns:1fr}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.confirm-modal-content{width:100%;max-width:400px;max-height:90vh;overflow-y:auto;background:var(--color-surface);border-radius:12px;box-shadow:0 20px 50px #0003}@media (max-width: 480px){.confirm-modal-overlay{padding:0;align-items:flex-end}.confirm-modal-content{max-width:none;width:100%;max-height:90vh;border-radius:12px 12px 0 0;padding-bottom:env(safe-area-inset-bottom,0)}.confirm-modal-header{padding:1rem 1rem 1rem 1.25rem}.confirm-modal-header .modal-close{min-width:44px;min-height:44px}.confirm-modal-body{padding:1rem 1.25rem .25rem}.confirm-modal-footer{flex-direction:column;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));gap:.5rem}.confirm-modal-footer .btn{width:100%;min-height:44px;justify-content:center}}.confirm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.confirm-modal-header .modal-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text)}.confirm-modal-header .modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:8px;transition:background .2s,color .2s}.confirm-modal-header .modal-close:hover{background:var(--color-border-subtle);color:var(--color-text)}.confirm-modal-body{padding:1rem 1.25rem .25rem}.confirm-modal-message{margin:0;font-size:.9375rem;line-height:1.5;color:var(--color-text)}.confirm-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border)}.confirm-modal-footer .btn+.btn{margin-left:0}.page{padding:1.5rem}.clients-empty{text-align:center;padding:3rem 1.5rem;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:12px;color:var(--color-text-muted)}.clients-empty p{margin:0 0 1rem}.clients-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.client-card{display:flex;flex-direction:column;background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);box-shadow:0 2px 8px #0000000f;overflow:hidden;transition:box-shadow .2s,border-color .2s}.client-card:hover{border-color:var(--color-border-subtle);box-shadow:0 4px 12px #00000014}.client-card__header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);text-align:left}.client-card__header-info{flex:1;min-width:0}.client-card__footer{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.25rem 1rem;border-top:1px solid var(--color-border);background:var(--color-border-subtle);align-items:center}.client-card__footer .btn{flex:1;min-width:5rem;justify-content:center}.client-card__avatar-wrap{flex-shrink:0}.client-card__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.client-card__avatar-placeholder{width:64px;height:64px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:1.5rem}.client-card__name{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:var(--color-text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-card__line--institution{margin:0;font-size:.8125rem;color:var(--color-text-muted)}.client-card__header .client-card__line--institution{display:flex;align-items:center;gap:.375rem;min-width:0}.client-card__line--institution span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.client-card__body{padding:.75rem 1.25rem 1rem;flex:1;min-height:0;min-width:0}.client-card__body .client-card__line{min-width:0}.client-card__body .client-card__line:not(.client-card__notes)>a,.client-card__body .client-card__line:not(.client-card__notes)>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-card__body .client-card__line a{word-break:normal}.client-card__line{display:flex;align-items:flex-start;gap:.5rem;margin:0 0 .5rem;font-size:.875rem;color:var(--color-text);line-height:1.4}.client-card__line:last-child{margin-bottom:0}.client-card__line svg{flex-shrink:0;margin-top:2px;color:var(--color-text-muted)}.client-card__line a{color:var(--color-primary);text-decoration:none;word-break:break-all}.client-card__line a:hover{text-decoration:underline}.client-card__notes{font-size:.8125rem;color:var(--color-text-muted)}.client-card__notes span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.client-details-modal{max-width:420px}.client-details__body{padding:1.25rem 1.5rem}.client-details__avatar-wrap{text-align:center;margin-bottom:1rem}.client-details__avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.client-details__avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:2rem}.client-details__name{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:var(--color-text);text-align:center}.client-details__row{display:flex;align-items:flex-start;gap:.5rem;margin:0 0 .75rem;font-size:.9375rem;color:var(--color-text)}.client-details__row:last-of-type{margin-bottom:0}.client-details__row svg{flex-shrink:0;margin-top:2px;color:var(--color-text-muted)}.client-details__row a{color:var(--color-primary);word-break:break-all}.client-details__notes span{white-space:pre-wrap;word-break:break-word}.client-details__meta{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.client-details__badge{display:inline-block;padding:.25rem .5rem;font-size:.8125rem;font-weight:500;border-radius:6px;background:var(--color-primary-muted);color:var(--color-primary)}@media (max-width: 640px){.clients-grid{grid-template-columns:1fr;gap:.75rem}.client-card__header{padding:.75rem 1rem}.client-card__footer{padding:.5rem 1rem .75rem;gap:.375rem}.client-card__footer .btn{min-width:4.5rem;padding:.35rem .5rem;font-size:.75rem}.client-card__body{padding:.5rem 1rem .75rem}.client-card__avatar,.client-card__avatar-placeholder{width:48px;height:48px;font-size:1.25rem}.client-card__name{font-size:1rem}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{width:100%;max-width:440px;max-height:90vh;overflow-y:auto;background:var(--color-surface);border-radius:12px;box-shadow:0 20px 50px #0003}@media (max-width: 480px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:none;width:100%;max-height:90vh;border-radius:12px 12px 0 0;padding-bottom:env(safe-area-inset-bottom,0)}.modal-header{padding:1rem 1rem 1rem 1.25rem}.modal-close{min-width:44px;min-height:44px}.payment-form{padding:1rem 1rem 1.25rem}.modal-footer{flex-wrap:wrap;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));gap:.5rem}.modal-footer .btn{min-height:44px;flex:1 1 100%;justify-content:center}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;border-radius:8px;transition:background .2s,color .2s}.modal-close:hover{background:var(--color-border-subtle);color:var(--color-text)}.payment-form{padding:1.25rem 1.25rem 1.5rem}.form-error{padding:.75rem;margin-bottom:1rem;background:var(--color-error-bg);color:var(--color-error);border-radius:8px;font-size:.875rem}.form-hint{display:block;margin-top:.375rem;font-size:.7rem;font-weight:400;color:var(--color-text-muted)}.form-label{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem;font-size:.875rem;font-weight:500;color:var(--color-text)}.form-label.form-check{flex-direction:row;align-items:center;gap:.5rem}.form-input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;background:var(--color-bg);color:var(--color-text)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}input.form-input[type=checkbox]{width:auto;min-width:1.25rem;height:1.25rem;padding:0;margin:0;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.form-input--textarea{resize:vertical;min-height:72px}.form-input--readonly{background:var(--color-border-subtle);color:var(--color-text);cursor:default}.form-amount-row{display:flex;gap:.5rem}.form-amount-row .form-input--currency{width:7rem;flex-shrink:0}.form-amount-row .form-input:not(.form-input--currency){flex:1;min-width:0}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border)}.client-detail-page__header{margin-bottom:1.5rem}.client-detail-page__header .btn{font-weight:500}.client-detail-not-found{text-align:center;padding:4rem 2rem;background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);color:var(--color-text-muted);box-shadow:0 1px 3px #0000000a}.client-detail-not-found p{margin:0 0 1.25rem;font-size:1rem}.client-detail-card{background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);box-shadow:0 4px 24px #0000000f;margin-bottom:2rem;overflow:hidden}.client-detail-card__header{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;gap:1rem 1.25rem;align-items:start;padding:2rem 2rem 1.75rem;border-bottom:1px solid var(--color-border);background:linear-gradient(to bottom,var(--color-surface) 0%,var(--color-border-subtle) 100%)}.client-detail-card__avatar-wrap{grid-column:1;grid-row:1}.client-detail-card__avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--color-surface);box-shadow:0 4px 12px #00000014}.client-detail-card__avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:2rem;letter-spacing:-.02em;box-shadow:0 4px 12px #0000001f}.client-detail-card__info{grid-column:2;grid-row:1;min-width:0}.client-detail-card__name{margin:0 0 .375rem;font-size:1.5rem;font-weight:700;color:var(--color-text);line-height:1.25;letter-spacing:-.02em}.client-detail-card__row{display:flex;align-items:center;gap:.5rem;margin:0}.client-detail-card__row svg{flex-shrink:0}.client-detail-card__header .client-detail-card__row{margin:0 0 .25rem;font-size:.9375rem;color:var(--color-text-muted)}.client-detail-card__header .client-detail-card__row span{font-weight:500;color:var(--color-text)}.client-detail-card__header .client-detail-card__row svg{color:var(--color-text-muted)}.client-detail-card__badge{display:inline-flex;align-items:center;margin-top:.75rem;padding:.35rem .75rem;font-size:.8125rem;font-weight:600;border-radius:999px;letter-spacing:.02em}.client-detail-card__badge--active{background:var(--color-primary-muted);color:var(--color-primary)}.client-detail-card__badge--inactive{background:var(--color-border-subtle);color:var(--color-text-muted)}.client-detail-card__header .btn{grid-column:3;grid-row:1;align-self:center}.client-detail-card__body{padding:1.75rem 2rem 2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem 1.5rem}.client-detail-card__body .client-detail-card__row{display:flex;align-items:center;gap:.75rem;margin:0;padding:.75rem 1rem;font-size:.9375rem;color:var(--color-text);background:var(--color-bg);border-radius:10px;border:1px solid transparent;transition:border-color .2s,background .2s}.client-detail-card__body .client-detail-card__row>a,.client-detail-card__body .client-detail-card__row>span{min-width:0;overflow-wrap:break-word}.client-detail-card__body .client-detail-card__row:hover{background:var(--color-border-subtle);border-color:var(--color-border)}.client-detail-card__body .client-detail-card__row svg{flex-shrink:0;margin-top:2px;color:var(--color-primary);opacity:.9}.client-detail-card__body .client-detail-card__row a{color:var(--color-primary);word-break:break-all;font-weight:500}.client-detail-card__body .client-detail-card__row a:hover{text-decoration:underline}.client-detail-card__notes.client-detail-card__row{grid-column:1 / -1;align-items:flex-start}.client-detail-card__notes.client-detail-card__row>span{flex:1;min-width:0}.client-detail-card__notes span{white-space:pre-wrap;word-break:break-word;line-height:1.5;color:var(--color-text-muted)}.client-detail-stats{margin-bottom:2rem}.client-detail-stats__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr));gap:.75rem}.client-detail-stat{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;display:flex;flex-direction:column;gap:.25rem;min-width:0}.client-detail-stat__label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.client-detail-stat__value{font-size:1.25rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.client-detail-stat__value--number{font-size:1.5rem}.client-detail-stat__value--paid{color:var(--color-success)}.client-detail-stat__value--outstanding{color:var(--color-primary)}.client-detail-section{margin-bottom:2rem}.client-detail-section__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.client-detail-section__title{display:inline-flex;align-items:center;gap:.5rem;margin:0;font-size:1.125rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.client-detail-section__title svg{color:var(--color-primary);opacity:.9}.client-detail-empty{margin:0;padding:2.5rem 1.5rem;text-align:center;color:var(--color-text-muted);font-size:.9375rem;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:12px}.client-detail-jobs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.client-detail-job{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 3px #0000000a;transition:box-shadow .2s,border-color .2s}.client-detail-job:hover{border-color:var(--color-border-subtle);box-shadow:0 4px 12px #0000000f}.client-detail-job__main{flex:1;min-width:0;display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.client-detail-job__desc{font-weight:600;font-size:.9375rem;color:var(--color-text);line-height:1.4}.client-detail-job__amount{font-variant-numeric:tabular-nums;font-weight:600;font-size:1rem;color:var(--color-primary)}.client-detail-job__meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.8125rem;color:var(--color-text-muted)}.client-detail-job__date,.client-detail-job__paid{white-space:nowrap}.client-detail-job__paid{color:var(--color-success);font-weight:500}.client-detail-job__actions{display:flex;gap:.5rem}.client-detail-job .status-badge{display:inline-block;padding:.3rem .6rem;border-radius:8px;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.client-detail-job .status-paid{background:#05966926;color:var(--color-success)}.client-detail-job .status-pending{background:#d9770626;color:var(--color-warning)}.client-detail-job .status-ongoing{background:#3b82f626;color:#2563eb}.client-detail-job .status-delivered{background:#6366f126;color:#4f46e5}.client-detail-job .status-default{background:var(--color-border-subtle);color:var(--color-text-muted)}@media (max-width: 768px){.client-detail-card__header{padding:1.5rem 1.25rem;grid-template-columns:auto 1fr;grid-template-rows:auto auto}.client-detail-card__header .btn{grid-column:1 / -1;grid-row:2;width:100%;justify-content:center}.client-detail-card__body{padding:1.25rem 1.25rem 1.5rem;grid-template-columns:1fr}.client-detail-job{flex-direction:column;align-items:stretch;padding:1rem 1.25rem}.client-detail-job__main{flex-direction:column;gap:.25rem}.client-detail-job__actions{justify-content:flex-end;padding-top:.5rem;border-top:1px solid var(--color-border)}}@media (max-width: 480px){.client-detail-card__name{font-size:1.25rem}.client-detail-card__avatar,.client-detail-card__avatar-placeholder{width:64px;height:64px;font-size:1.5rem}}.date-range-filter{position:relative;display:inline-flex;align-items:center;gap:.75rem}.date-range-filter__select{position:relative}.date-range-filter__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.date-range-filter__trigger{display:inline-flex;align-items:center;gap:.5rem;min-width:10rem;padding:.5rem .75rem .5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.date-range-filter__trigger:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted, rgba(13, 148, 136, .12))}.date-range-filter__trigger-text{flex:1}.date-range-filter__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s ease}.date-range-filter__chevron--open{transform:rotate(180deg);color:var(--color-primary)}.date-range-filter__dropdown{position:absolute;top:calc(100% + 6px);right:0;left:auto;min-width:16rem;max-width:280px;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 40px #0000001f;z-index:50;animation:date-range-filter-drop-in .15s ease-out}[data-theme=dark] .date-range-filter__dropdown{box-shadow:0 10px 40px #0006}@keyframes date-range-filter-drop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-range-filter__all-time{display:block;width:100%;margin-top:.75rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;color:var(--color-primary);background:transparent;border:none;border-radius:6px;cursor:pointer;text-align:center;transition:background .12s ease}.date-range-filter__all-time:hover{background:var(--color-primary-muted, rgba(13, 148, 136, .12))}.date-range-filter__calendar-hint{margin:0 0 .5rem;font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-align:center}.date-range-filter__calendar-wrap{margin-top:.5rem}.date-range-filter__calendar{-webkit-user-select:none;user-select:none}.date-range-filter__calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.5rem}.date-range-filter__calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;font-size:1.25rem;line-height:1;color:var(--color-text-muted);background:var(--color-border-subtle);border:none;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.date-range-filter__calendar-nav-btn:hover{background:var(--color-primary-muted, rgba(13, 148, 136, .12));color:var(--color-primary)}.date-range-filter__calendar-title{font-size:.8125rem;font-weight:600;color:var(--color-text)}.date-range-filter__calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.date-range-filter__calendar-weekday{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);text-align:center}.date-range-filter__calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-range-filter__calendar-day{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;height:1.75rem;padding:0;font-size:.8125rem;font-weight:500;color:var(--color-text);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.date-range-filter__calendar-day:hover{background:var(--color-border-subtle)}.date-range-filter__calendar-day--empty{pointer-events:none;opacity:.3}.date-range-filter__calendar-day--in-range{background:var(--color-primary-muted, rgba(13, 148, 136, .15));color:var(--color-primary)}.date-range-filter__calendar-day--start,.date-range-filter__calendar-day--end{background:var(--color-primary);color:var(--color-text-inverse)}.date-range-filter__calendar-day--start:hover,.date-range-filter__calendar-day--end:hover{background:var(--color-primary-hover);color:var(--color-text-inverse)}.payment-table-wrapper{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000f;overflow:hidden}.table-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.table-search{flex:1;min-width:200px;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;background:var(--color-surface);color:var(--color-text)}.table-search-wrap{position:relative;flex:1;min-width:200px}.table-search-wrap .table-search{min-width:0;width:100%}.table-search__icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.table-search:focus{outline:none;border-color:var(--color-primary)}.table-toolbar__filters{display:inline-flex;align-items:stretch;gap:.5rem}.table-toolbar__filters .table-filter{width:10rem;min-width:10rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.table-filter{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;background:var(--color-surface);color:var(--color-text)}.table-toolbar__date-filter{margin:0;width:10rem;min-width:10rem}.table-toolbar__date-filter .date-range-filter,.table-toolbar__date-filter .date-range-filter__select{width:100%}.table-toolbar__date-filter .date-range-filter__trigger{width:100%;padding:.5rem .75rem;font-size:.875rem;min-width:0;height:auto;line-height:1.25;box-sizing:border-box}.table-scroll{overflow-x:auto}.payment-table{width:100%;border-collapse:collapse;font-size:.875rem}.payment-table th,.payment-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text)}.payment-table th{font-weight:600;color:var(--color-text);background:var(--color-bg);white-space:nowrap}.payment-table tbody tr:hover{background:var(--color-border-subtle)}.payment-table tbody tr.row-alt{background:var(--color-bg)}.payment-table tbody tr.row-alt:hover{background:var(--color-border-subtle)}.col-client{min-width:120px}.col-job{min-width:180px}.col-amount{min-width:110px;font-variant-numeric:tabular-nums}.col-status{min-width:100px}.col-status .table-status-date{display:inline-block;margin-left:.5rem;font-size:.75rem;color:var(--color-text-muted);font-weight:400}.col-delivered{min-width:80px}.col-actions{min-width:140px}.payment-table th.col-actions,.payment-table td.col-actions{text-align:right}.col-actions .btn{margin-right:.5rem;display:inline-flex;align-items:center;gap:.35rem}.col-actions .btn:last-child{margin-right:0}.table-empty{text-align:center;color:var(--color-text-muted);padding:2rem!important}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;font-size:.8125rem;font-weight:500}.status-paid{background:#d1fae5;color:#065f46}.status-pending{background:#ffedd5;color:#9a3412}.status-ongoing{background:#dbeafe;color:#1e40af}.status-delivered{background:#e0e7ff;color:#3730a3}.status-no-idea{background:#e5e7eb;color:#4b5563}.status-default{background:#f3f4f6;color:#6b7280}@media (max-width: 768px){.table-toolbar{flex-direction:column;padding:.75rem 1rem}.table-search-wrap,.table-search{min-width:100%}.table-toolbar__filters{width:100%;display:flex;flex-wrap:nowrap;gap:.5rem}.table-toolbar__filters .table-filter,.table-toolbar__filters .table-toolbar__date-filter{flex:1;min-width:0}.table-toolbar__filters .table-toolbar__date-filter .date-range-filter__trigger{width:100%}.payment-table th,.payment-table td{padding:.5rem .75rem;font-size:.8125rem}.col-actions .btn{margin-right:.25rem;margin-bottom:.25rem}}@media (max-width: 480px){.payment-table-wrapper{border-radius:8px}.table-toolbar{padding:.5rem .75rem;gap:.5rem}.payment-table th,.payment-table td{padding:.4rem .5rem;font-size:.75rem}.col-client{min-width:80px}.col-job{min-width:100px}.col-amount{min-width:70px}.col-status{min-width:72px}.col-delivered{min-width:50px}.col-actions{min-width:100px}.col-actions .btn{padding:.25rem .4rem;font-size:.7rem}.col-actions .btn svg{width:12px;height:12px}.table-empty{padding:1.5rem .5rem!important;font-size:.8125rem}}.board-view{width:100%;overflow-x:auto;padding-bottom:.5rem}.board-columns{display:flex;flex-wrap:wrap;gap:1rem;width:100%}.board-column{flex:1 1 260px;min-width:260px;max-width:100%;min-height:320px;background:var(--color-border-subtle);border-radius:12px;display:flex;flex-direction:column;transition:background .15s,box-shadow .15s}.board-column--drag-over{background:var(--color-border);box-shadow:inset 0 0 0 2px var(--color-primary)}.board-column-header{padding:.75rem 1rem;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:.9375rem;color:#fff}.board-column-header--Pending{background:#ea580c}.board-column-header--Ongoing{background:#2563eb}.board-column-header--Delivered{background:#7c3aed}.board-column-header--Paid{background:#059669}.board-column-header--no-idea{background:#6b7280}.board-column-title{text-transform:capitalize}.board-column-count{background:#ffffff4d;padding:.2rem .5rem;border-radius:6px;font-size:.8125rem}.board-column-cards{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.board-column-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem;min-height:140px;color:var(--color-text-muted);text-align:center}.board-column-empty__icon{opacity:.4;flex-shrink:0}.board-column-empty__text{font-size:.875rem;font-weight:500}.board-column-empty__hint{font-size:.75rem;opacity:.8}.board-card{position:relative;background:var(--color-surface);border-radius:10px;padding:.75rem 1rem;box-shadow:0 1px 3px #00000014;cursor:grab;transition:box-shadow .15s;border:1px solid var(--color-border)}.board-card[draggable=false]{cursor:default}.board-card:active{cursor:grabbing}.board-card--dragging{opacity:.85;box-shadow:0 8px 20px #00000026;transform:rotate(2deg)}.board-card:hover{box-shadow:0 2px 8px #0000001a}.board-card-client{font-weight:600;font-size:.875rem;color:var(--color-text);margin-bottom:.25rem}.board-card-job{font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.5rem;line-height:1.35}.board-card-amount{display:inline-flex;align-items:center;gap:.35rem;font-variant-numeric:tabular-nums;font-weight:600;font-size:.75rem;color:var(--color-primary)}.board-card-actions{position:absolute;top:.5rem;right:.5rem;left:auto;display:flex;flex-direction:row;gap:.25rem;opacity:0;transition:opacity .15s;z-index:2;pointer-events:none}.board-card:hover .board-card-actions,.board-card:focus-within .board-card-actions{opacity:1;pointer-events:auto}@media (max-width: 600px),(hover: none){.board-card-actions{opacity:1;pointer-events:auto}}.board-card-actions .board-card-action{width:28px;height:28px;min-width:28px;min-height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:0 1px 2px #00000014;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.board-card-actions .board-card-action:hover{background:var(--color-border);color:var(--color-text);border-color:var(--color-border)}.board-card-actions .board-card-action--danger:hover{background:var(--color-error-bg, #fef2f2);color:var(--color-error, #dc2626);border-color:var(--color-error, #dc2626)}@media (max-width: 900px){.board-column{min-width:220px;flex:1 1 220px}}@media (max-width: 600px){.board-column{min-width:100%;flex:1 1 100%;min-height:280px}.board-column-header{padding:.6rem .75rem;font-size:.875rem}.board-card{padding:.6rem .75rem}.board-card-client{font-size:.8125rem}.board-card-job{font-size:.75rem}.board-card-amount{font-size:.7rem}.board-card-actions .board-card-action{width:26px;height:26px;min-width:26px;min-height:26px}.board-column-empty{min-height:100px;padding:1rem}.board-column-empty__icon{width:32px;height:32px}.board-column-empty__text{font-size:.8125rem}}.jobs-page__toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.view-toggle{display:flex;background:var(--color-border);border-radius:8px;padding:3px}.view-toggle-btn{padding:.4rem .875rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;background:transparent;color:var(--color-text-muted);transition:background .15s,color .15s}.view-toggle-btn:hover{color:var(--color-text)}.view-toggle-btn--active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 2px #0000000f}.job-detail-page__header{margin-bottom:1.5rem}.job-detail-not-found{text-align:center;padding:4rem 2rem;background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);color:var(--color-text-muted);box-shadow:0 1px 3px #0000000a}.job-detail-not-found p{margin:0 0 1.25rem;font-size:1rem}.job-detail-card{background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);box-shadow:0 4px 24px #0000000f;margin-bottom:2rem;overflow:hidden}.job-detail-card__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.75rem 2rem;border-bottom:1px solid var(--color-border);background:linear-gradient(to bottom,var(--color-surface) 0%,var(--color-border-subtle) 100%)}.job-detail-card__main{flex:1;min-width:0}.job-detail-card__title{margin:0 0 .5rem;font-size:1.375rem;font-weight:700;color:var(--color-text);line-height:1.3;letter-spacing:-.02em}.job-detail-card__status{display:inline-block;padding:.35rem .75rem;border-radius:8px;font-size:.8125rem;font-weight:600;letter-spacing:.02em}.job-detail-card__actions{display:flex;gap:.5rem;flex-shrink:0}.job-detail-card__body{padding:1.5rem 2rem}.job-detail-card__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.job-detail-card__field{display:flex;flex-direction:column;gap:.35rem}.job-detail-card__field-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.job-detail-card__field-label svg{color:var(--color-primary);opacity:.9}.job-detail-card__field-value{font-size:1rem;font-weight:500;color:var(--color-text)}.job-detail-card__link{color:var(--color-primary);text-decoration:none}.job-detail-card__link:hover{text-decoration:underline}.job-detail-card__amount{font-variant-numeric:tabular-nums;color:var(--color-primary)}.job-detail-card__currency{font-size:.875rem;font-weight:400;color:var(--color-text-muted)}.job-detail-card__notes{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-border);grid-column:1 / -1}.job-detail-card__notes .job-detail-card__field-label{margin-bottom:.5rem}.job-detail-card__notes-text{margin:0;font-size:.9375rem;color:var(--color-text-muted);line-height:1.5;white-space:pre-wrap;word-break:break-word}.job-detail-card .status-paid{background:#05966926;color:var(--color-success)}.job-detail-card .status-pending{background:#d9770626;color:var(--color-warning)}.job-detail-card .status-ongoing{background:#3b82f626;color:#2563eb}.job-detail-card .status-delivered{background:#6366f126;color:#4f46e5}.job-detail-card .status-default{background:var(--color-border-subtle);color:var(--color-text-muted)}.job-detail-section{margin-bottom:2rem}.job-detail-section__title{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.125rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.job-detail-section__title svg{color:var(--color-primary);opacity:.9}.job-detail-timeline{list-style:none;margin:0;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.job-detail-timeline__empty{padding:2rem;text-align:center;color:var(--color-text-muted);font-size:.9375rem}.job-detail-timeline__item{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.job-detail-timeline__item:last-child{border-bottom:none}.job-detail-timeline__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:10px;color:var(--color-primary)}.job-detail-timeline__content{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.job-detail-timeline__label{font-weight:600;font-size:.9375rem;color:var(--color-text)}.job-detail-timeline__date{font-size:.875rem;color:var(--color-text-muted)}.job-detail-timeline__date-row{display:flex;align-items:center;gap:.5rem}.job-detail-timeline__date-edit-btn{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;border:none;background:var(--color-border-subtle);color:var(--color-text-muted);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.job-detail-timeline__date-edit-btn:hover{background:var(--color-primary-muted, rgba(13, 148, 136, .12));color:var(--color-primary)}.job-detail-timeline__date-edit{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:280px}.job-detail-timeline__date-input{padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text)}.job-detail-timeline__date-input::-webkit-calendar-picker-indicator{opacity:.8;cursor:pointer}[data-theme=dark] .job-detail-timeline__date-input::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.9}.job-detail-timeline__date-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-muted, rgba(13, 148, 136, .2))}.job-detail-timeline__date-actions{display:flex;gap:.5rem}.job-detail-payments__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.job-detail-payments__title{margin-bottom:0}.job-detail-payments__summary{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1.25rem;font-size:.875rem;color:var(--color-text-muted)}.job-detail-payments__total,.job-detail-payments__paid{font-weight:500}.job-detail-payments__remaining{color:var(--color-primary);font-weight:600}.job-detail-payments__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.job-detail-payments__item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.75rem 1rem;background:var(--color-border-subtle);border-radius:10px;border:1px solid var(--color-border)}.job-detail-payments__amount{font-weight:600;color:var(--color-text)}.job-detail-payments__date{font-size:.8125rem;color:var(--color-text-muted)}.job-detail-payments__note{flex:1;min-width:0;font-size:.875rem;color:var(--color-text-muted)}.job-detail-payments__empty{margin:0;font-size:.875rem;color:var(--color-text-muted)}@media (max-width: 640px){.job-detail-card__header{flex-direction:column;align-items:stretch;padding:1.25rem}.job-detail-card__actions{width:100%;justify-content:stretch}.job-detail-card__actions .btn{flex:1;justify-content:center;align-items:center}.job-detail-card__body{padding:1.25rem}.job-detail-card__grid{grid-template-columns:1fr}}.page.payments-page .page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.page.payments-page .page-header .btn-primary{display:inline-flex;align-items:center;gap:.5rem}.payments-empty{text-align:center;padding:3rem 1.5rem;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:12px;color:var(--color-text-muted)}.payments-empty__icon{display:block;margin:0 auto 1rem;opacity:.5}.payments-empty p{margin:0;font-size:.9375rem}.payments-content{display:flex;flex-direction:column;gap:2rem}.payments-section__title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.payments-job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.payments-job-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 3px #0000000f;overflow:hidden;transition:box-shadow .2s,border-color .2s}.payments-job-card:hover{border-color:var(--color-border-subtle);box-shadow:0 2px 8px #00000014}.payments-job-card__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.payments-job-card--paid .payments-job-card__head{border-bottom:none}.payments-job-card__info{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .75rem;min-width:0;flex:1;row-gap:.25rem}.payments-job-card__client{font-weight:600;font-size:.9375rem;color:var(--color-text);flex-shrink:0}.payments-job-card__desc{color:var(--color-text-muted);font-size:.875rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payments-job-card__desc:before{content:"· ";color:var(--color-text-muted);margin-right:.15em}.payments-job-card__meta{font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.payments-job-card__head .btn-small{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.payments-record-list{list-style:none;margin:0;padding:.75rem 1.25rem 1rem;background:var(--color-bg);border-top:1px solid var(--color-border)}.payments-record-item{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;padding:.5rem 0;font-size:.875rem;border-bottom:1px solid var(--color-border)}.payments-record-item:last-child{border-bottom:none}.payments-record-amount{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-primary);min-width:5rem}.payments-record-date{color:var(--color-text-muted);font-size:.8125rem}.payments-record-note{color:var(--color-text-muted);font-style:italic;font-size:.8125rem;flex:1;min-width:0}.payments-record-item .btn-icon{margin-left:auto;width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}.payments-job-card .status-badge--small{font-size:.75rem;padding:.2rem .5rem;border-radius:6px;font-weight:500;margin-left:auto;flex-shrink:0}.payments-modal-content{max-width:420px;padding:0}.payments-modal-content .modal-header{padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.payments-modal-content .modal-title{font-size:1.125rem}.payments-modal-content .payment-form{padding:1.25rem 1.25rem 1.5rem}.payments-modal-content .form-error{padding:.75rem;margin-bottom:1rem;background:var(--color-error-bg);color:var(--color-error);border-radius:8px;font-size:.875rem}.payments-modal-content .form-label{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem;font-size:.875rem;font-weight:500;color:var(--color-text)}.payments-modal-content .form-input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;background:var(--color-bg);color:var(--color-text);width:100%}.payments-modal-content .form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}.payments-modal-content .modal-footer{margin-top:.25rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:.75rem}@media (max-width: 640px){.payments-job-card__head{flex-direction:column;align-items:stretch;padding:1rem;gap:.75rem}.payments-job-card__info{flex-direction:column;align-items:flex-start;gap:.25rem;width:100%}.payments-job-card__client{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payments-job-card__desc{width:100%;white-space:nowrap}.payments-job-card__desc:before{display:none}.payments-job-card__meta{width:100%}.payments-job-card__head .btn-small{width:100%;justify-content:center;min-height:30px}.payments-record-list{padding:.75rem 1rem 1rem}.payments-record-item{flex-direction:column;align-items:flex-start;gap:.25rem;padding:.625rem 0}.payments-record-item .btn-icon{margin-left:0;align-self:flex-end}}.settings-page{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 640px){.settings-page{grid-template-columns:repeat(2,1fr)}}.settings-page__header{grid-column:1 / -1;margin-bottom:0}.settings-page__header .btn{font-weight:500}.settings-card{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a}.settings-card__title{display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:1rem 1.25rem;font-size:1rem;font-weight:600;color:var(--color-text);border-bottom:1px solid var(--color-border)}.settings-card__title svg{color:var(--color-text-muted)}.settings-card__body{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem;flex-wrap:wrap}.settings-card__label{font-size:.875rem;font-weight:500;color:var(--color-text);margin:0;min-width:0}.settings-card__theme-options{display:flex;gap:.5rem;flex-shrink:0}.settings-card__theme-option{cursor:pointer}.settings-card__theme-input{position:absolute;opacity:0;pointer-events:none}.settings-card__theme-box{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem .875rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;font-weight:500;color:var(--color-text);transition:border-color .15s ease,background .15s ease}.settings-card__theme-option:hover .settings-card__theme-box{border-color:var(--color-primary)}.settings-card__theme-option--active .settings-card__theme-box{border-color:var(--color-primary);background:var(--color-primary-muted, rgba(13, 148, 136, .08));color:var(--color-primary)}.settings-card__theme-icon{flex-shrink:0}.settings-card__select{display:block;width:auto;min-width:10rem;padding:.5rem .75rem;flex-shrink:0;font-size:.875rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;cursor:pointer}.settings-card__select:hover,.settings-card__select:focus{border-color:var(--color-primary);outline:none}@media (max-width: 640px){.settings-card__body{flex-direction:column;align-items:stretch}.settings-card__theme-options{justify-content:flex-start}}:root,[data-theme=light]{--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-primary-muted: rgba(13, 148, 136, .12);--color-accent: #14b8a6;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-border: #e2e8f0;--color-border-subtle: #f1f5f9;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-inverse: #ffffff;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-success: #059669;--color-success-bg: #ecfdf5;--color-warning: #d97706;--color-warning-bg: #fffbeb;--auth-bg: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #0d9488 100%);--auth-card-bg: #ffffff;--auth-card-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);--auth-title-color: #0f172a;--auth-subtitle-color: #64748b}[data-theme=dark]{--color-primary: #2dd4bf;--color-primary-hover: #5eead4;--color-primary-muted: rgba(45, 212, 191, .15);--color-accent: #5eead4;--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-elevated: #334155;--color-border: #334155;--color-border-subtle: #1e293b;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-text-inverse: #0f172a;--color-error: #f87171;--color-error-bg: #450a0a;--color-success: #34d399;--color-success-bg: #052e16;--color-warning: #fbbf24;--color-warning-bg: #422006;--auth-bg: linear-gradient(160deg, #020617 0%, #0f172a 50%, #134e4a 100%);--auth-card-bg: #1e293b;--auth-card-shadow: 0 25px 50px -12px rgba(0, 0, 0, .5);--auth-title-color: #f1f5f9;--auth-subtitle-color: #94a3b8}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);transition:background-color .3s ease,color .2s ease}#root{min-height:100vh}.page{max-width:1200px;margin-left:auto;margin-right:auto;padding:1.5rem}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.page-title{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}@media (max-width: 640px){.page{padding:1rem}.page-header{margin-bottom:1rem}.page-title{font-size:1.25rem}}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:opacity .2s,background .2s}.btn>svg{flex-shrink:0}.btn:hover{opacity:.9}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-danger{background:var(--color-error);color:#fff}.btn-small{padding:.375rem .75rem;font-size:.8125rem}a.btn,a.btn:hover{text-decoration:none}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:2rem;color:var(--color-text-muted)}.page-loading__spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:page-spin .7s linear infinite;margin-bottom:1rem}.page-loading__text{font-size:.9375rem}@keyframes page-spin{to{transform:rotate(360deg)}}
