@font-face{font-family:Golos;src:url('/assets/golos-cyrillic.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Golos;src:url('/assets/golos-latin.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#20252b;--muted:#52615c;--line:#c7d0cc;--green:#146b55;--red:#ad3836;--ochre:#805600;--paper:#fff;--subtle:#f3f5f4}
*{box-sizing:border-box;letter-spacing:0}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 Golos,'Segoe UI',sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 16px;background:var(--paper);border:1px solid var(--line);border-radius:4px;cursor:pointer;line-height:1.4}
button:hover{background:var(--subtle);border-color:var(--muted)}
button:disabled{cursor:not-allowed;color:#627169;background:#edf0ee;border-color:#d4dcd7}
button.primary{background:var(--green);color:white;border-color:var(--green)}
button.primary:hover{background:#0b513e}
button.primary:disabled{background:#d9e2dd;color:#4c5b54;border-color:#c5d1ca}
button svg{width:18px;height:18px;flex:none}
a{color:var(--green);text-underline-offset:3px}
:focus-visible{outline:3px solid #805600;outline-offset:3px}
input,select,textarea{display:block;width:100%;min-height:44px;border:1px solid #9caea4;border-radius:4px;background:white;padding:9px 12px}
textarea{resize:vertical;overflow-wrap:anywhere}
input[readonly],textarea[readonly]{background:var(--subtle)}
label{display:block;font-size:14px;font-weight:550;margin:16px 0 6px}
input[type=checkbox]{display:inline-block;width:18px;min-height:18px;accent-color:var(--green)}
.check{display:flex;align-items:center;gap:10px;font-weight:400}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;border-bottom:1px solid var(--line);gap:16px}
.brand{display:flex;align-items:center;gap:12px;font-weight:650;text-decoration:none;color:var(--ink)}
.brand small{display:block;font-size:12px;color:var(--muted);font-weight:400}
main{max-width:1440px;margin:auto;padding:40px 32px}
h1{font-size:28px;line-height:1.2;margin:0;font-weight:650}
h2{font-size:22px;line-height:1.3;margin:0;font-weight:650}
h3{font-size:16px;margin:0 0 12px;font-weight:650}
.eyebrow{font-size:12px;font-weight:600;color:var(--muted);margin:0 0 8px}
.page-title,.actions,.dialog-heading,.pagination,.register-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between}
.actions{justify-content:flex-start;flex-wrap:wrap}
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:32px 0 24px;padding:24px 0;border-block:1px solid var(--line);gap:24px}
.summary dt{color:var(--muted);font-size:14px}
.summary dd{font-size:28px;font-variant-numeric:tabular-nums;margin:4px 0 0;font-weight:600}
#count-active{color:var(--green)}#count-expiring{color:var(--ochre)}#count-expired{color:var(--red)}
.view-buttons{display:flex;gap:4px}
.view-buttons button{border-color:transparent}
.view-buttons button[aria-pressed=true]{background:#edf5f0;color:var(--green);font-weight:650}
.filters{display:flex;align-items:end;gap:16px;margin:8px 0 20px}
.filters>div{min-width:0}.search-field{flex:1}.filters select{min-width:190px}
.muted{color:var(--muted);font-size:13px}
p[role=status]{font-size:14px;margin:12px 0;min-height:21px;color:var(--muted);overflow-wrap:anywhere}
p[role=status].error{color:var(--red)}p[role=status].success{color:var(--green)}
.icon-button{width:42px;flex:none;padding:10px}
table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;table-layout:fixed}
th{padding:12px 16px;background:var(--subtle);color:var(--muted);font-size:12px;font-weight:600;border-block:1px solid var(--line)}
td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
td small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
td:first-child{font-weight:550}tbody tr:hover{background:#fafbf9}
.state{font-weight:550}.state.active{color:var(--green)}.state.expired{color:var(--red)}.state.expiring{color:var(--ochre)}
.row-open{padding:0;min-height:28px;border:0;background:transparent!important;color:var(--green);text-decoration:underline;text-underline-offset:3px;justify-content:flex-start;text-align:left}
.empty{padding:40px 16px;text-align:center;color:var(--muted);border-block:1px solid var(--line)}
.pagination{padding-top:16px;font-size:14px}
.login-view{max-width:400px;margin:40px auto 80px}.login-view h1{margin-bottom:28px}.wide{width:100%}
dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--paper)}
dialog::backdrop{background:#20252b99}.dialog-heading{align-items:flex-start;margin-bottom:20px}.dialog-heading h2{padding-top:5px}
dialog .actions{margin-top:16px}.device-dialog{width:min(920px,calc(100% - 32px))}.device-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}.device-columns section{min-width:0}
.history{padding:0;margin:16px 0;list-style:none}.history li{padding:12px 0;border-top:1px solid var(--line);font-size:14px}.history small{display:block;color:var(--muted);margin-top:4px}
#issued-code,#device-machine,#offline-machine{font:14px/1.6 Consolas,monospace}
#issued{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}
.skip{position:absolute;top:8px;left:8px;transform:translateY(-180%);background:white;padding:12px;z-index:5}.skip:focus{transform:none}
@media(max-width:850px){.page-title{align-items:flex-start;flex-direction:column}.summary{gap:16px}.device-columns{grid-template-columns:1fr}.filters{flex-wrap:wrap}.search-field{flex-basis:100%}.filters>div:not(.search-field){flex:1}}
@media(max-width:640px){.topbar{padding:16px;align-items:flex-start}.brand{font-size:14px}.brand img{width:28px;height:28px}main{padding:24px 16px}.summary{grid-template-columns:1fr 1fr;padding:20px 0;gap:20px 16px}.summary dd{font-size:24px}h1{font-size:24px}.actions{gap:8px}.view-buttons button{padding:8px;font-size:14px}.register-toolbar{gap:4px}.login-view{margin:24px auto}.filters select{min-width:0}dialog{padding:16px}.pagination{flex-wrap:wrap}table,tbody,tr,td{display:block}thead{display:none}tr{padding:8px 0;border-top:1px solid var(--line)}td{border:0;padding:8px 0}td::before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;font-weight:400;margin-bottom:4px}td:first-child{font-size:16px}.empty{padding:28px 8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
