:root{color-scheme:light;--ink:#23322e;--muted:#64736e;--green:#28786c;--green-dark:#185a51;--mint:#eaf6f2;--line:#cfe0da;--warm:#fff6e6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}*{box-sizing:border-box}body{margin:0;background:#f6faf8;color:var(--ink)}main{max-width:920px;margin:auto;padding:24px}.ksn-tool__header{padding:24px;border-radius:20px;background:linear-gradient(135deg,#fff,var(--mint));box-shadow:0 10px 30px rgba(30,70,60,.08)}.ksn-tool__header h1{margin:.25rem 0;font-size:clamp(1.8rem,5vw,3rem)}.ksn-tool__eyebrow{color:var(--green);font-weight:800}.ksn-tool__privacy{color:var(--muted);font-size:.9rem}#ksn-tool-app{margin-top:20px;padding:24px;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(30,70,60,.08)}button,input,select{font:inherit}button{min-height:44px;border:1px solid var(--green);border-radius:12px;background:#fff;color:var(--green-dark);padding:8px 15px;cursor:pointer;font-weight:700}button:hover{background:var(--mint)}button.ksn-primary{background:var(--green);color:#fff}button.ksn-primary:hover{background:var(--green-dark)}input,select{width:100%;min-width:0;height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 11px}.ksn-tool__actions,.ksn-tool__footer{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.ksn-tool__footer{padding-top:18px;border-top:1px solid var(--line)}.ksn-editor-row{display:grid;grid-template-columns:120px 1fr auto;gap:8px;margin-bottom:9px}.ksn-editor-row [data-ksn-routine-item]{grid-column:1/3}.ksn-editor-row [data-ksn-routine-state]{grid-column:3}.ksn-editor-row [data-ksn-remove]{grid-column:4}.ksn-tool ol{padding-left:26px}.ksn-tool__preview{padding:20px;border:2px solid var(--green);border-radius:18px;background:var(--mint)}.ksn-tool__preview li{padding:12px;border-bottom:1px solid var(--line);font-size:1.1rem}.ksn-two-inputs,.ksn-now-next-board{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ksn-two-inputs label{display:grid;gap:6px;font-weight:700}.ksn-now-next-board article{min-height:180px;margin-top:18px;padding:22px;border-radius:18px;background:var(--mint);text-align:center}.ksn-now-next-board h2{color:var(--green)}.ksn-now-next-board p{font-size:clamp(1.5rem,5vw,2.5rem);font-weight:800}.ksn-timer__inputs{display:grid;grid-template-columns:120px 120px 1fr;gap:12px;align-items:end}.ksn-timer__inputs label{display:grid;gap:5px}.ksn-timer__display{display:block;margin:24px 0 8px;font-size:clamp(4rem,18vw,9rem);line-height:1;text-align:center;font-variant-numeric:tabular-nums;font-weight:800;color:var(--green-dark)}[data-ksn-timer-state]{text-align:center;font-weight:700}.ksn-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.ksn-choice-grid article{display:grid;gap:8px}.ksn-choice-grid button{min-height:130px;font-size:1.3rem}.ksn-choice-grid button[aria-pressed=true]{background:var(--warm);border-width:3px;border-color:#c88900;color:#6b4a00}
[hidden]{display:none!important}@media(max-width:620px){main{padding:12px}.ksn-tool__header,#ksn-tool-app{padding:16px}.ksn-editor-row{grid-template-columns:92px 1fr}.ksn-editor-row button,.ksn-editor-row [data-ksn-routine-state],.ksn-editor-row [data-ksn-remove]{grid-column:auto}.ksn-two-inputs,.ksn-now-next-board,.ksn-choice-grid{grid-template-columns:1fr}.ksn-timer__inputs{grid-template-columns:1fr 1fr}.ksn-timer__inputs label:last-child{grid-column:1/-1}.ksn-tool__actions,.ksn-tool__footer{flex-direction:column}.ksn-tool__actions button,.ksn-tool__footer button{width:100%}}
@media print{body{background:#fff}main{max-width:none;padding:0}.ksn-tool__header{box-shadow:none}.ksn-tool__privacy,.ksn-tool__actions,.ksn-tool__footer,.ksn-tool__editor{display:none!important}#ksn-tool-app{box-shadow:none;padding:0}.ksn-tool__preview[hidden]{display:block!important}}
.ksn-display-toggle{margin-bottom:16px}.ksn-display-mode{position:fixed;inset:0;z-index:10;overflow:auto;margin:0;border-radius:0;padding:clamp(16px,4vw,48px);background:#fff}.ksn-display-mode .ksn-display-toggle{position:sticky;top:0;z-index:1}.ksn-display-mode .ksn-tool__preview,.ksn-display-mode .ksn-now-next-board,.ksn-display-mode .ksn-timer__display,.ksn-display-mode .ksn-choice-grid{font-size:clamp(1.25rem,3vw,2.4rem)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c88900;outline-offset:3px}@media(max-width:320px){main{padding:8px}.ksn-display-mode{padding:12px}.ksn-editor-row{display:block}.ksn-editor-row>*{display:block;width:100%;margin-bottom:8px}.ksn-timer__inputs{grid-template-columns:1fr}.ksn-choice-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important}}@media print{.ksn-display-toggle{display:none!important}.ksn-display-mode{position:static;overflow:visible;padding:0}.ksn-display-mode .ksn-tool__preview[hidden]{display:block!important}}
body.ksn-tool-display-open{overflow:hidden}
 .ksn-display-mode{width:100vw;height:100vh;max-width:none;position:fixed;inset:0;z-index:10;overflow:auto;margin:0;border-radius:0;padding:clamp(16px,4vw,48px);background:#fff}.ksn-display-mode .ksn-display-toggle{position:sticky;top:0;z-index:2}.ksn-display-mode .ksn-tool__editor,.ksn-display-mode .ksn-two-inputs,.ksn-display-mode[data-ksn-choice-board]>label,.ksn-display-mode[data-ksn-choice-board] [data-ksn-choice-input],.ksn-display-mode[data-ksn-now-next] .ksn-tool__actions,.ksn-display-mode[data-ksn-timer] .ksn-timer__inputs{display:none!important}.ksn-display-mode .ksn-display-empty{margin:32px auto;padding:24px;max-width:46rem;border-radius:16px;background:var(--warm);font-size:clamp(1.1rem,2.5vw,1.6rem);text-align:center}.ksn-display-mode .ksn-tool__preview{min-height:60vh;display:block;padding:clamp(22px,5vw,56px)}.ksn-display-mode .ksn-tool__preview h2{font-size:clamp(1.8rem,5vw,3.4rem)}.ksn-display-mode .ksn-tool__preview li{padding:clamp(14px,3vw,28px);font-size:clamp(1.4rem,4vw,2.8rem)}.ksn-display-mode .ksn-tool__preview input[type=checkbox]{width:1.4em;height:1.4em;vertical-align:middle}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board{min-height:70vh;align-items:stretch}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board article{display:grid;min-height:32vh;place-items:center}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board h2{font-size:clamp(1.8rem,5vw,3.6rem)}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board p{font-size:clamp(3rem,12vw,9rem);overflow-wrap:anywhere}.ksn-display-mode[data-ksn-timer] .ksn-timer__display{font-size:clamp(6rem,24vw,15rem);margin:clamp(32px,8vh,96px) 0 16px}.ksn-display-mode[data-ksn-timer] .ksn-tool__actions{justify-content:center}.ksn-display-mode[data-ksn-timer] .ksn-tool__actions button,.ksn-display-mode[data-ksn-choice-board] .ksn-tool__actions button{min-height:56px;font-size:clamp(1.1rem,2.4vw,1.6rem)}.ksn-display-mode[data-ksn-choice-board] .ksn-choice-grid{min-height:60vh;align-items:stretch}.ksn-display-mode[data-ksn-choice-board] .ksn-choice-grid article{min-height:26vh}.ksn-display-mode[data-ksn-choice-board] .ksn-choice-grid button{height:100%;min-height:180px;font-size:clamp(1.8rem,6vw,4rem);overflow-wrap:anywhere}.ksn-display-mode button:focus-visible,.ksn-display-mode input:focus-visible,.ksn-display-mode select:focus-visible{outline-width:4px;outline-offset:4px}.ksn-display-empty{margin:12px 0;color:var(--muted)}
@media(max-width:40rem){.ksn-display-mode{padding:12px}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board{grid-template-columns:1fr;min-height:0}.ksn-display-mode[data-ksn-now-next] .ksn-now-next-board article{min-height:38vh}.ksn-display-mode[data-ksn-choice-board] .ksn-choice-grid{grid-template-columns:1fr;min-height:0}.ksn-display-mode[data-ksn-choice-board] .ksn-choice-grid article{min-height:22vh}}
@media print{body.ksn-tool-display-open{overflow:visible}.ksn-display-mode{position:static;width:auto;height:auto;overflow:visible;padding:0}.ksn-display-mode .ksn-display-toggle,.ksn-display-mode .ksn-display-empty{display:none!important}.ksn-display-mode .ksn-tool__preview[hidden]{display:block!important}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0s!important;animation-iteration-count:1!important;transform:none!important}}

.ksn-tool__back{margin:.75rem 0 0}.ksn-tool__back a{color:var(--green-dark);font-weight:700;text-underline-offset:3px}.ksn-tool__noscript{margin-top:20px;padding:16px;border-left:4px solid #c88900;background:var(--warm)}.ksn-tool__noscript p{margin:0}.ksn-tool__noscript p+p{margin-top:8px}.ksn-tool__noscript a{color:var(--green-dark);font-weight:700;text-underline-offset:3px}

/* A calm, keyboard-first reflection flow for the anger-management tool. */
.ksn-anger{max-width:760px;margin:0 auto;color:var(--ink)}
.ksn-anger__notice{margin:0 0 20px;padding:15px 18px;border-left:4px solid #c88900;border-radius:10px;background:var(--warm);line-height:1.75}
.ksn-anger__progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 24px;padding:0;list-style:none;counter-reset:anger-step}
.ksn-anger__progress li{padding:9px 5px;border-bottom:3px solid var(--line);color:var(--muted);font-size:.82rem;text-align:center;counter-increment:anger-step}
.ksn-anger__progress li::before{content:counter(anger-step) ". ";font-weight:800}
.ksn-anger__progress li[aria-current=step]{border-color:var(--green);color:var(--green-dark);font-weight:800}
.ksn-anger__step{min-height:320px;padding:clamp(18px,4vw,32px);border:1px solid var(--line);border-radius:18px;background:#fbfdfb}
.ksn-anger__step h2{margin:.35rem 0 .7rem;color:var(--green-dark);font-size:clamp(1.35rem,3.6vw,1.9rem);line-height:1.45}
.ksn-anger__step p{line-height:1.75}
.ksn-anger__eyebrow{margin:0;color:var(--green);font-size:.82rem;font-weight:800;letter-spacing:.04em}
.ksn-anger__choices{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 12px}
.ksn-anger__choice{min-height:48px;border-color:#bbd3ca;border-radius:999px;background:#fff}
.ksn-anger__choice[aria-pressed=true]{border-color:var(--green-dark);background:var(--mint);box-shadow:inset 0 0 0 1px var(--green-dark);color:var(--green-dark)}
.ksn-anger__hint{min-height:1.6em;color:var(--muted);font-size:.92rem}
.ksn-anger__examples{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
.ksn-anger__examples button{font-size:.9rem}
.ksn-anger__field{display:grid;gap:7px;margin:14px 0;font-weight:700}
.ksn-anger__field input{height:auto;min-height:48px}
.ksn-anger__recap{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--mint);white-space:pre-line;line-height:1.75}
.ksn-anger__navigation{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:18px}
.ksn-anger__navigation p{margin:0;color:var(--muted);font-size:.9rem;text-align:center;font-variant-numeric:tabular-nums}
.ksn-anger__navigation [data-anger-next]{justify-self:end}
.ksn-anger__navigation [data-anger-prev]{justify-self:start}
.ksn-anger__navigation button:disabled{opacity:.45;cursor:not-allowed}
.ksn-anger__footer-note{margin:18px 0;color:var(--muted);font-size:.9rem;line-height:1.7}
.ksn-display-mode .ksn-anger{max-width:900px}
.ksn-display-mode .ksn-anger__step{min-height:55vh;padding:clamp(24px,6vw,56px)}
.ksn-display-mode .ksn-anger__step p,.ksn-display-mode .ksn-anger__choice{font-size:clamp(1.05rem,2.2vw,1.35rem)}
.ksn-display-mode .ksn-anger__navigation{position:sticky;bottom:0;padding:12px;background:rgba(255,255,255,.96)}
@media(max-width:560px){.ksn-anger__progress{gap:3px}.ksn-anger__progress li{font-size:.73rem}.ksn-anger__step{min-height:0;padding:18px}.ksn-anger__choices{display:grid;grid-template-columns:1fr}.ksn-anger__choice{width:100%;text-align:left}.ksn-anger__navigation{grid-template-columns:1fr 1fr}.ksn-anger__navigation p{grid-column:1/-1;grid-row:1}.ksn-anger__navigation [data-anger-prev]{grid-column:1;grid-row:2}.ksn-anger__navigation [data-anger-next]{grid-column:2;grid-row:2}}
@media print{.ksn-anger__progress,.ksn-anger__navigation,.ksn-anger__notice,.ksn-anger__footer-note,.ksn-anger__examples{display:none!important}.ksn-anger__step[hidden]{display:none!important}.ksn-anger__step{min-height:0;border:0;padding:0}.ksn-anger__recap{break-inside:avoid}}
@media(max-width:560px){.ksn-tool__header h1{font-size:clamp(1.2rem,6vw,1.7rem);line-height:1.25}}
