:root{--bg: #1e1e1e;--bg2: #252526;--bg3: #2d2d30;--border: #3c3c3c;--fg: #d4d4d4;--muted: #9d9d9d;--accent: #007acc;--accent2: #0e639c;--danger: #f14c4c;--ok: #89d185;--font: "Cascadia Code", "Segoe UI Mono", Consolas, "Courier New", monospace;--ui: "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--ui);font-size:13px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;height:30px;padding:0 10px;background:var(--bg3);border-bottom:1px solid var(--border)}.topbar .brand{font-weight:600;letter-spacing:.02em}.topbar .spacer{flex:1}.topbar button,.btn{background:var(--bg2);color:var(--fg);border:1px solid var(--border);padding:2px 10px;cursor:pointer;font-size:12px}.topbar button:hover,.btn:hover{background:var(--bg3);border-color:var(--accent)}.btn.primary{background:var(--accent2);border-color:var(--accent)}.btn.danger{border-color:var(--danger);color:#ffb4b4}.main{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0}.sidebar{border-right:1px solid var(--border);background:var(--bg2);padding:8px;display:flex;flex-direction:column;gap:4px}.sidebar button{text-align:left;background:transparent;border:none;color:var(--fg);padding:6px 8px;cursor:pointer}.sidebar button.active,.sidebar button:hover{background:#37373d}.work{display:flex;flex-direction:column;min-height:0}.search{border-bottom:1px solid var(--border);padding:6px 8px}.search input,input,select,textarea{width:100%;background:#3c3c3c;border:1px solid var(--border);color:var(--fg);padding:4px 8px;font-family:var(--font);font-size:12px}textarea{min-height:160px;resize:vertical;font-family:var(--font)}.content{display:grid;grid-template-rows:auto 1fr;flex:1;min-height:0}.detail{padding:8px;border-bottom:1px solid var(--border);background:var(--bg)}.detail-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.detail-head input{flex:1}.meta-row{display:flex;gap:8px;margin-bottom:8px}.meta-row input{width:120px}.slider{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}.slider img{height:90px;width:130px;object-fit:cover;background:#111;border:1px solid var(--border)}.gps{color:var(--muted);font-size:11px;font-family:var(--font)}.grid{padding:8px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.card{border:1px solid var(--border);background:var(--bg2);padding:8px;cursor:pointer}.card.selected{border-color:var(--accent)}.card .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .s{color:var(--muted);font-size:11px;margin-top:4px}.status{height:22px;border-top:1px solid var(--border);background:var(--accent2);display:flex;align-items:center;padding:0 10px;color:#fff;font-size:12px;gap:16px}.login{max-width:320px;margin:12vh auto;padding:16px;border:1px solid var(--border);background:var(--bg2)}.login h1{font-size:16px;margin:0 0 12px}.login label{display:block;margin:8px 0 4px;color:var(--muted)}.row{display:flex;gap:8px;margin-top:12px}.panel{padding:12px;overflow:auto}.panel h2{font-size:14px;margin:0 0 10px}.panel .field{margin-bottom:10px}.panel .field label{display:block;color:var(--muted);margin-bottom:4px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:6px;text-align:left}.qrbox{display:flex;gap:16px;align-items:flex-start;margin-top:12px;padding:12px;background:#111;border:1px solid var(--border)}.err{color:var(--danger);margin-top:8px}.ok{color:var(--ok)}
