:root{--bg:#f5f7fb;--panel:#fff;--ink:#19202d;--muted:#748094;--line:#e6eaf0;--accent:#3759e8;--danger:#d44747}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;background:#111826;color:#fff;padding:24px 16px;display:flex;flex-direction:column}
.brand,.auth-brand{display:flex;gap:12px;align-items:center}.brand{padding:0 8px 28px}.logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff;color:#111826;font-size:24px}.brand b{display:block}.brand small{color:#8d99ac}
nav{display:grid;gap:5px}nav a{color:#aeb8c8;text-decoration:none;padding:11px 13px;border-radius:10px}nav a:hover,nav a.active{background:#202a3d;color:#fff}.aside-foot{margin-top:auto;color:#8d99ac;font-size:12px;padding:8px;display:grid;gap:7px}.aside-foot span{display:block}.logout{background:none;color:#aeb8c8;padding:0;font-weight:500}
main{padding:36px;max-width:1250px;width:100%;margin:auto}header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}h1{font-size:30px;margin:0 0 4px}header p,.hint{color:var(--muted);margin:0}.back{display:block;margin-bottom:8px;color:var(--accent);text-decoration:none}
.card,.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 5px 20px rgba(35,45,70,.035)}.card h2,.mini-card h2{margin:0 0 18px;font-size:18px}.card h3{font-size:20px}.muted{background:#fafbfc;color:#5f6877}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat span,.stat small{display:block;color:var(--muted)}.stat b{display:block;font-size:25px;margin:5px 0}
.health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.health{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;gap:11px;align-items:center}.health small{display:block;color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;background:#aaa}.dot.up{background:#22a06b;box-shadow:0 0 0 4px #e3f5ed}.dot.down{background:#d44747}.dot.off{background:#9ca5b3}.dot.warn{background:#df9a22}
.route-flow{display:grid;grid-template-columns:1fr auto 1.3fr auto 1fr 1fr;gap:12px;align-items:center}.route-flow>div{border:1px solid var(--line);padding:14px;border-radius:12px}.route-flow small{display:block;color:var(--muted)}.route-flow .ru{border-color:#f0d6da}.route-flow .eu{border-color:#d8def4}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.user-link{font-weight:650;color:var(--ink);text-decoration:none}.empty{text-align:center;color:var(--muted);padding:32px}
.pill{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;background:#eef0f4;color:#596273}.pill.green{background:#e3f5ed;color:#126c4a}.pill.red{background:#fbe7e7;color:#a93434}.pill.blue,.pill.eu{background:#e8ecfb;color:#304eae}.pill.ru{background:#f9e6e9;color:#9a3445}.pill.gray{background:#eef0f4;color:#657081}
.form-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.grow{flex:1}.form-row label{min-width:160px}.service-form textarea,.service-card textarea{width:100%}label{display:grid;gap:6px;font-size:13px;color:#657081;margin-bottom:12px}label.check{display:flex;align-items:center;gap:7px;padding-bottom:10px;min-width:auto}
input,select,textarea{font:inherit;border:1px solid #d9dee7;border-radius:9px;padding:10px 11px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#92a4ed;box-shadow:0 0 0 3px #edf0ff}
button,.button,.ghost{display:inline-block;border:0;background:var(--accent);color:#fff;text-decoration:none;font:600 14px system-ui;border-radius:9px;padding:10px 14px;cursor:pointer}.secondary,.ghost{background:#edf0f5;color:#3d4654}.danger{background:#f8e7e7;color:#aa3535}.wide{width:100%}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions form{margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.protocol{display:flex;justify-content:space-between;gap:30px}.qr img{width:220px;max-width:100%;image-rendering:pixelated}.flash{padding:12px 15px;border-radius:10px;margin-bottom:18px}.flash.ok{background:#e3f5ed;color:#126c4a}.flash.err{background:#fbe7e7;color:#a93434}.warning{padding:11px 13px;border-radius:9px;background:#fff4d9;color:#805e15}
.service-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:14px}.service-head>div:first-child{display:flex;align-items:center;gap:9px}.service-head h2{margin:0}
.decision{padding:18px;border-radius:13px;background:#eef0f4;margin-bottom:18px}.decision small,.decision span{display:block}.decision b{display:block;font-size:27px}.decision.moscow{background:#f9e6e9;color:#873142}.decision.europe{background:#e8ecfb;color:#2c4697}code{background:#edf0f4;padding:2px 5px;border-radius:5px}
.auth-page,.enroll-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef1f7}.auth-card,.enroll-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 16px 60px rgba(25,32,45,.10)}.auth-brand{margin-bottom:24px}.auth-brand .logo{background:#111826;color:#fff}.auth-brand h1{font-size:24px;margin:0}.auth-brand p{margin:2px 0 0;color:var(--muted)}.wide-card{width:min(650px,100%)}.mini-card{box-shadow:none;margin-top:20px}.enroll-qr{width:260px;max-width:100%;display:block;margin:16px auto}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;width:100%}
@media(max-width:850px){.shell{grid-template-columns:1fr}aside{position:static;height:auto}.brand{padding-bottom:12px}nav{display:flex;overflow:auto}.aside-foot{display:none}main{padding:20px}.stats,.health-grid,.grid2{grid-template-columns:1fr 1fr}.route-flow{grid-template-columns:1fr}.route-flow i{display:none}}
@media(max-width:560px){.stats,.health-grid,.grid2{grid-template-columns:1fr}.protocol{display:block}.qr{margin-top:20px}}
