:root{--bg:#f5f6f8;--card:#fff;--ink:#1d2433;--mut:#6b7385;--line:#e3e6ec;--inp:#fff;--ok:#157347;--err:#b42318;--side:#161b26;--r:12px}
[data-theme=white]{--bg:#fff;--line:#e8eaee}
[data-theme=dark]{--bg:#0f131a;--card:#181e28;--ink:#e8ecf2;--mut:#98a2b3;--line:#2a3240;--inp:#11161e;--ok:#47c183;--err:#f97066;--side:#0a0d13}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:var(--fs,15px)/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}h1{font-size:1.6rem;margin:0;letter-spacing:-.01em}h2{font-size:1.02rem;margin:0 0 14px;display:flex;align-items:center;gap:9px}
.sub{margin:2px 0 0;color:var(--mut)}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.shell{display:flex;min-height:100vh}.side{width:240px;flex:none;background:var(--side);color:#cfd5e1;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:11px;align-items:center;padding:4px 8px 22px}.brand .logo{width:38px;height:38px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800}
.brand b{display:block;color:#fff;font-size:.95rem;line-height:1.2}.brand small{color:#8e97aa;font-size:.75rem}
.side nav{display:flex;flex-direction:column;gap:3px;flex:1}.side nav a,.logout{display:flex;align-items:center;gap:11px;color:#cfd5e1;text-decoration:none;padding:10px 12px;border-radius:9px;font-size:.92rem}
.side nav a:hover,.logout:hover{background:rgba(255,255,255,.07)}.side nav a.on{background:var(--accent);color:#fff}
.main{flex:1;min-width:0}.wrap{max-width:1180px;margin:0 auto;padding:26px 24px 70px}
.public .wrap{max-width:600px;padding-top:30px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:16px}
.num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:.78rem;font-weight:700}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;border-top:3px solid var(--accent)}.stat b{display:block;font-size:2rem;line-height:1.1}.stat span{color:var(--mut);font-size:.84rem}
.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.tile{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;text-align:left;font:inherit;cursor:pointer;transition:.15s}
.tile:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.07)}.tile b{display:block;margin-bottom:2px}.tile span{color:var(--mut);font-size:.84rem}
label{display:block;font-size:.84rem;font-weight:600;margin:0 0 5px}.hint{font-weight:400;color:var(--mut);font-size:.78rem}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--inp);color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}
input[type=checkbox],input[type=radio]{width:auto}input[type=color]{padding:3px;height:42px}input[type=file]{padding:8px}
textarea{min-height:150px;resize:vertical;line-height:1.45}.f{margin-bottom:13px}.check{display:flex;align-items:center;gap:8px;font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border:1px solid var(--accent);padding:9px 16px;border-radius:9px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08)}.btn.sec{background:transparent;color:var(--accent)}.btn.danger{background:var(--err);border-color:var(--err)}.btn.sm{padding:5px 11px;font-size:.82rem}.btn.lg{padding:12px 24px;font-size:1rem}.btn:disabled{opacity:.55;cursor:wait}
.alert{padding:11px 15px;border-radius:10px;margin-bottom:16px}.alert.ok{background:#e7f6ee;color:#0b5a34}.alert.err{background:#fdecea;color:#912018}
[data-theme=dark] .alert.ok{background:#12301f;color:#7ee2a8}[data-theme=dark] .alert.err{background:#3a1512;color:#fda29b}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}.tblwrap{overflow-x:auto}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.74rem;background:var(--line)}.badge.on{background:#d1fadf;color:#05603a}.badge.off{background:#fee4e2;color:#912018}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>.grow{flex:1;min-width:180px}.mut{color:var(--mut)}code{background:var(--line);padding:1px 6px;border-radius:5px;font-size:.78rem}
.cols{display:grid;gap:0 14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.split{display:grid;gap:22px;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}.splitprev{position:sticky;top:16px}
.prevhead{font-weight:700;margin-bottom:8px}.stickybar{position:sticky;bottom:0;padding:12px 0;background:linear-gradient(transparent,var(--bg) 35%);display:flex;gap:10px}
.ocr{border:1px dashed var(--line);border-radius:10px;padding:12px;margin-bottom:14px}.ocrmsg{font-size:.85rem;margin-top:6px}
.thumb{max-height:56px;max-width:150px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:3px}
.designs{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.dcard{display:block;border:2px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;text-align:center;font-size:.75rem;font-weight:600;margin:0}.dcard img{width:100%;border-radius:5px;display:block;margin-bottom:5px;border:1px solid var(--line)}
.dcard input{position:absolute;opacity:0}.dcard:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.toolbar button,.toolbar select{width:auto;padding:5px 10px;font-size:.82rem;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);cursor:pointer}
details{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}summary{cursor:pointer}
.lcards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.lcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.lcard .th{height:150px;background:#eef0f4 center top/cover;border-bottom:1px solid var(--line)}.lcard .bd{padding:14px;flex:1}.lcard h3{margin:0 0 6px;font-size:1rem}.lcard .ft{padding:0 14px 14px}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,var(--side),#2a1216)}
.login{width:100%;max-width:400px;background:var(--card);border-radius:16px;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.35)}.login .logo{width:48px;height:48px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem;margin-bottom:14px}
.login h1{font-size:1.4rem}
@media(max-width:1000px){.split{grid-template-columns:1fr}.splitprev{position:static;order:-1}}
@media(max-width:760px){.shell{display:block}.side{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px}.brand{padding:0 8px}.side nav{flex-direction:row;flex-wrap:wrap;flex:1 1 100%;order:3}.side nav a{padding:7px 10px}.side nav a span{font-size:.82rem}.logout{margin-left:auto}.wrap{padding:16px 14px 60px}}
.public .wrap:has(.login-wrap){max-width:none;padding:0}

/* ===== v3: brand, theme toggle, motion ===== */
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:2px 6px 20px;text-decoration:none}
.logobadge{display:block;background:none;padding:0;box-shadow:none}.logobadge img{display:block;height:64px;width:auto;max-width:200px;object-fit:contain}
.brandtxt{display:block}.brandtxt b{display:block;color:#fff;font-size:1.12rem;font-weight:800;letter-spacing:.01em;line-height:1.2}.brandtxt small{display:block;color:#9aa3b6;font-size:.74rem;margin-top:1px}
.sidefoot{display:flex;align-items:center;gap:8px;justify-content:space-between}.sidefoot .logout{flex:1}
.themebtn{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#e6e9f0;display:grid;place-items:center;cursor:pointer;transition:.2s}
.themebtn:hover{background:rgba(255,255,255,.18);transform:rotate(12deg)}.themebtn svg{grid-area:1/1}
.themebtn svg{display:none}[data-mode=light] .themebtn .i-sun,[data-mode=dark] .themebtn .i-moon,[data-mode=system] .themebtn .i-sys{display:block}
.themebtn.floating{position:fixed;top:16px;right:16px;z-index:5;backdrop-filter:blur(10px)}
.wrap>*{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.wrap>*:nth-child(2){animation-delay:.04s}.wrap>*:nth-child(3){animation-delay:.08s}.wrap>*:nth-child(4){animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.card,.tile,.stat,.lcard{transition:box-shadow .2s,transform .2s,border-color .2s}.card:hover{box-shadow:0 6px 22px rgba(0,0,0,.06)}.lcard:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.12)}
tbody tr:hover td,table tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.inline{display:flex;gap:8px}.inline input{flex:1}
.badge.st-new{background:#dbeafe;color:#1e40af}.badge.st-inprogress{background:#fef3c7;color:#92400e}.badge.st-letterissued{background:#d1fadf;color:#05603a}.badge.st-closed{background:var(--line)}
[data-theme=dark] .badge.on{background:#12301f;color:#7ee2a8}[data-theme=dark] .badge.off{background:#3a1512;color:#fda29b}
.btn.block{width:100%}.btn.lg{font-size:1rem}
dialog{border:0;border-radius:16px;padding:0;width:min(520px,94vw);background:var(--card);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(10,14,24,.55);backdrop-filter:blur(4px)}
dialog[open]{animation:pop .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.dhead{display:flex;justify-content:space-between;align-items:center;padding:18px 22px 6px}.dhead h2{margin:0;font-size:1.2rem}.dhead .x{background:none;border:0;color:var(--mut);font-size:1.1rem;cursor:pointer;padding:6px}
#dbody{margin:0;padding:6px 22px 14px;display:grid;grid-template-columns:150px 1fr;gap:9px 12px}#dbody dt{color:var(--mut);font-size:.82rem}#dbody dd{margin:0;font-weight:600;word-break:break-word}
.dact{padding:14px 22px 20px;border-top:1px solid var(--line)}
.gw-wmt-note{font-size:.8rem}

/* ===== guest pages: Canada photo + glass ===== */
body.guest{margin:0;min-height:100vh;color:#fff;background:#0c1626;overflow-x:hidden}
.gbg{position:fixed;inset:-4%;background:url(brand/toronto.jpg?v=6) center/cover no-repeat;animation:kb 38s ease-in-out infinite alternate;z-index:0}
.gshade{position:fixed;inset:0;background:linear-gradient(180deg,rgba(8,14,30,.28),rgba(8,14,30,.55));z-index:1}
[data-theme=light] .gshade{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(10,20,45,.42))}
@keyframes kb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.14) translate(-2%,-1.5%)}}
.leaves{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.leaves i{position:absolute;top:-8%;left:calc(var(--i)*11.5% + 2%);width:calc(14px + var(--i)*3px);height:calc(14px + var(--i)*3px);opacity:.0;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ff4d5a' d='M12 1l1.9 3.8 2.7-1-.7 4.6 3.4-2.3.9 2.4 2.7-.6-1.7 3.7 1.8 1-5.9 4.9.6 2-5.7-.9V23h-1.2v-3.7l-5.7.9.6-2-5.9-4.9 1.8-1-1.7-3.7 2.7.6.9-2.4 3.4 2.3-.7-4.6 2.7 1z'/%3E%3C/svg%3E");animation:fall calc(14s + var(--i)*2.3s) linear infinite;animation-delay:calc(var(--i)*-2.7s)}
@keyframes fall{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}8%{opacity:.7}50%{transform:translate3d(60px,55vh,0) rotate(180deg)}100%{transform:translate3d(-40px,112vh,0) rotate(380deg);opacity:0}}
.gwrap{position:relative;z-index:3;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px}
.glass{width:100%;max-width:410px;padding:32px 30px 26px;border-radius:24px;background:rgba(255,255,255,.13);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(255,255,255,.38);box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.45);animation:glassin .9s cubic-bezier(.2,.8,.2,1) both;position:relative}
[data-theme=dark] .glass{background:rgba(12,18,32,.5);border-color:rgba(255,255,255,.18)}
.gwrap.wide .glass{max-width:560px}
@keyframes glassin{from{opacity:0;transform:translateY(30px) scale(.97);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);background-size:250% 100%;animation:sheen 7s ease-in-out infinite;pointer-events:none}
@keyframes sheen{0%,60%{background-position:130% 0}100%{background-position:-60% 0}}
.gbrand{text-align:center;margin-bottom:20px}.gbrand .logobadge{display:inline-block;margin-bottom:12px;animation:float 5s ease-in-out infinite}.gbrand .logobadge img{height:110px;max-width:260px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}
@keyframes float{50%{transform:translateY(-5px)}}
.gbrand h1{font-size:1.75rem;font-weight:800;letter-spacing:.01em;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.35)}.gsub{margin:3px 0 0;color:rgba(255,255,255,.85);font-size:.9rem}
.glass label{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.3)}.glass .hint{color:rgba(255,255,255,.75)}
.glass input,.glass select,.glass textarea{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.38);color:#fff;transition:.2s}
.glass input::placeholder{color:rgba(255,255,255,.62)}.glass option{color:#111}
.glass input:focus,.glass select:focus{background:rgba(255,255,255,.26);outline:0;border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.2)}
.glass input[type=date]{color-scheme:dark}
.glass .btn{background:linear-gradient(135deg,#e5252f,#a8141d);border-color:transparent;box-shadow:0 8px 22px rgba(190,20,32,.45);position:relative;overflow:hidden}
.glass .btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s}
.glass .btn:hover::after{transform:translateX(120%)}.glass .btn:hover{transform:translateY(-1px);filter:none}.glass .btn:active{transform:translateY(1px)}
.glass .btn.sec,.glass .btn.ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.5);box-shadow:none;color:#fff}
.glass a{color:#fff}.gl{text-align:center;margin:16px 0 0;font-size:.9rem}.gl a{text-decoration:none;border-bottom:1px dashed rgba(255,255,255,.6)}.gl a:hover{border-bottom-style:solid}
.glass .alert{backdrop-filter:blur(6px)}.glass .alert.err{background:rgba(255,80,80,.28);color:#fff;border:1px solid rgba(255,140,140,.55)}.glass .alert.ok{background:rgba(60,200,120,.28);color:#fff;border:1px solid rgba(120,230,170,.55)}
.shake{animation:shake .45s}@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
.pw{position:relative}.pw input{padding-right:64px}.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.18);border:0;color:#fff;border-radius:7px;padding:5px 10px;font-size:.78rem;cursor:pointer}
.gtext{color:rgba(255,255,255,.92);line-height:1.55}.gtext.small{font-size:.82rem}.glass code{background:rgba(0,0,0,.3);color:#fff}
.qbox{padding:11px 13px;border-radius:9px;background:rgba(255,255,255,.14);border:1px dashed rgba(255,255,255,.5)}
.or{text-align:center;margin:16px 0;position:relative;font-size:.8rem;color:rgba(255,255,255,.8)}.or::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(255,255,255,.3)}.or span{position:relative;padding:0 10px;background:transparent}
.gfoot{position:relative;z-index:3;margin:18px 0 0;font-size:.78rem;color:rgba(255,255,255,.75)}
body.guest .row .btn{flex:1}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== v5: theme modes, customization, timer, OTP, clean public form ===== */
.idlechip{margin:0 4px 10px;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.07);color:#cfd5e1;font-size:.8rem;display:flex;gap:6px;align-items:center;font-variant-numeric:tabular-nums}
.idledlg{border:0;border-radius:calc(var(--r) + 4px);padding:24px;max-width:380px;background:var(--card);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.45)}.idledlg::backdrop{background:rgba(8,12,22,.6);backdrop-filter:blur(3px)}.idledlg h3{margin:0 0 6px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:calc(var(--r) - 2px);overflow:hidden}.seg label{margin:0;cursor:pointer}.seg input{position:absolute;opacity:0}
.seg span{display:block;padding:8px 16px;font-weight:600;font-size:.88rem}.seg input:checked+span{background:var(--accent);color:#fff}
.swatches{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.sw{width:32px;height:32px;border-radius:50%;border:3px solid var(--card);background:var(--c);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:.15s}.sw:hover{transform:scale(1.12)}
.swatches input[type=color]{width:42px;height:34px;padding:2px;border-radius:50%}
input.otp{font-size:1.7rem;letter-spacing:.5em;text-align:center;font-weight:700;padding:12px 8px}
html[data-side=light] .side{background:var(--card);border-right:1px solid var(--line);color:var(--ink)}html[data-side=light] .brandtxt b{color:var(--ink)}html[data-side=light] .side nav a,html[data-side=light] .logout{color:var(--ink)}
html[data-side=light] .side nav a:hover,html[data-side=light] .logout:hover{background:var(--line)}html[data-side=light] .side nav a.on{color:#fff}
html[data-side=light] .themebtn{color:var(--ink);border-color:var(--line);background:transparent}html[data-side=light] .idlechip{background:var(--line);color:var(--ink)}html[data-side=light] .brandtxt small{color:var(--mut)}
html[data-side=accent] .side{background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#000))}html[data-side=accent] .side nav a.on{background:rgba(255,255,255,.22)}html[data-side=accent] .brandtxt small{color:rgba(255,255,255,.75)}
.side nav a,.card,.tile,.stat,.btn,input,select,textarea{border-radius:var(--r)}
input,select,textarea,.btn{border-radius:calc(var(--r) - 3px)}
body{transition:background .25s,color .25s}.card{transition:background .25s,border-color .25s}
.card{box-shadow:0 1px 2px rgba(16,24,40,.04)}[data-theme=dark] .card{box-shadow:none}
.tile:hover,.stat:hover{box-shadow:0 8px 24px rgba(0,0,0,.09)}.stat{transition:.2s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* simple, clean public sign-up form */
body.clean{background:var(--bg)}
.cleanwrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:36px 16px 28px}
.cleancard{width:100%;max-width:460px;background:var(--card);border:1px solid var(--line);border-radius:calc(var(--r) + 6px);padding:30px 28px;box-shadow:0 10px 40px rgba(16,24,40,.07)}
.cleanhead{text-align:center;margin-bottom:22px}
.cleanhead h1{font-size:1.35rem;font-weight:800}.cleanhead p{margin:4px 0 0;color:var(--mut);font-size:.92rem}
.cleancard .f{margin-bottom:16px}.cleancard label{font-weight:600;font-size:.85rem;margin-bottom:6px}
.cleancard input,.cleancard select{padding:12px 14px;font-size:1rem}
.choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.choice label{margin:0;cursor:pointer}.choice input{position:absolute;opacity:0}
.choice span{display:block;text-align:center;padding:10px 6px;border:1px solid var(--line);border-radius:calc(var(--r) - 3px);font-weight:600;font-size:.9rem;transition:.15s;background:var(--inp)}
.choice input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent)}
.choice input:focus-visible+span{outline:2px solid var(--accent)}
.cleancard .btn.lg{width:100%;padding:13px;font-size:1rem;margin-top:4px}
.cleanok{text-align:center;padding:10px 0}.cleanok .tick{width:60px;height:60px;border-radius:50%;background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok);display:grid;place-items:center;margin:0 auto 14px;font-size:30px}
.cleanfoot{margin-top:18px;color:var(--mut);font-size:.8rem}.cleantheme{position:fixed;top:12px;right:12px}.cleantheme .themebtn{color:var(--ink);border-color:var(--line);background:var(--card)}
.req{color:var(--accent)}

/* transparent logo: pick the variant that reads on the surface */
.lg-red{display:none!important}
html[data-side=light][data-theme=light] .side .lg-red{display:block!important}html[data-side=light][data-theme=light] .side .lg-white{display:none!important}
body.clean .lg-red{display:block!important}body.clean .lg-white{display:none!important}
[data-theme=dark] body.clean .lg-red{display:none!important}[data-theme=dark] body.clean .lg-white{display:block!important}
body.clean .logobadge{display:inline-block}body.clean .logobadge img{height:72px}.cleanhead .logobadge{margin-bottom:12px}

[data-theme=light] .glass{background:rgba(14,22,42,.42);border-color:rgba(255,255,255,.28)}

/* v7: centered logo everywhere, keys, checklist */
.brand{align-items:center!important;text-align:center;padding:4px 6px 18px}.brandtxt{text-align:center}.logobadge{margin-inline:auto}
.gbrand .logobadge,.cleanhead .logobadge{display:flex;justify-content:center}.gbrand img,.cleanhead img{margin-inline:auto}
.keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}.keys code{font-size:1.05rem;letter-spacing:.12em;padding:10px 12px;text-align:center;border:1px dashed var(--line);border-radius:8px;background:var(--bg);font-weight:700}
.keycard{border-color:var(--accent)}
.checklist{list-style:none;padding:0;margin:0 0 14px}.checklist li{padding:4px 0 4px 26px;position:relative;color:var(--mut);font-size:.9rem}.checklist li:before{content:'○';position:absolute;left:4px}.checklist li.ok{color:var(--ink)}.checklist li.ok:before{content:'✓';color:var(--ok);font-weight:700}
@media print{.side,.pagehead,.grid,.row,.alert,.mut{display:none!important}.keycard{border:0}}

/* form builder */
.fbrow{padding:0;margin-bottom:8px}.fbrow summary{display:flex;align-items:center;gap:10px;padding:10px 12px;list-style:none;cursor:pointer}.fbrow summary::-webkit-details-marker{display:none}
.fbl{flex:1;min-width:0}.fbl b{display:block}.fbl small{color:var(--mut)}.fbact{display:flex;gap:6px}.fbrow[open]{border-color:var(--accent)}
.fbedit{padding:6px 14px 14px;border-top:1px solid var(--line)}.fbedit .cols{margin-top:10px}
.fbprev{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg)}.fbprev iframe{width:100%;height:640px;border:0;display:block}

.steps{padding-left:20px;margin:0;font-size:.9rem}.steps li{margin-bottom:9px}.bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:12px}.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}
/* v12 modern dashboard + ring timer */
.hero{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;padding:28px 30px;margin-bottom:18px;border-radius:calc(var(--r) + 8px);color:#fff;background:radial-gradient(120% 140% at 85% 0%,color-mix(in srgb,var(--accent) 55%,#fff) 0,transparent 55%),linear-gradient(135deg,color-mix(in srgb,var(--accent) 88%,#000),color-mix(in srgb,var(--accent) 60%,#000));box-shadow:0 14px 40px color-mix(in srgb,var(--accent) 30%,transparent)}
.hero-date{font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;opacity:.85}
.hero-h{color:#fff;font-size:2.1rem;margin:6px 0 6px;letter-spacing:-.02em}.hero-p{margin:0 0 18px;opacity:.92;max-width:520px}
.hero-btns{display:flex;flex-wrap:wrap;gap:10px}
.hbtn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#fff;font:inherit;font-weight:600;font-size:.9rem;text-decoration:none;cursor:pointer;backdrop-filter:blur(6px);transition:.15s}
.hbtn:hover{background:rgba(255,255,255,.28);transform:translateY(-1px)}.hbtn.pri{background:#fff;color:color-mix(in srgb,var(--accent) 85%,#000);border-color:#fff}.hbtn.pri:hover{background:#f4f4f4}
.hero-r{display:grid;gap:10px;min-width:230px}
.hpill{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 18px;border-radius:16px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px)}.hpill span{font-size:.88rem;opacity:.92}.hpill b{font-size:1.35rem}
.dstats .stat{position:relative;border-top:1px solid var(--line);padding:18px}.dstats .stat:hover{border-color:var(--accent)}
.sico{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.idledlg{text-align:center;max-width:420px;padding:30px 34px}.idledlg .row{justify-content:center;display:flex;gap:10px;margin-top:16px}
.ring{position:relative;width:116px;height:116px;margin:0 auto 14px}.ring svg{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7}.ring .bg{stroke:var(--line)}.ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:2.1rem}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding:22px}.hero-h{font-size:1.6rem}.hero-r{grid-template-columns:repeat(3,1fr);min-width:0}.hpill{flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px}}
.dstats{margin-bottom:12px}
.pinbox{max-width:420px;margin:40px auto;padding:30px}.pinico{width:60px;height:60px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.pinbox .otp{text-align:center;font-size:1.6rem;letter-spacing:.4em}
.whoami{display:flex;gap:10px;align-items:center;margin:0 4px 10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.07);color:#e8ecf2;text-decoration:none}.whoami:hover{background:rgba(255,255,255,.12)}
.whoami .av{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.whoami b{display:block;font-size:.88rem;line-height:1.15}.whoami small{opacity:.7;font-size:.74rem}
html[data-side=light] .whoami{background:var(--line);color:var(--ink)}
.sw.on{outline:3px solid var(--ink);outline-offset:2px}.matrix td,.matrix th{padding:7px 10px}
.fgrid{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}.fgrid .f{margin:0}.fgrid input,.fgrid select{min-width:140px}
.rolechip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.76rem;font-weight:600;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.vtbl{width:100%;border-collapse:collapse;margin:8px 0}.vtbl th{text-align:left;color:var(--mut);font-weight:600;padding:7px 8px 7px 0;width:34%}.vtbl td{padding:7px 0;font-weight:600}.vtbl tr{border-bottom:1px solid var(--line)}
.gfoot a,.afoot a{color:inherit;text-decoration:none}.gfoot a:hover,.afoot a:hover{text-decoration:underline}.afoot{text-align:center;color:var(--mut);font-size:.8rem;margin:28px 0 8px}

/* v9 registration-style sign-up form */
.cleancard.wide{max-width:720px}
.fgrid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.fgrid2>.f,.fgrid2>.fsec{grid-column:1/-1}.fgrid2>.f.half{grid-column:auto}
.fsec{margin:10px 0 14px;padding-bottom:6px;border-bottom:2px solid var(--line)}.fsec h3{margin:0;font-size:1.02rem}.fsec p{margin:2px 0 0;color:var(--mut);font-size:.85rem}
.fhelp{display:block;margin-top:5px;color:var(--mut);font-size:.8rem}
.cleancard input[type=file]{padding:9px;font-size:.9rem}
.cleancard label.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.cleancard label.check input{width:auto;margin-top:3px}
@media(max-width:600px){.fgrid2{grid-template-columns:1fr}.fgrid2>.f.half{grid-column:1/-1}}
.fbdrag{cursor:grab;color:var(--mut);margin-right:8px;user-select:none}.fbrow.dragging{opacity:.4}.fbrow.fbsec>summary{background:var(--soft,rgba(127,127,127,.08));font-weight:700}
