.app{max-width:760px;margin:0
auto;padding:2rem 1.25rem 4rem}.app-title{font-family:Lora,serif;font-size:1.6rem;color:#2a1f1a;margin-bottom: .25rem}.app-subtitle{font-size: .9rem;color:#6a5e52;margin-bottom:2rem}.step{display:none}.step.active{display:block}.step-header{margin-bottom:1.5rem}.step-label{font-size: .72rem;font-weight:700;text-transform:uppercase;letter-spacing: .08em;color:#3a6b35;margin-bottom: .25rem}.step-title{font-family:Lora,serif;font-size:1.25rem;color:#2a1f1a}.card{background:#fff;border-radius:10px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px rgba(0,0,0,.06)}.field{margin-bottom:1rem}.field:last-child{margin-bottom:0}.field
label{display:block;font-size: .82rem;font-weight:600;color:#4a3f3a;margin-bottom: .35rem}.field input, .field
select{width:100%;padding:9px
12px;font-size: .95rem;font-family:Inter,sans-serif;border:1px
solid #e0dbd4;border-radius:6px;background:#fff;color:#2a1f1a;outline:none}.field input:focus, .field select:focus{border-color:#3a6b35;box-shadow:0 0 0 2px rgba(58,107,53,.15)}.field-row{display:flex;gap: .75rem;flex-wrap:wrap}.field-row
.field{flex:1;min-width:160px}.btn{display:inline-block;padding:10px
22px;border:none;border-radius:6px;font-size: .95rem;font-family:Inter,sans-serif;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary{background:#3a6b35;color:#fff}.btn-primary:hover{background:#2d5229}.btn-secondary{background:#f0ebe5;color:#4a3f3a}.btn-secondary:hover{background:#e5dfd8}.btn-danger{background:#fff0ee;color:#b82105;border:1px
solid #f5c6bc}.btn-danger:hover{background:#ffe0db}.btn-print{background:#d4558a;color:#fff}.btn-print:hover{background:#b8446f}.btn-row{display:flex;gap: .75rem;flex-wrap:wrap;margin-top:1.5rem;align-items:center}.addr-input-row{display:flex;gap: .75rem}.addr-input-row
input{flex:1;padding:10px
14px;font-size:1rem;font-family:Inter,sans-serif;border:1px
solid #e0dbd4;border-radius:6px;outline:none}.addr-input-row input:focus{border-color:#3a6b35;box-shadow:0 0 0 2px rgba(58,107,53,.15)}.addr-status{margin-top: .75rem;font-size: .88rem;color:#6a5e52;font-style:italic;min-height:1.3em}.addr-error{color:#b82105;margin-top: .75rem;font-size: .88rem;padding: .65rem .9rem;background:#fff0ee;border-radius:5px;border-left:3px solid #b82105;display:none}.zone-result{margin-top:1.25rem;display:none}.zone-pill{display:inline-flex;align-items:center;gap: .4rem;padding: .3rem .8rem;border-radius:20px;font-size: .82rem;font-weight:600;margin: .2rem .2rem .2rem 0}.zone-pill.elem{background:#e8f2e7;color:#2d5229}.zone-pill.mid{background:#e0f3f1;color:#155f54}.zone-pill.high{background:#f3ece6;color:#5a3318}.child-card{background:#fff;border-radius:8px;padding:1.25rem;margin-bottom: .75rem;border-left:4px solid #e0dbd4;box-shadow:0 1px 4px rgba(0,0,0,.05)}.child-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.child-card-title{font-weight:600;font-size: .95rem;color:#2a1f1a}.grade-warn{display:none;margin-top: .5rem;padding: .5rem .75rem;background:#fff8e6;border-left:3px solid #e6a817;border-radius:5px;font-size: .82rem;color:#7a5500;line-height:1.5}.child-school-badge.elem{background:#e8f2e7;color:#2d5229}.child-school-badge.mid{background:#e0f3f1;color:#155f54}.child-school-badge.high{background:#f3ece6;color:#5a3318}.child-school-badge.none{background:#f0ebe5;color:#9a8e86}.add-child-btn{display:flex;align-items:center;gap: .5rem;padding: .75rem 1rem;border:2px
dashed #c8c0b8;border-radius:8px;background:transparent;cursor:pointer;font-size: .9rem;color:#6a5e52;font-family:Inter,sans-serif;font-weight:500;width:100%;justify-content:center;transition:border-color .2s, color .2s}.add-child-btn:hover{border-color:#3a6b35;color:#3a6b35}.letter-group{margin-bottom:1.5rem}.letter-group-title{font-size: .8rem;font-weight:700;text-transform:uppercase;letter-spacing: .06em;color:#6a5e52;margin-bottom: .5rem;padding:0
.25rem}.progress-bar{display:flex;gap: .4rem;margin-bottom:2rem}.progress-step{flex:1;height:4px;border-radius:2px;background:#e0dbd4;transition:background .3s}.progress-step.done{background:#3a6b35}.progress-step.active{background:#d4558a}@media
print{.app,#app-shell,.print-area,.choh-attribution{display:none !important}}.print-area{display:none}.noi-letter{background:#fff;border-radius:8px;padding:2rem 2.5rem;margin-bottom:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.08);font-family:Georgia,serif;font-size: .95rem;line-height:1.7;color:#1a1410;max-width:680px}.noi-letter .letter-date{margin-bottom:1.5rem}.noi-letter .letter-to{margin-bottom:1.5rem}.noi-letter .letter-to
p{line-height:1.5;margin:0}.noi-letter
p{margin-bottom:1rem}.noi-letter .child-info-table{border-collapse:collapse;margin: .75rem 0 1rem;width:100%}.noi-letter .child-info-table
td{padding: .3rem .5rem;font-size: .92rem;vertical-align:top}.noi-letter .ci-label{font-weight:700;white-space:nowrap;width:140px;color:#333;padding-right:1rem}.noi-letter .ci-value{color:#1a1410}.noi-letter .sig-block{margin-top:2.5rem}.noi-letter .sig-name-box{display:inline-block;vertical-align:top;margin-right:2.5rem}.noi-letter .sig-date-box{display:inline-block;vertical-align:top}.noi-letter .sig-name-line{display:block;border-bottom:1px solid #666;width:220px;height:1.2em}.noi-letter .sig-date-line{display:block;border-bottom:1px solid #666;width:120px;height:1.2em}.noi-letter .sig-caption{font-size: .82rem;color:#555;padding-top:3px}.noi-letter .sig-label{font-size: .82rem;color:#555}