@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--ink: #1b2a41;--ink-soft: #3d4a5e;--paper: #fafaf7;--card: #ffffff;--line: #d9dbd4;--line-strong: #b9bcb3;--grey: #5c6470;--amber: #e8a33d;--amber-ink: #7a4d00;--amber-soft: #fff4dd;--red: #b3261e;--red-soft: #fbe9e7;--green: #2f6f4e;--green-soft: #e6f2ea;--plate-blue: #003399;--radius: 6px;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-feature-settings:"tnum" 1;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--ink)}h1,h2,h3{margin:0;line-height:1.2;font-weight:600}h1{font-size:1.75rem;letter-spacing:-.01em}h2{font-size:1.15rem}p{margin:0}.muted{color:var(--grey)}.small{font-size:.875rem}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.topbar{background:var(--ink);color:#fff;padding:0 1.25rem;display:flex;align-items:center;gap:1.5rem;height:3.25rem;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:600;font-size:1.05rem;color:#fff;text-decoration:none;letter-spacing:.02em}.topbar nav{display:flex;gap:.25rem;flex:1;min-width:0;overflow-x:auto}.topbar nav a{color:#cfd6e2;text-decoration:none;padding:.4rem .7rem;border-radius:var(--radius);white-space:nowrap}.topbar nav a:hover{color:#fff;background:#ffffff14}.topbar nav a.active{color:#fff;background:#ffffff24}.topbar .right{display:flex;align-items:center;gap:.75rem}.topbar select{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius);padding:.25rem .4rem;font:inherit;font-size:.85rem}.topbar select option{color:var(--ink)}.topbar .user{font-size:.85rem;color:#cfd6e2;max-width:14rem;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:960px;margin:0 auto;padding:2rem 1.25rem 4rem}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-head p{margin-top:.35rem;max-width:60ch}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.card+.card{margin-top:1rem}.card-body{padding:1.25rem}.card-head{padding:.9rem 1.25rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-weight:500;color:var(--grey);font-size:.85rem;padding:.6rem 1rem;border-bottom:1px solid var(--line)}.table td{padding:.75rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table .actions{text-align:right;white-space:nowrap}.table-wrap{overflow-x:auto}.row-link{cursor:pointer}.row-link:hover td{background:#f4f5f1}.row-hidden td{color:var(--grey)}.empty{padding:2.5rem 1.25rem;text-align:center;color:var(--grey)}.form{display:grid;gap:1rem}.form-row{display:grid;gap:1rem;align-items:start;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.field{display:grid;gap:.3rem}.field label{font-size:.875rem;font-weight:500;color:var(--ink-soft)}.field label .opt{font-weight:400;color:var(--grey)}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius);padding:.55rem .7rem;width:100%}textarea{min-height:5rem;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #1b2a411f}.field .hint{font-size:.8rem;color:var(--grey)}.field .error{font-size:.8rem;color:var(--red)}.form-actions{display:flex;gap:.6rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}.btn{font:inherit;font-weight:500;border-radius:var(--radius);padding:.5rem .9rem;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;line-height:1.2;white-space:nowrap}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:#0f1a2c}.btn-accent{background:var(--amber);color:#2b1d00}.btn-accent:hover:not(:disabled){background:#d8932f}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover:not(:disabled){background:#f1f2ee}.btn-link{background:none;border:0;color:var(--ink-soft);padding:.3rem .4rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit}.btn-link.danger{color:var(--red)}.btn-sm{padding:.3rem .6rem;font-size:.85rem}.alert{padding:.8rem 1rem;border-radius:var(--radius);border:1px solid;font-size:.925rem}.alert-warn{background:var(--amber-soft);border-color:#f0cd8a;color:var(--amber-ink)}.alert-error{background:var(--red-soft);border-color:#f0b8b3;color:var(--red)}.alert-ok{background:var(--green-soft);border-color:#bcd9c7;color:var(--green)}.alert a{color:inherit}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;font-size:.8rem;font-weight:500;border:1px solid}.chip-ok{background:var(--green-soft);border-color:#bcd9c7;color:var(--green)}.chip-expired{background:var(--red-soft);border-color:#f0b8b3;color:var(--red)}.chip-neutral{background:#f1f2ee;border-color:var(--line);color:var(--ink-soft)}.chip-change{background:var(--amber-soft);border-color:#f0cd8a;color:var(--amber-ink);font-weight:400}.chip-change b{font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.plate{display:inline-flex;align-items:stretch;border:1.5px solid #222;border-radius:4px;background:#fff;color:#111;font-weight:600;letter-spacing:.06em;font-size:.9rem;line-height:1;overflow:hidden;vertical-align:middle}.plate:before{content:"E";background:var(--plate-blue);color:#fff;font-size:.55rem;font-weight:500;padding:0 .28rem .15rem;display:flex;align-items:flex-end;letter-spacing:0}.plate span{padding:.3rem .5rem}.plate-lg{font-size:1.15rem}.deca-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1rem;align-items:start}@media (max-width: 720px){.deca-grid{grid-template-columns:1fr}}.qr-panel{text-align:center;padding:1.25rem}.qr-panel img{width:100%;max-width:220px;height:auto;image-rendering:pixelated;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.qr-panel .link{font-size:.75rem;word-break:break-all;color:var(--grey);margin-top:.5rem}.kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem}.kv dt{color:var(--grey);font-size:.875rem;padding-top:.1rem}.kv dd{margin:0}@media (max-width: 520px){.kv{grid-template-columns:1fr;gap:.1rem 0}.kv dd{margin-bottom:.6rem}}.versions{list-style:none;margin:0;padding:0}.versions li{padding:1rem 1.25rem;border-top:1px solid var(--line);display:grid;gap:.5rem}.versions .v-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.versions .v-head .n{font-weight:600}.versions .v-actions{display:flex;gap:.5rem;flex-wrap:wrap}.versions .v-qr{width:64px;height:64px;border:1px solid var(--line);border-radius:4px;image-rendering:pixelated}.version-row{display:grid;grid-template-columns:64px 1fr;gap:1rem;align-items:start}@media (max-width: 520px){.version-row{grid-template-columns:1fr}}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:1rem}.tabs button{font:inherit;background:none;border:0;border-bottom:2px solid transparent;padding:.6rem 1rem;cursor:pointer;color:var(--grey);font-weight:500;margin-bottom:-1px}.tabs button.active{color:var(--ink);border-bottom-color:var(--amber)}.login{min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem}.login-box{max-width:26rem;width:100%;display:grid;gap:1.25rem}.login-box .mark{width:56px;height:40px;border:2px solid var(--ink);border-radius:5px;display:flex;overflow:hidden}.login-box .mark i{display:block;width:14px;background:var(--plate-blue)}.login-box .mark b{flex:1;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.08em;font-size:.85rem}.login-box h1{font-size:2rem}.login-box p{max-width:38ch}.toolbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.checkbox{display:inline-flex;align-items:center;gap:.45rem;font-size:.925rem;color:var(--ink-soft);cursor:pointer}.checkbox input{width:auto}@media (prefers-reduced-motion: no-preference){.btn,.tabs button,.row-link td{transition:background-color .12s ease,color .12s ease}}
