:root{--bg:#f6f7f9;--card:#fff;--text:#1f2328;--muted:#656d76;--line:#d8dee4;--accent:#1f6feb;--accent-ink:#fff;
--ok:#1a7f37;--warn:#9a6700;--bad:#cf222e;--note:#fff8c5;--note-line:#e3c64a;--tech:#eef4ff}
@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--card:#161b22;--text:#e6edf3;--muted:#8d96a0;--line:#30363d;
--accent:#2f81f7;--note:#2b2412;--note-line:#6b5a1e;--tech:#121d2f}}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 "Segoe UI",system-ui,-apple-system,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:var(--card);border-bottom:1px solid var(--line)}
header.top .in{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
header.top .brand{font-weight:700;font-size:16px;color:var(--text)}
header.top nav{display:flex;gap:14px;flex-wrap:wrap}
header.top .who{margin-left:auto;color:var(--muted);font-size:13px}
main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:22px;margin:0 0 16px}h2{font-size:16px;margin:0 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
.narrow{max-width:420px;margin:60px auto}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.grid{display:grid;grid-template-columns:1fr 300px;gap:16px}
@media (max-width:820px){.grid{grid-template-columns:1fr}}
label{display:block;font-weight:600;font-size:13px;margin:10px 0 4px}
label.inline{display:flex;gap:6px;align-items:center;font-weight:400;margin:8px 0}
input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{
width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text);font:inherit}
textarea{min-height:130px;resize:vertical}
button,.btn{display:inline-block;padding:8px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);
color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}
button.secondary,.btn.secondary{background:transparent;color:var(--accent)}
button:hover,.btn:hover{text-decoration:none;filter:brightness(1.08)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto}
.muted{color:var(--muted)}.small{font-size:12px}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line);white-space:nowrap}
.s-open{color:var(--accent);border-color:var(--accent)}.s-in_progress{color:var(--warn);border-color:var(--warn)}
.s-waiting_on_client{color:var(--muted)}.s-resolved,.s-closed{color:var(--ok);border-color:var(--ok)}
.p-urgent{color:#fff;background:var(--bad);border-color:var(--bad)}.p-high{color:var(--bad);border-color:var(--bad)}
.p-low{color:var(--muted)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.tabs a{padding:6px 12px;border-bottom:2px solid transparent;color:var(--muted)}
.tabs a.on{border-color:var(--accent);color:var(--text);font-weight:600}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px;border:1px solid var(--line);background:var(--card)}
.flash.ok{border-color:var(--ok)}.flash.error{border-color:var(--bad);color:var(--bad)}
.msg{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;background:var(--card)}
.msg .head{padding:8px 12px;border-bottom:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;font-size:13px}
.msg .body{padding:12px;white-space:pre-wrap;word-wrap:break-word}
.msg.tech{background:var(--tech)}.msg.internal{background:var(--note);border-color:var(--note-line)}
.msg.system{border-style:dashed}.msg.system .body{color:var(--muted);font-style:italic;padding:8px 12px}
.files{padding:0 12px 10px;display:flex;gap:8px;flex-wrap:wrap}
.files a{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:3px 8px}
.stat{font-size:12px;color:var(--muted)}.stat b{font-size:18px;color:var(--text);display:block}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:6px}
dl{margin:0}dt{font-size:12px;color:var(--muted);margin-top:8px}dd{margin:0}
