:root{--bg: #f4f7fb;--surface: #ffffff;--surface-2: #f8fbff;--text: #1f2937;--muted: #64748b;--border: #e5edf8;--accent: #2563eb;--accent-text: #ffffff;--accent-soft: #eff6ff;--accent-line: #dbeafe;--warn-bg: #fef3c7;--warn-text: #78350f;--error-bg: #fee2e2;--error-text: #991b1b;--ok-bg: #dbeafe;--ok-text: #1e40af;--radius: 20px;--radius-sm: 14px;--pill: 999px;--shadow: 0 12px 34px rgba(15, 23, 42, .06);--shadow-sm: 0 8px 20px rgba(15, 23, 42, .06);--shadow-accent: 0 8px 18px rgba(37, 99, 235, .22);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1b202a;--text: #e5e7eb;--muted: #9ca3af;--border: #2a2f3a;--accent: #3b82f6;--accent-text: #ffffff;--accent-soft: #1c2740;--accent-line: #2b3a56;--warn-bg: #3f2d0a;--warn-text: #fde68a;--error-bg: #3f1717;--error-text: #fecaca;--ok-bg: #1e3a8a;--ok-text: #dbeafe;--shadow: 0 12px 34px rgba(0, 0, 0, .35);--shadow-sm: 0 8px 20px rgba(0, 0, 0, .3);--shadow-accent: 0 8px 18px rgba(59, 130, 246, .25)}}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.55;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);min-height:100vh;background:radial-gradient(circle at top left,rgba(191,219,254,.55),transparent 26%),radial-gradient(circle at top right,rgba(219,234,254,.65),transparent 24%),var(--bg);background-attachment:fixed}h1{font-size:1.55rem;line-height:1.2;letter-spacing:-.03em;margin:0}h2{font-size:1.15rem;letter-spacing:-.02em;margin:0}h3{font-size:1rem;letter-spacing:-.01em;margin:0}p{margin:.4rem 0}button{font:inherit;font-weight:700;padding:.7rem 1.1rem;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-accent);cursor:pointer;min-height:44px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;box-shadow:none;cursor:default}button.ghost,button.icon,.schedule-actions button,.install-actions button.ghost,button.link,.heart-btn,.status-heart,.like-btn,.comment-form button,.child-buttons button,.round-buttons button,.view-tabs button,.admin-tabs button,.course-tabs button,button.course-pick,.proof-grid .remove,.modal-close,.modal-nav,.update-later{box-shadow:none}button.ghost{background:var(--surface);color:var(--muted);border-color:var(--border)}button.icon{background:transparent;color:var(--muted);border-color:var(--border)}button.ghost:hover:not(:disabled){color:var(--text);border-color:var(--accent-line);background:var(--surface-2)}button.kakao{background:#fee500;color:#191600;box-shadow:0 8px 18px #fee5004d}input[type=text],input[type=email],input[type=password],textarea{font:inherit;width:100%;padding:.7rem .85rem;min-height:44px;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);outline:none}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{border-color:var(--accent);background:var(--surface)}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--error-text);font-size:.9rem}.notice{color:var(--muted);font-size:.9rem}.centered{padding:3rem 1rem;text-align:center}.eyebrow{margin:0 0 .25rem;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.counter{padding:.35rem .7rem;border-radius:var(--pill);background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.auth{max-width:26rem;margin:0 auto;padding:4rem 1.25rem 2rem}.auth-head{margin-bottom:1.5rem}.auth-head p{color:var(--muted);font-size:.92rem}.auth-body{display:grid;gap:.6rem}.auth-body label{font-size:.85rem;color:var(--muted)}.board{max-width:48rem;margin:0 auto;padding:1.25rem 1rem 4rem;display:grid;gap:1rem}.board-head{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:.35rem}.board-head h1{font-size:1.75rem}.head-actions{display:flex;align-items:center;gap:.5rem}.who{font-size:.85rem;color:var(--muted)}.view-tabs,.admin-tabs{display:flex;gap:.3rem;flex-wrap:wrap;padding:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.view-tabs button,.admin-tabs button{min-height:40px;padding:.45rem 1rem;font-size:.9rem;font-weight:800;border-radius:var(--radius-sm);border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.view-tabs button.active,.admin-tabs button.active{background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-accent)}.banner{margin:0;padding:.7rem .9rem;border-radius:var(--radius);font-size:.88rem}.banner.warn{background:var(--warn-bg);color:var(--warn-text)}.banner.error{background:var(--error-bg);color:var(--error-text)}.banner.ok{background:var(--ok-bg);color:var(--ok-text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem;display:grid;gap:.9rem;box-shadow:var(--shadow)}.round-picker{display:grid;gap:.75rem}.round-group{display:grid;gap:.35rem}.round-group-title{font-size:.8rem;font-weight:800;color:var(--text);letter-spacing:-.01em}.round-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.round-buttons button{min-width:2.9rem;min-height:40px;padding:.35rem .75rem;border-radius:var(--pill);background:var(--surface-2);color:var(--text);border-color:var(--accent-line);box-shadow:none;font-weight:800;font-variant-numeric:tabular-nums}.round-buttons button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);box-shadow:var(--shadow-accent)}.round-buttons button.current{border-bottom-width:3px;border-bottom-color:var(--accent);padding-bottom:calc(.35rem - 2px)}.round-buttons button.locked{opacity:.45}.status-mark{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:1.15rem;line-height:1}.current-status{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted)}.status-heart{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:1.35rem;line-height:1}.status-copy{display:grid}.status-copy small{color:var(--muted);font-size:.8rem}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.2rem;font-size:.85rem;color:var(--muted)}.checklist li.ok{color:var(--ok-text)}.activity-checks{display:grid;gap:.5rem}.activity-check{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer}.activity-check.on{border-color:var(--accent);background:var(--accent-soft)}.activity-check.extra{margin-top:.75rem;border-style:dashed}.activity-check.extra.on{border-color:var(--border);background:var(--surface-2)}.activity-check input{width:1.25rem;height:1.25rem;margin-top:.15rem;flex:0 0 auto;accent-color:var(--accent)}.activity-check span{display:grid;gap:.15rem}.activity-check small{color:var(--muted);font-size:.8rem}.upload-box{display:grid;gap:.2rem;justify-items:center;text-align:center;padding:1.25rem 1rem;border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer}.upload-box.disabled{cursor:progress;opacity:.7}.upload-box input{display:none}.upload-box span{font-size:.8rem;color:var(--muted)}.proof-block{display:grid;gap:.5rem}.parent-note{margin-top:.75rem;padding:.85rem;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);display:grid;gap:.55rem}.parent-note textarea{resize:vertical;min-height:5.5rem}.parent-note-body{margin:0;padding:.7rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word}.parent-note-actions{display:flex;align-items:center;gap:.5rem}.parent-note-actions .counter{margin-left:auto}.parent-note-private{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted);cursor:pointer;white-space:nowrap}.parent-note-private input{width:1.05rem;height:1.05rem;flex:0 0 auto;accent-color:var(--accent)}.feed-parent-notes{display:grid;gap:.5rem}.feed-parent-note{padding:.7rem .85rem;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-sm);display:grid;gap:.25rem}.feed-parent-note strong{font-size:.85rem;color:var(--accent)}.feed-parent-note p{margin:0;white-space:pre-wrap;word-break:break-word}.proof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.6rem}.proof-grid figure{margin:0;display:grid;gap:.35rem;padding:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}.proof-grid img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;background:var(--bg);cursor:zoom-in;transition:transform .18s ease}.proof-grid figure:hover img{transform:scale(1.03)}.proof-fallback{aspect-ratio:4 / 3;display:grid;place-items:center;border:1px dashed var(--accent-line);border-radius:10px;font-size:.8rem;color:var(--muted)}.proof-grid .remove{min-height:34px;padding:.25rem;font-size:.8rem;font-weight:700;background:transparent;color:var(--muted);border-color:var(--border);box-shadow:none}.proof-grid .remove:hover{color:var(--error-text);border-color:var(--error-text)}.feed{display:grid;gap:.9rem}.feed-card{gap:.7rem}.feed-card.highlighted{border-color:var(--accent);box-shadow:var(--shadow-accent)}.feed-head h2{font-size:1.05rem}.feed-meta{display:flex;align-items:center;gap:.4rem;margin:.15rem 0 0;font-size:.82rem;color:var(--muted)}.feed-photos{display:grid;gap:.4rem}.feed-photos.count-1{grid-template-columns:1fr}.feed-photos:not(.count-1){grid-template-columns:repeat(2,1fr)}.feed-photos img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg);cursor:zoom-in}.feed-photos.count-1 img{aspect-ratio:4 / 3;max-height:24rem}.feed-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.15rem;border-top:1px solid var(--border)}.like-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--muted);border-color:transparent;padding:.5rem .6rem}.like-btn span{font-size:1.15rem;line-height:1}.like-btn em{font-style:normal;font-weight:700}.like-btn.liked{color:var(--accent)}.feed-comments{display:grid;gap:.5rem}.comment p{margin:0;font-size:.92rem;line-height:1.5;word-break:break-word}.comment p strong{margin-right:.4rem}.comment-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--muted)}.comment-form{display:flex;gap:.4rem}.comment-form button{flex:0 0 auto;padding:.5rem .9rem}button.link{background:transparent;border-color:transparent;color:var(--muted);padding:0;min-height:auto;font-size:.78rem;font-weight:600;text-align:left;justify-self:start}button.link:hover:not(:disabled){color:var(--accent);background:transparent;border-color:transparent}.more{justify-self:center}.signup{max-width:28rem}.child-fields{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin:.25rem 0 0;display:grid;gap:.5rem}.child-fields legend{font-size:.85rem;color:var(--muted);padding:0 .35rem}.child-row{display:flex;gap:.4rem;align-items:center}.consent{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin:.5rem 0 0;display:grid;gap:.6rem}.consent legend{font-size:.85rem;color:var(--muted);padding:0 .35rem}.consent-purpose{margin:0;padding:.7rem .85rem;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text);font-size:.92rem;line-height:1.55}.consent-terms{max-height:9rem;overflow-y:auto;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font-size:.8rem;line-height:1.6;-webkit-overflow-scrolling:touch}.consent-terms:focus-visible{border-color:var(--accent);outline:none}.consent-terms p{margin:0 0 .6rem}.consent-terms p:last-child{margin-bottom:0}.auth-body .consent-check{display:flex;gap:.55rem;align-items:flex-start;color:var(--text);font-size:.9rem;line-height:1.5;cursor:pointer}.auth-body .consent-check input[type=checkbox]{width:1.25rem;height:1.25rem;margin:0;flex:none;accent-color:var(--accent);cursor:pointer}.summary{display:grid;grid-template-columns:5rem 1fr;gap:.3rem .75rem;margin:0;font-size:.92rem}.summary dt{color:var(--muted)}.summary dd{margin:0}.child-picker{display:grid;gap:.35rem}.child-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.child-buttons button{display:inline-flex;align-items:center;gap:.4rem;min-height:42px;padding:.4rem .8rem;background:var(--surface);color:var(--text);border-color:var(--border)}.child-buttons button.active{box-shadow:var(--shadow-accent);background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.admin{display:grid;gap:.9rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.summary-card{background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;display:grid;gap:.3rem;align-content:start}.summary-card .summary-label{font-size:.8rem;color:var(--muted)}.summary-card strong{font-size:1.9rem;font-weight:900;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.summary-card strong em{font-size:.9rem;font-style:normal;font-weight:400;color:var(--muted)}.summary-card small{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}.child-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem}.child-status-card{border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .7rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .5rem}.child-status-name{display:grid}.child-status-name small{font-size:.75rem;color:var(--muted)}.child-status-card .heart-btn{width:auto;grid-row:span 2}.child-status-detail{font-size:.75rem;color:var(--muted)}.proof-grid figcaption{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}.member-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.member-list li{display:grid;gap:.6rem;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.member-list li.pending{border-color:var(--warn-text);background:var(--surface-2)}.member-list li.blocked{opacity:.6}.member-info{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.member-info strong{margin-right:.2rem}.member-info small{flex:1 0 100%;color:var(--muted);font-size:.82rem}.member-actions{display:grid;gap:.45rem}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius-sm)}table{border-collapse:collapse;font-size:.85rem}th,td{border-bottom:1px solid var(--border);padding:0;text-align:center;white-space:nowrap}tbody tr:last-child th,tbody tr:last-child td{border-bottom:none}thead th{background:var(--surface-2);padding:.5rem .6rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}.name-col{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;padding:.4rem .7rem;min-width:7.5rem;font-weight:600}.name-col small{display:block;font-weight:400;color:var(--muted);font-size:.75rem}thead .name-col{background:var(--surface-2)}.course-row th{text-align:left;padding:.45rem .7rem;background:var(--accent-soft);color:var(--accent);font-weight:800}.heart-btn{min-height:38px;width:100%;padding:.3rem .45rem;background:transparent;border:none;border-radius:0;color:inherit}.heart-btn.manual{box-shadow:inset 0 -3px 0 0 var(--warn-text)}.capture-sheet{position:fixed;top:0;left:-100000px;width:max-content;padding:18px 22px 22px;background:#fff;color:#1f2937;font-family:Pretendard Variable,Pretendard,Malgun Gothic,-apple-system,sans-serif}.capture-sheet h3{margin:0 0 12px;font-size:17px;color:#1d4ed8}.capture-sheet h3 span{margin-left:6px;font-size:13px;font-weight:400;color:#6b7280}.capture-sheet table{border-collapse:collapse;font-size:14px}.capture-sheet th,.capture-sheet td{border:1px solid #dbe3f0;padding:5px 9px;text-align:center;white-space:nowrap;background:#fff;color:#1f2937}.capture-sheet thead th{background:#f2f6ff;font-weight:700}.capture-sheet .course-row th{text-align:left;background:#e7efff;color:#1d4ed8;font-weight:800;font-size:13px}.capture-sheet .name-col{text-align:left;font-weight:600}.capture-sheet .status-mark{font-size:17px}.account-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.account-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius)}.account-list small{display:block;color:var(--muted);font-size:.8rem}.account-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.account-actions button{min-height:38px;padding:.35rem .7rem;font-size:.85rem}.chip{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.chip.on{background:var(--ok-bg);color:var(--ok-text);border-color:transparent}.chip.course{font-weight:700;border-color:transparent;margin-right:.35rem}.chip.course.dodum{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.chip.course.seum{background:color-mix(in srgb,var(--warn-text) 16%,transparent);color:var(--warn-text)}.allowlist-form{display:grid;grid-template-columns:1fr;gap:.5rem}@media(min-width:34rem){.allowlist-form{grid-template-columns:1.4fr 1fr auto auto;align-items:center}}.inline-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted);white-space:nowrap}.notify-toggle{min-height:36px;padding:.3rem .6rem;font-size:.82rem;white-space:nowrap}.notify-toggle.suggest{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.notify-denied{font-size:.78rem;color:var(--muted);white-space:nowrap}.modal{position:fixed;inset:0;background:#000000d9;display:grid;place-items:center;padding:1.5rem;z-index:50}.modal img{max-width:100%;max-height:85vh;border-radius:8px}.modal-close{position:absolute;top:calc(1rem + env(safe-area-inset-top));right:1rem;background:#ffffff26;color:#fff;border:none;font-size:1.5rem;line-height:1;padding:.35rem .8rem}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;color:#fff;border:none;border-radius:999px;font-size:1.75rem;line-height:1;padding:.4rem .9rem .55rem;min-height:44px}.modal-nav:active:not(:disabled){transform:translateY(calc(-50% + 1px))}.modal-nav.prev{left:max(.75rem,env(safe-area-inset-left))}.modal-nav.next{right:max(.75rem,env(safe-area-inset-right))}.modal-count{position:absolute;top:calc(1.15rem + env(safe-area-inset-top));left:50%;transform:translate(-50%);background:#ffffff26;color:#fff;font-size:.85rem;padding:.25rem .7rem;border-radius:999px}.update-modal{position:fixed;inset:0;background:#0f172a73;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:1.25rem;z-index:80}.update-dialog{display:grid;gap:.6rem;width:min(22rem,100%);padding:1.4rem 1.25rem;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:center}.update-dialog h2{margin:0;font-size:1.15rem}.update-dialog p{margin:0;font-size:.86rem;line-height:1.5}.update-refresh{margin-top:.35rem;width:100%;min-height:54px;font-size:1.05rem;font-weight:800}.update-later{justify-self:center;min-height:30px;padding:.1rem .7rem;font-size:.78rem;border-color:transparent;background:transparent}.update-later:hover:not(:disabled){border-color:var(--border);background:var(--surface-2)}.round-schedule{display:grid;gap:.9rem}.schedule-group h3{margin-bottom:.4rem;color:var(--muted);font-size:.85rem}.schedule-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.schedule-row{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.schedule-row.archived{opacity:.55}.schedule-main{display:grid;gap:.15rem;min-width:12rem}.schedule-label{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.92rem}.schedule-state{color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.schedule-actions{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.schedule-actions input[type=date]{font:inherit;padding:.45rem .6rem;min-height:40px;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);color-scheme:light dark}.schedule-actions button{min-height:40px;padding:.45rem .8rem;font-size:.85rem}.nudge-modal{position:fixed;inset:0;background:#0f172a73;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:1.25rem;z-index:60}.nudge-card{display:grid;gap:.5rem;justify-items:center;text-align:center;max-width:20rem;width:100%;padding:1.4rem 1.2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.nudge-card strong{font-size:1.05rem}.nudge-card p{margin:0;color:var(--muted)}.nudge-card button{margin-top:.4rem;min-width:8rem}.install-modal{position:fixed;inset:0;background:#0f172a73;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:1.25rem;z-index:60}.install-dialog{display:grid;gap:.5rem;width:min(24rem,100%);padding:1.25rem;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.install-dialog h2{font-size:1.1rem}.install-dialog p{margin:0}.install-actions{display:flex;gap:.4rem;margin-top:.35rem}.install-actions button{flex:1;min-height:44px;font-size:.9rem}.relation-fields{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin:.25rem 0 0;display:grid;gap:.5rem}.relation-fields legend{font-size:.85rem;color:var(--muted);padding:0 .35rem}.relation-options{display:flex;gap:.5rem}.relation-option{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.5rem .75rem;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer}.relation-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.relation-option input[type=radio]{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--accent);cursor:pointer}button.danger{background:var(--error-text);color:#fff;border-color:transparent;box-shadow:none}button.ghost.danger{background:var(--surface);color:var(--error-text);border-color:var(--error-text)}.confirm-actions{display:inline-flex;gap:.4rem;margin-left:.5rem;vertical-align:middle}.confirm-actions button{min-height:34px;padding:.25rem .7rem;font-size:.82rem}.staged{display:grid;gap:.5rem;margin-top:.6rem;padding:.75rem;border:1px dashed var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.staged h4{margin:0;font-size:.9rem}.staged-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.4rem}.staged-grid li{position:relative;aspect-ratio:1}.staged-grid img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2)}.staged-grid .remove{position:absolute;top:.2rem;right:.2rem;min-height:28px;padding:.1rem .45rem;border-radius:var(--pill);background:#0000008c;color:#fff;border-color:transparent;box-shadow:none;font-size:.9rem}.save-actions{display:flex;gap:.5rem;margin-top:.85rem}.save-actions button{flex:1;min-height:48px;font-size:1rem}.save-actions button.ghost{flex:0 0 auto;padding:0 1.1rem}.save-hint{margin:.5rem 0 0;text-align:center;font-size:.8rem;color:var(--muted)}.removed-proofs{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.85rem;color:var(--muted)}.removed-proofs button{min-height:32px;padding:.15rem .6rem;font-size:.8rem}.optional{font-size:.8em;font-weight:400;color:var(--muted);opacity:.85}.exit-hint{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:60;margin:0;padding:.6rem 1.1rem;max-width:calc(100vw - 2rem);border-radius:999px;background:#000000c7;color:#fff;font-size:.9rem;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.course-tabs{display:flex;gap:.3rem;padding:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.course-tabs button{flex:1;min-height:40px;padding:.45rem 1rem;font-size:.9rem;font-weight:800;border-radius:var(--radius-sm);border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.course-tabs button.active{background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-accent)}.child-courses{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.3rem}.child-courses li{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.child-courses .child-name{font-size:.88rem;font-weight:700;min-width:4rem}button.course-pick{min-height:30px;padding:.15rem .6rem;font-size:.78rem;font-weight:700;border-radius:var(--pill);box-shadow:none}button.course-pick.active{background:var(--accent);color:var(--accent-text);border-color:transparent}button.reset-btn{min-height:28px;padding:.1rem .5rem;font-size:.72rem;border-radius:var(--pill)}.child-status-card .confirm-actions{margin-left:0;flex-wrap:wrap;justify-content:center}button.course-pick.child-add{width:30px;padding:0;font-size:.9rem;line-height:1}.child-add-form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.6rem;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface)}.child-add-form input{flex:1 1 8rem;min-width:7rem}.child-add-course{display:inline-flex;gap:.35rem}.child-add-form .confirm-actions{margin-left:auto}.child-add-hint{flex-basis:100%;font-size:.78rem;color:var(--warn-text)}
