:root{--ink:#1c2536;--ink-soft:#5a6478;--paper:#eef1f6;--card:#fff;--line:#d8dee8;--accent:#e08a2e;--accent-soft:#fdf1df;--accent-deep:#a8611a;--school:#2e4a7d;--focus:#2f6fed;--danger:#b3261e;--radius:14px;--tap:56px;--shadow:0 1px 2px #1c25360f, 0 8px 24px #1c25360f;--font-udg:"BIZ UDGothic", "BIZ UDPGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, system-ui, sans-serif;--font-round:"Zen Maru Gothic", "Kosugi Maru", "Hiragino Maru Gothic ProN", "BIZ UDGothic", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-udg);margin:0;font-size:17px;line-height:1.9}.font-round{font-family:var(--font-round)}.level-elementary{font-family:var(--font-round);font-size:19px;line-height:2.1}.level-secondary{font-family:var(--font-udg)}ruby>rt{letter-spacing:.02em;font-size:.5em;font-weight:400}.shell{max-width:780px;margin:0 auto;padding:20px 16px 140px}.shell.narrow{max-width:620px;padding-top:48px;padding-bottom:48px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 20px}.card.intro{margin-bottom:28px}.eyebrow{color:var(--ink-soft);letter-spacing:.08em;margin:0 0 4px;font-size:.8em}.screen-title{letter-spacing:.01em;margin:0 0 16px;font-size:1.5em;line-height:1.5}.para{margin:0 0 12px}.muted{color:var(--ink-soft)}.hint{background:var(--accent-soft);color:var(--accent-deep);border-radius:10px;margin:4px 0 0;padding:12px 14px;font-size:.92em}.error{border:1px solid var(--danger);color:var(--danger);background:#fdf3f2;border-radius:10px;margin-top:16px;padding:12px 14px}.topbar{z-index:10;background:var(--ink);color:#fff;position:-webkit-sticky;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;max-width:780px;margin:0 auto;padding:10px 16px;display:flex}.topbar-title{font-size:.95em;font-weight:700;line-height:1.4}.ruby-toggle{cursor:pointer;flex:none;align-items:center;gap:8px;min-height:44px;padding:0 4px;font-size:.85em;display:inline-flex}.ruby-toggle input{width:22px;height:22px;accent-color:var(--accent)}.section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:28px;padding:24px 20px}.section-heading{margin:0 0 14px;font-size:1.25em;line-height:1.5}.section-rule{background:var(--accent);border-radius:3px;width:44px;height:5px;margin-bottom:12px;display:block}.sub-heading{border-top:1px solid var(--line);margin:28px 0 10px;padding-top:16px;font-size:1.05em}.section>.sub-heading:first-of-type{border-top:0;margin-top:20px;padding-top:0}.field{border:0;margin:20px 0 28px;padding:0}.field-label{margin-bottom:10px;padding:0;font-weight:700;display:block}.field-label .para:last-child{margin-bottom:0}.field-label .para{font-weight:400}.limit{color:var(--ink-soft);margin:0 0 8px;font-size:.85em}.limit.is-full{color:var(--accent-deep);font-weight:700}.counter{color:var(--ink-soft);text-align:right;margin:6px 0 0;font-size:.8em}.choices{flex-direction:column;gap:8px;display:flex}.choice{min-height:var(--tap);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.choice input{opacity:0;width:1px;height:1px;position:absolute}.choice .mark{border:2px solid var(--ink-soft);background:#fff;flex:none;width:26px;height:26px}.choice .mark-radio{border-radius:50%}.choice .mark-check{border-radius:7px}.choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.choice.is-selected .mark{border-color:var(--accent-deep);background:var(--accent-deep);box-shadow:inset 0 0 0 4px #fff}.choice.is-selected .mark-check{box-shadow:inset 0 0 0 3px #fff}.choice.is-disabled{opacity:.45;cursor:not-allowed}.choice:focus-within{outline:3px solid var(--focus);outline-offset:2px}.choice-text{line-height:1.7}.select{width:100%;min-height:var(--tap);border:2px solid var(--line);color:inherit;font:inherit;background:#fff;border-radius:12px;padding:12px 14px}.textarea{border:2px solid var(--line);width:100%;color:inherit;font:inherit;resize:vertical;background:#fff;border-radius:12px;padding:12px 14px;line-height:1.8}.select:focus,.textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.clear{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:8px;padding:8px 2px;font-size:.82em;text-decoration:underline}.legend{background:#f6f8fb;border-radius:10px;flex-wrap:wrap;gap:6px 16px;margin:0 0 16px;padding:12px 14px;font-size:.85em;list-style:none;display:flex}.legend b{min-width:1.6em;color:var(--accent-deep);display:inline-block}.likert-item{border:0;border-top:1px solid var(--line);margin:0 0 18px;padding:14px 0 0}.likert-text{margin-bottom:10px;padding:0;font-weight:700;display:block}.likert-no{min-width:1.9em;color:var(--ink-soft);margin-right:6px;font-size:.85em;font-weight:700;display:inline-block}.likert-scale{gap:8px;display:grid}.tile{min-height:var(--tap);border:2px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:10px 4px;display:flex}.tile input{opacity:0;width:1px;height:1px;position:absolute}.tile-no{font-size:1.25em;font-weight:700;line-height:1.2}.tile-label{color:var(--ink-soft);font-size:.72em;line-height:1.4}.tile.is-selected{border-color:var(--accent);background:var(--accent-soft)}.tile.is-selected .tile-no,.tile.is-selected .tile-label{color:var(--accent-deep)}.tile:focus-within{outline:3px solid var(--focus);outline-offset:2px}.yesno-buttons{grid-template-columns:1fr 1fr;gap:10px;max-width:360px;display:grid}.yesno-button{min-height:var(--tap);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;font-weight:700;display:flex}.yesno-button input{opacity:0;width:1px;height:1px;position:absolute}.yesno-button.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.yesno-button:focus-within{outline:3px solid var(--focus);outline-offset:2px}.branch-part{margin-top:24px;padding-top:4px}.entry{margin:16px 0 8px;padding:4px 0 8px}.entry+.entry{border-top:3px double var(--line);padding-top:16px}.entry-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.entry-badge{background:var(--school);color:#fff;border-radius:999px;padding:4px 12px;font-size:.8em;font-weight:700;display:inline-block}.add-block{background:#f6f8fb;border-radius:12px;margin-top:20px;padding:18px 16px}.add-button{width:100%;min-height:var(--tap);border:2px dashed var(--school);color:var(--school);font:inherit;cursor:pointer;background:#fff;border-radius:12px;margin-top:8px;padding:12px 16px;font-weight:700}.actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.primary,.secondary{min-height:var(--tap);font:inherit;cursor:pointer;border-radius:12px;padding:12px 28px;font-weight:700}.primary{border:2px solid var(--accent-deep);background:var(--accent-deep);color:#fff}.primary:disabled{border-color:var(--line);background:var(--line);color:var(--ink-soft);cursor:not-allowed}.secondary{border:2px solid var(--line);color:var(--ink);background:#fff}.primary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.secondary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.add-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.grade-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.clear:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.confirm{border:2px solid var(--accent);background:var(--accent-soft);border-radius:12px;margin-top:12px;padding:16px}.submit-block{margin-top:32px}.grade-group{margin-top:24px}.grade-group-title{color:var(--ink-soft);margin:0 0 10px;font-size:1em}.grade-buttons{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;display:grid}.grade-button{border:2px solid var(--line);border-radius:var(--radius);min-height:76px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;font-size:1.15em;font-weight:700}.grade-button:hover{border-color:var(--accent);background:var(--accent-soft)}.statusbar{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding-bottom:env(safe-area-inset-bottom);background:#fffffff5;position:fixed;bottom:0;left:0;right:0}.statusbar-inner{max-width:780px;margin:0 auto;padding:10px 16px 12px}.bar{background:#e2e7ef;border-radius:999px;height:8px;overflow:hidden}.bar-fill{background:linear-gradient(90deg, var(--school), var(--accent));border-radius:999px;height:100%;transition:width .35s;display:block}.status-text{color:var(--ink-soft);margin-top:6px;font-size:.78em;line-height:1.5;display:block}@media (max-width:480px){body{font-size:16px}.level-elementary{font-size:17px}.tile-label{font-size:.66em}.card,.section{padding:20px 14px}}@media (prefers-reduced-motion:reduce){.bar-fill{transition:none}}.resumed-note{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-deep);border-radius:12px;margin-bottom:20px;padding:14px 16px}.resumed-note .para:last-of-type{margin-bottom:0}
