:root{font-family:"DM Sans",Inter,system-ui,sans-serif;color:#20233b;background:#f7f8fc;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#20233b;--muted:#7d829b;--line:#e9eaf2;--purple:#6553e8;--purple-2:#f0edff;--green:#13865b;--green-bg:#e8f7ef;--amber:#a86a06;--amber-bg:#fff4db;--red:#be4551;--red-bg:#fff0f1;--panel:#fff;--shadow:0 8px 28px rgba(27,32,75,.045)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:27px 16px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;color:#292844;text-decoration:none;font:800 19px Manrope,sans-serif;letter-spacing:-.6px;padding:0 9px}.brand-mark{width:29px;height:29px;border-radius:9px;background:linear-gradient(145deg,#7867f2,#5747d8);color:#fff;display:grid;place-items:center;font:800 16px Manrope;box-shadow:0 5px 12px #6553e83b}.workspace-label{font-size:10px;letter-spacing:1.15px;color:#a0a3b5;font-weight:700;margin:47px 10px 12px}.primary-nav{display:grid;gap:5px}.nav-item{height:43px;border:0;border-radius:9px;text-align:left;background:transparent;color:#71758b;padding:0 12px;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;transition:.15s}.nav-item:hover{background:#f7f6fc;color:var(--ink)}.nav-item.active{background:var(--purple-2);color:#5545d1}.nav-icon{width:17px;text-align:center;font-size:17px;font-weight:500}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:17px 9px 0;color:#8b90a4;font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:99px;background:#3da978;flex:none}.main-area{min-width:0}.topbar{height:69px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4.5vw,68px);gap:16px}.crumb{display:flex;gap:10px;align-items:center;color:#9a9db0;font-size:12px}.crumb strong{color:#3b3e54;font-weight:600}.crumb-sep{color:#d2d3de}.topbar-actions{display:flex;align-items:center;gap:18px}.admin-badge{display:inline-flex;align-items:center;gap:8px;color:#555b72;font-size:11px;font-weight:600;border:1px solid var(--line);border-radius:20px;padding:7px 10px;max-width:250px;overflow:hidden}.admin-badge span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exit-link{font-size:11px;color:#777b91;text-decoration:none}.exit-link:hover{color:var(--purple)}.content-wrap{max-width:1450px;padding:39px clamp(22px,4.5vw,68px) 70px;margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{display:block;font-size:9px;letter-spacing:1.15px;font-weight:700;color:#989bb0;margin-bottom:8px}.page-heading h1,.gate-card h1{font:700 29px/1.15 Manrope,sans-serif;letter-spacing:-.8px;color:#242640;margin:0}.page-heading p,.gate-card p{margin:8px 0 0;color:#8b8fa3;font-size:12px}.button{border:1px solid transparent;border-radius:8px;min-height:37px;padding:0 15px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,transform .15s;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.button:active{transform:translateY(1px)}.button-primary{background:var(--purple);color:white;box-shadow:0 4px 10px #6553e826}.button-primary:hover{background:#5645db}.button-quiet{background:#fff;color:#666b82;border-color:#e4e5ef}.button-quiet:hover{background:#fafaff;border-color:#d5d2f1;color:#5748d8}.button-danger{background:#c5505b;color:#fff}.button-danger:hover{background:#a83d48}.button-small{min-height:30px;padding:0 10px;font-size:10px}.button-full{width:100%;margin-top:7px}.filter-bar{display:flex;align-items:flex-end;gap:12px;padding:14px 15px;background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:20px;box-shadow:var(--shadow)}.filter-bar label,.month-range label{display:grid;gap:5px;color:#81869a;font-size:10px;font-weight:600}.filter-bar input,.filter-bar select,.month-range input{height:34px;min-width:125px;border:1px solid #e6e7ef;background:#fff;border-radius:7px;color:#3c4057;padding:0 9px;font-size:11px;outline:none}.filter-bar input:focus,.filter-bar select:focus,input:focus,select:focus,textarea:focus{border-color:#958ae9;box-shadow:0 0 0 3px #6553e814;outline:none}.customer-filters .search-field{display:flex;align-items:center;gap:8px;border:1px solid #e6e7ef;border-radius:7px;min-width:250px;padding:0 10px;color:#9a9db0}.search-field input{border:0;box-shadow:none!important;min-width:0;width:100%;padding:0}.search-field span{font-size:20px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi-card,.skeleton-card{min-height:126px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow);padding:18px 19px}.kpi-card{position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;width:75px;height:75px;border-radius:50%;background:#f1efff;right:-20px;top:-22px}.kpi-label{display:flex;align-items:center;gap:8px;color:#858aa0;font-size:10px;font-weight:600;position:relative;z-index:1}.kpi-icon{width:25px;height:25px;border-radius:7px;background:#f1efff;color:#6654df;display:grid;place-items:center;font-size:14px}.kpi-value{font:700 25px Manrope,sans-serif;letter-spacing:-.8px;margin-top:14px;color:#292b44;position:relative;z-index:1}.kpi-foot{margin-top:4px;color:#a1a4b3;font-size:9px}.skeleton-card{background:linear-gradient(100deg,#fff 20%,#f7f7fb 45%,#fff 70%);background-size:200% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position:-200% 0}}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.overview-detail{padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid #eff0f5}.panel-head h2{margin:0;color:#32354d;font:700 14px Manrope,sans-serif;letter-spacing:-.2px}.panel-head p{margin:5px 0 0;color:#9498aa;font-size:10px}.panel-icon{width:31px;height:31px;background:#f1efff;color:#6553e8;display:grid;place-items:center;border-radius:9px}.overview-detail .panel-head{padding:0 0 15px;border:0}.overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-item{border-top:1px solid #eff0f5;padding:15px 0 0}.metric-item span{display:block;color:#9397a9;font-size:10px}.metric-item strong{display:block;color:#464960;font-size:13px;margin-top:6px}.table-panel{overflow:hidden;margin-bottom:18px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:710px}th{background:#fbfbfd;color:#989bad;font-size:9px;text-transform:uppercase;letter-spacing:.45px;text-align:left;font-weight:700;padding:12px 15px;border-bottom:1px solid #eff0f5;white-space:nowrap}td{padding:13px 15px;border-bottom:1px solid #f0f1f6;color:#62677d;font-size:11px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}.customer-name{color:#34374f;font-weight:700;font-size:11px}.subtext{display:block;color:#a0a3b2;font-size:9px;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:700;white-space:nowrap}.badge-green{color:var(--green);background:var(--green-bg)}.badge-amber{color:var(--amber);background:var(--amber-bg)}.badge-red{color:var(--red);background:var(--red-bg)}.badge-neutral{color:#6b6f86;background:#f0f1f5}.badge-purple{color:#5849d0;background:#f0edff}.row-action{border:0;background:transparent;color:#6553e8;font-size:10px;font-weight:700;padding:6px}.row-action:hover{text-decoration:underline}.row-action.danger{color:#bb4b57}.table-state{padding:35px 15px!important;text-align:center!important;color:#a1a4b3!important;font-size:11px!important}.table-footer{height:53px;padding:0 15px;border-top:1px solid #eff0f5;display:flex;align-items:center;justify-content:space-between;color:#9699aa;font-size:10px}.pagination{display:flex;gap:7px}.notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:9px;margin-bottom:15px;font-size:11px}.notice p{margin:0;color:#7e8198;line-height:1.55}.notice-info{background:#f1f0ff;border:1px solid #e6e2ff;color:#6958d9}.commission-panel{margin-top:20px}.legend{display:flex;gap:7px;align-items:center;color:#898da1;font-size:9px;white-space:nowrap}.amber-dot{background:#efa82c}.green-dot{background:#35a875}.cost-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.55fr);gap:17px;align-items:start}.cost-form{padding-bottom:18px}.cost-form>.panel-head{margin:-1px -1px 17px}.cost-form>label,.cost-form .form-row{margin:0 18px 13px}.cost-form label{display:grid;gap:6px;color:#7c8195;font-size:10px;font-weight:600}.cost-form input,.cost-form select,.cost-form textarea,.dialog-fields input,.dialog-fields select,.dialog-fields textarea{width:100%;border:1px solid #e6e7ef;background:#fff;border-radius:7px;color:#42465c;padding:9px 10px;font-size:11px;outline:none}.cost-form input,.cost-form select{height:36px;padding-top:0;padding-bottom:0}.cost-form textarea,.dialog-fields textarea{resize:vertical;min-height:62px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.cost-form .button-full{width:calc(100% - 36px);margin:4px 18px 0}.costs-list-panel{overflow:hidden}.month-range{display:flex;align-items:flex-end;gap:8px}.month-range input{min-width:112px;height:30px}.month-range label{font-size:9px}.cost-item{padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #f0f1f6}.cost-item:last-child{border:0}.cost-title{font-size:11px;color:#45495f;font-weight:700}.cost-detail{font-size:9px;color:#9b9eae;margin-top:4px}.cost-amount{font-size:12px;color:#35384d;font-weight:700;white-space:nowrap}.costs-total{border-top:1px solid var(--line);background:#fafaff;padding:13px 18px;display:flex;justify-content:space-between;color:#666b82;font-size:10px}.costs-total strong{color:#3c4058;font-size:12px}.drawer-backdrop{position:fixed;inset:0;background:#22233c66;z-index:10;display:flex;justify-content:flex-end}.customer-drawer{height:100%;width:min(480px,100%);background:#fafbfe;box-shadow:-12px 0 40px #1718321a;display:flex;flex-direction:column;animation:slide-in .18s ease-out}@keyframes slide-in{from{transform:translateX(20px);opacity:.7}to{transform:translateX(0);opacity:1}}.drawer-head{padding:22px 22px 17px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.drawer-head .eyebrow{margin-bottom:5px}.drawer-head h2{font:700 18px Manrope;margin:0;color:#30334a}.icon-button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#767a8f;font-size:21px;line-height:1}.drawer-content{padding:19px 22px;overflow:auto;flex:1}.detail-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:15px;margin-bottom:12px}.detail-card h3{margin:0 0 12px;font:700 11px Manrope;color:#4c5067}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.detail-field span{display:block;color:#9a9dae;font-size:9px}.detail-field strong{display:block;color:#45495f;font-size:11px;margin-top:5px;word-break:break-word}.drawer-actions{padding:15px 20px;border-top:1px solid var(--line);background:#fff;display:flex;flex-wrap:wrap;gap:8px}.drawer-actions .button{flex:1;min-width:120px}.action-dialog{border:1px solid var(--line);padding:0;border-radius:14px;width:min(420px,calc(100% - 28px));box-shadow:0 25px 90px #17183233;color:var(--ink)}.action-dialog::backdrop{background:#22233c73;backdrop-filter:blur(2px)}.action-dialog form{padding:24px}.dialog-mark{height:38px;width:38px;border-radius:11px;background:#f1efff;color:#6653e8;display:grid;place-items:center;font-weight:800;margin-bottom:13px}.dialog-mark.danger{background:var(--red-bg);color:var(--red)}.action-dialog h2{font:700 18px Manrope;margin:0;color:#30334a}.action-dialog p{font-size:11px;line-height:1.55;color:#83879b;margin:8px 0 17px}.dialog-fields{display:grid;gap:11px}.dialog-fields label{display:grid;gap:5px;color:#7c8195;font-size:10px;font-weight:600}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:21px}.global-alert{padding:12px 14px;border-radius:9px;margin-bottom:17px;font-size:11px;line-height:1.5}.global-alert.error{background:#fff0f1;border:1px solid #ffdbdf;color:#aa3c49}.global-alert.success{background:#e8f7ef;border:1px solid #cfefdd;color:#287b59}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:20;padding:11px 17px;border-radius:9px;background:#292b43;color:white;box-shadow:0 8px 25px #20233b33;font-size:11px;max-width:min(500px,calc(100% - 30px))}.login-gate{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(ellipse at top,#efedff 0,transparent 47%),#f8f9fc}.login-gate>.brand{position:absolute;top:28px;left:32px}.gate-card{width:min(440px,100%);background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:15px;padding:31px}.gate-card p{line-height:1.7;margin:12px 0 23px}.gate-card .eyebrow{color:#6d5ce1}.gate-card .button{height:42px;width:100%}
@media(max-width:1000px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.content-wrap{padding-left:26px;padding-right:26px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-layout{grid-template-columns:1fr}.cost-form{max-width:none}.cost-form .form-row{max-width:none}}
@media(max-width:700px){.app-shell{display:block}.sidebar{position:sticky;z-index:5;top:0;height:auto;padding:10px 13px;border-right:0;border-bottom:1px solid var(--line);display:flex;flex-direction:row;align-items:center;gap:12px}.brand{font-size:16px;gap:7px;padding:0}.brand-mark{width:26px;height:26px}.workspace-label,.sidebar-foot{display:none}.primary-nav{display:flex;gap:3px;margin-left:auto;overflow:auto}.nav-item{height:34px;padding:0 9px;font-size:0;gap:0;white-space:nowrap}.nav-icon{font-size:16px;width:20px}.topbar{height:54px;padding:0 17px}.topbar-actions{gap:9px}.admin-badge{max-width:150px;font-size:9px;padding:6px 8px}.exit-link{font-size:0}.exit-link:first-letter{font-size:15px}.content-wrap{padding:27px 16px 55px}.page-heading{align-items:flex-start;margin-bottom:18px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px;max-width:250px}.page-heading>.button{min-height:32px;padding:0 9px;font-size:9px}.filter-bar{flex-wrap:wrap;gap:9px}.filter-bar label{flex:1}.filter-bar input,.filter-bar select{width:100%;min-width:0}.overview-filters .button,.customer-filters>.button{flex:1}.customer-filters .search-field{min-width:100%;flex:auto;height:35px}.customer-filters .search-field input{height:31px}.kpi-grid{gap:9px}.kpi-card,.skeleton-card{min-height:111px;padding:13px}.kpi-value{font-size:21px}.kpi-label{font-size:9px}.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.overview-detail{padding:15px}.panel-head{padding:14px}.panel-head h2{font-size:13px}.panel-head p{font-size:9px}.table-footer{padding:0 10px}.pagination{gap:4px}.button-small{padding:0 7px;font-size:9px}.cost-layout{gap:12px}.month-range{flex-wrap:wrap;justify-content:flex-end}.month-range label{min-width:80px}.month-range input{min-width:0;width:100%}.month-range .button{height:30px}.costs-list-panel .panel-head{align-items:flex-start;flex-wrap:wrap}.legend{margin-left:auto}.form-row{grid-template-columns:1fr}.drawer-head{padding:17px}.drawer-content{padding:15px 17px}.drawer-actions{padding:12px}.drawer-actions .button{min-width:calc(50% - 5px)}.dialog-fields .form-row{display:grid}}
@media(max-width:390px){.nav-item{padding:0 6px}.nav-icon{width:18px}.topbar{padding:0 12px}.content-wrap{padding-left:12px;padding-right:12px}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-card{padding:11px}.admin-badge{max-width:120px}.overview-filters label{min-width:90px}}
.detail-list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #f0f1f6;color:#4a4e64;font-size:10px}.detail-list-row:first-of-type{border-top:0}.detail-list-row strong{font-size:10px}.detail-list-row small{display:block;color:#989bac;font-size:9px;line-height:1.5;margin-top:3px}.picker-results{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:8px}.picker-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:0;border-bottom:1px solid #f0f1f6;background:#fff;text-align:left;color:#6553e8;font-size:10px}.picker-result:last-child{border-bottom:0}.picker-result:hover,.picker-result.selected{background:#f4f2ff}.picker-result strong{display:block;color:#40445a;font-size:10px}.picker-result small{display:block;color:#999cad;margin-top:4px;font-size:9px}.picker-result>span:last-child{white-space:nowrap;font-weight:700}
/* Customer card opens as a centered modal dialog. */
.drawer-backdrop{display:flex;align-items:center;justify-content:center;padding:24px;background:#22233c73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.drawer-backdrop .customer-drawer{width:min(760px,100%);height:min(780px,calc(100vh - 48px));border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 90px #17183233;animation:customer-modal-in .18s ease-out}
@keyframes customer-modal-in{from{transform:translateY(8px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@media(max-width:700px){.drawer-backdrop{padding:12px}.drawer-backdrop .customer-drawer{height:min(88dvh,820px);width:100%;border-radius:13px}}
.action-dialog[open]{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 32px);overflow-y:auto}
