
:root{color-scheme:dark;font:14px/1.5 system-ui,sans-serif;background:#070d10;color:#e8f1ef;--muted:#8caaa4;--green:#68f4ad;--line:#ffffff12}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 0%,#12433255,transparent 45%);min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}button,summary{cursor:pointer}button:disabled{opacity:.45;cursor:wait}button{border:1px solid var(--line);border-radius:8px;padding:10px 16px;color:#dceae5;background:#162522;transition:background .2s}button:hover{background:#233a32}input{background:#080f12;border:1px solid #ffffff22;color:#e8f1ef;border-radius:8px;padding:11px 14px;min-width:0}input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}.app-header{height:88px;max-width:1440px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font-size:20px;letter-spacing:-1px;gap:5px}.brand img{margin-right:8px}.brand strong{font-weight:400;color:#9bb8ae}.header-right{display:flex;align-items:center;gap:30px;color:#a6bdb5;font-size:12px}.owner-badge{font:10px monospace;letter-spacing:1.3px;border:1px solid #68f4ad35;color:var(--green);border-radius:30px;padding:7px 12px}main{max-width:1344px;padding:56px 48px 32px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.eyebrow{font:10px monospace;letter-spacing:2.5px;color:var(--green);margin:0 0 12px}h1{font:500 clamp(42px,5vw,64px)/1.05 system-ui,sans-serif;letter-spacing:-3px;margin:0}h1 span{color:var(--green)}.intro{color:var(--muted);margin:16px 0 0;font-size:15px}.secondary{background:#ffffff05;color:#b3ccc1}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.metric{padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(130deg,#142126,#0c1418)}.metric>span{color:#b3c8c0;font-size:12px;display:block}.metric strong{display:block;font:500 42px/1.2 system-ui,sans-serif;letter-spacing:-2px;margin:14px 0 8px}.metric small{font-size:11px;color:#77948a}.metric-active{background:linear-gradient(130deg,#183e2f,#10251f);border-color:#68f4ad40}.metric-active strong{color:var(--green)}.licence-panel{border:1px solid var(--line);border-radius:16px;background:#0c1519b8;overflow:hidden}.panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.filters{display:flex;gap:4px;flex-wrap:wrap}.filters button{border-color:transparent;background:none;color:var(--muted);font-size:12px;padding:9px 12px}.filters .selected{background:#68f4ad15;color:var(--green);border-color:#68f4ad22}#search{width:230px;font-size:12px}#status{margin:0;padding:12px 24px;color:var(--green);background:#68f4ad09;font-size:12px}#status:empty{display:none}.error{color:#ffb5b5!important}.licence-row{display:grid;grid-template-columns:minmax(200px,1.6fr) minmax(155px,1fr) minmax(130px,.8fr) minmax(130px,.8fr);align-items:center;gap:24px;padding:28px 24px;border-bottom:1px solid var(--line);position:relative}.licence-row.active{background:linear-gradient(90deg,#68f4ad08,transparent);box-shadow:inset 3px 0 var(--green)}.identity{display:flex;gap:14px;align-items:center;min-width:0}.avatar{flex-shrink:0;width:40px;height:40px;display:grid;place-items:center;background:#20332f;color:#a5c7b8;border:1px solid #ffffff10;border-radius:12px;font:12px monospace}.active .avatar{background:#68f4ad15;color:var(--green)}.identity-details{min-width:0}h2{font-size:13px;font-weight:600;margin:0;overflow-wrap:anywhere}.request-date{font-size:10px;color:#78968c;margin:5px 0 0}.badge{display:inline-flex;border:1px solid #ffffff18;background:#ffffff05;border-radius:30px;padding:5px 10px;color:#9eb5ac;font-size:11px;font-weight:600;white-space:nowrap}.badge.active{color:#82ffc0;background:#68f4ad16;border-color:#68f4ad35}.badge.pending{color:#efc780;background:#efc7800c;border-color:#efc78025}.badge.ended{color:#cba2a4;background:#cba2a408}.remaining{font-size:11px;color:#8ea99d;margin:7px 0 0}.active .remaining{color:#9fdab8}.expiration{display:grid;gap:3px}.field-label{font:9px monospace;letter-spacing:1.4px;color:#6f8e82}.expiry-date{font-size:13px;font-weight:500}.expiry-time{font-size:11px;color:#78968c}.licence-editor>summary{list-style:none;white-space:nowrap;font-size:12px;color:#b4d3c4;border:1px solid #ffffff1c;border-radius:8px;padding:10px 12px;text-align:center}.licence-editor>summary::-webkit-details-marker{display:none}.licence-editor[open]{grid-column:1/-1}.licence-editor[open]>summary{width:max-content;margin-bottom:16px;color:var(--green)}.licence-editor form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:20px;background:#050b0e80;border:1px solid var(--line);border-radius:10px}.licence-editor label{display:grid;gap:7px;font-size:11px;color:var(--muted)}.presets{display:flex;gap:5px}.presets button{font-size:11px;padding:12px 9px;background:transparent;color:#a4c4b4}.primary{background:var(--green);color:#092519;font-weight:600;border-color:var(--green)}.primary:hover{background:#9affc9}.revoke{color:#e9a4a4;background:#dc77770b;border-color:#dc777725}.panel-footer{display:flex;justify-content:space-between;padding:16px 24px;font-size:10px;color:#6f8d82}.audit-note{font-size:11px;color:#6b887e;margin:20px 0}.empty-state{padding:64px 24px;text-align:center;color:var(--muted)}
@media(max-width:1050px){main{padding:36px 24px}.app-header{padding:0 24px}.licence-row{grid-template-columns:minmax(180px,1.6fr) 1fr 1fr;gap:18px}.licence-editor{grid-column:1/-1}.licence-editor>summary{width:max-content}.metrics{gap:10px}.metric{padding:18px}.panel-toolbar{flex-wrap:wrap}}
@media(max-width:600px){.app-header{height:72px;padding:0 20px}.owner-badge{display:none}.header-right{font-size:11px}main{padding:32px 16px}.page-heading{gap:12px}h1{font-size:46px}.intro{font-size:12px;max-width:220px}.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:34px}.metric small{font-size:10px}.panel-toolbar{padding:16px;gap:12px}.filters{gap:0}.filters button{font-size:11px;padding:8px}#search{width:100%}.licence-row{padding:22px 18px;grid-template-columns:1fr 1fr;gap:18px}.identity{grid-column:1/-1}.licence-editor>summary{width:100%}.panel-footer{padding:16px;gap:12px;flex-wrap:wrap}.presets{width:100%}.licence-editor form{padding:14px}.licence-editor label{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
dialog { width:min(480px,calc(100vw - 48px)); max-height:calc(100dvh - 48px); overflow:auto; padding:0; color:#e3eee9; background:linear-gradient(145deg,#13251f,#0d151b 65%); border:1px solid #395c4b; border-radius:24px; box-shadow:0 32px 120px #000a; }
dialog::backdrop { background:#03090dcc; backdrop-filter:blur(7px); }
.confirmation { display:block; padding:32px; }
.dialog-icon { display:grid; place-items:center; width:48px; height:48px; border:1px solid #69eaa555; border-radius:14px; background:#69eaa510; color:#69eaa5; font-size:24px; }
.dialog-eyebrow { color:#69eaa5; font-size:11px; letter-spacing:.16em; margin:24px 0 8px; }
dialog h2 { font-size:28px; line-height:1.2; letter-spacing:-.03em; margin:0 0 12px; }
#dialog-description { color:#a6bab1; font-size:14px; margin:0 0 24px; }
.dialog-details { margin:0; background:#070e1480; border:1px solid #ffffff12; border-radius:12px; padding:4px 16px; }
.dialog-details div { padding:12px 0; } .dialog-details div+div { border-top:1px solid #ffffff12; }
.dialog-details dt { color:#91a89c; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.dialog-details dd { margin:5px 0 0; font-size:14px; overflow-wrap:anywhere; }
.dialog-footnote { color:#91a89c; font-size:12px; margin:18px 0 28px; }
.dialog-actions { display:flex; justify-content:flex-end; gap:12px; } .dialog-actions button { font-size:14px; font-weight:600; padding:12px 18px; }
.dialog-cancel { background:transparent; border-color:#ffffff26; color:#c7d7ce; }
#dialog-confirm { background:#69eaa5; border-color:#69eaa5; color:#082015; }
.is-revoke .dialog-icon { color:#ffaaaa; border-color:#ffaaaa55; background:#ffaaaa10; }
.is-revoke #dialog-confirm { background:#e47a7a; border-color:#e47a7a; color:#240e0e; }
button:focus-visible { outline:2px solid #a1ffd0; outline-offset:4px; }
@media(max-width:480px) { .confirmation { padding:24px; } .dialog-actions { flex-direction:column-reverse; } .dialog-actions button { width:100%; } }
