:root{--bg: #0d1117;--bg-panel: #161b22;--bg-elev: #1c2230;--border: #2a3040;--text: #e6edf3;--text-dim: #8b98a9;--accent: #3b82f6;--accent-soft: #1e3a5f;--green: #3fb950;--amber: #d29922;--red: #f85149;--radius: 10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.logout{margin-top:auto;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-weight:500;font-size:14px;cursor:pointer;width:100%}.logout:hover{background:var(--bg-elev);color:var(--red);border-color:var(--red)}.auth-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:30px 28px;width:100%;max-width:380px;display:flex;flex-direction:column}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;justify-content:center}.auth-brand .paw{font-size:26px}.auth-sub{text-align:center;color:var(--text-dim);margin:6px 0 20px}.auth-label{color:var(--text-dim);font-weight:600;font-size:13px;margin:12px 0 6px}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;font-weight:700;font-size:16px}.brand .paw{font-size:22px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--text-dim);font-weight:500;margin-bottom:2px}.nav a:hover{background:var(--bg-elev);color:var(--text)}.nav a.active{background:var(--accent-soft);color:#fff}.nav .badge-count{margin-left:auto;font-size:11px;background:var(--red);color:#fff;border-radius:999px;padding:1px 7px}.main{flex:1;min-width:0;padding:26px 30px;max-width:1400px}.page-title{font-size:22px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--text-dim);margin:0 0 22px}.grid{display:grid;gap:14px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media(max-width:1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat .label{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.stat .value{font-size:26px;font-weight:700;margin-top:6px}.stat .value.green{color:var(--green)}.stat .value.amber{color:var(--amber)}.stat .value.red{color:var(--red)}.stat .hint{color:var(--text-dim);font-size:12px;margin-top:4px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.search{flex:1;min-width:220px;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:8px;font-size:14px}.search:focus{outline:none;border-color:var(--accent)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:11px 14px;background:var(--bg-panel);color:var(--text-dim);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}thead th .arrow{color:var(--accent);margin-left:4px}tbody td{padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--bg-elev)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;color:var(--text-dim)}.path{max-width:340px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.badge.running{background:#3fb95029;color:var(--green)}.badge.exited,.badge.dead{background:#f8514929;color:var(--red)}.badge.created,.badge.paused{background:#d2992229;color:var(--amber)}.badge.neutral{background:var(--bg-elev);color:var(--text-dim)}.badge.orphan{background:#f8514929;color:var(--red)}.badge.ok{background:#3fb95029;color:var(--green)}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font-weight:600;font-size:13px;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{background:#f8514924;border-color:var(--red);color:var(--red)}.btn.danger:hover{background:var(--red);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:180px 1fr;gap:14px 18px;align-items:center;max-width:640px}label.field-label{color:var(--text-dim);font-weight:600}.input,select.input{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:8px;font-size:14px;width:100%}.input:focus{outline:none;border-color:var(--accent)}.checkbox-row{display:flex;align-items:center;gap:10px}.notice{padding:12px 16px;border-radius:8px;margin-bottom:16px;border:1px solid}.notice.error{background:#f851491a;border-color:var(--red);color:#ffb4ae}.notice.ok{background:#3fb9501a;border-color:var(--green);color:#9be6a8}.notice.warn{background:#d299221a;border-color:var(--amber);color:#ffd98a}.section-title{font-size:15px;font-weight:700;margin:26px 0 12px}.muted{color:var(--text-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:22px;max-width:560px;width:100%;max-height:84vh;overflow-y:auto}.modal h3{margin:0 0 8px}.modal .items{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;max-height:240px;overflow-y:auto;margin:12px 0;font-size:12px}.modal .items .row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--border)}.modal .items .row:last-child{border-bottom:none}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.spinner{color:var(--text-dim);padding:40px;text-align:center}
