/* texttoolsbase shared base CSS: global layout, header/footer, typography, legal pages. Pass 4 removed exact duplicate extracted rules. */

:root{--bg:#ECECE8;--panel:#FBFBF9;--panel-2:#F1F1EC;--ink:#17181C;--muted:#5E6066;--faint:#62646A;--line:#DCDCD6;--accent:#4338EF;--accent-ink:#2E25C4;--accent-soft:#E9E7FC;--ok:#18753f;--warn:#c0392b;--display: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;--sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;--r:7px}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6}

a{color:inherit;text-decoration:none}

::selection{background:var(--accent);color:#fff}

.caret{display:inline-block;width:.5ch;height:1.04em;background:var(--accent);margin-left:.06em;transform:translateY(.13em);animation:blink 1.15s steps(1) infinite;border-radius:1px}

@keyframes blink{0%,48%{opacity:1}49%,100%{opacity:0}}

nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.75rem;background:rgba(236,236,232,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}

.brand{font-family:var(--display);font-weight:700;font-size:1.18rem;letter-spacing:-.02em}

.brand .t{color:var(--accent)}

.back{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.13em;transition:color .15s}

.back:hover{color:var(--accent)}

header{max-width:1180px;margin:0 auto;padding:3.2rem 1.75rem 1.6rem}

.eyebrow{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.26em;text-transform:uppercase;margin-bottom:1.1rem}

h1{font-family:var(--display);font-weight:700;font-size:clamp(2.2rem,5.5vw,3.6rem);letter-spacing:-.035em;line-height:1;margin-bottom:.7rem}

.sub{color:var(--muted);font-size:1.02rem;max-width:52ch}

.toolnote{display:inline-flex;gap:.6rem;align-items:baseline;margin-top:1.3rem;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--accent);padding:.7rem .95rem;border-radius:0 var(--r) var(--r) 0;font-family:var(--mono);font-size:.76rem;color:var(--muted);max-width:62ch}

.toolnote b{color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}

.content{background:var(--panel);border-top:1px solid var(--line);margin-top:3.5rem}

.wrap{max-width:760px;margin:0 auto;padding:3.4rem 1.75rem 1rem}

.content h2{font-family:var(--display);font-weight:600;font-size:1.7rem;letter-spacing:-.02em;margin:2.6rem 0 1.1rem}

.content h2:first-child{margin-top:0}

ol.howto{list-style:none;counter-reset:s}

ol.howto li{counter-increment:s;position:relative;padding:.55rem 0 .55rem 2.6rem;border-bottom:1px solid var(--line)}

ol.howto li:last-child{border-bottom:0}

ol.howto li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.55rem;font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--accent)}

.gtk{color:var(--muted)}

.faq .qa{padding:1.05rem 0;border-bottom:1px solid var(--line)}

.faq .qa:last-child{border-bottom:0}

.faq .q{font-weight:600;margin-bottom:.35rem}

.faq .a{color:var(--muted);font-size:.97rem}

ul.related{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.4rem}

ul.related a{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);font-family:var(--mono);font-size:.86rem;transition:all .15s}

ul.related a:hover{border-color:var(--accent);color:var(--accent)}

ul.related .arr{color:var(--faint);font-size:1.1rem;transition:transform .15s}

ul.related a:hover .arr{transform:translateX(3px);color:var(--accent)}

footer{border-top:1px solid var(--line);margin-top:1.5rem;padding:2.6rem 1.75rem;text-align:center}

.flinks{display:flex;justify-content:center;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.1rem}

.flinks a{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;transition:color .15s}

.flinks a:hover{color:var(--accent)}

.fbrand{font-family:var(--display);font-weight:700;font-size:1rem;margin-bottom:.5rem}

.fbrand .t{color:var(--accent)}

.ftag{font-family:var(--mono);font-size:.68rem;color:var(--faint)}

