:root{--orange:#fc7105;--orange-dk:#d45f02;--orange-tint:#ffe9d9;--orange-tint2:#fff4ec;--grey:#787172;--charcoal:#3a3637;--grey-dk:#4a4546;--grey-mid:#b9b5b6;--grey-lt:#e4e1e1;--grey-bg:#f3f2f2;--bg:var(--grey-bg);--panel:#fff;--ink:var(--charcoal);--muted:var(--grey);--line:var(--grey-lt);--accent:var(--orange);--accent-ink:#fff;--hot:var(--orange-dk);--warm:#b85300;--cold:var(--grey);--ok:var(--charcoal);--bad:#8f3400}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,Segoe UI,Inter,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.nav{background:var(--grey-dk);color:#e4e1e1;flex-direction:column;gap:4px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow:auto}.nav .brand{padding:6px 10px 14px}.nav .brand img{width:120px;display:block}.nav .brand-sub{color:#fff;opacity:.8;letter-spacing:.6px;text-transform:uppercase;margin-top:6px;font-size:11px;font-weight:500;display:block}.nav .group{text-transform:uppercase;color:var(--grey-mid);padding:12px 10px 4px;font-size:11px}.nav a{border-radius:6px;padding:8px 10px;display:block}.nav a:hover{background:var(--charcoal);color:#fff}.nav a.active{background:var(--accent);color:#fff}.nav .user{border-top:1px solid var(--grey);margin-top:auto;padding:10px;font-size:12px}.main{max-width:1400px;padding:20px 26px}h1{margin:0 0 4px;font-size:20px}.sub{color:var(--muted);margin:0 0 16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grow{flex:1}.right{margin-left:auto}.cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:18px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.card .k{color:var(--muted);font-size:12px}.card .v{margin-top:4px;font-size:22px;font-weight:600}.card.alert .v{color:var(--bad)}.card.click{cursor:pointer}.card.click:hover{border-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;padding:14px 16px}.panel h2{margin:0 0 10px;font-size:15px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px}tr.click{cursor:pointer}tr.click:hover td{background:var(--orange-tint2)}td.num,th.num{text-align:right;white-space:nowrap}.chip{border:1px solid var(--line);background:var(--grey-bg);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.chip.hot{background:var(--orange);color:#fff;border-color:var(--orange);font-weight:600}.chip.warm{background:var(--orange-tint);color:var(--warm);border-color:#f7c9a6}.chip.cold{background:var(--grey-lt);color:var(--grey);border-color:var(--grey-mid)}.chip.ok{background:var(--grey-lt);color:var(--charcoal);border-color:var(--grey-mid)}.chip.bad{color:var(--bad);background:#f5dccb;border-color:#e5b391}button,.btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:6px;padding:8px 14px;font-size:14px}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){background:var(--orange-dk)}button.secondary{color:var(--ink);border:1px solid var(--grey-mid);background:#fff}button.secondary:hover:not(:disabled){background:var(--grey-bg)}button.danger{background:var(--bad)}button.ghost{color:var(--accent);background:0 0;padding:4px 8px}input,select,textarea{font:inherit;border:1px solid var(--grey-mid);background:#fff;border-radius:6px;width:100%;padding:8px 10px}textarea{min-height:70px}label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.field{margin-bottom:10px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.board{grid-auto-columns:minmax(220px,1fr);grid-auto-flow:column;gap:10px;padding-bottom:8px;display:grid;overflow-x:auto}.col{background:var(--grey-lt);border-radius:8px;min-height:200px;padding:8px}.col h3{justify-content:space-between;margin:4px 6px 8px;font-size:13px;display:flex}.col .meta{color:var(--muted);font-size:12px;font-weight:400}.oc{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;margin-bottom:8px;padding:8px 10px}.oc:hover{border-color:var(--accent)}.oc .t{font-size:13px;font-weight:600}.oc .m{color:var(--muted);margin-top:2px;font-size:12px}.err{color:var(--bad);background:#f5dccb;border-radius:6px;margin-bottom:10px;padding:8px 12px}.okmsg{background:var(--grey-lt);color:var(--charcoal);border-left:4px solid var(--orange);border-radius:6px;margin-bottom:10px;padding:8px 12px}.login{text-align:center;max-width:400px;margin:10vh auto}.login img{width:200px;margin:6px auto 10px;display:block}.login form{text-align:left}.login .module{color:var(--grey);letter-spacing:.8px;text-transform:uppercase;margin:0 0 14px;font-size:12px}.timeline li{border-bottom:1px solid var(--line);padding:6px 0;list-style:none}.timeline{margin:0;padding:0}.bar{background:var(--grey-lt);border-radius:4px;height:8px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.reasons{color:var(--muted);font-size:12px}.voice{background:var(--charcoal);color:#fff;cursor:pointer;border-radius:999px;padding:10px 16px;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 16px #0003}.modal-bg{z-index:50;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:min(560px,94vw);max-height:90vh;padding:18px 20px;overflow:auto}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}@media (width<=900px){.shell{grid-template-columns:1fr}.nav{z-index:20;flex-flow:wrap;gap:2px;height:auto;padding:8px 10px;position:sticky;top:0}.nav .brand{align-items:center;gap:10px;width:100%;padding:4px 8px;display:flex}.nav .brand img{width:84px}.nav .brand-sub{margin:0}.nav a{padding:6px 9px;font-size:13px}.nav .group,.nav .user{display:none}.grid2,.grid3{grid-template-columns:1fr}.main{padding:14px 16px}}input:focus,select:focus,textarea:focus{outline:2px solid var(--orange-tint);border-color:var(--orange)}.install-banner{border:1px solid var(--grey-mid);border-top:4px solid var(--orange);z-index:60;background:#fff;border-radius:10px;width:min(420px,94vw);padding:12px 16px;font-size:13px;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #3a363740}.install-banner b{margin-bottom:4px;display:block}.install-banner .row{margin-top:8px}
