.hub-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:4rem 1rem;background:#0f172a;color:#f8fafc;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.hub-auth-card{width:100%;max-width:32rem;padding:2.5rem;border-radius:1rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;box-shadow:0 20px 60px #00000059}.hub-auth-eyebrow{margin:0 0 .5rem;font-size:.6875rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:#0e9488}.hub-auth-title{margin:0;font-size:1.75rem;line-height:1.2;font-weight:800}.hub-auth-body{margin:.75rem 0 0;font-size:.875rem;color:#f8fafcb3}.hub-auth-note{margin-top:1.5rem;padding:1rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.1);background:#ffffff08;font-size:.875rem;color:#f8fafcb3}.hub-auth-note p{margin:0}.hub-auth-note code{padding:.125rem .375rem;border-radius:.25rem;background:#ffffff1a;font-size:.75rem;color:#f8fafcd9}.hub-auth-details{margin-top:1.5rem;padding:1rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.1);background:#ffffff08;font-size:.75rem;color:#f8fafc99}.hub-auth-details summary{cursor:pointer;font-weight:600;color:#f8fafccc}.hub-auth-details dl{margin:.75rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hub-auth-details dt{color:#f8fafc66}.hub-auth-details dd{margin:0 0 .5rem;word-break:break-all;color:#f8fafccc}.hub-auth-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:2rem}@media(min-width:640px){.hub-auth-actions{flex-direction:row}}.hub-auth-btn{flex:1;padding:.625rem 1rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.15);background:transparent;color:#f8fafccc;font:inherit;font-size:.875rem;font-weight:600;text-align:center;text-decoration:none;cursor:pointer}.hub-auth-btn:hover{background:#ffffff0d}.hub-auth-btn--primary{border-color:transparent;background:#0e9488;color:#fff}.hub-auth-btn--primary:hover{background:#0b7a70}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:100%;height:100%}:root{--sb-bg: #1b232e;--sb-bg-hover: #263140;--sb-border: #2a3543;--sb-brand: #37b6a2;--sb-brand-soft: rgba(55, 182, 162, .14);--sb-main: #e7edf3;--sb-sub: #93a4b7;--sb-heading: #62748a}.sidebar{grid-column:1;background:var(--sb-bg);border-right:1px solid var(--sb-border);height:100%;overflow-y:auto;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--sb-border);position:sticky;top:0;background:var(--sb-bg);z-index:1}.sidebar-brand-mark{width:30px;height:30px;border-radius:7px;background:var(--sb-brand);color:#08201c;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.15}.sidebar-brand-text strong{font-size:13px;color:var(--sb-main)}.sidebar-brand-text span{font-size:11px;color:var(--sb-heading)}.sidebar-nav{padding:10px 10px 24px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;margin:1px 0;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--sb-main);font-size:13px;font-weight:600;font-family:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background .1s ease,color .1s ease}.nav-item:hover{background:var(--sb-bg-hover);text-decoration:none}.nav-item .nav-icon{display:inline-flex;width:18px;justify-content:center;flex:none;color:var(--sb-sub)}.nav-item.active,.nav-item.section-active{color:#fff}.nav-item.active .nav-icon,.nav-item.section-active .nav-icon{color:var(--sb-brand)}.nav-item.active{background:var(--sb-brand-soft)}.nav-chevron{margin-left:auto;color:var(--sb-heading);transition:transform .15s ease;display:inline-flex}.nav-chevron.open{transform:rotate(90deg)}.nav-section+.nav-leaf,.nav-leaf+.nav-section,.nav-section+.nav-section{margin-top:2px}.nav-subs{padding-left:12px;border-left:1px solid var(--sb-border);margin:2px 0 6px 19px}.nav-sub{display:block;padding:7px 10px;margin:1px 0;border-radius:var(--radius-sm);color:var(--sb-sub);font-size:13px;font-weight:500;text-decoration:none;transition:background .1s ease,color .1s ease}.nav-sub:hover{background:var(--sb-bg-hover);color:var(--sb-main);text-decoration:none}.nav-sub.active{color:var(--sb-brand);background:var(--sb-brand-soft);font-weight:600}.app-main{grid-column:2;height:100%;overflow-y:auto;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:2}.topbar-title{font-size:14px;font-weight:600}.topbar-user{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-muted)}.topbar-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-surface-2);border:1px solid var(--color-border);display:grid;place-items:center;font-weight:600;font-size:12px;color:var(--color-text)}.page{padding:24px;max-width:1200px;width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header h1{font-size:22px}.page-header p{margin:4px 0 0;color:var(--color-text-muted);font-size:13px;max-width:70ch}.page-header-actions{display:flex;gap:8px;flex:none}.placeholder{padding:40px;text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-muted)}.placeholder strong{color:var(--color-text)}.placeholder-peek{margin-top:12px;font-size:13px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:18px 18px 16px}.stat-card-label{font-size:12px;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat-card-value{font-size:28px;font-weight:700;margin-top:8px;line-height:1}.stat-card-hint{font-size:12px;color:var(--color-text-faint);margin-top:8px}.section-title{font-size:15px;font-weight:600;margin:4px 0 12px}.loading-screen{height:100%;display:grid;place-items:center;color:var(--color-text-muted)}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.app-main{grid-column:1}}:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-2: #f1f3f5;--color-border: #e2e5ea;--color-border-strong: #cdd2da;--color-text: #1c2430;--color-text-muted: #667085;--color-text-faint: #98a2b3;--color-accent: #0e9488;--color-accent-hover: #0b7d72;--color-accent-soft: #d8efeb;--color-accent-text: #ffffff;--status-open-bg: #fff4e5;--status-open-text: #b76e00;--status-completed-bg: #e7f5ff;--status-completed-text: #1971c2;--status-reconciled-bg: #ebfbee;--status-reconciled-text: #2b8a3e;--danger: #c92a2a;--danger-soft: #ffe3e3;--warning: #e8590c;--success: #2f9e44;--sidebar-width: 248px;--topbar-height: 56px;--radius: 8px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SFMono-Regular", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #0f1319;--color-surface: #171b22;--color-surface-2: #1e232c;--color-border: #272d38;--color-border-strong: #333b48;--color-text: #e6e9ee;--color-text-muted: #9aa4b2;--color-text-faint: #6b7482;--color-accent: #2fb9a6;--color-accent-hover: #45c7b4;--color-accent-soft: #12302b;--color-accent-text: #ffffff;--status-open-bg: #3a2a12;--status-open-text: #f0a94a;--status-completed-bg: #12283b;--status-completed-text: #74b8f0;--status-reconciled-bg: #143021;--status-reconciled-text: #69c286;--danger: #ff6b6b;--danger-soft: #3a1a1a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .45)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;color:var(--color-text)}button{font-family:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-size:13px;font-weight:500;transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--color-surface-2)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.btn-primary:hover{background:var(--color-accent-hover)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize}.badge-open{background:var(--status-open-bg);color:var(--status-open-text)}.badge-completed{background:var(--status-completed-bg);color:var(--status-completed-text)}.badge-reconciled{background:var(--status-reconciled-bg);color:var(--status-reconciled-text)}.text-muted{color:var(--color-text-muted)}.mono{font-family:var(--font-mono)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:10px 12px;color:var(--color-text-muted);font-weight:600;border-bottom:1px solid var(--color-border);white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--color-border)}.table tbody tr:hover{background:var(--color-surface-2)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-count{font-size:13px;color:var(--color-text-muted)}.search{position:relative;display:inline-flex;align-items:center}.search input{width:260px;max-width:60vw;padding:8px 12px 8px 34px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:13px}.search input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.search svg{position:absolute;left:10px;color:var(--color-text-faint);pointer-events:none}.btn-sm{padding:6px 10px;font-size:12px}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95);background:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.row-actions{display:inline-flex;gap:6px;white-space:nowrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize}.pill-green{background:var(--status-reconciled-bg);color:var(--status-reconciled-text)}.pill-gray{background:var(--color-surface-2);color:var(--color-text-muted)}.pill-blue{background:var(--status-completed-bg);color:var(--status-completed-text)}.pill-amber{background:var(--status-open-bg);color:var(--status-open-text)}.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.empty{padding:40px;text-align:center;color:var(--color-text-muted);font-size:14px}.empty strong{color:var(--color-text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:grid;place-items:center;padding:24px;z-index:50}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);width:100%;max-width:520px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.modal-lg{max-width:640px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:16px}.modal-body{padding:20px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border)}.field{margin-bottom:16px}.field:last-child{margin-bottom:0}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:6px}.field .req{color:var(--danger);margin-left:2px}.field input[type=text],.field input[type=date],.field input[type=number],.field select{width:100%;padding:9px 11px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:14px;font-family:inherit}.field input:focus,.field select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.field-hint{font-size:12px;color:var(--color-text-faint);margin-top:5px}.checkbox-field{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14px;font-weight:500}.checkbox-field input{width:16px;height:16px;accent-color:var(--color-accent)}.form-error{background:var(--danger-soft);color:var(--danger);padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px}.modal-message{font-size:14px;color:var(--color-text);line-height:1.55}.modal-message .muted{color:var(--color-text-muted)}.back-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--color-text-muted);margin-bottom:12px}.back-link:hover{color:var(--color-accent);text-decoration:none}.detail-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.section-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 12px}.section-bar h2{font-size:15px;font-weight:600}.not-found{padding:40px;text-align:center;color:var(--color-text-muted)}.status-control{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);overflow:hidden}.status-control button{padding:7px 14px;font-size:12px;font-weight:600;border:none;border-right:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);text-transform:capitalize}.status-control button:last-child{border-right:none}.status-control button:hover:not(.on){background:var(--color-surface-2);color:var(--color-text)}.status-control button.on-open{background:var(--status-open-bg);color:var(--status-open-text)}.status-control button.on-completed{background:var(--status-completed-bg);color:var(--status-completed-text)}.status-control button.on-reconciled{background:var(--status-reconciled-bg);color:var(--status-reconciled-text)}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 24px;padding:16px 18px}.meta-item{display:flex;flex-direction:column;gap:3px}.meta-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);font-weight:600}.meta-value{font-size:14px;color:var(--color-text)}.filter-select{padding:8px 11px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:13px;font-family:inherit}.filter-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:14px}.filter-field{display:flex;flex-direction:column;gap:4px}.filter-field>span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-faint)}.filter-field select,.filter-field .search input{min-width:150px}.filters-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.checkbox-inline{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.checkbox-inline input{width:15px;height:15px;accent-color:var(--color-accent)}.totals-strip{display:flex;gap:24px;flex-wrap:wrap;padding:12px 16px;margin-bottom:14px;font-size:13px}.totals-strip .t-item{display:flex;gap:7px}.totals-strip .t-item strong{font-variant-numeric:tabular-nums}.expand-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--color-text-muted);border-radius:4px}.expand-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.splits-row td{background:var(--color-surface-2);padding:0}.splits-inner{padding:12px 16px 14px 44px}.splits-inner h4{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 8px}.splits-table{width:auto;min-width:320px;border-collapse:collapse;font-size:13px}.splits-table td{padding:5px 18px 5px 0;border:none;background:transparent}.splits-total{margin-top:8px;font-size:12px;color:var(--color-text-muted)}.wizard-step{padding:18px 20px;margin-bottom:16px}.wizard-step-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.wizard-step-num{width:24px;height:24px;border-radius:50%;background:var(--color-accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.wizard-step-head h2{font-size:15px;font-weight:600}.radio-row{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap}.radio-opt{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.radio-opt input{accent-color:var(--color-accent)}.file-input{display:inline-flex;align-items:center;gap:10px}.file-input input[type=file]{font-size:13px}.preview-wrap{margin-top:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto;max-height:260px;overflow-y:auto}.preview-note{font-size:12px;color:var(--color-text-muted);margin-top:8px}.run-bar{display:flex;align-items:center;gap:14px;padding:16px 20px;position:sticky;bottom:0}.result-banner{padding:18px 20px;margin-bottom:16px;border-left:4px solid var(--success)}.result-banner h2{font-size:16px;margin-bottom:6px}.result-stats{display:flex;gap:22px;flex-wrap:wrap;margin:10px 0 14px;font-size:14px}.result-stats strong{font-size:20px;display:block}
