:root{--bg: #f5f6f8;--surface: #ffffff;--surface-2: #eef1f5;--line: #dde2ea;--text: #1b2230;--muted: #677386;--accent: #2f5d8a;--accent-soft: #e3ecf6;--ok: #15803d;--bad: #b91c1c;--rejected-bg: rgba(220, 60, 60, .1);--row-alt: rgba(120, 130, 150, .06);--row-hover: #e8eef6;--tag-bg: #eef1f5;--radius: 6px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #14181f;--surface: #1b2029;--surface-2: #232a35;--line: #2e3643;--text: #e3e8f0;--muted: #93a0b3;--accent: #8db4dc;--accent-soft: #24354a;--ok: #4ade80;--bad: #f87171;--rejected-bg: rgba(248, 113, 113, .12);--row-alt: rgba(255, 255, 255, .03);--row-hover: #243042;--tag-bg: #262e3a;color-scheme:dark}}:root[data-theme=dark]{--bg: #14181f;--surface: #1b2029;--surface-2: #232a35;--line: #2e3643;--text: #e3e8f0;--muted: #93a0b3;--accent: #8db4dc;--accent-soft: #24354a;--ok: #4ade80;--bad: #f87171;--rejected-bg: rgba(248, 113, 113, .12);--row-alt: rgba(255, 255, 255, .03);--row-hover: #243042;--tag-bg: #262e3a;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 IBM Plex Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.splash{min-height:100vh;display:grid;place-content:center;gap:12px;color:var(--muted);text-align:center}.muted{color:var(--muted)}.pad{padding:16px}.error{color:var(--bad)}button,.button{background:var(--accent);color:#fff;border:0;border-radius:var(--radius);padding:6px 12px;cursor:pointer;text-decoration:none;white-space:nowrap}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--accent);padding:0}button.ghost{background:var(--surface-2);color:var(--text);padding:5px 10px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(360px,100%);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:28px;display:grid;gap:10px}.login-card h1{margin:0 0 6px;font-size:20px;letter-spacing:.02em}.login-card label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.login-card input{padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.login-card p{margin:0}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 16px;min-height:44px}.menu{display:flex;gap:2px;flex-wrap:wrap;flex:1}.menu a{padding:12px 10px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.menu a:hover{color:var(--text)}.menu a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.menu a.external:after{content:" ↗";font-size:10px;opacity:.6}.user{display:flex;gap:12px;align-items:center;color:var(--muted);white-space:nowrap}.content{padding:12px 16px;flex:1;min-width:0}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.tabs{display:flex;background:var(--surface-2);border-radius:var(--radius);padding:2px}.tab{background:none;color:var(--muted);padding:5px 12px}.tab.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #00000014}.period{display:flex;gap:6px;align-items:center;color:var(--muted)}.period select,.search{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:5px 8px}.search{flex:1;min-width:200px;max-width:420px}.count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;max-height:calc(100vh - 120px)}.grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.grid th,.grid td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.grid th{position:sticky;top:0;background:var(--surface-2);z-index:1;font-weight:600;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.grid tbody tr:nth-child(2n) td{background:var(--row-alt)}.grid tbody tr:hover td{background:var(--row-hover)}.grid tbody tr.is-rejected td{background:var(--rejected-bg)}.grid .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.grid .center{text-align:center}.grid .nowrap{white-space:nowrap}.grid .strong{font-weight:600}.grid .notes{min-width:220px;max-width:380px;white-space:pre-wrap}.grid .actions{display:flex;gap:10px}.tag{display:inline-block;background:var(--tag-bg);border-radius:4px;padding:0 6px;white-space:nowrap}.tag.status{background:var(--accent-soft)}.rejected{color:var(--bad);font-weight:600;font-size:11px}.mark{font-weight:700}.mark.yes{color:var(--ok)}.mark.no{color:var(--bad)}.mark.none{color:var(--muted);font-weight:400}.flags{font-weight:600}.flags.done{color:var(--ok)}.flags.open{color:var(--bad)}@media (max-width: 640px){.topbar{flex-wrap:wrap;padding:0 8px}.content{padding:8px}.count{margin-left:0}}.toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:50;max-width:min(420px,calc(100vw - 32px))}.toast{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:10px 12px;display:grid;gap:2px;cursor:pointer;box-shadow:0 4px 16px #0000001f}.toast span{color:var(--muted);word-break:break-word}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--bad)}.toast.warning{border-left-color:#d97706}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f141e73;display:grid;place-items:center;z-index:40;padding:16px}.modal{background:var(--surface);border-radius:10px;width:min(520px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 12px 40px #00000040}.modal.wide{width:min(980px,100%)}.modal header,.modal footer{display:flex;align-items:center;gap:8px;padding:12px 16px}.modal header{border-bottom:1px solid var(--line);justify-content:space-between}.modal header h2{margin:0;font-size:15px}.modal footer{border-top:1px solid var(--line);justify-content:flex-end}.modal-body{padding:14px 16px;overflow:auto;display:grid;gap:10px}.field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.field.inline{display:flex;align-items:center;gap:8px}.field select,.field .search-select{font-size:14px}.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.pair .field{min-width:0}.pair .field input{width:100%;box-sizing:border-box;min-width:0}.subform{border:1px dashed var(--line);border-radius:8px;padding:8px 10px 10px;margin:0}.subform legend{font-size:12px;color:var(--muted);padding:0 4px}.search-select-menu button.custom{color:var(--accent);font-weight:600}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;width:max-content}.seg button{background:var(--surface);color:var(--text);border-radius:0;padding:5px 12px}.seg button.active{background:var(--accent);color:#fff}button.ghost.danger{color:var(--bad)}.toolbar.writeoff{margin-top:10px}.field input,.field textarea{font-size:13px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:6px 8px}.dropdown{position:relative}.dropdown summary{list-style:none;cursor:pointer;background:var(--surface-2);border-radius:var(--radius);padding:5px 10px}.dropdown summary::-webkit-details-marker{display:none}.dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:6px;display:grid;gap:2px;min-width:200px;box-shadow:0 6px 20px #0000001f}.dropdown-menu label{display:flex;gap:6px;align-items:center;padding:3px 4px;cursor:pointer}.rates b{color:var(--text);font-weight:600}.period input[type=date]{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:4px 6px}.cell-edit{border:1px solid transparent;background:transparent;border-radius:4px;padding:2px 4px;font-size:13px}.cell-edit:hover,.cell-edit:focus{border-color:var(--line);background:var(--surface)}.cell-edit.changed{background:#fff6d6;border-color:#e6c35c;color:#1b2230}.grid td.num .cell-edit{text-align:right}.expo-name{position:relative;min-width:260px;max-width:420px}.expo-name .sub{color:var(--muted);font-size:12px}.expo-name .thumb-pop{display:none;position:absolute;left:100%;top:0;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:4px;box-shadow:0 8px 24px #0000002e}.expo-name:hover .thumb-pop{display:block}.expo-name .thumb-pop img{display:block;max-width:320px;max-height:320px;border-radius:4px}.grid .wrap{min-width:140px;max-width:240px;white-space:normal}.block{margin-top:20px}.block h3{margin:0;font-size:14px}.grid tbody tr.selected td{background:var(--accent-soft)}.table-wrap.resizable{height:calc(100vh - 185px);max-height:none;min-height:160px;border-bottom-left-radius:0;border-bottom-right-radius:0}.resize-handle{height:12px;cursor:ns-resize;display:grid;place-items:center;touch-action:none;background:var(--surface-2);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius)}.resize-handle span{width:44px;height:4px;border-radius:2px;background:var(--muted);opacity:.5}.resize-handle:hover span{opacity:1;background:var(--accent)}.grid .row-actions{position:sticky;right:0;z-index:1;white-space:nowrap;text-align:right;padding:2px 6px;box-shadow:-6px 0 6px -6px #0000002e}.grid td.row-actions{background:var(--surface)}.grid thead th.row-actions{z-index:3;background:var(--surface-2)}.grid tbody tr:nth-child(2n) td.row-actions{background:color-mix(in srgb,var(--surface) 94%,var(--muted))}.grid tbody tr:hover td.row-actions{background:var(--row-hover)}.grid tbody tr.is-rejected td.row-actions{background:color-mix(in srgb,var(--surface) 88%,var(--bad))}.grid tbody tr.selected td.row-actions{background:var(--accent-soft)}.row-action{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:5px;color:var(--muted);background:none;padding:0;vertical-align:middle}.row-action:hover{color:var(--accent);background:var(--accent-soft)}.card{display:grid;gap:10px}.card-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 20px}.card-head .back{text-decoration:none;color:var(--muted);padding-top:4px;white-space:nowrap}.card-title{flex:1;min-width:220px;display:grid;gap:4px}.card-title h1{margin:0;font-size:22px;letter-spacing:.01em}.chips{display:flex;flex-wrap:wrap;gap:6px}.card-actions{display:flex;gap:8px;align-items:center}.tabs.scroll{overflow-x:auto;max-width:100%;scrollbar-width:none;justify-self:start}.tabs.scroll .tab{white-space:nowrap}.card-body{display:grid;gap:14px}.card-body h3{margin:6px 0 0;font-size:14px}.summary,.stats{display:flex;flex-wrap:wrap;gap:10px}.summary>div,.stats>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;display:grid;gap:2px;min-width:150px}.summary b,.stats b{font-size:16px;font-variant-numeric:tabular-nums}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.field-view{background:var(--surface);padding:8px 12px;display:grid;gap:2px;min-width:0;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)}.field-view.wide{grid-column:1 / -1}.field-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field-value{overflow-wrap:anywhere}.pre{white-space:pre-wrap}.balance-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;display:grid;gap:4px;max-width:420px}.balance-box h3{margin:0 0 4px}.balance-box>div{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.balance-box .total{border-top:1px solid var(--line);padding-top:6px;margin-top:2px;flex-wrap:wrap}.flag-list{display:flex;flex-wrap:wrap;gap:6px}.tag.ok{background:color-mix(in srgb,var(--ok) 16%,var(--surface))}.debt{color:var(--bad)}@media (max-width: 640px){.menu{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.menu a{padding:12px 8px;white-space:nowrap}.user span{display:none}.toolbar{gap:6px}.search{min-width:0;flex-basis:100%;max-width:none}.card-title h1{font-size:19px}.fields{grid-template-columns:1fr 1fr}.field-view{padding:6px 8px}.summary>div,.stats>div{min-width:0;flex:1 1 42%}.table-wrap.resizable{height:calc(100vh - 230px)}.modal-back{padding:0;align-items:end}.modal{width:100%;max-height:92vh;border-radius:12px 12px 0 0}}.grid.cols th{position:sticky;top:0;overflow:hidden;text-overflow:ellipsis}.grid.cols td{overflow:hidden;text-overflow:ellipsis}.grid.cols td.wrap,.grid.cols td.notes,.grid.cols td.expo-name{max-width:none;overflow-wrap:anywhere}.col-resizer{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;z-index:2;touch-action:none}.col-resizer:hover,.col-resizer:active{background:color-mix(in srgb,var(--accent) 35%,transparent)}.grid .sticky-key{position:sticky;left:0;z-index:1;box-shadow:6px 0 6px -6px #0000002e}.grid td.sticky-key{background:var(--surface)}.grid thead th.sticky-key{z-index:4;background:var(--surface-2)}.grid tbody tr:nth-child(2n) td.sticky-key{background:color-mix(in srgb,var(--surface) 94%,var(--muted))}.grid tbody tr:hover td.sticky-key{background:var(--row-hover)}.grid tbody tr.is-rejected td.sticky-key{background:color-mix(in srgb,var(--surface) 88%,var(--bad))}.grid tbody tr.selected td.sticky-key{background:var(--accent-soft)}.grid.cols .expo-name .thumb-pop{position:fixed;left:auto;top:auto;margin:-8px 0 0 12px}@media (max-width: 640px){.grid .sticky-key.sticky-desk{position:static;box-shadow:none}}.grid.cols thead th{white-space:normal;vertical-align:bottom;line-height:1.25}.th-label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0f141e61;display:flex;justify-content:flex-end;animation:fade .12s ease-out}.drawer{width:min(1240px,96vw);height:100%;overflow:auto;background:var(--bg);padding:14px 18px 24px;box-shadow:-12px 0 40px #00000040;animation:slide .16s ease-out}.drawer .table-wrap.resizable{height:auto;max-height:calc(100vh - 230px);min-height:0}.card-actions .close{font-size:15px;padding:5px 11px}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translate(24px);opacity:.6}}@media (prefers-reduced-motion: reduce){.drawer-back,.drawer{animation:none}}@media (max-width: 640px){.drawer{width:100vw;padding:10px 10px 20px;box-shadow:none}}.card,.card-body{grid-template-columns:minmax(0,1fr);min-width:0}.drawer{overflow-x:hidden}.content{min-width:0}.search-select{position:relative}.search-select input{width:100%;padding-right:26px}.search-select .clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;color:var(--muted);padding:2px 6px}.search-select-menu{position:absolute;z-index:15;left:0;right:0;top:calc(100% + 2px);max-height:280px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #00000024;display:grid}.search-select-menu button{background:none;color:var(--text);text-align:left;border-radius:0;padding:6px 10px;white-space:normal}.search-select-menu button:hover,.search-select-menu button.active{background:var(--accent-soft)}.edit-fields .field-view input,.edit-fields .field-view select,.edit-fields .field-view textarea{font:inherit;color:var(--text);border:1px solid var(--line);border-radius:5px;background:var(--bg);padding:5px 7px;width:100%;min-width:0}.edit-fields .field-view input[type=checkbox]{width:auto}.edit-fields .field-view .row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.edit-fields .field-view .row input{flex:1 1 70px}.edit-fields .field-view.changed{background:#fffbea}:root[data-theme=dark] .edit-fields .field-view.changed{background:#3a3420}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .edit-fields .field-view.changed{background:#3a3420}}.edit-bar{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;box-shadow:0 -6px 16px #00000014}.edit-bar .spacer{flex:1}.checks{display:flex;flex-wrap:wrap;gap:4px 12px}.checks label{display:flex;gap:5px;align-items:center;white-space:nowrap}.button.ghost-link{background:var(--surface-2);color:var(--text)}.fields.lgrid{grid-template-columns:repeat(4,minmax(0,1fr))}.litem{position:relative;min-width:0;display:grid}.litem>.field-view{height:100%}.litem.s1{grid-column:span 1}.litem.s2{grid-column:span 2}.litem.s3{grid-column:span 3}.litem.s4{grid-column:span 4}.fields.lgrid.editing .litem{outline:1px dashed var(--accent);outline-offset:-3px;cursor:grab}.fields.lgrid.editing .litem.dragging{opacity:.4}.lcontrols{position:absolute;top:3px;right:3px;display:flex;gap:2px;align-items:center;z-index:2;background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 3px}.lcontrols button{background:none;color:var(--muted);padding:0 5px;font-size:12px;border-radius:3px}.lcontrols button.on{background:var(--accent);color:#fff}.lgrip{color:var(--muted);cursor:grab;padding:0 2px}.layout-bar{display:inline-flex;gap:8px;align-items:center}@media (max-width: 900px){.fields.lgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.litem.s3,.litem.s4{grid-column:span 2}}@media (max-width: 640px){.litem.s2{grid-column:span 2}.litem.s1{grid-column:span 1}}.fields.lgrid.editing .litem{touch-action:none;-webkit-user-select:none;user-select:none}.fields.lgrid.editing .litem.over{outline:2px solid var(--accent);background:var(--accent-soft)}.fields.lgrid.editing .litem>.field-view{pointer-events:none}.fields.lgrid.editing .litem.over-before{box-shadow:inset 4px 0 0 var(--accent);background:var(--accent-soft)}.fields.lgrid.editing .litem.over-after{box-shadow:inset -4px 0 0 var(--accent);background:var(--accent-soft)}.notice{background:var(--surface-2);border-radius:var(--radius);padding:8px 12px;display:grid;gap:4px;font-size:13px}.notice p{margin:0}.notice button{justify-self:start;margin-top:4px}.message-box{display:grid;gap:8px;margin-top:14px;max-width:640px}.message-box button{justify-self:start}.archive-hint{margin:10px 0;background:var(--ok);color:#fff}.page-title{margin:0;font-size:16px}.cell-input{width:100%;box-sizing:border-box;min-width:60px;border:1px solid transparent;background:transparent;color:var(--text);padding:3px 4px;border-radius:4px;font:inherit}.cell-input:hover,.cell-input:focus{border-color:var(--line);background:var(--bg)}.grid td.cell-changed{background:color-mix(in srgb,var(--surface) 80%,var(--accent))!important}.savebar{background:var(--accent-soft);padding:6px 10px;border-radius:var(--radius)}.add-row{margin-top:8px}.add-row input{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:6px 8px}.pii-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);flex-shrink:0;min-height:max-content}.pii-row{display:grid;grid-template-columns:minmax(140px,220px) 1fr auto;gap:10px;align-items:center;background:var(--surface);padding:6px 10px}.pii-value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.pii-actions{display:flex;gap:4px}.tg-log{display:grid;gap:6px;max-height:260px;overflow:auto}.tg-msg{display:grid;gap:2px;padding:6px 10px;border-radius:var(--radius);background:var(--surface-2);max-width:80%}.tg-msg.out{justify-self:end;background:var(--accent-soft)}.warn{color:#b45309}.ok-text{color:var(--ok)}@media (max-width: 600px){.pii-row{grid-template-columns:1fr auto}.pii-row .field-label{grid-column:1 / -1}}.report{margin-top:20px}.report .summary>div{display:grid;gap:2px}
