:root{color-scheme:dark;--bg:#101319;--panel:#191e27;--card:#11161e;--border:#303641;--text:#f4f6fa;--muted:#a0aab9;--accent:#c3f66b;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.symbols{display:none}.topbar{height:96px;border-bottom:1px solid #272d37;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;color:var(--text);text-decoration:none;font-size:18px;font-weight:650}.brandmark{background:var(--accent);color:#17230e;display:flex;align-items:center;justify-content:center;width:39px;height:39px;font-size:20px;letter-spacing:-3px;padding-right:3px;border-radius:10px;font-weight:850}.brandmark span{margin-top:4px}.brand-sub{color:#8893a4;font-weight:400}.local{display:flex;align-items:center;gap:8px;font-size:14px;color:#b9c1cd}.local svg{color:var(--accent);width:17px}main{max-width:1120px;padding:58px 32px 44px;margin:auto}.eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:.16em;font-size:12px;font-weight:650;color:#c2cbd8}.line{width:22px;height:2px;background:var(--accent)}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin:22px 0 38px}h1{font-size:clamp(36px,4.2vw,54px);font-weight:560;line-height:1.12;letter-spacing:-.045em;margin:0}h1 span{color:var(--accent)}.intro p{color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 4px}.workspace{border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 20px 70px #0002;overflow:hidden}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px 26px}h2{font-size:20px;letter-spacing:-.025em;font-weight:600;margin:0 0 7px}.workspace-head p{font-size:14px;color:var(--muted);margin:0}.algorithm{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;color:#bac3d0;border:1px solid #39414d;padding:7px 10px;border-radius:5px}.algorithm span{color:#6f7b8c;padding:0 6px}.key-area{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 30px}.key-card{min-width:0;background:var(--card);border:1px solid #303847;border-radius:10px;padding:20px}.key-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-label{display:flex;align-items:center;gap:10px}h3{font-size:15px;font-weight:550;margin:0}.key-icon{color:#a7b2c1;display:flex}.tag{font-size:12px;letter-spacing:.08em;color:#c7cdd7;white-space:nowrap}.public-tag{color:#b4d58c}.value-row{display:flex;align-items:center;gap:5px;margin:22px 0 17px;background:#1b222d;border:1px solid #333e4e;border-radius:6px;min-height:54px;padding:0 10px}.value-row input{color:#e4ebf5;background:transparent;border:0;outline-offset:0;width:100%;min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.7;padding:12px 0}.value-row input::placeholder{font-family:inherit;font-size:12px;color:#8995a7;opacity:1}.icon-button{display:flex;background:none;border:0;color:#aeb9c9;padding:8px;border-radius:5px}.key-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-bottom p{font-size:12px;color:#99a5b7;line-height:1.6;margin:0;max-width:190px}.copy-button{display:flex;align-items:center;gap:6px;background:transparent;border:0;color:#e3e8ef;font-size:14px;padding:8px 0 8px 8px}.copy-button svg{width:15px;height:15px}.actions{padding:26px 30px;display:flex;align-items:center;gap:20px}.primary{display:flex;align-items:center;gap:10px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:#17230e;padding:15px 18px;font-size:15px;font-weight:650;box-shadow:0 2px 0 #0004;transition:background .15s,transform .15s}.primary:hover{background:#d1ff85}.primary:active{transform:translateY(1px)}.primary .arrow{margin-left:18px;width:18px}.secondary{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#dde4ee;padding:12px 0;font-size:14px}.secondary svg{width:17px}.clear{margin-left:auto;background:none;color:#a9b3c2;border:0;padding:12px 0 12px 12px;font-size:14px}.secondary:hover:not(:disabled),.clear:hover:not(:disabled),.copy-button:hover:not(:disabled),.icon-button:hover:not(:disabled){color:var(--accent)}.status-row{border-top:1px solid #303641;display:flex;justify-content:space-between;gap:20px;padding:14px 30px;font-size:12px;color:#9eabba;line-height:1.6;background:#171c24}.status-row>span:last-child{white-space:nowrap;color:#8895a7}.error{color:#ffb3b3}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:34px}.note{display:flex;gap:14px}.note-number{font-size:12px;font-family:ui-monospace,monospace;color:#7f8c9e;line-height:23px}.note h3{font-size:14px;color:#dbe2ec;line-height:23px}.note p{font-size:13px;line-height:1.7;color:#94a0b2;margin:6px 0 0}footer{max-width:1056px;margin:10px auto 0;border-top:1px solid #272d37;padding:22px 0 28px;display:flex;justify-content:space-between;gap:18px;color:#8592a5;font-size:12px}footer a{color:#aeb9c9;text-decoration:none}footer a:hover{color:var(--accent)}footer a span{margin-left:7px}@media(min-width:1450px){main{padding-top:74px}}@media(max-width:950px){.intro{align-items:flex-start;flex-direction:column;gap:20px}.key-area{gap:14px;padding:0 22px}.key-card{padding:16px}.workspace-head{padding:24px 22px}.key-bottom{align-items:flex-start}.key-bottom p{max-width:160px}.actions{padding:24px 22px}.tag{font-size:12px}.notes{gap:22px}footer{margin:8px 32px 0}}@media(max-width:720px){.topbar{height:76px;padding:0 22px}.brand-sub{display:none}.local{font-size:12px;max-width:135px;line-height:1.5}.local svg{width:16px}main{padding:36px 20px 30px}.intro{margin:18px 0 28px}.intro p{font-size:15px}.intro p br{display:none}.key-area{grid-template-columns:1fr;padding:0 18px}.workspace-head{padding:22px 18px;align-items:flex-start}.workspace-head p{line-height:1.6;max-width:220px}.algorithm{font-size:12px;padding:6px}.algorithm span{padding:0 1px}h2{font-size:18px}.key-card{padding:18px}.key-bottom p{max-width:none}.value-row input{font-size:12px}.actions{padding:22px 18px;gap:12px;flex-wrap:wrap}.primary{width:100%;justify-content:center}.primary .arrow{margin-left:auto}.primary>svg:first-child{margin-right:auto}.secondary{font-size:14px}.clear{font-size:14px}.status-row{padding:13px 18px}.status-row>span:last-child{display:none}.notes{grid-template-columns:1fr;gap:20px;margin-top:28px}.note p{margin-top:3px;font-size:14px}.note h3{font-size:15px}footer{margin:0 20px;flex-direction:column;gap:12px}.tag{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Batch generation */
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}fieldset{min-width:0;border:0;padding:0;margin:0}#generator-controls{padding:0 30px 26px}.settings-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:24px 30px}.count-control{display:grid;grid-template-columns:88px auto;gap:8px 12px;align-items:center}.count-control label{grid-column:1/-1;font-size:14px;color:#dde4ee}.count-control input{width:88px;min-height:44px;padding:10px 12px;border:1px solid #455166;border-radius:6px;background:#11161e;color:var(--text);font-size:16px}.count-control>span{font-size:12px;color:var(--muted)}.psk-options legend{font-size:14px;color:#dde4ee;padding:0;margin-bottom:8px}.segmented{display:flex;flex-wrap:wrap;gap:5px;padding:4px;border:1px solid #354051;background:#11161e;border-radius:8px}.segmented label{position:relative;cursor:pointer}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented span{display:block;padding:10px 13px;color:#aeb9c9;font-size:14px;line-height:1.25;border-radius:5px}.segmented input:checked+span{background:#c3f61b18;color:var(--accent);box-shadow:inset 0 0 0 1px #c3f66b70}.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.segmented input:disabled+span{opacity:.5}.settings-hint{font-size:14px;color:var(--muted);line-height:1.6;margin:18px 0 22px}.generation-row{display:flex;gap:20px;align-items:center}.generation-row>span{color:#95a2b5;font-size:12px;line-height:1.6}.intro{margin-bottom:30px}main{padding-top:42px}.results-section{margin-top:24px}.empty-state{text-align:center;padding:32px 20px;border:1px dashed #344051;border-radius:12px;color:var(--muted)}.empty-state>svg{color:#8d9bb0;width:26px;height:26px;margin-bottom:10px}.empty-state h3{color:#c5cddb}.empty-state p{font-size:14px;line-height:1.6;margin:8px 0 0}.results-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.results-summary h2{font-size:18px}.results-summary p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.result-actions{display:flex;align-items:center;gap:18px}.result-actions .clear{margin:0}.outline-button,.field-action{border:1px solid #3b485b;background:#1b2431;color:#dce5f1;border-radius:6px;padding:10px 13px;font-size:14px;line-height:1.35;min-height:40px}.outline-button:hover:not(:disabled),.field-action:hover:not(:disabled){border-color:#93b653;color:var(--accent)}.peer-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:22px 24px;margin-bottom:16px}.peer-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:20px}.peer-heading h3{color:var(--accent);font-size:16px}.peer-tag{color:#a9b5c7;font-size:12px;border:1px solid #3a4759;border-radius:5px;padding:5px 9px}.peer-fields{display:grid;gap:16px}.peer-field{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:center}.peer-field label{font-size:14px;color:#c4cedc;line-height:1.5}.field-input-row{display:flex;gap:8px;min-width:0}.field-input-row input{width:100%;min-width:0;background:#11161e;border:1px solid #3a4658;border-radius:6px;color:#e3ebf6;padding:11px 12px;font:14px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.field-action{min-width:64px;flex-shrink:0;padding:10px}.export-box{padding:22px 24px;background:#19221c;border:1px solid #647e3e;border-radius:12px;margin-bottom:20px}.export-heading{display:flex;align-items:center;gap:16px;justify-content:space-between}.export-heading h3{font:14px/1.6 ui-monospace,monospace;color:#d0eea5;overflow-wrap:anywhere}.export-heading>div{display:flex;gap:8px;flex-wrap:wrap}.export-box p{font-size:14px;line-height:1.6;color:#b7c5a6;margin:16px 0}.export-box textarea{width:100%;min-height:260px;resize:vertical;padding:16px;border:1px solid #405030;background:#101710;border-radius:6px;color:#e5efda;font:14px/1.7 ui-monospace,SFMono-Regular,monospace;white-space:pre;overflow:auto}.notes{margin-top:30px}@media(max-width:950px){#generator-controls{padding:0 22px 24px}.peer-field{grid-template-columns:170px minmax(0,1fr)}.field-input-row input{font-size:13px}}@media(max-width:720px){main{padding-top:28px}h1{font-size:32px}.intro{gap:14px;margin-bottom:22px}#generator-controls{padding:0 18px 20px}.settings-row{gap:18px}.psk-options{width:100%}.segmented{width:fit-content}.segmented span{padding:10px 9px;font-size:14px}.generation-row{align-items:stretch;flex-direction:column;gap:10px}.generation-row>span{text-align:center}.workspace-head{flex-wrap:wrap;gap:10px}.workspace-head p{max-width:none}.settings-hint{margin:16px 0 18px;font-size:14px}.results-summary{align-items:flex-start;flex-direction:column}.result-actions{gap:16px;width:100%;flex-wrap:wrap}.result-actions .clear{margin-left:auto}.peer-card{padding:18px 14px}.peer-field{grid-template-columns:minmax(0,1fr);gap:7px}.field-input-row{flex-wrap:wrap;gap:7px}.field-input-row input{flex:1 1 100%;font-size:14px}.field-action{flex:1;min-height:42px}.peer-heading{margin-bottom:18px}.export-box{padding:18px 14px}.export-heading{align-items:flex-start;flex-direction:column}.export-heading>div{width:100%}.export-heading button{flex:1}.empty-state{padding:25px 18px}}
