:root{--bg:#f1f1f1;--surface:#fff;--surface-subdued:#fafafa;--surface-hover:#f7f7f7;--surface-selected:#f0f4fb;--text:#303030;--text-secondary:#616161;--text-disabled:#8a8a8a;--text-inverse:#fff;--border:#e3e3e3;--border-strong:#cdcdcd;--border-focus:#005bd3;--critical:#c72c2c;--critical-bg:#fdf1f1;--critical-border:#f0b4b4;--warning:#b45309;--warning-bg:#fef7ec;--warning-border:#f2cf92;--caution:#8a6116;--caution-bg:#fdf6e3;--success:#0c7c59;--success-bg:#eefaf5;--success-border:#a5dcc6;--opportunity:#1a5fb4;--opportunity-bg:#eef4fd;--opportunity-border:#b3cdf2;--info-bg:#f2f4f7;--accent:#303030;--accent-hover:#1a1a1a;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-card:0 1px 0 #0000000d, 0 0 0 1px #0000000a;--shadow-pop:0 4px 12px #0000001f, 0 0 0 1px #0000000f;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--sidebar-w:232px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}p{margin:0}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:var(--sp-4) var(--sp-3);gap:var(--sp-5);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{padding:0 var(--sp-2);flex-direction:column;gap:2px;display:flex}.brand-logo{max-width:104px;height:auto;margin-bottom:var(--sp-3)}.brand strong{font-size:14px;font-weight:650}.brand span{color:var(--text-secondary);font-size:12px}.nav{flex-direction:column;gap:1px;display:flex}.nav-section{padding:var(--sp-3) var(--sp-2) var(--sp-1);text-transform:uppercase;letter-spacing:.04em;color:var(--text-disabled);font-size:11px;font-weight:600}.nav-item{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:7px var(--sp-2);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-weight:500;transition:background .1s;display:flex}.nav-item:hover{background:var(--surface-hover)}.nav-item[aria-current=page]{background:var(--surface-selected);font-weight:600}.nav-badge{background:var(--critical);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.nav-badge[data-tone=warning]{background:var(--warning)}.nav-badge[data-tone=neutral]{background:var(--border-strong);color:var(--text)}.main{min-width:0;padding:var(--sp-6);flex:1;max-width:1400px}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.page-header p{color:var(--text-secondary);margin-top:var(--sp-1)}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--sp-5)}.card+.card{margin-top:var(--sp-4)}.card-header{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.card-flush{padding:0;overflow:hidden}.card-flush>.card-header{padding:var(--sp-5) var(--sp-5) 0;margin-bottom:var(--sp-4)}.card-note{color:var(--text-secondary);font-size:13px}.grid{gap:var(--sp-4);display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--sp-4);gap:var(--sp-1);flex-direction:column;display:flex}.stat-label{color:var(--text-secondary);font-size:12px;font-weight:500}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:650}.stat-value.sm{font-size:20px}.stat-sub{color:var(--text-secondary);font-size:12px}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th{text-align:left;color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-subdued);font-size:12px;font-weight:600}table.data td{padding:var(--sp-3);border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-hover)}.num{text-align:right;font-variant-numeric:tabular-nums}.strong-num{font-variant-numeric:tabular-nums;font-weight:650}.cell-title{font-weight:550;display:block}.thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-subdued);border:1px solid var(--border);flex-shrink:0;display:block}.thumb-empty{color:var(--text-disabled);justify-content:center;align-items:center;display:inline-flex}.thumb-button{cursor:zoom-in;border-radius:var(--radius-sm);background:0 0;border:0;flex-shrink:0;padding:0;line-height:0;position:relative}.thumb-button .thumb{width:100%;height:100%}.thumb-zoom{background:var(--surface);border:1px solid var(--border-strong);width:18px;height:18px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;bottom:-4px;right:-4px}.thumb-button:hover .thumb-zoom,.thumb-button:focus-visible .thumb-zoom{display:flex}.thumb-button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.image-dialog{background:0 0;border:0;max-width:min(92vw,900px);max-height:92vh;padding:0;overflow:visible}.image-dialog::backdrop{background:#000000b8}.image-dialog figure{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);margin:0;overflow:hidden}.image-dialog img{object-fit:contain;background:var(--surface-subdued);cursor:zoom-out;width:100%;height:auto;max-height:calc(92vh - 56px);display:block}.image-dialog figcaption{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);font-size:13px;font-weight:550;display:flex}.cell-media{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.cell-media>div{min-width:0}.cell-sub{color:var(--text-secondary);font-size:12px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:20px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:550;display:inline-flex}.badge[data-tone=critical]{background:var(--critical-bg);color:var(--critical);border-color:var(--critical-border)}.badge[data-tone=warning]{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.badge[data-tone=caution]{background:var(--caution-bg);color:var(--caution);border-color:var(--warning-border)}.badge[data-tone=success]{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.badge[data-tone=opportunity]{background:var(--opportunity-bg);color:var(--opportunity);border-color:var(--opportunity-border)}.badge[data-tone=neutral]{background:var(--info-bg);color:var(--text-secondary);border-color:var(--border)}.dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:7px 13px;font-family:inherit;font-size:13px;font-weight:550;transition:background .1s,border-color .1s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-critical{background:var(--critical);border-color:var(--critical);color:#fff}.btn-plain{background:0 0;border-color:#0000;padding:4px 6px}.btn-plain:hover:not(:disabled){background:var(--surface-hover)}.btn-sm{padding:4px 9px;font-size:12px}.field{gap:var(--sp-1);flex-direction:column;display:flex}.field label{font-size:13px;font-weight:550}.field .hint{color:var(--text-secondary);font-size:12px}.field .error{color:var(--critical);font-size:12px}input[type=text],input[type=number],input[type=date],input[type=password],input[type=search],select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--surface);padding:7px 10px;font-family:inherit;font-size:13px}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.nav-item:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}textarea{resize:vertical;min-height:70px}.form-row{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.banner{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--info-bg);align-items:flex-start;font-size:13px;display:flex}.banner[data-tone=critical]{background:var(--critical-bg);border-color:var(--critical-border)}.banner[data-tone=warning]{background:var(--warning-bg);border-color:var(--warning-border)}.banner[data-tone=success]{background:var(--success-bg);border-color:var(--success-border)}.banner[data-tone=opportunity]{background:var(--opportunity-bg);border-color:var(--opportunity-border)}.banner-title{margin-bottom:2px;font-weight:650;display:block}.empty{text-align:center;padding:var(--sp-10) var(--sp-5);color:var(--text-secondary)}.empty h3{color:var(--text);margin-bottom:var(--sp-2)}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.stack-sm{gap:var(--sp-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.muted{color:var(--text-secondary)}.small{font-size:12px}.mono{font-family:var(--font-mono);font-size:12px}.nowrap{white-space:nowrap}.divider{background:var(--border);height:1px;margin:var(--sp-4) 0;border:0}.locked{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:var(--sp-4);color:var(--text-secondary);background:var(--surface-subdued);font-size:13px}@media (max-width:800px){.shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;position:static}.main{padding:var(--sp-4)}}
