:root{--rail:#221A2C;--rail-2:#2E2439;--rail-line:#3B2F49;--rail-text:#C9BFD4;--rail-dim:#8A7D99;--bg:#F5F3F7;--surface:#FFFFFF;--surface-2:#FAF8FC;--surface-3:#F1EDF5;--line:#E4DEEB;--line-2:#D2C8DC;--text:#1E1826;--text-2:#645A72;--text-3:#948BA0;--brand:#B01B5C;--brand-ink:#7C0F40;--brand-soft:#FBE8F0;--brand-line:#F0C3D6;--teal:#0D717B;--teal-soft:#E0F1F2;--good:#15764B;--good-soft:#E3F3EB;--warn:#9C5D00;--warn-soft:#FAEFDA;--crit:#AE2419;--crit-soft:#FBE8E5;--shadow:0 1px 2px rgba(34,26,44,.06), 0 8px 24px -12px rgba(34,26,44,.18);--shadow-lg:0 24px 60px -24px rgba(34,26,44,.42);--r:8px;--r-lg:12px;--f-display:"Archivo","Helvetica Neue",Arial,sans-serif;--f-body:"Public Sans","Segoe UI",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--rail:#171220;--rail-2:#221B2E;--rail-line:#302640;--rail-text:#BDB2CB;--rail-dim:#7C7089;--bg:#100C16;--surface:#191322;--surface-2:#1F1829;--surface-3:#271F33;--line:#2C2438;--line-2:#3A3048;--text:#F0EAF6;--text-2:#A79CB6;--text-3:#7E7390;--brand:#EE5C93;--brand-ink:#FF8BB4;--brand-soft:#3B1428;--brand-line:#5B2440;--teal:#3FB3BC;--teal-soft:#123037;--good:#4CBB88;--good-soft:#123324;--warn:#DFA344;--warn-soft:#33260F;--crit:#F0776B;--crit-soft:#381916;--shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px -12px rgba(0,0,0,.7);--shadow-lg:0 24px 60px -24px rgba(0,0,0,.85)}}:root[data-theme=dark]{--rail:#171220;--rail-2:#221B2E;--rail-line:#302640;--rail-text:#BDB2CB;--rail-dim:#7C7089;--bg:#100C16;--surface:#191322;--surface-2:#1F1829;--surface-3:#271F33;--line:#2C2438;--line-2:#3A3048;--text:#F0EAF6;--text-2:#A79CB6;--text-3:#7E7390;--brand:#EE5C93;--brand-ink:#FF8BB4;--brand-soft:#3B1428;--brand-line:#5B2440;--teal:#3FB3BC;--teal-soft:#123037;--good:#4CBB88;--good-soft:#123324;--warn:#DFA344;--warn-soft:#33260F;--crit:#F0776B;--crit-soft:#381916;--shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px -12px rgba(0,0,0,.7);--shadow-lg:0 24px 60px -24px rgba(0,0,0,.85)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.015em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.rail{background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.brand{display:flex;gap:10px;align-items:center;padding:16px 16px 14px;border-bottom:1px solid var(--rail-line)}.brand-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(150deg,#e04680,#9c1350);display:grid;place-items:center;color:#fff;font-family:var(--f-display);font-weight:800;font-size:15px;flex:none;box-shadow:0 2px 10px #e0468059}.brand-name{font-family:var(--f-display);font-weight:700;font-size:13.5px;color:#fff;letter-spacing:-.01em;line-height:1.25}.brand-sub{font-size:10.5px;color:var(--rail-dim);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.nav{flex:1;overflow-y:auto;padding:12px 10px 20px}.nav-group{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--rail-dim);font-weight:700;padding:14px 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:7px;background:none;border:0;color:var(--rail-text);cursor:pointer;text-align:left;font-size:13.2px;font-weight:500;transition:background .13s,color .13s}.nav-item:hover{background:var(--rail-2);color:#fff}.nav-item[aria-current]{background:linear-gradient(90deg,#e0468038,#e046800f);color:#fff;font-weight:600;box-shadow:inset 2px 0 #e04680}.nav-item svg{flex:none;width:16px;height:16px;stroke-width:1.7}.nav-badge{margin-left:auto;font-family:var(--f-mono);font-size:10.5px;background:#8e1240;color:#fff;padding:1px 6px;border-radius:20px;font-weight:600}.rail-foot{border-top:1px solid var(--rail-line);padding:10px;display:flex;align-items:center;gap:7px}.avatar{width:30px;height:30px;border-radius:8px;background:var(--rail-2);border:1px solid var(--rail-line);display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;font-family:var(--f-display);flex:none}.rail-foot .who{font-size:12px;color:#fff;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-foot .role{font-size:10.5px;color:var(--rail-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{background:none;border:1px solid transparent;border-radius:7px;padding:5px;cursor:pointer;color:var(--rail-dim);display:grid;place-items:center}.icon-btn:hover{color:#fff;background:var(--rail-2)}.main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:0 22px;display:flex;align-items:center;gap:14px;height:58px}.tb-title{font-family:var(--f-display);font-weight:700;font-size:16px}.tb-crumb{font-size:11px;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.tb-spacer{flex:1}.search{display:flex;align-items:center;gap:7px;background:var(--surface-3);border:1px solid var(--line);border-radius:8px;padding:6px 10px;width:260px}.search input{background:none;border:0;outline:none;width:100%;font-size:13px}.content{padding:22px;max-width:1500px;width:100%;flex:1}.app-footer{margin-top:auto;border-top:1px solid var(--line);padding:14px 22px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-3);background:var(--surface)}.app-footer .dev-brand{color:var(--brand);font-weight:600;text-decoration:none}.app-footer .dev-brand:hover{text-decoration:underline}.rail-copy{padding:8px 12px 10px;font-size:10.5px;color:var(--rail-dim);text-align:center;line-height:1.4;border-top:1px solid var(--rail-line);background:#00000026;-webkit-user-select:none;user-select:none}.rail-copy a{color:var(--rail-text);font-weight:600;text-decoration:none;transition:color .13s}.rail-copy a:hover{color:#fff;text-decoration:underline}.login-brand-foot{font-size:11.5px;color:var(--rail-dim);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.login-brand-foot a{color:inherit;font-weight:600;text-decoration:none}.login-brand-foot a:hover{color:#fff;text-decoration:underline}.login-copy{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);text-align:center;font-size:11.5px;color:var(--text-3)}.login-copy a{color:var(--brand);font-weight:600;text-decoration:none}.login-copy a:hover{text-decoration:underline}.receipt-copy{margin-top:14px;padding-top:8px;border-top:1px dashed #D9D2E0;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#8a8096}.receipt-copy a{color:#4a4056;text-decoration:none}.receipt-copy a:hover{text-decoration:underline}@media (max-width:640px){.app-footer{flex-direction:column;gap:6px;text-align:center}}.btn{display:inline-flex;align-items:center;gap:7px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);padding:7px 13px;font-size:13px;font-weight:600;cursor:pointer;transition:.13s;font-family:var(--f-body)}.btn:hover{border-color:var(--text-3);background:var(--surface-2)}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-ink);border-color:var(--brand-ink)}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-sm{padding:4px 9px;font-size:12px;border-radius:6px}.btn:disabled{opacity:.45;cursor:not-allowed}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-head h3{font-size:14px;font-weight:700}.panel-head .sub{font-size:11.5px;color:var(--text-3)}.panel-body{padding:16px}.grid{display:grid;gap:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lbl{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);font-weight:700}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--text-2)}.tiny{font-size:11.5px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:11px;font-weight:600;color:var(--text-2)}.input,select.input,textarea.input{background:var(--surface);border:1px solid var(--line-2);border-radius:7px;padding:7px 10px;font-size:13px;outline:none;width:100%;transition:.13s}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input[readonly]{background:var(--surface-3);color:var(--text-2)}.input.invalid{border-color:var(--crit);background:var(--crit-soft)}.input.invalid:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 22%,transparent)}.err{display:block;font-size:11px;font-style:normal;color:var(--crit);font-weight:600;line-height:1.35}.hint{font-family:var(--f-mono);font-size:10px;color:var(--text-3);font-weight:600;margin-left:4px}.hint.ok{color:var(--good)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:2.5px 8px;border-radius:20px;letter-spacing:.01em;white-space:nowrap}.chip.paid{background:var(--good-soft);color:var(--good)}.chip.due{background:var(--warn-soft);color:var(--warn)}.chip.over{background:var(--crit-soft);color:var(--crit)}.chip.part{background:var(--teal-soft);color:var(--teal)}.chip.up{background:var(--surface-3);color:var(--text-3)}.chip.disc{background:var(--brand-soft);color:var(--brand)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}table{width:100%;border-collapse:collapse}.tbl-wrap{overflow-x:auto}th{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);font-weight:700;text-align:left;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface-2);position:sticky;top:0;white-space:nowrap}td{padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}.t-right{text-align:right}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 15px;display:flex;flex-direction:column;gap:6px}.kpi .k-lbl{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);font-weight:700}.kpi .k-val{font-family:var(--f-display);font-size:27px;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1.05}.kpi .k-foot{font-size:11.5px;color:var(--text-2);display:flex;align-items:center;gap:6px}.kpi.accent{background:linear-gradient(160deg,var(--brand-soft),var(--surface) 70%);border-color:var(--brand-line)}.kpi.accent .k-val{color:var(--brand-ink)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#140e1a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;display:flex;justify-content:flex-end}.drawer{background:var(--surface);width:min(680px,100%);height:100%;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .22s ease}.drawer.wide{width:min(940px,100%)}@keyframes slide{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.drawer-head{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--line);padding:15px 20px;display:flex;align-items:center;gap:12px;z-index:2}.drawer-body{padding:20px;flex:1}.drawer-foot{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:12px 20px;display:flex;gap:10px;align-items:center}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#140e1a80;z-index:90;display:grid;place-items:center;padding:20px}.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:88vh;overflow:auto}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--rail);color:#fff;padding:9px 16px;border-radius:9px;font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);animation:pop .2s ease}@keyframes pop{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.seg{display:inline-flex;background:var(--surface-3);border:1px solid var(--line);border-radius:8px;padding:2px;gap:2px}.seg button{border:0;background:none;padding:5px 11px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--text-2)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.chart-read{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:7px 12px;margin-bottom:10px}.chart-read b{color:var(--text)}.chart-read span{display:inline-flex;align-items:center;gap:6px}.chart-read i{width:9px;height:9px;border-radius:3px;display:inline-block}#colChart .cbar{transition:opacity .14s}#colChart .hitzone{cursor:crosshair}#colChart .hitzone:focus{outline:none}#colChart .hitzone:focus-visible{fill:var(--surface-3);fill-opacity:.5}.bar{height:6px;border-radius:4px;background:var(--surface-3);overflow:hidden}.bar>i{display:block;height:100%;background:var(--good);border-radius:4px}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.split>*{min-width:0}.hr{height:1px;background:var(--line);border:0;margin:16px 0}.stack{display:flex;flex-direction:column;gap:16px}.def{display:grid;grid-template-columns:118px 1fr;gap:6px 12px;font-size:13px}.def dt{color:var(--text-3);font-size:11.5px;font-weight:600;padding-top:1px}.def dd{margin:0;font-weight:500}.login{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--bg);overflow:auto}.login-brand{background:var(--rail);padding:46px 44px;display:flex;flex-direction:column;justify-content:center;gap:26px;background-image:radial-gradient(120% 90% at 0% 100%,rgba(224,70,128,.28),transparent 60%)}.login-brand h1{font-family:var(--f-display);font-weight:800;letter-spacing:-.03em}.login-stats{display:flex;gap:26px;flex-wrap:wrap;border-top:1px solid var(--rail-line);padding-top:20px}.login-stats div{display:flex;flex-direction:column}.login-stats b{color:#fff;font-size:21px;font-weight:700}.login-stats span{color:var(--rail-dim);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600}.login-form{display:grid;place-items:center;padding:34px 24px}.login-card{width:min(392px,100%)}.login-div{display:flex;align-items:center;gap:10px;margin:20px 0 12px;color:var(--text-3);font-size:11px;font-weight:600}.login-div:before,.login-div:after{content:"";height:1px;background:var(--line);flex:1}.role-grid{display:flex;flex-direction:column;gap:7px}.role-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 10px;cursor:pointer;transition:.13s;font-family:var(--f-body)}.role-card:hover{border-color:var(--brand);background:var(--brand-soft)}.role-card b{display:block;font-size:12.5px}.role-card em{display:block;font-style:normal;font-size:11px;color:var(--text-3)}.role-card .chip{margin-left:auto}.perm-yes{color:var(--good);font-weight:700}.perm-no{color:var(--text-3)}.brand-mark img,.logo-box img{max-width:100%;max-height:100%;object-fit:contain;display:block}.logo-box{display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid rgba(20,14,26,.1);padding:3px;flex:none}.dropzone{border:2px dashed var(--line-2);border-radius:var(--r-lg);padding:22px 18px;text-align:center;cursor:pointer;background:var(--surface-2);transition:.14s;display:flex;flex-direction:column;align-items:center;gap:8px}.dropzone:hover,.dropzone.over{border-color:var(--brand);background:var(--brand-soft)}.dropzone svg{color:var(--text-3)}.dropzone.over svg,.dropzone:hover svg{color:var(--brand)}.logo-previews{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}.logo-previews figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.logo-previews figcaption{font-size:10.5px;color:var(--text-3);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.on-rail{background:var(--rail);padding:8px;border-radius:10px;display:grid;place-items:center}.locked-note{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3);background:var(--surface-3);border:1px solid var(--line);border-radius:7px;padding:4px 9px;font-weight:600}@media (max-width:900px){.login{grid-template-columns:1fr}.login-brand{padding:30px 24px;gap:18px}.login-brand h1{font-size:24px}}.empty{padding:40px 20px;text-align:center;color:var(--text-3);font-size:13px}.stepdots{display:flex;gap:6px;align-items:center}.stepdots i{width:22px;height:3px;border-radius:2px;background:var(--line-2);display:block}.stepdots i.on{background:var(--brand)}.receipt{background:#fff;color:#1e1826;border:1px solid #D9D2E0;border-radius:10px;padding:22px}:root[data-theme=dark] .receipt,:root:not([data-theme=light]) .receipt{background:#fff;color:#1e1826}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .receipt{background:#fff;color:#1e1826}}.receipt .r-line{border-top:1px dashed #C7BED0;margin:12px 0}.nw,td .mono.tiny{white-space:nowrap}.tag{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--surface-3);color:var(--text-3)}@media (max-width:1080px){.split{grid-template-columns:1fr}}@media print{@page{size:auto;margin:8mm 10mm}html,body{background:#fff!important;color:#000!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.rail,.topbar,.app-footer,.no-print,.drawer-head,.drawer-foot,.search,.filters,.kpis,.toast-container{display:none!important}body.drawer-open .content>*:not(.drawer-bg),body.drawer-open .content>.stack>*:not(.drawer-bg),body.drawer-open .content>div:not(.drawer-bg){display:none!important}.app{display:block!important;grid-template-columns:1fr!important;margin:0!important;padding:0!important}.content{margin:0!important;padding:0!important;max-width:100%!important}.drawer-bg{position:static!important;background:transparent!important;padding:0!important;margin:0!important;overflow:visible!important;box-shadow:none!important}.drawer{width:100%!important;max-width:100%!important;box-shadow:none!important;border:none!important;background:transparent!important;padding:0!important;margin:0!important;position:static!important}.drawer-body{padding:0!important;margin:0!important;overflow:visible!important}.receipt{background:#fff!important;color:#1e1826!important;border:1.5px solid #2C1930!important;border-radius:8px!important;padding:16px 20px!important;box-shadow:none!important;page-break-inside:avoid!important;width:100%!important;max-width:800px!important;margin:0 auto!important}}*,*:before,*:after{box-sizing:border-box}body{margin:0}.spinner{width:20px;height:20px;border:2.5px solid var(--line-2);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-page{min-height:60vh;display:grid;place-items:center;gap:12px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.nav-item{font:inherit}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:640px){.grid-2{grid-template-columns:1fr}}a.nav-item,a.nav-item:hover{text-decoration:none}
