/* PlainIEP shared design layer (polish.css). Loaded after styles.css and page styles.
   Brand: pink / cream / burgundy · Fredoka (display) · Newsreader (editorial) · Inter (UI/body). */
:root{--pi-radius:14px;--pi-shadow:0 1px 2px rgba(23,13,33,.04),0 8px 24px -12px rgba(23,13,33,.12);--pi-ring:0 0 0 3px #fff,0 0 0 6px var(--rose)}

/* ---------- Base rhythm & type ---------- */
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
p,li{text-wrap:pretty}h1,h2,h3{text-wrap:balance}
::selection{background:#F6D7DF;color:var(--ink)}

/* ---------- Focus states (WCAG 2.4.7 / 2.4.11) ---------- */
:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
.btn:focus-visible,button:focus-visible{outline:none;box-shadow:var(--pi-ring)}
input:focus-visible,textarea:focus-visible,select:focus-visible,[contenteditable]:focus-visible{outline:3px solid var(--rose);outline-offset:1px;border-color:var(--rose)}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* ---------- Homepage hero: fix the 1281–1535px band (text clipped under art, forced line break) ---------- */
@media (min-width:1281px) and (max-width:1535px){
 .home .hero{grid-template-columns:minmax(0,1fr) minmax(0,620px);gap:40px;min-height:0}
 .home h1{font-size:58px}.hero-p{font-size:25px;line-height:35px}.hero-p br{display:none}
 .hero-art{position:static;display:block;width:330px;margin:14px 0 0 140px}
 .home .preview{height:auto;min-height:558px}.pv-body{overflow:visible}.pv-body h3{font-size:25px}
}

/* ---------- Report (app + demo) ---------- */
.report .card,#report .card,.appwrap .card{border-radius:var(--pi-radius);box-shadow:var(--pi-shadow);border-color:#E6E0D9;padding:26px 28px}
.report h2,#report h2{font-family:var(--serif);font-weight:500;font-size:28px;letter-spacing:-.01em;line-height:1.2;margin:0 0 12px;color:var(--ink)}
.report h3,#report h3{font:600 17px/1.35 var(--sans)}
.report p,#report p{line-height:1.6}
.toc{gap:8px!important;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.toc a{display:inline-flex;align-items:center;min-height:34px;padding:4px 14px;border-radius:99px;background:var(--blush);color:var(--rose-d);text-decoration:none;font-weight:500;font-size:14px}
.toc a:hover{background:#F2DDE3;color:var(--rose-d)}
.flag,.goal{background:#fff;border:1px solid #ECE6DF;border-left-width:4px;border-radius:4px 12px 12px 4px;padding:14px 18px;margin:14px 0}
.flag.high,.flag.medium,.flag.good,.goal.good{border-color:#ECE6DF}.flag.high{border-left-color:var(--rose)}.flag.medium{border-left-color:#D9A93A}.flag.good,.goal.good{border-left-color:#8FAA80}
.flag b:first-of-type,.goal b:first-of-type{font-size:16.5px}
.badge,.pill{display:inline-block;border-radius:99px;padding:3px 11px;font-size:13px;font-weight:600;letter-spacing:.01em;vertical-align:2px;margin-right:4px}
.ask{display:block;background:var(--blush);border-radius:10px;padding:10px 14px;margin:10px 0;font-weight:600;color:#3A1424}
.quote{display:block;background:var(--evid);border-left:3px solid #E9BE58;border-radius:0 8px 8px 0;padding:8px 12px;margin:8px 0 2px;font-family:var(--serif);font-style:normal!important;font-size:15.5px;line-height:1.5;color:#3D3445}
.warnbox{border-radius:12px}
table th{font:600 12.5px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#FBF8F4;border-bottom:2px solid var(--line)}
table td{padding:10px 8px}table tr:last-child td{border-bottom:0}
.tablewrap{border:1px solid #ECE6DF;border-radius:12px}
ol.qs{counter-reset:q;list-style:none;padding:0}
ol.qs li{counter-increment:q;position:relative;padding:12px 14px 12px 54px;margin:8px 0;border:1px solid #ECE6DF;border-radius:12px;background:#fff;line-height:1.5}
ol.qs li:before{content:counter(q);position:absolute;left:12px;top:10px;width:30px;height:30px;border-radius:50%;background:var(--sage);display:grid;place-items:center;font:600 14px var(--sans);color:#22331F}
ol.qs li:nth-child(3n+2):before{background:var(--blue);color:#1E3348}ol.qs li:nth-child(3n):before{background:#FBE7BD;color:#4A3510}
ol.qs li[contenteditable]:hover{border-color:#D8CFC6}
#letter,textarea.letter{font-family:var(--serif);font-size:17px;line-height:1.65;padding:22px 24px;border:1px solid #E6E0D9;border-radius:12px;background:#FFFEFB;color:var(--ink);width:100%;box-shadow:inset 0 1px 2px rgba(23,13,33,.04);field-sizing:content;min-height:260px}

/* ---------- Meeting plan ---------- */
.prilist{display:grid;gap:8px;margin:10px 0 6px}
.pripick{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #E8E3DC;border-radius:12px;padding:12px 14px;cursor:pointer;line-height:1.4;min-height:48px}
.pripick input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--rose)}
.pripick.on{border-color:var(--rose);background:#FDF6F8}
.pripick:has(input:disabled){opacity:.6;cursor:default}
.ah2{margin-top:26px}
.actrow{display:grid;grid-template-columns:1fr;gap:8px;background:#fff;border:1px solid #E8E3DC;border-radius:12px;padding:12px 14px;margin:0 0 10px}
.actrow label{display:grid;gap:4px;font-size:14px;font-weight:600;color:var(--muted)}
.actrow input{width:100%;min-height:44px;font:16px var(--sans);padding:8px 10px;border:1px solid #D9D2CA;border-radius:9px;background:#FFFEFB;color:var(--ink)}
.actrow .tlink{justify-self:start;font-size:15px}
@media (min-width:640px){.screen .actrow,.appwrap .actrow{grid-template-columns:2fr 1.2fr 1fr auto;align-items:end}}

/* ---------- Mobile ---------- */
@media (max-width:760px){
 .report .card,#report .card,.appwrap .card{padding:20px 18px;border-radius:12px}
 .report h2,#report h2{font-size:24px}
 .toc{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-4px;margin-right:-4px;padding:0 4px 14px}
 .toc a{flex:none}
 .flag,.goal{padding:12px 14px}
 table{font-size:14.5px}
 .btn.sm{min-height:44px}
 #letter{font-size:16px;padding:16px}
}

/* Print is handled by /assets/print.css */
@media(min-width:1536px){.hero-art{position:static;display:block;width:330px;margin:14px 0 0 140px}}

/* ---------- Sign in / create account (app gate) ---------- */
.authcard{max-width:460px;padding:24px 24px 18px;border-radius:var(--pi-radius);box-shadow:var(--pi-shadow);border-color:#E6E0D9}
.authcard label{display:block;margin:14px 0 6px;font-size:15px}
.authcard input[type=email],.authcard input[type=password]{display:block;width:100%;min-height:48px;font:16px var(--sans);padding:10px 12px;border:1px solid #D9D2CA;border-radius:9px;background:#FFFEFB;color:var(--ink)}
.authcard .pwhint{display:block;font-size:13.5px;margin:6px 0 16px}
.gbtn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;padding:12px 18px;border:1px solid #CFC9C2;border-radius:10px;background:#fff;color:var(--ink);font:600 18px/1.2 var(--sans);text-decoration:none;box-shadow:0 1px 2px rgba(23,13,33,.06)}
.gbtn:hover{border-color:var(--rose);color:var(--ink);background:#FFFCFD}
.gbtn.hide,.orline.hide{display:none}
.orline{display:flex;align-items:center;gap:12px;margin:18px 0 2px;color:var(--muted);font-size:14px}
.orline:before,.orline:after{content:"";flex:1;height:1px;background:var(--line)}
.authrow{margin:12px 0 0;text-align:center;font-size:15px}
#mlmsg:empty,#resetmsg:empty{display:none}
