:root{--bg:#f7f9fc;--bg-soft:#eef7f2;--ink:#172033;--ink-soft:#5b677a;--muted:#7a8799;--panel:rgba(255,255,255,0.82);--panel-strong:#ffffff;--line:rgba(23,32,51,0.1);--line-strong:rgba(23,32,51,0.16);--sidebar:#111827;--sidebar-2:#172033;--primary:#0f766e;--primary-2:#14b8a6;--blue:#2563eb;--green:#16a34a;--amber:#d97706;--rose:#e11d48;--shadow:0 18px 45px rgba(23,32,51,0.08);--shadow-soft:0 10px 24px rgba(23,32,51,0.07);--radius:8px;--sidebar-width:280px;--sidebar-mini:76px;--topbar-height:68px;}*{box-sizing:border-box;}html{scroll-behavior:smooth;}body{min-height:100vh;margin:0;color:var(--ink);background:linear-gradient(135deg,#f8fafc 0%,var(--bg-soft) 48%,#fff7ed 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;}body.sidebar-open,body.modal-open{overflow:hidden;}button,input,select,textarea{font:inherit;}button{-webkit-tap-highlight-color:transparent;}a{color:inherit;text-decoration:none;}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}.global-loading{position:fixed;top:0;left:0;right:0;z-index:3000;height:3px;opacity:0;pointer-events:none;overflow:hidden;background:transparent;transition:opacity 140ms ease;}.global-loading span{display:block;width:42%;height:100%;background:linear-gradient(90deg,var(--primary),var(--blue),var(--amber));transform:translateX(-100%);}.global-loading.is-active{opacity:1;}.global-loading.is-active span{animation:loading-bar 1s ease-in-out infinite;}@keyframes loading-bar{0%{transform:translateX(-120%);}100%{transform:translateX(260%);}}.app-shell{min-height:100vh;}.sidebar{position:fixed;inset:0 auto 0 0;z-index:1000;width:var(--sidebar-width);display:flex;flex-direction:column;color:#eef2ff;background:linear-gradient(180deg,rgba(17,24,39,0.98),rgba(15,23,42,0.98));border-right:1px solid rgba(255,255,255,0.08);box-shadow:20px 0 45px rgba(15,23,42,0.16);overflow:hidden;transition:width 180ms ease,transform 180ms ease;will-change:width,transform;}.brand{display:flex;align-items:center;gap:12px;min-height:86px;padding:18px;border-bottom:1px solid rgba(255,255,255,0.08);}.brand-mark{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;color:#052e2b;background:linear-gradient(135deg,#99f6e4,#fef3c7);border-radius:var(--radius);font-weight:800;}.brand-copy,.nav-text,.brand-title,.brand-subtitle,.brand-kicker,.sidebar-summary{transition:opacity 160ms ease,transform 160ms ease;}.brand-kicker,.nav-label,.eyebrow,.stat-label,.revenue-card span,.field span,.field-inline span{color:var(--muted);font-size:0.72rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;}.brand-kicker{color:#5eead4;}.brand-title{margin-top:3px;font-size:1rem;font-weight:800;}.brand-subtitle{color:rgba(238,242,255,0.62);font-size:0.78rem;}.nav{flex:1;min-height:0;padding:12px 10px;overflow:auto;}.nav-label{display:block;padding:12px 10px 6px;color:rgba(238,242,255,0.42);}.nav-item{width:100%;min-height:42px;display:flex;align-items:center;gap:11px;padding:9px 10px;color:rgba(238,242,255,0.74);background:transparent;border:0;border-radius:var(--radius);cursor:pointer;text-align:left;transition:background-color 140ms ease,color 140ms ease,transform 140ms ease;}.nav-item:hover,.nav-item.is-active{color:#ffffff;background:rgba(255,255,255,0.09);}.nav-item:active{transform:scale(0.99);}.nav-icon{width:34px;height:30px;flex:0 0 34px;display:grid;place-items:center;color:#99f6e4;background:rgba(255,255,255,0.08);border-radius:var(--radius);font-size:0.78rem;font-weight:900;}.sidebar-summary{padding:14px 16px;border-top:1px solid rgba(255,255,255,0.08);}.mini-stat{display:flex;justify-content:space-between;gap:10px;padding:5px 0;color:rgba(238,242,255,0.62);font-size:0.82rem;}.mini-stat strong{color:#5eead4;}.drawer-overlay{position:fixed;inset:0;z-index:999;opacity:0;pointer-events:none;background:rgba(15,23,42,0.38);backdrop-filter:blur(4px);transition:opacity 160ms ease;}.drawer-overlay.is-open{opacity:1;pointer-events:auto;}.main{width:calc(100% - var(--sidebar-width));min-height:100vh;margin-left:var(--sidebar-width);transition:margin-left 180ms ease,width 180ms ease;}.topbar{position:sticky;top:0;z-index:900;min-height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:rgba(248,250,252,0.82);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);}.topbar-left,.topbar-actions{min-width:0;display:flex;align-items:center;gap:10px;}.topbar-actions{justify-content:flex-end;flex-wrap:wrap;}.topbar-title{margin:0;font-size:1.15rem;line-height:1.1;}.user-chip{max-width:190px;padding:8px 10px;color:var(--ink-soft);background:rgba(255,255,255,0.72);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.84rem;font-weight:700;}.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;color:var(--ink);background:rgba(255,255,255,0.72);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color 140ms ease,transform 140ms ease,background-color 140ms ease;}.icon-btn:hover{border-color:rgba(20,184,166,0.45);background:#ffffff;}.icon-btn:active{transform:scale(0.97);}.hamburger-lines{width:18px;height:14px;display:inline-flex;flex-direction:column;justify-content:space-between;}.hamburger-lines span{height:2px;border-radius:99px;background:currentColor;}.content{min-width:0;padding:20px;}.view{display:none;}.view.is-active{display:block;animation:view-in 160ms ease;}@keyframes view-in{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;color:var(--ink);background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-weight:800;white-space:nowrap;transition:transform 140ms ease,box-shadow 140ms ease,border-color 140ms ease,background-color 140ms ease,opacity 140ms ease;}.btn:hover:not(:disabled){border-color:rgba(20,184,166,0.42);box-shadow:var(--shadow-soft);}.btn:active:not(:disabled){transform:scale(0.98);}.btn:disabled{opacity:0.62;cursor:wait;}.btn-primary{color:#ffffff;background:linear-gradient(135deg,var(--primary),var(--primary-2));border-color:rgba(15,118,110,0.2);}.btn-ghost{background:rgba(255,255,255,0.62);}.btn-danger{color:#ffffff;background:linear-gradient(135deg,#e11d48,#be123c);border-color:rgba(190,18,60,0.2);}.btn-full{width:100%;}.toolbar,.panel,.stat-card,.revenue-card,.month-card,.search-hero,.detail-hero,.detail-card,.month-detail,.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(18px);}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;margin-bottom:14px;}.toolbar-title,.panel-heading,.section-heading{font-size:1rem;font-weight:900;}.section-heading{margin:20px 0 12px;}.stats-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px;}.summary-row,.revenue-row,.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));}.stat-card{min-height:132px;padding:16px;position:relative;overflow:hidden;}.stat-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary);}.stat-card.accent-blue::before{background:var(--blue);}.stat-card.accent-green::before{background:var(--green);}.stat-card.accent-amber::before{background:var(--amber);}.stat-card.accent-rose::before{background:var(--rose);}.stat-value{margin-top:8px;font-size:clamp(1.65rem,2.2vw,2.2rem);line-height:1;font-weight:900;}.stat-sub,.revenue-card small,.cell-muted,.muted,.mobile-card p,.search-card small{color:var(--muted);}.stat-sub{margin-top:6px;font-size:0.86rem;}.progress-track{height:6px;margin-top:14px;overflow:hidden;background:rgba(23,32,51,0.08);border-radius:99px;}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:inherit;transition:width 320ms ease;}.revenue-card{min-height:126px;display:flex;flex-direction:column;gap:6px;padding:16px;}.revenue-card strong{font-size:clamp(1.45rem,2vw,2rem);font-weight:900;}.revenue-card.is-primary{color:#ffffff;background:linear-gradient(135deg,#0f766e,#2563eb);}.revenue-card.is-primary span,.revenue-card.is-primary small{color:rgba(255,255,255,0.76);}.month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}.month-card{padding:14px;}.month-title{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line);font-weight:900;}.month-row,.detail-row,.metric-pair{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;color:var(--ink-soft);}.month-row strong,.metric-pair strong{color:var(--ink);}.panel{overflow:hidden;}.panel-heading{padding:16px;border-bottom:1px solid var(--line);}.table-toolbar{margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;}.search-field,.field,.field-inline{min-width:0;display:flex;}.search-field{position:relative;flex:1;}.search-field>span{position:absolute;left:12px;top:50%;color:var(--muted);transform:translateY(-50%);}.field,.field-inline{flex-direction:column;gap:6px;}.field-inline{width:180px;}.field-full,.form-section,.monthly-table,.form-actions{grid-column:1 / -1;}input,select,textarea{width:100%;min-height:40px;padding:9px 11px;color:var(--ink);background:rgba(255,255,255,0.74);border:1px solid var(--line);border-radius:var(--radius);outline:0;transition:border-color 140ms ease,background-color 140ms ease,box-shadow 140ms ease;}.search-field input{padding-left:36px;}input:focus,select:focus,textarea:focus{border-color:rgba(20,184,166,0.62);background:#ffffff;box-shadow:0 0 0 3px rgba(20,184,166,0.12);}textarea{min-height:92px;resize:vertical;}.uppercase{text-transform:uppercase;}.table-scroll{width:100%;max-height:calc(100vh - 235px);overflow:auto;}.table-scroll.relaxed{max-height:none;}.data-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;text-align:left;}.data-table.compact{min-width:560px;}th,td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle;}th{position:sticky;top:0;z-index:4;color:var(--muted);background:rgba(248,250,252,0.96);font-size:0.72rem;font-weight:900;letter-spacing:0.05em;text-transform:uppercase;backdrop-filter:blur(12px);}tbody tr{transition:background-color 120ms ease;}tbody tr:hover{background:rgba(20,184,166,0.06);}.sticky-right{position:sticky;right:0;z-index:3;background:rgba(255,255,255,0.96);box-shadow:-12px 0 18px rgba(23,32,51,0.04);}th.sticky-right{z-index:5;background:rgba(248,250,252,0.98);}.cell-title{font-weight:900;}code{display:inline-flex;max-width:220px;margin-top:4px;padding:3px 6px;color:#0f766e;background:rgba(20,184,166,0.1);border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:0.78rem;}.badge{min-height:25px;display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:99px;font-size:0.75rem;font-weight:900;white-space:nowrap;}.badge-blue{color:#1d4ed8;background:rgba(37,99,235,0.12);}.badge-green{color:#15803d;background:rgba(22,163,74,0.12);}.badge-amber{color:#b45309;background:rgba(217,119,6,0.13);}.badge-muted{color:var(--ink-soft);background:rgba(23,32,51,0.08);}.row-actions,.page-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.table-action,.page-btn{min-height:32px;padding:6px 10px;color:var(--ink);background:rgba(255,255,255,0.72);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-weight:800;}.table-action:hover,.page-btn:hover:not(:disabled),.page-btn.is-active{color:#ffffff;background:var(--primary);border-color:var(--primary);}.page-btn:disabled{opacity:0.45;cursor:not-allowed;}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;}.page-info{color:var(--ink-soft);font-weight:700;}.mobile-cards{display:none;}.mobile-card{padding:14px;margin:10px;background:rgba(255,255,255,0.78);border:1px solid var(--line);border-radius:var(--radius);}.mobile-card h3,.mobile-card h4,.mobile-card p{margin:0 0 6px;}.mobile-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}.mobile-meta{margin-top:10px;}.month-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;}.month-pills span{display:inline-flex;align-items:center;gap:4px;color:var(--ink-soft);font-size:0.78rem;}.search-hero{display:flex;align-items:flex-end;gap:12px;padding:16px;margin-bottom:14px;}.hero-search{min-height:48px;}.search-results{display:grid;gap:10px;}.search-card{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;color:var(--ink);text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-soft);}.search-card strong,.search-card small{display:block;}.avatar{width:42px;height:42px;display:grid;place-items:center;color:#052e2b;background:linear-gradient(135deg,#99f6e4,#fef3c7);border-radius:50%;font-weight:900;}.avatar.large{width:58px;height:58px;font-size:1.3rem;}.detail-hero{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:14px;}.detail-hero div{flex:1;min-width:0;}.detail-hero h2,.detail-hero p{margin:0;}.detail-card{padding:14px;}.detail-card h3{margin:0 0 8px;font-size:0.92rem;}.detail-row{border-bottom:1px solid var(--line);}.detail-row:last-child{border-bottom:0;}.detail-row strong{min-width:0;text-align:right;word-break:break-word;}.view-back{margin-bottom:12px;}.detail-months{margin-top:14px;}.month-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;padding:14px;}.month-detail{min-height:126px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:12px;box-shadow:none;}.form-panel{max-width:920px;}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;}.form-section{padding-top:12px;border-top:1px solid var(--line);font-weight:900;}.form-actions{display:flex;justify-content:flex-end;}.monthly-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);}.modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;pointer-events:none;background:rgba(15,23,42,0.38);backdrop-filter:blur(7px);transition:opacity 160ms ease;}.modal-overlay.is-open{opacity:1;pointer-events:auto;}.modal{width:min(780px,100%);max-height:92vh;overflow:hidden;background:var(--panel-strong);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 24px 70px rgba(15,23,42,0.22);transform:translateY(8px);transition:transform 160ms ease;}.modal-overlay.is-open .modal{transform:translateY(0);}.modal form{max-height:92vh;display:flex;flex-direction:column;}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line);}.modal-header h2{margin:0;font-size:1.08rem;}.modal-body{flex:1;overflow:auto;}.modal-footer{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0;}.toast-wrap{position:fixed;right:16px;bottom:16px;z-index:3100;display:grid;gap:10px;}.toast{max-width:min(420px,calc(100vw - 32px));padding:12px 14px;color:#052e2b;background:#99f6e4;border:1px solid rgba(15,118,110,0.16);border-radius:var(--radius);box-shadow:var(--shadow);font-weight:800;transition:opacity 180ms ease,transform 180ms ease;}.toast.error{color:#ffffff;background:#e11d48;}.toast.success{color:#052e16;background:#bbf7d0;}.toast.info{color:#172033;background:#dbeafe;}.toast.is-leaving{opacity:0;transform:translateY(8px);}.empty-state{padding:34px 14px;color:var(--muted);text-align:center;}.skeleton-line{height:20px;width:100%;overflow:hidden;border-radius:6px;background:linear-gradient(90deg,rgba(23,32,51,0.06),rgba(23,32,51,0.12),rgba(23,32,51,0.06));background-size:220% 100%;animation:skeleton 1.1s linear infinite;}@keyframes skeleton{to{background-position-x:-220%;}}.is-hidden{display:none !important;}body.sidebar-mini .sidebar{width:var(--sidebar-mini);}body.sidebar-mini .main{width:calc(100% - var(--sidebar-mini));margin-left:var(--sidebar-mini);}body.sidebar-mini .brand{justify-content:center;padding-inline:12px;}body.sidebar-mini .brand-copy,body.sidebar-mini .nav-text,body.sidebar-mini .sidebar-summary{opacity:0;max-width:0;overflow:hidden;transform:translateX(-8px);pointer-events:none;}body.sidebar-mini .nav-label,body.sidebar-mini .sidebar-summary{display:none;}body.sidebar-mini .nav-item{justify-content:center;}body.sidebar-mini .nav-icon{margin:0;}.auth-page{min-height:100vh;}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px;}.auth-card{width:min(430px,100%);padding:24px;}.auth-brand{min-height:auto;padding:0;margin-bottom:22px;color:var(--ink);border:0;}.auth-brand .brand-title{color:var(--ink);}.auth-card h1{margin:0 0 6px;font-size:1.65rem;}.auth-card p{margin:0 0 20px;color:var(--ink-soft);}.auth-form{display:grid;gap:14px;}.form-message{min-height:22px;color:var(--ink-soft);font-weight:800;}.form-message.is-error{color:var(--rose);}.form-message.is-success{color:var(--green);}@media (max-width:1180px){.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:980px){.summary-row,.revenue-row{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:860px){.sidebar{width:min(88vw,312px);transform:translateX(-104%);}body.sidebar-open .sidebar{transform:translateX(0);}.main,body.sidebar-mini .main{width:100%;margin-left:0;}.topbar{align-items:flex-start;min-height:60px;padding:10px 12px;}.topbar-actions{gap:7px;}.hide-mobile,.user-chip{display:none;}.content{padding:12px;}.toolbar,.search-hero,.pagination,.modal-footer{align-items:stretch;flex-direction:column;}.field-inline{width:100%;}.stats-row,.summary-row,.revenue-row,.detail-grid,.form-grid{grid-template-columns:1fr;}#view-clients .data-table,#view-payments .data-table,#view-calendar .data-table{display:none;}#view-clients .mobile-cards,#view-payments .mobile-cards,#view-calendar .mobile-cards{display:block;}.table-scroll{max-height:none;}.mobile-card-head{flex-direction:column;}.search-card{grid-template-columns:auto minmax(0,1fr);}.search-card-end{grid-column:1 / -1;}}@media (max-width:520px){.topbar{gap:8px;}.topbar-title{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.btn{padding-inline:11px;}.modal-overlay{padding:10px;}.modal{max-height:96vh;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms !important;transition-duration:1ms !important;scroll-behavior:auto !important;}}