:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#262440;font-synthesis:none;--purple:#7160d8;--muted:#79758e}*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 6% 22%,#dbe9fc 0%,transparent 53%),radial-gradient(ellipse at 94% 60%,#e6dcfc 0%,transparent 55%),linear-gradient(130deg,#f3f5fc,#efedfa 60%,#f3effa)}header{display:flex;align-items:center;justify-content:space-between;padding:32px 5%;height:105px}.logo{text-decoration:none;font-size:36px;font-weight:800;letter-spacing:-2px;color:#262440;line-height:1}.logo span{color:var(--purple)}.header-note{display:flex;align-items:center;gap:9px;font-size:12px;color:#706d84}.status-dot{width:6px;height:6px;border-radius:50%;background:#8a79c8;box-shadow:0 0 0 4px #8a79c80b}main{flex:1;display:grid;place-items:center;padding:40px 24px 55px}.generator{width:min(100%,790px)}.eyebrow{text-align:center;color:#82749f;font-size:10px;font-weight:700;letter-spacing:2.8px}h1{text-align:center;font-size:clamp(35px,4.1vw,54px);font-weight:650;letter-spacing:-2.4px;line-height:1.14;margin:22px 0 17px}h1 span{background:linear-gradient(100deg,#556ebd,#9865c9);background-clip:text;color:transparent}.intro{text-align:center;font-size:15px;color:var(--muted);margin:0 0 39px}.password-panel{background:#ffffffb8;border:1px solid #ffffffed;box-shadow:0 20px 60px #6055950c,0 2px 8px #60559503;border-radius:19px;padding:25px 28px 21px;backdrop-filter:blur(20px)}.password-top{display:flex;justify-content:space-between;align-items:center;color:#928caa;font-size:9px;font-weight:650;letter-spacing:1.6px}.private-label{display:flex;align-items:center;gap:5px;letter-spacing:0;font-size:10px;font-weight:400}.private-label svg{width:13px;height:13px}.password-row{display:flex;align-items:center;gap:22px;margin:20px 0 26px}#password{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(20px,3vw,32px);letter-spacing:1px;font-weight:500;overflow-wrap:anywhere;line-height:1.5;color:#34304f}.actions{display:flex;gap:8px;flex-shrink:0}button{font:inherit;cursor:pointer}button svg{width:18px;height:18px}.copy-button,.refresh-button{height:43px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:9px;transition:background .2s,transform .2s}.copy-button{padding:0 17px;border:1px solid #7160d8;background:var(--purple);color:white;font-size:12px;font-weight:550;box-shadow:0 4px 12px #7160d81a}.copy-button:hover{background:#6252c7}.refresh-button{width:43px;border:1px solid #e5e0f2;background:#f5f2fa;color:#817196}.refresh-button:hover{background:#eae4f5}.refresh-button:active svg{transform:rotate(90deg)}.strength-row{display:flex;gap:10px;align-items:center;border-top:1px solid #eae6f0;padding-top:17px;font-size:11px}.strength-bars{display:flex;gap:4px}.strength-bars i{height:4px;width:21px;border-radius:3px;background:#e4e0ec}.strength-bars i.active{background:var(--strength-color,#6c9c8a)}#strength{font-weight:550;color:var(--strength-color,#6c9c8a)}.strength-note{margin-left:auto;color:#aaa4b9;font-size:10px}.settings{padding:30px 6px 0}.length-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#56516c}.length-heading label{font-weight:550}.length-heading div{font-size:11px;color:#9a92ad}#length-value{font-size:16px;font-weight:650;color:#7160b8;margin-right:3px}input[type=range]{appearance:none;width:100%;height:4px;display:block;margin:22px 0 12px;border-radius:10px;background:linear-gradient(to right,#8775d6 0%,#8775d6 var(--progress),#dcd8ec var(--progress),#dcd8ec 100%);cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:17px;height:17px;border:4px solid white;background:#8775d6;border-radius:50%;box-shadow:0 2px 7px #57428740}input[type=range]::-moz-range-thumb{width:9px;height:9px;border:4px solid white;background:#8775d6;border-radius:50%;box-shadow:0 2px 7px #57428740}.range-labels{display:flex;justify-content:space-between;color:#a29bb3;font-size:10px}.options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:27px}.options label{display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:12px;color:#625a78;line-height:18px}.options small{display:block;color:#a49ab9;font-size:10px;letter-spacing:.5px;margin-top:2px}.options input{position:absolute;opacity:0;width:18px;height:18px;margin:0}.check{display:block;width:17px;height:17px;flex-shrink:0;background:#ffffff70;border:1px solid #c8bfdc;border-radius:5px;position:relative;margin-top:1px}.options input:checked+.check{background:#8c7ac9;border-color:#8c7ac9}.options input:checked+.check:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:7px;border:solid white;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.options input:focus-visible+.check{outline:3px solid #b4a4e8;outline-offset:3px}.local-note{display:flex;justify-content:center;align-items:center;gap:7px;color:#9890ab;font-size:10px;margin:32px 0 0}.local-note svg{width:13px;height:13px}footer{display:flex;align-items:center;gap:24px;min-height:74px;padding:20px 5%;background:#e6e2f04d;border-top:1px solid #d8d1e652}footer .logo{font-size:25px;letter-spacing:-1.4px}.footer-tagline{font-size:10px;color:#9a92ac}footer nav{display:flex;gap:25px;margin-left:auto}footer button{padding:5px 0;background:none;border:0;color:#827990;font-size:11px}footer button:hover{color:#6252c7}button:focus-visible,a:focus-visible,input[type=range]:focus-visible{outline:3px solid #a697dc;outline-offset:5px}dialog{width:min(90%,480px);border:1px solid #e8e1f7;border-radius:22px;padding:38px;background:#fcfbff;color:#514965;box-shadow:0 20px 100px #35255d30}dialog::backdrop{background:#39305445;backdrop-filter:blur(8px)}dialog .eyebrow{text-align:left}dialog h2{font-size:25px;letter-spacing:-.7px}dialog p{font-size:14px;line-height:1.75}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;color:#8a7b9f;font-size:26px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1500px){main{padding-bottom:85px}}@media(max-width:600px){header{height:80px;padding:24px}.logo{font-size:31px}.header-note{font-size:10px}main{padding:30px 20px 38px}h1{letter-spacing:-1.6px}.eyebrow{font-size:8px;letter-spacing:2px}.intro{font-size:13px;margin-bottom:28px}.password-panel{padding:20px}.password-row{flex-wrap:wrap;gap:16px;margin:17px 0 21px}#password{width:100%;flex-basis:100%;font-size:25px}.actions{width:100%}.copy-button{flex:1}.options{grid-template-columns:repeat(2,1fr);row-gap:19px}.strength-note{font-size:8px}.strength-bars i{width:14px}footer{padding:20px 24px;gap:12px}.footer-tagline{display:none}footer nav{gap:18px}footer button{font-size:10px}.local-note{font-size:9px}.private-label{font-size:9px}.password-top{font-size:8px;letter-spacing:1.2px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* A fixed viewport shell keeps the footer visible, including mobile browser bars. */
html{height:100%;overflow:hidden}
body{height:100vh;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
header{height:auto;min-height:76px;padding:22px 5%;padding-top:max(22px,env(safe-area-inset-top))}
main{min-height:0;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:20px 24px}
.generator{flex-shrink:0;transform:scale(var(--fit-scale,1));transform-origin:center}
footer{min-height:64px;padding:18px 5%;padding-bottom:max(18px,env(safe-area-inset-bottom))}
dialog{max-height:calc(100dvh - 32px);overflow:auto}
@media(max-width:600px){
 header{min-height:62px;padding:17px 22px;padding-top:max(17px,env(safe-area-inset-top))}
 main{padding:12px 20px}
 h1{font-size:clamp(29px,8.5vw,38px);margin:17px 0 12px}
 .intro{margin-bottom:23px}
 .password-panel{padding:18px}
 .password-row{margin:14px 0 18px}
 .settings{padding-top:22px}
 .options{margin-top:23px;row-gap:15px}
 .local-note{margin-top:24px}
 footer{min-height:58px;padding:16px 22px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
 footer .logo{font-size:24px}
 footer nav{gap:15px}
}
@media(max-height:700px){
 header{min-height:56px;padding-top:14px;padding-bottom:14px}
 .eyebrow{font-size:8px;letter-spacing:2px}
 h1{font-size:34px;margin:12px 0 10px}
 .intro{margin-bottom:20px}
 .password-panel{padding-top:18px;padding-bottom:17px}
 .password-row{margin-top:14px;margin-bottom:17px}
 .settings{padding-top:20px}
 .options{margin-top:20px}
 .local-note{margin-top:21px}
 footer{min-height:52px;padding-top:13px;padding-bottom:13px}
}
@media(max-height:560px){
 .intro,.generator>.eyebrow{display:none}
 h1{font-size:27px;margin:0 0 17px}
 .local-note{margin-top:15px}
 main{padding-top:8px;padding-bottom:8px}
}

/* Admin-configured background, shared by all public pages. */
body{background:var(--worti-background,linear-gradient(130deg,#dbe9fc,#e6dcfc))}
