:root{--bg: #f6f4ee;--surface: #ffffff;--surface-2: #f1eee5;--surface-3: #e7e3d7;--glass: rgba(255, 255, 255, .74);--text: #202536;--muted: #61677a;--faint: #7d8496;--accent: #26345e;--accent-strong: #1b2547;--accent-soft: #dee2ef;--accent-tint: #eef0f7;--accent-hover: #16203e;--accent-glow: rgba(38, 52, 94, .24);--on-accent: #f6f4ee;--ai: #8d87d8;--ai-strong: #5a52ad;--ai-soft: #e5e3f7;--ai-tint: #f2f1fb;--on-ai: #1b2547;--ok: #7fa99b;--ok-strong: #456b5e;--ok-soft: #e3edea;--remind: #e8a985;--remind-strong: #9a5930;--remind-soft: #fae8dd;--navy: #26345e;--navy-2: #33447a;--on-navy: #f6f4ee;--on-navy-muted: #a9b1cb;--border: #e9e5da;--border-2: #dcd7c9;--danger: #bf4a3e;--danger-soft: #f8e6e3;--r-xs: 10px;--r-sm: 14px;--r: 20px;--r-lg: 28px;--r-xl: 32px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(32, 37, 54, .04), 0 1px 3px rgba(32, 37, 54, .05);--shadow: 0 4px 18px rgba(32, 37, 54, .07), 0 2px 6px rgba(32, 37, 54, .04);--shadow-lg: 0 16px 48px rgba(32, 37, 54, .12), 0 4px 12px rgba(32, 37, 54, .06);--scrim: rgba(32, 37, 54, .34);font-family:Rubik,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-color-scheme:dark){:root{--bg: #171b2b;--surface: #22283c;--surface-2: #2a3049;--surface-3: #333a57;--glass: rgba(34, 40, 60, .78);--text: #ecebf2;--muted: #9ba2b8;--faint: #858ea8;--accent: #5a6bab;--accent-strong: #94a4e0;--accent-soft: #2d3555;--accent-tint: #242b42;--accent-hover: #4c5c98;--accent-glow: rgba(90, 107, 171, .36);--on-accent: #f6f4ee;--ai: #8d87d8;--ai-strong: #a49ee6;--ai-soft: #2f2c4e;--ai-tint: #26243c;--on-ai: #171b2b;--ok: #7fa99b;--ok-strong: #96bfb1;--ok-soft: #24352f;--remind: #e8a985;--remind-strong: #f0bfa2;--remind-soft: #3a2a21;--navy: #1e2440;--navy-2: #2b3457;--on-navy: #f6f4ee;--on-navy-muted: #a9b1cb;--border: #2e3550;--border-2: #3b4364;--danger: #e07a6d;--danger-soft: #3a2321;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28), 0 1px 3px rgba(0, 0, 0, .24);--shadow: 0 4px 18px rgba(0, 0, 0, .34), 0 2px 6px rgba(0, 0, 0, .24);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .46), 0 4px 12px rgba(0, 0, 0, .3);--scrim: rgba(9, 11, 20, .6);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent-strong)}button{font:inherit;cursor:pointer;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.layout{display:flex;min-height:100vh}.content{flex:1;min-width:0;padding:32px 40px;overflow:auto}.page-head{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-head h2{margin:0;font-size:26px;font-weight:800}.filters{display:flex;gap:8px;flex-wrap:wrap}.spacer{flex:1}select,input,textarea{background:var(--surface);border:1px solid var(--border-2);color:var(--text);border-radius:var(--r-xs);padding:9px 12px;font:inherit}select:focus,input:focus,textarea:focus{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-soft)}textarea{width:100%;resize:vertical;line-height:1.5}::placeholder{color:var(--faint)}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border-2);color:var(--text);padding:9px 16px;border-radius:var(--r-pill);font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}.btn:hover{background:var(--surface-2);border-color:var(--border-2)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 20px var(--accent-glow)}.btn-danger{background:transparent;border-color:var(--border-2);color:var(--danger)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{padding:6px 12px;font-size:13px}.row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.card-title{font-weight:700;margin:0 0 8px}.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--muted);margin-right:6px}.badge-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge-ok{background:var(--ok-soft);color:var(--ok-strong)}.badge-remind{background:var(--remind-soft);color:var(--remind-strong)}.badge-ai{background:var(--ai-soft);color:var(--ai-strong)}.muted{color:var(--muted);font-size:13px}.excerpt{color:var(--muted);white-space:pre-wrap}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.pager{display:flex;gap:10px;align-items:center;margin-top:18px}.pager button{background:var(--surface);border:1px solid var(--border-2);color:var(--text);padding:8px 16px;border-radius:var(--r-pill);font-weight:600}.pager button:disabled{opacity:.4;cursor:default}.state{color:var(--muted);padding:28px 0}.error{color:var(--danger)}pre.body{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:16px;line-height:1.6;font-family:Rubik,system-ui,sans-serif}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px;text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:56px 16px;overflow:auto;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px;width:100%;max-width:560px;box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 18px;font-size:20px;font-weight:800}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field>label{font-size:13px;font-weight:600;color:var(--muted)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.graph-page{position:relative;margin:-32px -40px;height:calc(100vh - 76px);overflow:hidden}.graph-canvas{width:100%;height:100%}.graph-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.detail-panel{position:absolute;top:16px;right:16px;width:320px;max-height:calc(100% - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-lg);z-index:10}.detail-header{display:flex;align-items:flex-start;gap:10px}.detail-title{flex:1;margin:0;font-size:17px;line-height:1.4}.detail-close{flex-shrink:0;line-height:1;background:transparent;border:none;color:var(--muted)}.detail-meta{display:flex;flex-wrap:wrap;gap:4px}.detail-body{max-height:260px;overflow-y:auto;font-size:14px;margin:0}.detail-links{display:flex;flex-wrap:wrap;gap:4px}.detail-footer{padding-top:4px}.panel-slide-enter-active,.panel-slide-leave-active{transition:opacity .18s ease,transform .18s ease}.panel-slide-enter-from,.panel-slide-leave-to{opacity:0;transform:translate(16px)}@media(max-width:860px){.content{padding:18px 16px;padding-bottom:calc(80px + env(safe-area-inset-bottom))}input,select,textarea{font-size:16px}.page-head h2{font-size:22px}.modal-overlay{padding:0;align-items:flex-end}.modal{border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:92vh;overflow-y:auto;padding:22px 16px;padding-bottom:calc(22px + env(safe-area-inset-bottom))}.graph-page{margin:-18px -16px calc(-80px - env(safe-area-inset-bottom));height:calc(100vh + -0px)}.detail-panel{top:auto;right:0;bottom:calc(72px + env(safe-area-inset-bottom));left:0;width:100%;max-height:55vh;border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -4px 24px var(--scrim)}.panel-slide-enter-from,.panel-slide-leave-to{opacity:0;transform:translateY(24px)}}