@media (max-width:920px){main.tool{grid-template-columns:1fr}ul.related{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){.caret{animation:none}*{scroll-behavior:auto}}

.typebar{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1.1rem}

.tstat{display:flex;align-items:baseline;gap:.35rem}

.tstat .u{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}

.tctl{margin-left:auto;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

.passage.done{opacity:.65}

.passage .c{color:var(--faint)}

.passage .c.ok{color:var(--ink)}

.passage .c.bad{color:#c0392b;background:rgba(192,57,43,.14);border-radius:2px}

.passage .c.cur{border-bottom:2px solid var(--accent)}

.phint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.95rem;color:var(--accent-ink);background:rgba(233,231,252,.55);backdrop-filter:blur(1px);border-radius:var(--r);cursor:pointer}

.tinput{position:absolute;opacity:0;left:-9999px;top:0;width:10px;height:10px}

.tresult{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r);padding:1rem 1.2rem;font-family:var(--mono);font-size:.88rem;color:var(--accent-ink);display:flex;gap:1.8rem;flex-wrap:wrap;align-items:baseline}

.tresult .rb{font-size:1.5rem;font-weight:600}

:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

p.intro{font-size:1.02rem;line-height:1.7;color:var(--ink);margin:0 0 1rem}

ul.uses{margin:.4rem 0 1.4rem;padding-left:1.2rem}

ul.uses li{margin:.35rem 0;line-height:1.6}

.passage{white-space:pre-wrap;word-break:break-word}

.c.sp{white-space:pre}

.c.sp.bad{background:rgba(220,60,60,.28);border-radius:2px}

.c.sp.cur{background:rgba(127,127,127,.25);border-radius:2px}

.tlock{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:.85rem}

.t14note{max-width:1180px;margin:.8rem auto 0;padding:.7rem 1.1rem;color:var(--warn,#b25);font-family:var(--mono,monospace);font-size:.8rem}

.tk-network{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;padding:.6rem 1rem;font-size:.85rem;opacity:.92}

.tk-network a{text-decoration:underline}

.tk-tag{text-align:center;font-size:.8rem;opacity:.75;margin:.3rem 0}

.hidden{display:none!important}

.bignum{font-family:var(--display);font-weight:600;font-size:5rem;color:var(--accent);line-height:1}

@media (max-width:920px){ul.related{grid-template-columns:1fr}}

.wgin{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}

.wgout{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;min-height:200px}

.wgcount{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-bottom:.7rem}

.wggrp{margin-bottom:.9rem}

.wggrp h4{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.4rem}

.wgwords{display:flex;flex-wrap:wrap;gap:.35rem}

.wgw{font-family:var(--mono);font-size:.86rem;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:.2rem .5rem;cursor:pointer;transition:all .12s}

.wgw:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}

.wgempty{color:var(--faint);text-align:center;padding:1.8rem 1rem}

.wgnote{font-family:var(--mono);font-size:.7rem;color:var(--muted)}

.wgw:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}

.wgcaveat{max-width:760px;margin:.5rem auto 0;font-size:.82rem;color:var(--muted);font-style:italic;text-align:center}

@media (max-width:860px){main.xform{grid-template-columns:1fr}}

@media (prefers-reduced-motion: reduce){.caret{animation:none}}

.t18opts{max-width:980px;margin:1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center}

.t18note{max-width:980px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

ul.uses{list-style:disc;color:var(--muted);margin:.2rem 0 0;padding-left:1.2rem}

ul.uses li{margin:.35rem 0}

.intro{color:var(--muted);font-size:1.02rem}

.intro p+p{margin-top:.8rem}

.mode{font-family:var(--mono);font-size:.74rem;padding:.42rem .7rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;cursor:pointer;color:var(--muted);transition:all .14s}

.mode:hover{border-color:var(--accent);color:var(--accent)}

.mode.on{background:var(--ink);color:#fff;border-color:var(--ink)}

.ctrls{max-width:1180px;margin:1.1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end}

.warn{max-width:100%;margin:0;padding:.6rem 1rem;border-top:1px solid var(--line);background:var(--panel-2);border-left:3px solid var(--warn);font-family:var(--mono);font-size:.7rem;color:var(--warn);line-height:1.5}

main.formwrap{max-width:1040px;margin:1.4rem auto 0;padding:0 1.75rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:.9rem;align-items:start}

.formpanel,.outpanel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}

.formpanel{padding:1.2rem}

.fields{display:flex;flex-direction:column;gap:.8rem}

.outpanel{padding:1rem;min-height:220px}

.ohead{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}

.ohead .lbl{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}

.ocard{position:relative;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:.85rem 2.8rem .85rem 1rem;margin-bottom:.6rem;white-space:pre-wrap;word-break:break-word;font-size:.92rem;line-height:1.55;color:var(--ink)}

.ocard .cp{position:absolute;top:.5rem;right:.5rem}

.oempty{color:var(--faint);text-align:center;padding:2.2rem 1rem;font-size:.9rem}

@media (max-width:820px){main.formwrap{grid-template-columns:1fr}}

.tk-trademark{margin-top:1rem;font-size:.8rem;line-height:1.5;color:var(--muted,#6b7280)}

.times{display:flex;flex-direction:column;gap:.2rem;padding:.95rem 0 .3rem}

.times .row{display:flex;justify-content:space-between;align-items:baseline;padding:.32rem 0}

.times .row .k{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}

.times .row .v{font-family:var(--mono);font-size:.92rem;color:var(--ink);font-variant-numeric:tabular-nums}

@media (max-width:920px){main.tool{grid-template-columns:1fr}.readout{position:static}ul.related{grid-template-columns:1fr}}

.parts{flex:1;overflow:auto;padding:1rem;display:flex;flex-direction:column;gap:.8rem;min-height:330px}

.partcard{border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2);overflow:hidden}

.phead{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.55rem .8rem;border-bottom:1px solid var(--line);background:var(--panel)}

.pttl{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}

.pmeta{font-family:var(--mono);font-size:.66rem;color:var(--faint)}

.pacts{display:flex;gap:.25rem}

.ppre{margin:0;padding:.7rem .8rem;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.82rem;color:var(--ink);max-height:180px;overflow:auto}

.pempty{font-family:var(--mono);font-size:.8rem;color:var(--faint);padding:.5rem}

.expbadge{display:inline-block;font-family:var(--mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;background:#B7791F;color:#fff;border-radius:4px;padding:.12rem .5rem;vertical-align:middle;margin-left:.5rem}

.gobar{max-width:1000px;margin:.9rem auto 0;padding:0 1.75rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}

.rcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem}

.scorebig{font-family:var(--display);font-weight:700;font-size:2.5rem;color:var(--ink);line-height:1}

.scorelbl{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:.35rem}

.sigs{display:flex;flex-direction:column;gap:.55rem;margin-top:1rem}

.sig{display:grid;grid-template-columns:150px 1fr 42px;align-items:center;gap:.7rem}

.sig .name{font-family:var(--mono);font-size:.68rem;color:var(--muted)}

.sig .track{height:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:20px;overflow:hidden}

.sig .track > i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}

.sig .val{font-family:var(--mono);font-size:.7rem;color:var(--muted);text-align:right}

.rmeta{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-top:.7rem}

@media (prefers-reduced-motion: reduce){.caret,.sig i{transition:none}}

.t17opts{max-width:1040px;margin:1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center}

.caveat{max-width:1040px;margin:.55rem auto 0;padding:.5rem .9rem;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:.6rem;font-size:.88rem;line-height:1.5}

.t17note{max-width:1040px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

.resacts{max-width:1040px;margin:.6rem auto 0;padding:0 1.75rem;display:flex;gap:.5rem;flex-wrap:wrap}

.rwbtns{max-width:980px;margin:.9rem auto 0;padding:0 1.75rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}

.aibox{max-width:980px;margin:.9rem auto 0;padding:0 1.75rem}

.aicard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.15rem}

.aicard h4{font-family:var(--display);font-weight:600;font-size:.95rem;margin:0 0 .3rem}

.aicard p{font-size:.86rem;color:var(--muted);margin:0 0 .7rem;line-height:1.55}

.aicard .load{font-family:var(--display);font-weight:600;font-size:.88rem;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:.55rem 1.2rem;cursor:pointer}

.aistat{font-family:var(--mono);font-size:.74rem;color:var(--muted)}

.aistat.err{color:#c0392b}

.spin{display:inline-block;width:13px;height:13px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:.4rem}

@keyframes sp{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion: reduce){.caret,.spin{animation:none}}

.t14opts{max-width:980px;margin:1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;align-items:center}

@media (max-width:920px){.readout{position:static}ul.related{grid-template-columns:1fr}}

.note{font-family:var(--mono);font-size:.66rem;color:var(--faint);margin-top:.7rem;line-height:1.55}

.chips{max-width:1180px;margin:1.1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.4rem}

.chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;padding:.3rem .62rem;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted)}

.chip.warn{border-color:var(--warn);color:var(--warn);background:#fbeeec}

.tnote{max-width:1180px;margin:.6rem auto 0;padding:0 1.75rem;font-family:var(--mono);font-size:.72rem;color:var(--muted);line-height:1.55}

.titlemin{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-bottom:1px solid var(--line);background:var(--panel-2);font-family:var(--mono);font-size:.72rem;color:var(--muted)}

.example{padding:.6rem 1rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.8rem;color:var(--muted);background:var(--panel-2);display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}

.example .ar{color:var(--faint)}

.example code{font-family:var(--mono);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:.12rem .42rem}

.example code#exout{color:var(--accent-ink);border-color:var(--accent-soft);background:var(--accent-soft)}

p.note.warn{color:var(--warn)}

.fields{max-width:980px;margin:1.1rem auto 0;padding:0 1.75rem;display:flex;flex-direction:column;gap:.7rem}

.fld{display:flex;flex-direction:column;gap:.35rem;font-size:.92rem;color:var(--muted)}

.fld .wl{width:100%;min-height:2.6rem;resize:vertical;border:1px solid var(--line);border-radius:.6rem;background:var(--panel);color:var(--ink);font-family:var(--sans);font-size:.98rem;padding:.5rem .7rem;line-height:1.5}

.optrow{max-width:980px;margin:.6rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;align-items:center}

.warn{max-width:980px;margin:.5rem auto 0;padding:.55rem .9rem;border:1px solid var(--warn);background:rgba(180,120,20,.10);color:var(--warn);border-radius:.6rem;font-size:.9rem;line-height:1.5}

.warn{margin:.6rem 0 0;padding:.55rem .7rem;border:1px solid var(--warn);border-radius:var(--r);background:rgba(0,0,0,.02);color:var(--ink);font-size:.8rem;line-height:1.4}

#stat{margin-top:.45rem;font-family:var(--mono);font-size:.72rem;color:var(--faint);letter-spacing:.04em}

.thint{max-width:980px;margin:.4rem auto 0;padding:0 1.75rem}

.thint .box{font-family:var(--mono);font-size:.72rem;color:var(--muted);background:var(--panel-2);border-left:3px solid var(--accent);padding:.6rem .9rem;border-radius:0 var(--r) var(--r) 0}

.thint b{color:var(--ink)}

.t18note{max-width:1180px;margin:.6rem auto 0;padding:0 1.75rem;color:var(--warn);font-size:.88rem}

.tchip{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:.3rem .8rem;font:inherit;font-size:.85rem;cursor:pointer}

.tchip[aria-current="true"]{border-color:var(--accent);background:var(--accent-soft)}

.tray{max-width:980px;margin:1.3rem auto 0;padding:0 1.75rem}

.trayin{display:flex;gap:.6rem;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.6rem .6rem .6rem 1rem}

.cat{max-width:980px;margin:1.6rem auto 0;padding:0 1.75rem}

.cat h3{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin-bottom:.6rem}

.cat.feat h3{color:var(--accent)}

.symgrid{display:flex;flex-wrap:wrap;gap:.4rem}

.sym:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}

.sym:active{transform:translateY(0)}

.toast{position:fixed;left:50%;bottom:2rem;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;font-family:var(--mono);font-size:.78rem;padding:.6rem 1rem;border-radius:8px;opacity:0;pointer-events:none;transition:all .2s;z-index:50}

.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.sym:focus-visible,.cp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

main.solo{max-width:820px;margin:1rem auto 0;padding:0 1.75rem}

main.voicewrap{max-width:880px;margin:1.4rem auto 0;padding:0 1.75rem;display:flex;flex-direction:column;gap:.9rem}

.vbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

.vbtn{font-family:var(--display);font-weight:600;font-size:.92rem;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:.6rem 1.3rem;cursor:pointer;box-shadow:0 1px 0 var(--accent-ink)}

.vbtn:hover{background:var(--accent-ink)}

.vbtn.sec{background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:none}

.vbtn.sec:hover{border-color:var(--accent);color:var(--accent);background:var(--panel)}

.vbtn:disabled{opacity:.5;cursor:not-allowed}

.recbtn{background:#c0392b;box-shadow:0 1px 0 #8e2820}

.recbtn:hover{background:#a5281b}

.recbtn.on{animation:vpulse 1.2s infinite}

@keyframes vpulse{0%,100%{box-shadow:0 0 0 0 rgba(192,57,43,.5)}50%{box-shadow:0 0 0 8px rgba(192,57,43,0)}}

.vstatus{font-family:var(--mono);font-size:.74rem;color:var(--muted);min-height:1.1em}

.vstatus.err{color:#c0392b}

.vfile{margin:.6rem 0;display:flex;flex-direction:column;gap:.5rem}

.vfile audio{width:100%}

.t14caveat{max-width:900px;margin:.5rem 0;font-size:.82rem;color:var(--muted);font-style:italic}

.density{margin-top:.8rem;border-top:1px solid var(--line);padding-top:1rem}

.density h3{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin-bottom:.7rem}

.density ol{list-style:none}

.density li{position:relative;display:flex;justify-content:space-between;align-items:center;padding:.4rem .55rem;margin-bottom:.2rem;border-radius:5px;overflow:hidden;font-size:.84rem}

.density li .bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);z-index:0;border-radius:5px}

.density li .w{position:relative;z-index:1;font-weight:500}

.density li .c{position:relative;z-index:1;font-family:var(--mono);font-size:.74rem;color:var(--muted)}

.density .empty{font-size:.8rem;color:var(--faint);padding:.3rem .55rem}

.read2{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.9rem;display:flex;flex-direction:column;gap:.35rem}

.read2 .row{display:flex;justify-content:space-between;align-items:baseline}

.read2 .row .k{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}

.read2 .row .v{font-family:var(--mono);font-size:.95rem;color:var(--ink);font-variant-numeric:tabular-nums}

.read2 .row .v.badge{padding:.05rem .5rem;border-radius:5px;background:var(--accent-soft);color:var(--accent-ink)}

.note.warn{color:var(--warn)}

.dlist{list-style:none;counter-reset:d;max-height:430px;overflow:auto}

.dlist li{counter-increment:d;position:relative;display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.42rem .55rem;margin-bottom:.2rem;border-radius:5px;overflow:hidden;font-size:.86rem}

.dlist li .bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);z-index:0;border-radius:5px}

.dlist li .rank{position:relative;z-index:1;font-family:var(--mono);font-size:.7rem;color:var(--faint);min-width:1.7em;text-align:right}

.dlist li .w{position:relative;z-index:1;font-weight:500;flex:1;word-break:break-word}

.dlist li .c{position:relative;z-index:1;font-family:var(--mono);font-size:.76rem;color:var(--muted);white-space:nowrap}

.fin{min-height:120px;overflow:hidden}

.styles{display:grid;grid-template-columns:1fr;gap:.55rem}

.scard{display:flex;align-items:center;gap:1rem;padding:.7rem .9rem .7rem 1.1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s}

.scard:hover{border-color:var(--accent)}

.scard.feat{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

.scard .sname{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);width:108px;flex-shrink:0}

.scard .sout{flex:1;font-size:1.18rem;line-height:1.5;word-break:break-word;color:var(--ink);min-width:0}

.scard .scopy{font-family:var(--mono);font-size:.68rem;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:6px;padding:.36rem .65rem;cursor:pointer;transition:all .14s;flex-shrink:0}

.scard .scopy:hover{color:var(--accent);border-color:var(--accent)}

.scard .scopy:active{transform:translateY(1px)}

@media (max-width:620px){.scard{flex-wrap:wrap}.scard .sname{width:100%}.scard .sout{font-size:1.05rem}}

.t19opts{max-width:880px;margin:1rem auto 0;padding:0 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center}

.disc{max-width:880px;margin:.55rem auto 0;padding:.5rem .9rem;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:.6rem;font-size:.85rem;line-height:1.5}

.t19note{max-width:880px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

.letters{display:flex;flex-wrap:wrap;gap:.4rem;padding:.4rem 0}

.lchip{border:1px solid var(--line);border-radius:.5rem;padding:.3rem .55rem;font-size:1.2rem;cursor:pointer;background:var(--panel);color:var(--ink);font:inherit;line-height:1.2}

.lchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.disc{margin-top:1.5rem;padding:.8rem .95rem;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 var(--r) var(--r) 0;background:var(--panel-2);color:var(--muted);font-size:.84rem}

.invgrid{max-width:760px;margin:1.4rem auto 0;padding:0 1.75rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem}

.invbtn{display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;text-align:left;transition:all .14s;font:inherit}

.invbtn:hover{border-color:var(--accent)}

.invbtn .nm{font-weight:600;font-size:.92rem;color:var(--ink)}

.invbtn .dx{font-family:var(--mono);font-size:.66rem;color:var(--faint)}

.invgen{max-width:760px;margin:1rem auto 0;padding:1rem 1.75rem;display:flex;gap:.8rem;align-items:flex-end}

.invbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.single{font-size:1.4rem;line-height:1.7;word-break:break-word;padding:.6rem;min-height:2.4rem}

.wpmcalc{max-width:760px;margin:0 auto}

.wpmcalc .ctrls{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}

.wpmpaste{display:block;margin:.4rem 0 1rem}

.cmpcards{display:flex;flex-direction:column;gap:.8rem}

.cv{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}

.cvbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem .85rem;border-bottom:1px solid var(--line);background:var(--panel-2)}

.cvlbl{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}

.cvout{margin:0;padding:.85rem;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.9rem;color:var(--ink);min-height:2.6rem;line-height:1.6}

@media (max-width:860px){main.xform.cmp{grid-template-columns:1fr}}

.modestrip{max-width:1180px;margin:1.1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.4rem}

main.diffwrap{max-width:1100px;margin:1.4rem auto 0;padding:0 1.75rem;display:flex;flex-direction:column;gap:.8rem}

.diffin{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}

.diffpanel{padding:0}

.diffout{font-family:var(--mono);font-size:.88rem;line-height:1.65;padding:.6rem 0;max-height:560px;overflow:auto}

.diffout .dl{padding:.05rem 1rem;white-space:pre-wrap;word-break:break-word}

.diffout .dl.eq{color:var(--muted)}

.diffout .dl.del{background:rgba(192,57,43,.10);color:#a5281b}

.diffout .dl.ins{background:rgba(31,143,78,.12);color:#1c6e3f}

.diffout .dl.del::before{content:'\2212  ';opacity:.6}

.diffout .dl.ins::before{content:'+  ';opacity:.6}

.worddiff{padding:.9rem 1rem;white-space:pre-wrap;word-break:break-word;color:var(--ink)}

.worddiff del{background:rgba(192,57,43,.16);color:#a5281b;text-decoration:line-through}

.worddiff ins{background:rgba(31,143,78,.18);color:#1c6e3f;text-decoration:none}

@media (max-width:760px){.diffin{grid-template-columns:1fr}}

@media print{nav,header,.content,footer,.diffin,.toolnote{display:none!important}}

.dl.del::before,.dl.ins::before{content:none}

.dl{display:flex;gap:.15rem;align-items:baseline}

.dl .tx{white-space:pre-wrap;word-break:break-word;flex:1}

.ctrls{max-width:1100px;margin:1.1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;align-items:center}

.warn{max-width:1100px;margin:.5rem auto 0;padding:.55rem .9rem;border:1px solid var(--warn);background:rgba(180,120,20,.10);color:var(--warn);border-radius:.6rem;font-size:.9rem;line-height:1.5}

.files{display:flex;gap:.55rem;align-items:center;margin-bottom:.45rem;flex-wrap:wrap}

.sbs{display:grid;grid-template-columns:1fr 1fr}

.summary{display:flex;gap:1.1rem;flex-wrap:wrap}

.summary .ad{color:#1c6e3f}

.summary .rm{color:#a5281b}

.nodiff{padding:.4rem 1rem;color:var(--muted)}

.diffout.uni .dl{font-family:var(--mono);font-size:.9em}

.diffout.uni .dl.del,.diffout.uni .dl.ins{background:transparent}

.t12note{max-width:1180px;margin:.8rem auto 0;padding:.7rem 1.75rem;color:var(--warn);font-family:var(--mono);font-size:.8rem}

#table{overflow:auto;border:1px solid var(--line);border-radius:8px;max-height:460px}

table.csvtable{border-collapse:collapse;width:100%;font-size:.86rem}

table.csvtable th,table.csvtable td{border:1px solid var(--line);padding:.4rem .6rem;text-align:left;white-space:nowrap;vertical-align:top}

table.csvtable th{background:var(--panel-2);position:sticky;top:0;font-weight:600}

table.csvtable tbody tr:nth-child(even){background:rgba(127,127,127,.05)}

main.chkwrap{max-width:1000px;margin:1.4rem auto 0;padding:0 1.75rem;display:grid;grid-template-columns:1fr 1fr;gap:.9rem;align-items:start}

.chkpane{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;min-height:300px}

.chkbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;border-bottom:1px solid var(--line)}

.chkbar .lbl{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}

.chkbar .pill{font-family:var(--mono);font-size:.66rem;color:#fff;background:var(--accent);border-radius:20px;padding:.12rem .6rem}

.chkbar .pill.ok{background:#1f9d55}

.issues{flex:1;overflow:auto;padding:.6rem .7rem;display:flex;flex-direction:column;gap:.5rem}

.issue{border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem;background:var(--panel-2)}

.issue .top{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}

.chip{font-family:var(--mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .45rem;border-radius:4px;color:#fff}

.chip.spelling{background:#c0392b}

.chip.spacing{background:#b7791f}

.chip.style{background:#7c6f9c}

.chip.grammar{background:var(--accent)}

.chip.repeat{background:#2c7a7b}

.issue .msg{font-size:.86rem;color:var(--ink)}

.issue .snip{font-family:var(--mono);font-size:.74rem;color:var(--muted);margin-top:.2rem;white-space:pre-wrap;word-break:break-word}

.issue .fixbtn{margin-top:.4rem;font-family:var(--mono);font-size:.7rem;border:1px solid var(--accent);color:var(--accent);background:transparent;border-radius:5px;padding:.2rem .6rem;cursor:pointer}

.issue .fixbtn:hover{background:var(--accent);color:#fff}

.allfix{display:flex;gap:.5rem;padding:.6rem .9rem;border-top:1px solid var(--line);flex-wrap:wrap;align-items:center}

.cleanmsg{color:#1f9d55;font-size:.9rem;text-align:center;padding:1.6rem 1rem}

.corrected{font-size:.92rem;line-height:1.65;color:var(--ink);white-space:pre-wrap;padding:.9rem;flex:1;overflow:auto}

@media (max-width:820px){main.chkwrap{grid-template-columns:1fr}}

.t16opts{max-width:1040px;margin:1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center}

.t16note{max-width:1040px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

.legal{max-width:760px;margin:0 auto;padding:1rem 1.75rem 3.5rem}

.legal h2{font-family:var(--display);font-weight:600;font-size:1.3rem;margin:1.8rem 0 .7rem}

.legal p,.legal li{color:var(--ink);line-height:1.7;font-size:.97rem}

.legal ul{margin:.4rem 0 .4rem 1.2rem}

.legal li{margin:.3rem 0}

.legal .upd{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-bottom:1rem}

.legal a{color:var(--accent-ink)}

.tk-disclosure{margin:1.25rem 0;line-height:1.6}

.tk-disclosure h2{font-size:1.05rem;margin:.5rem 0}

.filerow{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border-top:1px solid var(--line);background:var(--panel-2);font-family:var(--mono);font-size:.72rem;color:var(--muted)}

main.edwrap{max-width:980px;margin:1.4rem auto 0;padding:0 1.75rem}

.edbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:var(--r) var(--r) 0 0;padding:.6rem .9rem}

.edstats{display:flex;gap:1rem;font-family:var(--mono);font-size:.72rem;color:var(--muted)}

.edstats .sv{color:var(--accent)}

.edstats #saved{color:var(--faint)}

.edacts{margin-left:auto;display:flex;gap:.4rem;flex-wrap:wrap}

#printview{display:none}

@media print{nav,header,.content,footer,.edbar,.toolnote{display:none!important}.editor-area{display:none}#printview{display:block!important;white-space:pre-wrap;font-family:var(--sans);font-size:12pt;line-height:1.6;color:#000;padding:0}}

.edopts{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center;padding:.55rem .9rem;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--panel-2);font-size:.9rem;color:var(--muted)}

.vmeta{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;padding:.55rem .9rem;border:1px solid var(--line);border-bottom:0;border-radius:var(--r) var(--r) 0 0;background:var(--panel-2);font-size:.88rem;color:var(--muted)}

.vmeta .vk{color:var(--faint)}

.note{max-width:980px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

#saved.warn{color:var(--warn)}

@media print{.edopts,.vmeta,.note{display:none!important}}

.tablewrap{max-width:1180px;margin:1rem auto 0;padding:0 1.75rem}

.thint{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:.4rem}

.note{max-width:1180px;margin:.8rem auto 0;padding:0 1.75rem;font-family:var(--mono);font-size:.66rem;color:var(--faint);line-height:1.55}

.counts{display:flex;flex-wrap:wrap;gap:.55rem;margin:.7rem 0 0}

.counts .cv-n{display:block;font-family:var(--mono);font-size:1.05rem;color:var(--ink);font-weight:600}

.outpanel{padding:1rem;min-height:200px}

.ocard{position:relative;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:.85rem 2.8rem .85rem 1rem;white-space:pre-wrap;word-break:break-word;font-size:.92rem;line-height:1.55;color:var(--ink)}

.cp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.statline{max-width:980px;margin:1.2rem auto 0;padding:0 1.75rem;display:flex;gap:2rem;align-items:baseline}

.invbtn{display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;text-align:left;font:inherit}

.invgen{max-width:760px;margin:1rem auto 0;padding:0 1.75rem;display:flex;gap:.8rem;align-items:flex-end}

.disc{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--muted);border-left:3px solid var(--line);padding:6px 0 6px 12px}

.counts .cv{flex:1 1 auto;min-width:84px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:.5rem .65rem;text-align:center}

.counts .cv-l{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-top:.2rem}

.hero{max-width:1040px;margin:0 auto;padding:2.6rem 1.75rem 1rem;text-align:center}

.hero .wm{font-family:var(--display);font-weight:600;font-size:2.7rem;letter-spacing:-.02em;color:var(--ink)}

.hero .wm .t{color:var(--accent)}

.hero p{color:var(--muted);max-width:600px;margin:.7rem auto 0;font-size:1.05rem;line-height:1.6}

.hstat{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-top:.9rem;letter-spacing:.04em}

.search{max-width:560px;margin:1.7rem auto 0}

.idx{max-width:1060px;margin:0 auto;padding:1.4rem 1.75rem 3.5rem}

.idx h2{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:1.9rem 0 .85rem;display:flex;align-items:baseline;gap:.6rem;scroll-margin-top:70px}

.idx h2 .ct{font-family:var(--mono);font-size:.66rem;color:var(--faint)}

.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:.5rem}

.tcard{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);transition:all .15s;text-decoration:none}

.tcard:hover{border-color:var(--accent);transform:translateY(-1px)}

.tcard .nm{font-weight:500;flex:1;font-size:.9rem;color:var(--ink)}

.tcard .arr{color:var(--faint);font-size:1.1rem}

.tcard:hover .arr,.tcard:hover .nm{color:var(--accent)}

.nores{text-align:center;color:var(--faint);padding:2.5rem 1rem;font-family:var(--mono);font-size:.85rem;display:none}

main.genwrap{max-width:980px;margin:1.4rem auto 0;padding:0 1.75rem;display:flex;flex-direction:column;gap:.9rem}

.genbar{display:flex;justify-content:center}

.genbtn{font-family:var(--display);font-weight:600;font-size:1rem;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:.7rem 2.2rem;cursor:pointer;transition:all .15s;box-shadow:0 1px 0 var(--accent-ink)}

.genbtn:hover{background:var(--accent-ink);transform:translateY(-1px)}

.t13note{max-width:1180px;margin:.8rem auto 0;padding:.7rem 1.75rem;color:var(--warn);font-family:var(--mono);font-size:.8rem}

.filepanel .filezone{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem;padding:1.6rem}

.filehint{font-family:var(--mono);font-size:.7rem;color:var(--faint);line-height:1.65;margin:0}

.vrange{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.72rem;color:var(--muted)}

.reader{margin:1rem 0;padding:1rem;border-radius:10px;background:var(--card,rgba(127,127,127,.06));line-height:1.9;max-height:340px;overflow:auto}

.rchunk{padding:.05rem 0}

.rchunk.hl{background:var(--accent-soft);color:var(--accent);border-radius:4px;box-shadow:0 0 0 2px var(--accent-soft)}

.hltbox{font-size:.92rem;line-height:1.7;color:var(--ink);white-space:pre-wrap;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line)}

.hltbox mark{background:var(--accent-soft);color:var(--accent-ink);border-radius:3px;padding:0 1px}

@media (prefers-reduced-motion: reduce){.caret{transition:none}}

.t15opts{max-width:980px;margin:1rem auto 0;padding:0 1.75rem;display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;align-items:center}

.caveat{max-width:980px;margin:.5rem auto 0;padding:.5rem .9rem;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:.6rem;font-size:.88rem;line-height:1.5}

.sumctl{max-width:980px;margin:1.2rem auto 0;padding:0 1.75rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}

.sumctl .rng{display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.72rem;color:var(--muted)}

.sumstat{font-family:var(--mono);font-size:.7rem;color:var(--faint)}

.t14warn{max-width:980px;margin:.45rem auto 0;color:var(--warn);font-size:.88rem}

.tchips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}

.disclaimer{margin:1.2rem 0 0;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--faint);padding:.7rem .95rem;border-radius:0 var(--r) var(--r) 0;font-family:var(--mono);font-size:.72rem;color:var(--muted);max-width:64ch}

.codewrap{display:flex;border:1px solid var(--line);border-radius:0 0 var(--r) var(--r);background:var(--panel);overflow:hidden}

.codewrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

@media print{.edopts,.codewrap,.vmeta,.note{display:none!important}}

.editlink{display:inline-block;margin-top:.6rem;font-size:.92rem}

@media print{.edopts,.vmeta,.editlink,.note{display:none!important}}

.caveat{max-width:1180px;margin:.5rem auto 0;padding:.7rem .95rem;border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:0 var(--r) var(--r) 0;background:var(--panel-2);color:var(--muted);font-size:.88rem}

.totline{display:flex;justify-content:space-between;gap:.5rem;font-family:var(--mono);font-size:.66rem;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;margin:.2rem 0 .8rem;border-bottom:1px solid var(--line);padding-bottom:.7rem}

.totline b{color:var(--ink)}

/* Pass 4 legal and footer safety */
html,body{max-width:100%;overflow-x:hidden}
.not-found > header{max-width:980px;margin-left:auto;margin-right:auto;line-height:1.6}
main.container-narrow,.policy-page,.legal{max-width:980px;margin-left:auto;margin-right:auto;line-height:1.72;overflow-wrap:anywhere;word-break:normal}
main.container-narrow{width:100%;padding-left:1.25rem;padding-right:1.25rem}
.policy-page,.legal{padding-left:1.25rem;padding-right:1.25rem}
.policy-page h1,.legal h1{line-height:1.15}
.policy-page p,.policy-page li,.legal p,.legal li{line-height:1.72}
.tk-disclosure{max-width:980px;margin-left:auto;margin-right:auto;line-height:1.65;overflow-wrap:anywhere}
.tk-trademark{max-width:980px;margin:1rem auto 0;text-align:center;line-height:1.6;overflow-wrap:anywhere;word-break:normal}
@media (max-width:480px){main.container-narrow,.policy-page,.legal{padding-left:1rem;padding-right:1rem}.tk-trademark{font-size:.78rem}}
/* v9 contrast: muted/helper/placeholder/form text >=4.5:1 */
textarea::placeholder{color:#5A5C62!important}
.note{color:#5A5C62!important}
.iometa{color:#5F6166!important}
.ebar .lbl,.ctl>span,.big .u,.cell .l,.vstatus,.ftag{color:#5A5C62!important}

/* v10 E2: muted .lbl contrast (#5A5C62 on #ECECE8 >=4.5) */
.lbl{color:#5A5C62!important}
/* v10 E1: TTS controls must shrink/wrap and fit narrow viewports */
@media (max-width:480px){.voicewrap .ctrls{max-width:100%}.ctrls{max-width:100%}.ctl{min-width:0!important}select#voice{max-width:100%}.ctl input,.ctl select,.ctl button{box-sizing:border-box;max-width:100%}}
/* v10 E3: AI rewrite / two-column transform panels stack on mobile */
@media (max-width:640px){.xform{grid-template-columns:1fr!important}}
.note{color:#5E6066!important}
/* v12: explicit input/textarea placeholder contrast (AA) on light surfaces */
input::placeholder,textarea::placeholder{color:#5A5C62!important;opacity:1!important}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#5A5C62!important;opacity:1!important}
input::-moz-placeholder,textarea::-moz-placeholder{color:#5A5C62!important;opacity:1!important}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#5A5C62!important}
