:root{color-scheme:light;--ink:#17324d;--muted:#5d7185;--paper:#fff;--canvas:#f3f7f8;--line:#d9e4e8;--teal:#087f75;--teal-dark:#05645d;--teal-soft:#e4f5f2;--gold:#efad34;--danger:#b53c45;--shadow:0 10px 30px rgba(31,72,92,.08);font-family:"Yu Gothic UI","Hiragino Sans","Meiryo",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--canvas);line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea,[tabindex]{outline-color:var(--teal)}
.app-header{background:linear-gradient(120deg,#0b665f,#0d897d);color:#fff;padding:30px 24px;border-bottom:6px solid var(--gold)}.header-inner{max-width:1080px;margin:auto;display:flex;justify-content:space-between;gap:24px;align-items:center}.eyebrow{margin:0 0 3px;font-weight:800;letter-spacing:.08em;color:#d8f8f2}.eyebrow.dark{color:#0c756c}h1{margin:0;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.25}.lead{margin:8px 0 0;font-size:1.03rem}
.save-badge{flex:0 0 auto;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:9px 14px}.save-badge>span{grid-row:span 2;display:inline-block;width:9px;height:9px;border-radius:50%;background:#92f2a7;box-shadow:0 0 0 4px rgba(146,242,167,.18)}.save-badge b{line-height:1.2}.save-badge small{opacity:.85}.save-badge.saving>span{background:var(--gold)}.save-badge.error>span{background:#ff9ca3}
.page-shell{max-width:1080px;margin:0 auto;padding:18px 24px 70px}.privacy-note{display:flex;gap:12px;align-items:center;margin:0 0 14px;padding:10px 14px;border-radius:10px;color:#375e5b;background:#e9f6f4;font-size:.9rem}.privacy-note strong{flex:0 0 auto;color:var(--teal-dark)}
.progress-nav{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:22px;padding:10px;background:rgba(243,247,248,.95);backdrop-filter:blur(10px)}.progress-nav a{min-width:0;color:var(--muted);text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center;font-size:.8rem;font-weight:700}.progress-nav a:hover,.progress-nav a:focus-visible{border-color:var(--teal);color:var(--teal-dark)}.progress-nav b{display:inline-grid;place-items:center;margin-right:5px;width:22px;height:22px;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark)}
.card{scroll-margin-top:95px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px;margin-bottom:20px;box-shadow:var(--shadow)}.card-accent{border-top:5px solid var(--teal)}.section-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.section-heading h2,.finish-card h2{margin:0;font-size:1.4rem}.section-heading p{margin:2px 0 0;color:var(--muted)}.step-number{display:grid;flex:0 0 36px;height:36px;place-items:center;color:#fff;font-weight:900;background:var(--teal);border-radius:12px}
.student-grid{display:grid;grid-template-columns:.7fr .7fr .7fr 2fr;gap:14px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:7px;font-weight:800}.required{justify-self:start;margin-left:6px;color:var(--danger);font-size:.7rem;font-weight:800}input,select,textarea{width:100%;border:1.5px solid #bdced4;border-radius:10px;padding:11px 12px;color:var(--ink);background:#fbfdfd}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,127,117,.12)}[aria-invalid="true"]{border-color:var(--danger);background:#fff8f8}.field-error{margin:12px 0 0;padding:9px 12px;color:#8d2630;background:#fff0f1;border-radius:8px;font-weight:700}
.prompt-box{margin-top:18px;background:#f7fbfa;border:1px solid #b9ddd8;border-left:5px solid var(--teal);border-radius:12px;padding:16px 18px}.prompt-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.prompt-box>p{margin:10px 0 0;white-space:pre-line}.inline-status{min-height:1.2em;color:var(--teal-dark);font-weight:700;font-size:.85rem}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:9px 14px;font-weight:800;cursor:pointer;text-decoration:none}.button:disabled{opacity:.55;cursor:wait}.button.primary{color:#fff;background:var(--teal);box-shadow:0 5px 12px rgba(8,127,117,.22)}.button.primary:hover{background:var(--teal-dark)}.button.secondary{color:var(--teal-dark);background:#fff;border:1px solid #a8d5cf}.button.ghost{color:var(--muted);background:transparent}.button.danger-outline{color:#9c303a;background:transparent;border:1px solid #dca9ae}.button.danger{color:#fff;background:var(--danger)}
.how-to{display:flex;flex-wrap:wrap;gap:8px 20px;margin:-4px 0 14px;color:var(--muted);font-size:.9rem}.how-to b{color:var(--teal-dark)}.paste-zone{min-height:250px;position:relative;display:grid;place-items:center;overflow:hidden;border:2px dashed #93bab7;border-radius:14px;color:var(--teal-dark);background:#f7fbfa;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.paste-zone:hover,.paste-zone:focus-visible,.paste-zone.active{border-color:var(--teal);background:#edf9f7}.paste-zone.active{transform:scale(1.005)}.paste-zone.has-image{padding:14px;background:#eef3f4;border-style:solid}.paste-zone>img{display:block;width:100%;max-height:430px;object-fit:contain;border-radius:8px}.empty-preview{display:grid;justify-items:center;gap:4px}.empty-preview small{color:var(--muted)}.paste-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:6px;border-radius:50%;color:#fff;background:var(--teal);font-size:1.8rem}.image-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;padding:6px;border-radius:11px;background:rgba(255,255,255,.92);box-shadow:0 3px 12px rgba(28,56,70,.12)}.file-button{cursor:pointer}.image-status{min-height:1.4em;margin:8px 2px 0;color:var(--teal-dark);font-size:.86rem;font-weight:700}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.review-set{position:relative;display:grid;gap:13px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.set-label{position:absolute;top:-12px;left:16px;padding:3px 10px;border-radius:99px;color:#fff;background:var(--teal);font-size:.8rem;font-weight:800}.tip{margin:15px 0 0;padding:10px 13px;background:#fff8e8;border-radius:9px;color:#73521a}
.finish-card{display:grid;grid-template-columns:1fr auto;gap:18px 28px;align-items:center;padding:28px;border-radius:18px;color:var(--ink);background:linear-gradient(125deg,#e6f6f3,#fff8e8);border:2px solid #a5d8d2;box-shadow:var(--shadow)}.finish-card p{margin:5px 0 0}.finish-actions{display:grid;gap:10px}.finish-actions .primary{min-height:52px;padding-inline:24px}.export-status{grid-column:1/-1;min-height:1.3em;color:var(--teal-dark);font-weight:800}
.modal{width:min(520px,calc(100% - 28px));border:0;border-radius:18px;padding:0;color:var(--ink);box-shadow:0 24px 80px rgba(16,40,55,.28)}.modal::backdrop{background:rgba(14,37,52,.56);backdrop-filter:blur(3px)}.modal form{padding:26px}.modal h2{margin:0 0 8px}.modal ul{max-height:180px;overflow:auto;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}footer{padding:28px 20px;text-align:center;color:#718290;font-size:.82rem}
@media(max-width:780px){.header-inner{align-items:flex-start;flex-direction:column}.student-grid,.two-column,.review-grid{grid-template-columns:1fr 1fr}.student-grid label:last-child{grid-column:span 2}.progress-nav{overflow-x:auto;grid-template-columns:repeat(6,120px)}.finish-card{grid-template-columns:1fr}}
@media(max-width:560px){.page-shell{padding-inline:12px}.card{padding:20px 16px}.student-grid,.two-column,.review-grid{grid-template-columns:1fr}.student-grid label:last-child{grid-column:auto}.save-badge{display:none}.privacy-note{align-items:flex-start;flex-direction:column;gap:2px}.image-actions{position:static;margin:12px}.paste-zone.has-image{display:block}.finish-actions{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
