@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=Noto+Sans+TC:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--bg: #f4f8f8;--surface: #ffffff;--surface-soft: #ecfeff;--text: #0f172a;--text-soft: #475569;--border: #cbd5e1;--brand: #0f766e;--brand-soft: #14b8a6;--risk-high: #b91c1c;--risk-medium: #d97706;--risk-low: #15803d;--shadow: 0 14px 40px rgba(15, 23, 42, .08)}body[data-theme=dark]{--bg: #0f172a;--surface: #111827;--surface-soft: #0b2530;--text: #e2e8f0;--text-soft: #94a3b8;--border: #334155;--brand: #14b8a6;--brand-soft: #2dd4bf;--risk-high: #fca5a5;--risk-medium: #fdba74;--risk-low: #86efac;--shadow: 0 14px 40px rgba(2, 6, 23, .45)}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans TC,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 5%,#ccfbf1 0%,transparent 35%),radial-gradient(circle at 90% 20%,#e0f2fe 0%,transparent 30%),var(--bg);min-height:100vh}body[data-theme=dark]{background:radial-gradient(circle at 15% 5%,rgba(20,184,166,.18) 0%,transparent 35%),radial-gradient(circle at 90% 20%,rgba(37,99,235,.2) 0%,transparent 30%),var(--bg)}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;position:relative}.sidebar{border-right:1px solid var(--border);padding:32px 20px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body[data-theme=dark] .sidebar{background:#020617e0}.brand-kicker{margin:0;font-family:IBM Plex Mono,monospace;color:var(--brand);letter-spacing:.08em}.brand h1{margin:8px 0 24px;font-family:Space Grotesk,sans-serif;font-size:30px}.nav{display:grid;gap:8px}.nav-item{border:1px solid transparent;border-radius:12px;padding:10px 12px;background:transparent;color:var(--text-soft);text-align:left;font-family:inherit;font-size:16px;font-weight:500;cursor:pointer}.nav-item:disabled{opacity:.45;cursor:not-allowed}.nav-item--active{border-color:#99f6e4;background:var(--surface-soft);color:var(--brand)}.sidebar-note{margin-top:28px;color:var(--text-soft);font-size:13px}.main{padding:28px}.backdrop{display:none;border:0;background:#0f172a59}.mobile-header{display:none;align-items:center;gap:12px;margin-bottom:18px}.mobile-title{margin:0;font-family:Space Grotesk,sans-serif;font-size:18px}.menu-toggle{width:42px;height:42px;border-radius:12px;border:1px solid #99f6e4;background:#ecfeff;display:grid;gap:4px;align-content:center;justify-content:center;cursor:pointer}.menu-toggle span{display:block;width:16px;height:2px;background:var(--brand);border-radius:999px}.topbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px}.eyebrow{margin:0;font-family:IBM Plex Mono,monospace;color:var(--brand);font-size:13px}.topbar h2{margin:6px 0 0;font-family:Space Grotesk,sans-serif;font-size:34px}.ledger-form{min-width:280px;border:1px solid var(--border);border-radius:16px;padding:12px;background:var(--surface);box-shadow:var(--shadow)}.ledger-form label{font-size:12px;color:var(--text-soft)}.ledger-input-row{margin-top:8px;display:flex;gap:8px}.ledger-input-row input{flex:1;min-width:0;border:1px solid var(--border);border-radius:10px;padding:10px 12px}.ledger-input-row button,.primary-btn{border:0;border-radius:10px;padding:10px 14px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-soft) 100%);color:#fff;font-weight:700;cursor:pointer}.install-btn{border:1px solid #99f6e4;border-radius:10px;padding:10px 12px;background:#f0fdfa;color:#0f766e;font-weight:700;cursor:pointer}.system-controls{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.system-controls label{font-size:12px;color:var(--text-soft)}.system-controls select,.system-controls button{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--text)}.ledger-input-row button:disabled,.primary-btn:disabled{cursor:wait;opacity:.65}.soft-btn,.danger-btn{border-radius:10px;border:1px solid var(--border);padding:8px 12px;background:#fff;color:var(--text-soft);font-weight:600;cursor:pointer}.danger-btn{border-color:#fecaca;color:#b91c1c}.status-panel{margin-top:18px;border:1px solid #bae6fd;border-radius:12px;padding:14px;background:#f0f9ff;color:#0c4a6e}.status-panel--error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.kpi-grid{margin-top:20px;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-card{border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--surface);box-shadow:var(--shadow)}.kpi-label{margin:0;font-size:13px;color:var(--text-soft)}.kpi-value{margin:10px 0 4px;font-family:IBM Plex Mono,monospace;font-size:30px;font-weight:600}.kpi-hint{margin:0;font-size:13px;color:var(--text-soft)}.risk-panel{margin-top:16px}.risk-card{border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--surface);box-shadow:var(--shadow)}.risk-card header{display:flex;justify-content:space-between;align-items:center}.risk-badge{border-radius:999px;padding:6px 10px;font-size:12px;font-family:IBM Plex Mono,monospace}.risk-warning{background:#fef2f2;color:var(--risk-high)}.risk-normal{background:#f0fdf4;color:var(--risk-low)}.risk-unknown{background:#fffbeb;color:var(--risk-medium)}.risk-message{margin:14px 0 8px;font-size:18px;font-weight:700}.risk-subtext{margin:0;color:var(--text-soft)}.module-shell,.settings-shell{margin-top:16px;display:grid;gap:14px}.settings-block{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);padding:16px;display:grid;gap:12px}.settings-header h3{margin:0;font-family:Space Grotesk,sans-serif;font-size:24px}.settings-header p{margin:4px 0 0;color:var(--text-soft)}.card-form-grid{align-items:end}.card-toggle{margin-bottom:10px}.settings-meta{margin-top:10px;border:1px dashed #99f6e4;border-radius:12px;padding:10px 12px;background:#f0fdfa}.settings-meta p{margin:0;color:#0f766e;font-size:13px}.settings-meta p+p{margin-top:4px}.module-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.module-header h3{margin:0;font-family:Space Grotesk,sans-serif;font-size:24px}.module-header p{margin:4px 0 0;color:var(--text-soft)}.module-form{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface);box-shadow:var(--shadow)}.module-form-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.form-field{display:grid;gap:6px}.form-field span{font-size:12px;color:var(--text-soft)}.form-field--system{border:1px dashed #94a3b8;border-radius:12px;padding:8px;background:#f8fafc}.form-field--system span:after{content:" (system)";font-size:11px;color:#64748b}.form-field input{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.form-field select{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff}.form-field input[readonly]{background:#f8fafc;color:#475569}.checkbox-field{margin-top:10px;display:inline-flex;align-items:center;gap:8px;font-size:14px}.form-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.list-header{color:var(--text-soft)}.list-header p{margin:0}.empty-state{border:1px dashed #99f6e4;border-radius:14px;padding:18px;color:var(--text-soft);background:#f0fdfa}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px;background:#fff}body[data-theme=dark] .table-wrap,body[data-theme=dark] .data-table th,body[data-theme=dark] .module-form,body[data-theme=dark] .settings-block,body[data-theme=dark] .kpi-card,body[data-theme=dark] .risk-card,body[data-theme=dark] .ledger-form{background:var(--surface)}body[data-theme=dark] .status-panel{border-color:#1d4ed8;background:#0b1f43;color:#bfdbfe}body[data-theme=dark] .status-panel--error{border-color:#b91c1c;background:#3f1d1d;color:#fecaca}body[data-theme=dark] .ledger-input-row input,body[data-theme=dark] .form-field input,body[data-theme=dark] .form-field select,body[data-theme=dark] .system-controls select,body[data-theme=dark] .system-controls button{background:#0b1220;border-color:#334155;color:#e2e8f0}body[data-theme=dark] .form-field input[readonly]{background:#111c34;color:#cbd5e1}body[data-theme=dark] .form-field--system{border-color:#334155;background:#0d172b}body[data-theme=dark] .form-field--system span:after{color:#94a3b8}body[data-theme=dark] .soft-btn{background:#111827;border-color:#334155;color:#cbd5e1}body[data-theme=dark] .danger-btn{background:#2b1212;border-color:#7f1d1d;color:#fecaca}body[data-theme=dark] .data-table td,body[data-theme=dark] .data-table th{border-bottom-color:#334155;color:#cbd5e1}body[data-theme=dark] .data-table th{background:#0b1220}body[data-theme=dark] .settings-meta,body[data-theme=dark] .empty-state{border-color:#134e4a;background:#0b2530}body[data-theme=dark] .settings-meta p,body[data-theme=dark] .empty-state p{color:#99f6e4}body[data-theme=dark] .inline-warning{border-color:#7c2d12;background:#2b1707;color:#fdba74}body[data-theme=dark] .topbar h2,body[data-theme=dark] .module-header h3{color:#c7f9f2;text-shadow:0 1px 2px rgba(15,23,42,.6)}body[data-theme=dark] .module-header p,body[data-theme=dark] .settings-header p{color:#bfece6}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th,.data-table td{border-bottom:1px solid #e2e8f0;padding:10px 12px;text-align:left}.data-table th{background:#f8fafc;color:#334155;font-size:13px}.table-actions{display:flex;gap:6px}.inline-warning{margin:8px 0 0;border:1px solid #fde68a;border-radius:10px;padding:8px 10px;background:#fffbeb;color:#92400e;font-size:13px}.status-badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:600;border:1px solid var(--border)}.status-badge--open{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.status-badge--settled{background:#f0fdf4;border-color:#bbf7d0;color:#166534}@media(max-width:1120px){.kpi-grid,.module-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1024px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;top:0;left:0;width:min(86vw,320px);height:100dvh;border-right:1px solid var(--border);border-bottom:0;padding:20px;transform:translate(-100%);transition:transform .18s ease}.app-shell.menu-open .sidebar{transform:translate(0)}.backdrop{position:fixed;inset:0;z-index:20}.app-shell.menu-open .backdrop{display:block}.mobile-header{display:flex}.main{padding:18px}}@media(max-width:640px){.topbar h2{font-size:28px}.ledger-form{width:100%}.kpi-grid{grid-template-columns:1fr}.kpi-value{font-size:26px}.module-form-grid{grid-template-columns:1fr}.module-header{align-items:start;flex-direction:column}}
