:root{--bg: #0a0a0a;--bg-2: #0e0e0e;--elev: #141414;--surface: #171717;--surface-2: #1c1c1c;--border: #242424;--border-strong: #333333;--text: #f4f4f4;--text-dim: #a4a4a4;--text-faint: #6b6b6b;--accent: #b9915b;--accent-hover: #cba36c;--accent-soft: rgba(185, 145, 91, .14);--ok: #5bbf62;--ok-soft: rgba(58, 145, 63, .16);--warn: #d6a461;--err: #dc625e;--err-soft: rgba(220, 98, 94, .14);--info: #77c5d5;--radius: 12px;--radius-sm: 8px;--font: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--shadow: 0 24px 60px -24px rgba(0, 0, 0, .85)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}a{color:inherit}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden;background:radial-gradient(900px 500px at 50% -10%,rgba(185,145,91,.1),transparent 60%),radial-gradient(700px 500px at 50% 120%,rgba(119,197,213,.05),transparent 60%),var(--bg)}.login-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(680px 480px at 50% 40%,#000 30%,transparent 75%);pointer-events:none}.login-card{position:relative;width:100%;max-width:396px;background:linear-gradient(180deg,var(--surface) 0%,var(--elev) 100%);border:1px solid var(--border);border-radius:18px;padding:38px 34px 30px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:10px;justify-content:center}.brand-mark{width:26px;height:26px;display:block}.brand-word{font-size:25px;font-weight:600;letter-spacing:-.02em;color:var(--text)}.brand-word .dot{color:var(--accent)}.login-tagline{margin:12px 0 30px;text-align:center;font-size:12.5px;color:var(--text-faint);letter-spacing:.02em}.field{position:relative;margin-bottom:14px}.field input{width:100%;height:52px;padding:20px 14px 6px;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-size:14.5px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#0c0c0c}.field label{position:absolute;left:14px;top:16px;font-size:14px;color:var(--text-faint);pointer-events:none;transition:all .14s ease}.field input:focus+label,.field input:not(:placeholder-shown)+label{top:8px;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim)}.field-row{display:flex;align-items:center;justify-content:space-between;margin:-4px 2px 18px}.forgot{font-size:12px;color:var(--text-dim);text-decoration:none}.forgot:hover{color:var(--accent)}.btn-primary{width:100%;height:50px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:#17130c;font-size:14.5px;font-weight:600;letter-spacing:.01em;transition:background .15s,transform .05s,opacity .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.login-error{margin:0 0 14px;padding:10px 12px;border:1px solid var(--err);background:var(--err-soft);border-radius:var(--radius-sm);color:#f0b6b4;font-size:12.5px}.login-foot{margin-top:22px;text-align:center;font-size:11px;color:var(--text-faint);letter-spacing:.03em}.app{min-height:100%;display:flex;flex-direction:column}.appbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid var(--border);background:#0a0a0adb;backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.appbar .brand-word{font-size:18px}.appbar .brand-mark{width:20px;height:20px}.appbar-right{display:flex;align-items:center;gap:14px}.who{font-size:12.5px;color:var(--text-dim)}.btn-ghost{height:34px;padding:0 14px;background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-dim);font-size:12.5px;transition:all .14s}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.main{flex:1;padding:26px 22px 60px;max-width:1240px;width:100%;margin:0 auto}.page-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.page-title{font-size:21px;font-weight:600;letter-spacing:-.01em}.page-sub{font-size:12.5px;color:var(--text-faint);margin-top:4px}.stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.stat{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat .n{font-size:24px;font-weight:600;letter-spacing:-.02em;font-family:var(--mono)}.stat .l{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.stat.ok .n{color:var(--ok)}.stat.pend .n{color:var(--warn)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.search{flex:1;min-width:200px;height:40px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:0 14px;font-size:13.5px;outline:none}.search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.segment{display:inline-flex;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:3px}.segment button{height:32px;padding:0 14px;border:none;background:transparent;color:var(--text-dim);font-size:12.5px;border-radius:6px;transition:all .14s}.segment button.active{background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--border-strong)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-2);position:sticky;top:58px}tbody td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}tbody tr{cursor:pointer;transition:background .1s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}.c-title{color:var(--text);font-weight:500;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-date{font-family:var(--mono);font-size:12px;color:var(--text-dim);white-space:nowrap}.c-parts{color:var(--text-dim);font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-room{color:var(--text-faint);font-size:12px;font-family:var(--mono)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:3px 9px;border-radius:999px;white-space:nowrap}.badge.ok{color:var(--ok);background:var(--ok-soft);border:1px solid rgba(91,191,98,.28)}.badge.no{color:var(--text-dim);background:#ffffff08;border:1px solid var(--border-strong)}.badge.dim{color:var(--text-faint);background:transparent;border:1px solid var(--border)}.badge.warn{color:var(--warn);background:#d6a4611f;border:1px solid rgba(214,164,97,.3)}.badge.err{color:var(--err);background:var(--err-soft);border:1px solid rgba(220,98,94,.3)}.empty,.loading{text-align:center;padding:60px 20px;color:var(--text-faint);font-size:13px}.spinner{width:22px;height:22px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.drawer-scrim{position:fixed;inset:0;background:#0009;backdrop-filter:blur(2px);z-index:40;animation:fade .15s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;height:100%;width:460px;max-width:92vw;background:var(--elev);border-left:1px solid var(--border-strong);z-index:41;box-shadow:-30px 0 80px -30px #000000e6;display:flex;flex-direction:column;animation:slide .2s ease}@keyframes slide{0%{transform:translate(30px);opacity:.4}to{transform:translate(0);opacity:1}}.drawer-head{padding:20px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.drawer-title{font-size:16px;font-weight:600;line-height:1.35}.drawer-close{background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);width:30px;height:30px;border-radius:8px;flex-shrink:0;font-size:16px;line-height:1}.drawer-close:hover{color:var(--text);border-color:var(--accent)}.drawer-body{padding:20px 22px;overflow-y:auto}.dl{display:grid;grid-template-columns:120px 1fr;gap:10px 14px;font-size:13px}.dl dt{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}.dl dd{margin:0;color:var(--text);word-break:break-word}.dl dd.mono{font-family:var(--mono);font-size:12px;color:var(--text-dim)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-dim)}.excerpt{margin-top:6px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;line-height:1.6;color:var(--text-dim)}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin:22px 0 8px}hr.sep{border:none;border-top:1px solid var(--border);margin:20px 0}@media (max-width: 640px){.c-parts,thead th:nth-child(4),tbody td:nth-child(4){display:none}.main{padding:18px 14px 40px}}
