:root{--bg: #16181d;--surface: #1e2128;--surface-2: #262a33;--border: #333844;--text: #e8eaed;--text-dim: #9aa1ad;--accent: #d4813f;--accent-dim: #a5652f;--slate: #6b7280;--blue: #3b82f6;--violet: #8b5cf6;--amber: #f59e0b;--green: #10b981;--red: #ef4444;--radius: 8px;--gap: 16px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 12px;line-height:1.25;font-weight:600}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}.app-shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:var(--gap);padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .brand{display:flex;align-items:center;gap:10px;white-space:nowrap;color:var(--text)}.topbar .brand:hover{text-decoration:none}.topbar .brand-logo{height:26px;width:auto;display:block}.topbar .brand-text{font-weight:700;font-size:14px;letter-spacing:.02em;padding-left:10px;border-left:1px solid var(--border)}.topbar nav{display:flex;gap:4px;flex:1;overflow-x:auto}.topbar nav a{padding:8px 12px;border-radius:var(--radius);color:var(--text-dim);white-space:nowrap;font-size:14px}.topbar nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.topbar nav a.router-link-active{background:var(--surface-2);color:var(--text)}.page{padding:20px;max-width:1400px;width:100%;margin:0 auto;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);margin-bottom:var(--gap);flex-wrap:wrap}.grid{display:grid;gap:var(--gap)}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card.tight{padding:12px}.card h2,.card h3{margin-bottom:12px}.stat{text-align:left}.stat .value{font-size:30px;font-weight:700;line-height:1.1}.stat .label{color:var(--text-dim);font-size:13px;margin-top:4px}.muted{color:var(--text-dim)}.small{font-size:13px}.right{text-align:right}.nowrap{white-space:nowrap}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}button,.btn{font:inherit;font-size:14px;padding:9px 14px;min-height:40px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}button:hover:not(:disabled),.btn:hover{background:#303540;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#16181d;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-dim)}button.danger{border-color:var(--red);color:var(--red);background:transparent}button.small{min-height:32px;padding:5px 10px;font-size:13px}button.link{background:none;border:none;color:var(--accent);padding:0;min-height:0}input,select,textarea{font:inherit;font-size:15px;width:100%;padding:9px 11px;min-height:40px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{min-height:90px;resize:vertical}label{display:block;font-size:13px;color:var(--text-dim);margin-bottom:5px}.field{margin-bottom:14px}.field-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:20px;height:20px;min-height:20px;flex:none}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tbody tr:hover{background:var(--surface-2)}tbody tr.clickable{cursor:pointer}.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid currentColor}.pill.slate{color:var(--slate)}.pill.blue{color:var(--blue)}.pill.violet{color:var(--violet)}.pill.amber{color:var(--amber)}.pill.green{color:var(--green)}.pill.red{color:var(--red)}.tag{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--surface-2);color:var(--text-dim);font-size:12px}.alert{padding:10px 14px;border-radius:var(--radius);border:1px solid var(--red);color:var(--red);background:#ef444414;font-size:14px}.alert.ok{border-color:var(--green);color:var(--green);background:#10b98114}.empty{padding:32px;text-align:center;color:var(--text-dim)}.gallery{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.gallery figure{margin:0}.gallery img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.gallery figcaption{font-size:12px;color:var(--text-dim);margin-top:4px}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.checklist li:last-child{border-bottom:none}.checklist input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:none;margin-top:1px}.checklist .item-note{display:block;font-size:12px;color:var(--text-dim)}.timeline{list-style:none;margin:0;padding:0;font-size:14px}.timeline li{padding:8px 0 8px 14px;border-left:2px solid var(--border);position:relative}.timeline li:before{content:"";position:absolute;left:-5px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--accent)}@media(max-width:640px){.page{padding:14px}.topbar{padding:10px 14px;gap:10px}.topbar .brand-text{display:none}.topbar .brand-logo{height:22px}}
