:root{--font:system-ui, -apple-system, "Segoe UI", sans-serif;--bg:#f5f6f8;--surface:#fff;--text:#1a1a1a;--text-muted:#6b7280;--border:#d1d5db;--primary:#2563eb;--primary-text:#fff;--primary-soft:#eff6ff;--primary-soft-strong:#dbeafe;--danger:#dc2626;--danger-soft:#fef2f2;--success-soft:#dcfce7;--warning-soft:#fef9c3;--radius:8px;--radius-card:12px;font-family:var(--font);color:var(--text)}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}input,textarea,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.6rem;font-size:1rem}textarea{resize:vertical}button{font:inherit;background:var(--primary);color:var(--primary-text);cursor:pointer;border:none;border-radius:6px;padding:.6rem 1rem}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--primary);border:1px solid var(--border)}button.danger{background:var(--danger);color:#fff}a{color:var(--primary)}.link-button{color:var(--primary);background:0 0;padding:.25rem 0}.caption{color:var(--text-muted);font-size:.85rem}.page{justify-content:center;padding:2rem 1rem 1rem;display:flex}.card{background:var(--surface);border-radius:var(--radius-card);width:100%;max-width:640px;padding:1.75rem 1.5rem;box-shadow:0 2px 12px #00000014}.card-wide{max-width:860px}.card h1{margin:.2rem 0 1rem;font-size:1.5rem}.card h2{margin:.5rem 0 .75rem;font-size:1.15rem}.school{color:var(--text-muted);font-size:.9rem}.app-footer{text-align:center;padding:.5rem 1rem 2rem;font-size:.85rem}.app-footer a{color:var(--text-muted)}.note{white-space:pre-line;border-left:3px solid var(--primary);background:#f9fafb;border-radius:4px;padding:.6rem .8rem}.notice{background:var(--warning-soft);border-radius:var(--radius);border:1px solid #fde68a;margin-bottom:1rem;padding:.9rem 1rem}.notice-ok{background:var(--success-soft);border-color:#bbf7d0}.error-box{color:var(--danger);background:var(--danger-soft);border-radius:6px;padding:.6rem .8rem}.summary{background:var(--primary-soft);border-radius:var(--radius);flex-direction:column;gap:.2rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex}.summary-cancelled{color:var(--text-muted);background:#f3f4f6;text-decoration:line-through}.confirm{background:var(--danger-soft);border-radius:var(--radius);border:1px solid #fecaca;padding:.9rem 1rem}.confirm p{margin-top:0}.actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.footer-link{margin-top:1.5rem;font-size:.9rem}.steps{margin:.5rem 0 1.25rem}.steps ol{gap:.25rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.steps li{color:#9ca3af;border-top:3px solid #e5e7eb;flex:1;align-items:center;gap:.35rem;padding-top:.4rem;font-size:.85rem;display:flex}.steps li span{width:1.4rem;height:1.4rem;color:var(--text-muted);background:#e5e7eb;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.steps li.done{color:var(--primary);border-top-color:#93c5fd}.steps li.done span{background:var(--primary-soft-strong);color:var(--primary)}.steps li.current{color:var(--text);border-top-color:var(--primary);font-weight:600}.steps li.current span{background:var(--primary);color:var(--primary-text)}.back{font-size:.9rem}.context{color:var(--text-muted);margin:-.4rem 0 .75rem}.option-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;display:grid}.option-list{flex-direction:column;gap:.5rem;display:flex}.option{text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem 1rem;display:flex}.option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.option-small{text-align:center;font-variant-numeric:tabular-nums;align-items:center;padding:.7rem .5rem;font-weight:600}.option-title{font-weight:600}.option-sub{font-size:.9rem}.option-meta{color:var(--text-muted);font-size:.8rem;font-weight:400}.tag{background:var(--primary-soft-strong);color:var(--primary);border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.75rem;font-weight:600}.day h3,.teacher-day h3{margin:1rem 0 .5rem;font-size:.95rem}.day h3:first-letter,.teacher-day h3:first-letter{text-transform:uppercase}.form{flex-direction:column;gap:.85rem;display:flex}.form label{flex-direction:column;gap:.3rem;font-size:.95rem;display:flex}.form .consent{flex-direction:row;align-items:flex-start;gap:.5rem;font-size:.9rem}.consent input{margin-top:.2rem}.primary-large{padding:.75rem 1rem;font-size:1.05rem}.divider{color:#9ca3af;align-items:center;gap:.5rem;margin:1rem 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid #e5e7eb;flex:1}.google-btn{justify-content:center;min-height:40px;display:flex}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.toolbar label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.toolbar-end{margin-left:auto}.inline-check{align-items:center;color:var(--text)!important;flex-direction:row!important;gap:.4rem!important;font-size:.9rem!important}.slot-list{border-radius:var(--radius);border:1px solid #e5e7eb;margin:0;padding:0;list-style:none;overflow:hidden}.slot{border-bottom:1px solid #eee;grid-template-columns:7rem 10rem 1fr;align-items:baseline;gap:.25rem .75rem;padding:.6rem .8rem;display:grid}.slot:last-child{border-bottom:none}.slot-booked{background:var(--primary-soft)}.slot-blocked{color:#9ca3af}.slot-time{font-variant-numeric:tabular-nums;font-weight:600}.slot-place{color:var(--text-muted);font-size:.9rem}.slot-body{flex-wrap:wrap;align-items:baseline;gap:.15rem .4rem;display:flex}.slot-body .tag{margin-left:0}.slot-contact{color:var(--text-muted);word-break:break-word;flex-basis:100%;font-size:.85rem}.slot-note{flex-basis:100%;font-size:.85rem;font-style:italic}.print-only{display:none}@media (width<=560px){.page{padding:0}.card{min-height:calc(100vh - 3rem);box-shadow:none;border-radius:0;padding:1.25rem 1rem}.steps li{font-size:0}.steps li span{font-size:.75rem}.steps li.current{font-size:.85rem}.slot{grid-template-columns:auto 1fr}.slot-body{grid-column:1/-1}}@media print{body{background:0 0}.no-print{display:none!important}.print-only{display:block}.page{padding:0}.card{box-shadow:none;max-width:none;padding:0}.slot-booked{background:0 0}.slot{break-inside:avoid}}
