*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f7f8fa;--panel: #ffffff;--panel-alt: #fafbfc;--border: #e5e7eb;--border-strong: #d1d5db;--text: #111827;--text-dim: #6b7280;--text-faint: #9ca3af;--accent: #1a1a1a;--accent-fg: #ffffff;--primary: #2563eb;--primary-fg: #ffffff;--success: #059669;--warn: #d97706;--danger: #b91c1c;--info: #7c3aed;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.06);--sidebar-w: 220px;--topbar-h: 52px}body{font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--bg);min-height:100vh}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.loading{padding:40px;text-align:center;color:var(--text-dim)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--panel);padding:40px 32px;max-width:380px;width:100%;box-shadow:var(--shadow-md);border-radius:6px}.login-card h1{font-size:22px;margin-bottom:4px;font-weight:600}.login-card .sub{color:var(--text-dim);font-size:13px;margin-bottom:24px}label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-dim);margin:14px 0 6px}input[type=text],input[type=password],input[type=search],input[type=date],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);background:#fff;border-radius:4px;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}button.primary{width:100%;background:var(--accent);color:var(--accent-fg);border:0;padding:12px;font-size:14px;font-weight:600;border-radius:4px;margin-top:18px}button.primary:hover{background:#000}button.primary:disabled{opacity:.5;cursor:not-allowed}.err{color:var(--danger);font-size:13px;margin:12px 0 0}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:#111827;color:#e5e7eb;padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:8px;padding:4px 8px 20px;font-size:15px;font-weight:600;color:#fff;border-bottom:1px solid #1f2937;margin-bottom:12px}.sidebar .brand .dot{width:8px;height:8px;background:#10b981;border-radius:50%}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;color:#d1d5db;text-decoration:none;font-size:13px;cursor:pointer}.sidebar nav a:hover{background:#1f2937;color:#fff}.sidebar nav a.active{background:#2563eb;color:#fff}.sidebar nav a .badge{margin-left:auto;background:#ffffff24;color:#fff;font-size:11px;padding:1px 6px;border-radius:10px;min-width:22px;text-align:center}.sidebar nav a.active .badge{background:#00000040}.sidebar .foot{padding-top:12px;border-top:1px solid #1f2937;font-size:12px;color:#9ca3af}.sidebar .foot .user{color:#fff;font-weight:600;margin-bottom:4px}.sidebar .foot button{background:transparent;color:#9ca3af;border:1px solid #374151;padding:5px 10px;font-size:12px;border-radius:3px;margin-top:6px}.sidebar .foot button:hover{background:#1f2937;color:#fff}.main{display:flex;flex-direction:column;min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--border);height:var(--topbar-h);padding:0 24px;display:flex;align-items:center;justify-content:space-between}.topbar h2{font-size:15px;font-weight:600;letter-spacing:.01em}.topbar .crumb{color:var(--text-dim);font-size:13px}.topbar .crumb a{color:var(--primary);text-decoration:none;cursor:pointer}.topbar .right{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--text-dim)}.content{padding:20px 24px;max-width:1400px;width:100%}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);padding:10px 12px;border-radius:6px;margin-bottom:12px}.toolbar .search{flex:1;min-width:220px;max-width:360px;display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);padding:6px 10px;border-radius:4px}.toolbar .search input{border:0;padding:0;flex:1;font-size:13px;background:transparent}.toolbar .search input:focus{outline:none}.toolbar select{padding:6px 8px;border-radius:4px;border:1px solid var(--border);font-size:13px}.toolbar .spacer{flex:1}.toolbar .refresh{border:1px solid var(--border);background:#fff;padding:6px 12px;border-radius:4px;font-size:13px;color:var(--text)}.toolbar .refresh:hover{background:var(--panel-alt)}.toolbar .count{color:var(--text-dim);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip{background:#fff;border:1px solid var(--border);padding:5px 12px;font-size:12px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip:hover{background:var(--panel-alt)}.chip.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.chip .n{opacity:.65;font-variant-numeric:tabular-nums}.chip.active .n{opacity:.85}.card{background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}table.data thead th{background:var(--panel-alt);color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em;position:sticky;top:0;z-index:1;-webkit-user-select:none;user-select:none}table.data thead th.sortable{cursor:pointer}table.data thead th.sortable:hover{color:var(--text)}table.data thead th .arrow{color:var(--primary);margin-left:4px}table.data tbody tr{cursor:pointer}table.data tbody tr:hover td{background:var(--panel-alt)}table.data tbody tr.empty{cursor:default}table.data tbody tr.empty td{padding:32px;text-align:center;color:var(--text-dim)}.dim{color:var(--text-dim);font-size:11px}.state-badge{display:inline-block;padding:3px 10px;border-radius:999px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em}.paginator{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--border);background:var(--panel-alt);font-size:12px;color:var(--text-dim)}.paginator button{border:1px solid var(--border);background:#fff;padding:5px 10px;font-size:12px;border-radius:3px;margin-left:4px}.paginator button:hover:not(:disabled){background:var(--panel-alt)}.paginator button:disabled{opacity:.4;cursor:not-allowed}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:18px}.tile{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px 16px}.tile .label{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.tile .value{font-size:24px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}.tile .sub{color:var(--text-dim);font-size:12px;margin-top:2px}.placeholder{background:var(--panel);border:1px dashed var(--border-strong);border-radius:6px;padding:48px 24px;text-align:center;color:var(--text-dim)}.placeholder h3{font-size:16px;color:var(--text);margin-bottom:6px;font-weight:600}.detail{display:grid;grid-template-columns:1fr 300px;gap:16px}@media (max-width: 900px){.detail{grid-template-columns:1fr}}.detail-main{display:flex;flex-direction:column;gap:14px}.detail-side{position:sticky;top:calc(var(--topbar-h) + 12px);align-self:start;display:flex;flex-direction:column;gap:10px}.section{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px 18px}.section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:12px}.section .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;font-size:13px}.section .grid .k{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.hero{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px 18px;display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}.hero h2{font-size:22px;font-weight:600}.hero .meta{color:var(--text-dim);font-size:12px}.hero .grace{background:#fef3c7;color:#92400e;padding:5px 12px;border-radius:4px;font-size:12px}.action-panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:6px}.action-panel h4{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:4px}.action-panel button{padding:8px 12px;font-size:13px;border-radius:4px;border:1px solid var(--border);background:#fff;color:var(--text);text-align:left;display:flex;align-items:center;gap:8px}.action-panel button:hover:not(:disabled){background:var(--panel-alt)}.action-panel button:disabled{opacity:.4;cursor:not-allowed}.action-panel button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.action-panel button.release{background:var(--success);color:#fff;border-color:var(--success)}.action-panel button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.action-panel button .kbd{margin-left:auto;font-size:10px;opacity:.6}.files-list{display:flex;flex-direction:column;gap:4px}.files-list a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--panel-alt);border-radius:4px;text-decoration:none;color:var(--text);font-size:13px;border-left:3px solid var(--primary)}.files-list a:hover{background:#eef2ff}.files-list .cat{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.timeline{position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--border)}.timeline .step{position:relative;padding:4px 0 12px;font-size:13px}.timeline .step:before{content:"";position:absolute;left:-18px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid var(--primary)}.timeline .step .t{color:var(--text-dim);font-size:11px}.timeline .step .lbl{font-weight:500}.timeline .step .reason{color:var(--text-dim);font-size:12px}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:#111827;color:#fff;padding:10px 14px;border-radius:4px;font-size:13px;box-shadow:var(--shadow-md);min-width:240px;display:flex;align-items:center;gap:10px}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.toast.info{background:var(--primary)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182799;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--panel);border-radius:8px;box-shadow:var(--shadow-md);padding:22px 24px;max-width:520px;width:100%;max-height:90vh;overflow:auto}.modal h3{font-size:16px;font-weight:600;margin-bottom:12px}.modal .fld{margin-bottom:12px}.modal .foot{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal button{padding:8px 14px;font-size:13px;border-radius:4px;border:1px solid var(--border);background:#fff}.modal button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.modal button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}
