:root{--bg: #f6f8f5;--surface: #ffffff;--surface-2: #edf1ea;--border: #dde3d6;--border-strong: #c5cfb9;--text: #14241a;--text-muted: #5f6e63;--text-faint: #94a094;--primary: #15803d;--primary-hover: #166534;--primary-soft: #dcfce7;--group-a: #b45309;--group-a-bg: #fef3c7;--group-b: #1d4ed8;--group-b-bg: #dbeafe;--group-c: #047857;--group-c-bg: #d1fae5;--danger: #b91c1c;--danger-bg: #fee2e2;--success: #047857;--success-bg: #d1fae5;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;color:var(--text)}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}h4{font-size:14px}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:var(--space-5) var(--space-4);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{font-size:13px;font-weight:600;color:var(--text);margin-bottom:var(--space-1)}.sidebar-sub{font-size:12px;color:var(--text-muted);margin-bottom:var(--space-6)}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--text);font-size:13px;text-decoration:none}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--surface-2);color:var(--text);font-weight:500}.sidebar-divider{height:1px;background:var(--border);margin:var(--space-5) 0}.sidebar-meta{font-size:12px;color:var(--text-muted)}.sidebar-meta dt{margin-top:var(--space-3);color:var(--text-faint)}.sidebar-meta dd{margin:2px 0 0;color:var(--text)}.main{padding:var(--space-6) var(--space-8);max-width:1200px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);border-bottom:1px solid var(--border);padding-bottom:var(--space-4)}.page-header p{color:var(--text-muted);margin-top:var(--space-1)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.card+.card{margin-top:var(--space-4)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.card-title{font-size:14px;font-weight:600}.card-meta{font-size:12px;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;border:1px solid transparent}.badge-A{background:var(--group-a-bg);color:var(--group-a)}.badge-B{background:var(--group-b-bg);color:var(--group-b)}.badge-C{background:var(--group-c-bg);color:var(--group-c)}.badge-muted{background:var(--surface-2);color:var(--text-muted)}.button{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius);font-size:13px;text-decoration:none;transition:background .12s ease}.button:hover{background:var(--surface-2);text-decoration:none}.button-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.button-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.input{width:100%;padding:8px 12px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius);font-size:14px;outline:none;transition:border-color .12s ease}.input:focus{border-color:var(--primary)}.input-row{display:flex;gap:var(--space-2)}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.schedule-table th,.schedule-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.schedule-table th{font-weight:600;color:var(--text-muted);background:var(--surface-2);border-top:1px solid var(--border);font-size:12px}.schedule-table th:first-child,.schedule-table td:first-child{width:220px}.schedule-table td.window-cell{text-align:center}.schedule-table tr.is-today td{background:var(--primary-soft)}.status-banner{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface)}.status-label{font-size:12px;color:var(--text-muted);margin-bottom:4px}.status-value{font-size:18px;font-weight:600}.status-meta{font-size:13px;color:var(--text-muted)}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media (max-width: 900px){.split-grid,.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}}.list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px}.list li{font-size:13px;color:var(--text);padding:4px 0;border-bottom:1px dotted var(--border)}.linked-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.linked-row:last-child{border-bottom:0}.linked-row a{color:var(--text);font-weight:500}.linked-row a:hover{color:var(--primary)}.cell-counts{display:flex;gap:var(--space-2);align-items:center}.search-result{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);margin-bottom:var(--space-3)}.search-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.search-result h3{font-size:14px}.search-result table{width:100%;border-collapse:collapse;font-size:12px}.search-result td,.search-result th{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left}.kv{display:grid;grid-template-columns:160px 1fr;gap:var(--space-2) var(--space-4);font-size:13px}.kv dt,.muted{color:var(--text-muted)}.empty{padding:var(--space-6);text-align:center;color:var(--text-muted)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.section+.section{margin-top:var(--space-6)}
