
@font-face{font-family:Roboto;font-weight:400;font-style:normal;font-display:swap;src:url(/static/fonts/roboto-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Roboto;font-weight:500;font-style:normal;font-display:swap;src:url(/static/fonts/roboto-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Roboto;font-weight:700;font-style:normal;font-display:swap;src:url(/static/fonts/roboto-latin-700-normal.woff2) format("woff2")}
:root{--bg:#f8f9fa;--fg:#212529;--muted:#696871;--card:#fff;--line:#dee2e6;--brand:#f04037;--brandtext:#d83a32;--brandhover:#b32f28;
--gron:#0f5132;--gronbg:#d1e7dd;--gronline:#198754;--gul:#664d03;--gulbg:#fff3cd;--gulline:#d19a00;
--rod:#842029;--rodbg:#f8d7da;--rodline:#dc3545;--gra:#41464b;--grabg:#e9ecef;--graline:#adb5bd}
@media (prefers-color-scheme:dark){:root{--bg:#141416;--fg:#f1f1f3;--muted:#a3a3ad;--card:#1e1e22;--line:#34343a;--brandtext:#ff8a83;--brandhover:#ffb0aa;
--gron:#8fd9ad;--gronbg:#12301f;--gronline:#2e9462;--gul:#f2cf6d;--gulbg:#3a2f0b;--gulline:#b58a14;
--rod:#ff9aa2;--rodbg:#42171b;--rodline:#d6485a;--gra:#c4c7cc;--grabg:#2a2b30;--graline:#5d6068}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.55 Roboto,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;border-top:4px solid var(--brand);-webkit-font-smoothing:antialiased}
a{color:var(--fg);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--brandtext)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
header{background:var(--card);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--fg)}.brand:hover{color:var(--fg)}
.logo{height:22px;width:auto;fill:currentColor;display:block}
.brand .sep{width:1px;height:24px;background:var(--line)}.brand .app{font-weight:500;letter-spacing:.02em;color:var(--muted)}
.userbar{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.userbar form{display:flex;align-items:center;gap:12px;margin:0}
.who strong{color:var(--fg);font-weight:500}.role{display:inline-block;padding:1px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;margin-left:6px}
.role.bg{border-color:var(--rodline);color:var(--rod);background:var(--rodbg)}
main.wrap{padding:32px 20px 56px}
h1{font-size:34px;line-height:1.15;font-weight:700;margin:0 0 6px;letter-spacing:-.01em}
h2{font-size:22px;font-weight:700;margin:0 0 12px}h3{font-size:17px;font-weight:700;margin:0 0 10px}h4{font-size:14px;font-weight:500;color:var(--muted);margin:18px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.lead{color:var(--muted);margin:0 0 24px}.muted{color:var(--muted)}
.banner{background:var(--gulbg);color:var(--gul);border:1px solid var(--gulline);border-left-width:5px;padding:12px 16px;border-radius:6px;margin:0 0 20px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:0 0 24px}
.tile{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--graline);border-radius:6px;padding:14px 18px}
.tile .n{font-size:34px;font-weight:700;line-height:1.1}.tile .l{color:var(--muted);font-size:14px}
.tile.gron{border-left-color:var(--gronline)}.tile.gul{border-left-color:var(--gulline)}.tile.rod{border-left-color:var(--rodline)}
.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb,var(--bg) 60%,var(--card))}
tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb,var(--bg) 55%,var(--card))}
td .name{font-weight:500}td ul{margin:6px 0 0;padding-left:18px;font-size:14px;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 11px 2px 9px;border-radius:999px;font-weight:500;font-size:13px;border:1px solid transparent;white-space:nowrap}
.badge i{font-style:normal;font-weight:700}
.gron{background:var(--gronbg);color:var(--gron);border-color:var(--gronline)}.gul{background:var(--gulbg);color:var(--gul);border-color:var(--gulline)}
.rod{background:var(--rodbg);color:var(--rod);border-color:var(--rodline)}.gra{background:var(--grabg);color:var(--gra);border-color:var(--graline)}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px 22px;margin:0 0 16px}
.card ul{margin:4px 0 0;padding-left:20px}code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--grabg);padding:1px 6px;border-radius:4px;word-break:break-all}
.nav{display:flex;gap:18px;margin-right:auto;margin-left:28px}.nav a{text-decoration:none;color:var(--muted);font-weight:500}.nav a:hover{color:var(--fg)}
.radio{display:inline-flex;align-items:center;gap:5px;margin-right:12px;font-weight:400;white-space:nowrap}.radio input{width:auto;max-width:none;margin:0}
td input[type=text],td input[type=date]{max-width:210px;padding:7px 9px}.small{font-size:13px}
.devchip{display:inline-block;margin:4px 6px 0 0;padding:1px 9px;border-radius:999px;border:1px solid var(--gulline);background:var(--gulbg);color:var(--gul);font-size:12px;font-weight:500}
pre{background:var(--grabg);padding:14px;border-radius:6px;overflow:auto;font:13px ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-word}
.back{display:inline-block;margin-bottom:14px;color:var(--muted)}
.titlerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.titlerow h1{margin:0}
.btn,button{display:inline-block;padding:9px 18px;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--fg);font:500 15px/1.2 inherit;font-family:inherit;cursor:pointer;text-decoration:none}
.btn:hover,button:hover{border-color:var(--fg);color:var(--fg)}
.btn.primary,button.primary{background:#d83a32;border-color:#d83a32;color:#fff}.btn.primary:hover,button.primary:hover{background:#b32f28;border-color:#b32f28;color:#fff}
input{width:100%;max-width:340px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);font:inherit}
label{font-weight:500}
.auth{max-width:460px;margin:48px auto 0}.auth .logo{height:30px;margin-bottom:26px}.auth h1{font-size:30px}
@media (max-width:760px){.tiles{grid-template-columns:repeat(2,1fr)}.tile .n{font-size:28px}th:nth-child(n+3),td:nth-child(n+3){display:none}h1{font-size:28px}.userbar{font-size:13px}}
@media (prefers-reduced-motion:no-preference){a,button,.btn{transition:color .15s,background-color .15s,border-color .15s}}
