: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 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)}
