.theme-controls{display:flex;align-items:center;gap:var(--space-3)}.font-control{display:flex;align-items:center;gap:var(--space-1)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;font-family:var(--font-mono);font-size:var(--text-body);line-height:1;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-small);cursor:pointer}.icon-button:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.icon-button:disabled{color:var(--color-dim);cursor:not-allowed}.font-reset{min-width:2.75rem;height:1.75rem;padding:0 var(--space-2);font-family:var(--font-mono);font-size:var(--text-caption);line-height:1;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-small);cursor:pointer}.font-reset:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.font-reset:disabled{color:var(--color-dim);cursor:default}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--font-mono: "JetBrains Mono", "Cascadia Code", Consolas, "Fira Mono", monospace;--text-caption: .8125rem;--text-body: 1rem;--text-heading: 1.25rem;--text-title: 1.5rem;--leading-prose: 1.6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-small: 2px;--radius-panel: 4px}:root[data-tool=access][data-theme=dark]{color-scheme:dark;--color-bg: #0a1220;--color-surface: #14203a;--color-border: #5b7bb0;--color-text: #d6e4ff;--color-accent: #5aa2ff;--color-dim: #93accf;--color-note: #a9c2e6;--color-warn: #ffb020;--color-error: #ff6b5e;--color-focus: #5aa2ff;--glow-title: 0 0 12px rgba(90, 162, 255, .3)}:root[data-tool=access][data-theme=light]{color-scheme:light;--color-bg: #eef3fc;--color-surface: #ffffff;--color-border: #6a82a8;--color-text: #0e1c33;--color-accent: #1560c0;--color-dim: #45566f;--color-note: #45566f;--color-warn: #7a5300;--color-error: #a81e1e;--color-focus: #0e1c33;--glow-title: none}*,*:before,*:after{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-body);line-height:var(--leading-prose);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}#root{min-height:100vh;display:flex;flex-direction:column}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-small)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.screen{flex:1 1 auto;display:flex;flex-direction:column;min-height:100vh;box-sizing:border-box;background:var(--color-bg);color:var(--color-text)}.app-header{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.app-header-left{min-width:0}.app-tool{margin:0;color:var(--color-dim);font-size:var(--text-caption);letter-spacing:.12em}.app-title{margin:var(--space-1) 0 0;font-size:var(--text-heading);font-weight:700;color:var(--color-accent);text-shadow:var(--glow-title)}.app-subtitle{margin:var(--space-1) 0 0;font-size:var(--text-caption);color:var(--color-dim)}.app-header-right{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3)}@media(max-width:40rem){.app-header{grid-template-columns:minmax(0,1fr)}.app-header-right{justify-content:flex-start}}.main{flex:1 1 auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.build-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-4);align-items:start}@media(max-width:60rem){.build-row{grid-template-columns:minmax(0,1fr)}}.panel{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-4);margin:0;background:var(--color-bg)}.panel-title{margin:0 0 var(--space-3);font-size:var(--text-body);font-weight:700;color:var(--color-text)}.panel-hint{margin:var(--space-2) 0 0;font-size:var(--text-caption);color:var(--color-dim);line-height:var(--leading-prose)}.action-button{font-family:var(--font-mono);font-size:var(--text-body);line-height:1.2;min-height:2.4rem;padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-small);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.primary-button{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent)}.primary-button:hover:not(:disabled){background:var(--color-text);border-color:var(--color-text)}.primary-button:disabled{color:var(--color-dim);background:transparent;border-color:var(--color-dim);cursor:not-allowed}.nav-button{color:var(--color-accent);background:var(--color-bg);border-color:var(--color-accent)}.nav-button:hover:not(:disabled){background:var(--color-surface)}.nav-button:disabled{color:var(--color-dim);border-color:var(--color-dim);cursor:not-allowed}.danger-button{color:var(--color-bg);background:var(--color-error);border-color:var(--color-error)}.danger-button:hover:not(:disabled){background:var(--color-text);border-color:var(--color-text)}.danger-button:disabled{color:var(--color-dim);background:transparent;border-color:var(--color-dim);cursor:not-allowed}.link-button{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-accent);background:transparent;border:none;border-radius:var(--radius-small);padding:var(--space-1) var(--space-2);cursor:pointer;white-space:nowrap}.link-button:hover{text-decoration:underline}.link-danger{color:var(--color-error)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:var(--text-body);color:var(--color-text)}.field-hint{margin:0;font-size:var(--text-caption);color:var(--color-dim);line-height:var(--leading-prose)}.field-error{margin:var(--space-2) 0 0;color:var(--color-error)}.generate-full-access{margin-top:var(--space-2);color:var(--color-accent)}.text-input{font-family:var(--font-mono);font-size:var(--text-body);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-2) var(--space-3);width:100%;min-width:0;max-width:22rem}.text-input:focus-visible{border-color:var(--color-accent)}input[type=checkbox],input[type=radio]{accent-color:var(--color-accent);width:1rem;height:1rem;cursor:pointer}.target-selector{padding:var(--space-4)}.target-options{display:flex;flex-wrap:wrap;gap:var(--space-4)}.target-option{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;color:var(--color-text)}.picker-hint{margin:0 0 var(--space-3);font-size:var(--text-caption);color:var(--color-dim);line-height:var(--leading-prose)}.picker-count,.generate-count{margin:0 0 var(--space-3);font-weight:700;color:var(--color-text)}.picker-scroll{max-height:60vh;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel)}.picker{display:flex;flex-direction:column}.picker-empty{margin:0;color:var(--color-dim)}.picker-category{min-width:0;border:none;border-bottom:1px solid var(--color-border);margin:0;padding:var(--space-3) var(--space-4)}.picker-category:last-child{border-bottom:none}.picker-legend{padding:0;margin-bottom:var(--space-2)}.picker-cat{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.picker-cat-name{font-weight:700;color:var(--color-accent)}.picker-questions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:var(--space-1) var(--space-4)}.picker-question{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;color:var(--color-text)}.generate-fields{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.generate-panel .primary-button{align-self:flex-start}.generate-result .result-code{margin:0 0 var(--space-2);font-size:var(--text-title);font-weight:700;letter-spacing:.16em;color:var(--color-accent);text-shadow:var(--glow-title)}.result-summary{margin:0 0 var(--space-4);color:var(--color-text)}.result-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.code-list-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.code-list-head .panel-title{margin:0}.code-list-head-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.code-list-notice{margin:0 0 var(--space-3);color:var(--color-note)}.code-list-message{margin:0;color:var(--color-dim)}.table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-caption)}.data-table thead{background:var(--color-surface)}.data-table th,.data-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.data-table th[scope=col]{color:var(--color-dim);font-weight:700;white-space:nowrap}.code-cell{font-weight:700;letter-spacing:.08em;color:var(--color-text);white-space:nowrap}.row-actions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.badge{font-size:var(--text-caption);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:0 var(--space-2);white-space:nowrap}.badge-active{color:var(--color-accent);border-color:var(--color-accent)}.badge-revoked{color:var(--color-dim);border-color:var(--color-dim)}.badge-expired{color:var(--color-warn);border-color:var(--color-warn)}.gate{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5)}.gate-topbar{position:absolute;top:var(--space-3);right:var(--space-4)}.gate-panel{width:min(28rem,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-6)}.gate-tool{margin:0;color:var(--color-dim);font-size:var(--text-caption);letter-spacing:.12em}.gate-title{margin:var(--space-1) 0 var(--space-5);font-size:var(--text-title);font-weight:700;color:var(--color-accent);text-shadow:var(--glow-title);text-wrap:balance}.gate-form{display:flex;flex-direction:column;gap:var(--space-3)}.gate-instruction{margin:0;color:var(--color-dim);font-size:var(--text-caption);line-height:var(--leading-prose)}.gate-label{font-size:var(--text-body)}.gate-input{font-family:var(--font-mono);font-size:var(--text-body);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-2) var(--space-3);width:100%;min-width:0;caret-color:var(--color-accent)}.gate-input:focus-visible{border-color:var(--color-accent)}.gate-invalid{margin:0;font-size:var(--text-caption);color:var(--color-error)}.gate-submit{align-self:flex-start;font-family:var(--font-mono);font-size:var(--text-body);color:var(--color-accent);background:var(--color-bg);border:1px solid var(--color-accent);border-radius:var(--radius-small);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background-color .18s cubic-bezier(.25,1,.5,1)}.gate-submit:hover:not(:disabled){background:var(--color-surface)}.gate-submit:disabled{color:var(--color-dim);border-color:var(--color-dim);cursor:wait}.gate-copyright{position:absolute;bottom:var(--space-3);right:var(--space-4);margin:0;color:var(--color-dim);font-size:var(--text-caption)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0000008c}.modal-frame{width:min(34rem,100%);max-height:90vh;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);padding:var(--space-5)}.modal-title{margin:0 0 var(--space-3);font-size:var(--text-heading);color:var(--color-accent)}.modal-body{margin:0 0 var(--space-4);color:var(--color-text);line-height:var(--leading-prose)}.modal-note{margin:0;color:var(--color-note);font-size:var(--text-caption);line-height:var(--leading-prose)}.edit-fields{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}
