.app{z-index:1;max-width:1100px;margin:0 auto;padding:.85rem .75rem 2rem;position:relative}.playful-bg{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(2px);opacity:.45;border-radius:40% 60% 55% 45%/45% 40% 60% 55%;animation:18s ease-in-out infinite alternate blob-float;position:absolute}.blob-a{background:radial-gradient(circle at 30% 30%,#fde68a,#f472b6 70%);width:18rem;height:18rem;top:8%;left:-4%}.blob-b{background:radial-gradient(circle at 60% 40%,#a5f3fc,#818cf8 75%);border-radius:55% 45% 40% 60%/50% 55% 45% 50%;width:14rem;height:14rem;animation-delay:-6s;top:55%;right:-3%}.blob-c{opacity:.35;background:radial-gradient(circle,#bbf7d0,#67e8f9 80%);width:11rem;height:11rem;animation-delay:-11s;bottom:5%;left:35%}@keyframes blob-float{0%{transform:translate(0)rotate(0)}to{transform:translate(18px,-22px)rotate(8deg)}}.doodle{opacity:.55;position:absolute}.doodle-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#fde047;width:1.4rem;height:1.4rem;animation:3.5s ease-in-out infinite twinkle;top:12%;right:12%}.doodle-dot{background:#fb7185;border-radius:50%;width:.7rem;height:.7rem;top:40%;left:6%;box-shadow:1.8rem 2.2rem #67e8f9,.6rem 3.5rem #c4b5fd}.doodle-squiggle{border:3px solid #0000;border-top-color:#f9a8d4;border-radius:50%;width:3.2rem;height:1.1rem;bottom:12%;right:18%;transform:rotate(-12deg)}@keyframes twinkle{0%,to{opacity:.5;transform:scale(1)rotate(0)}50%{opacity:.85;transform:scale(1.15)rotate(12deg)}}.boot{text-align:center;color:#fffbeb;text-shadow:0 2px 8px #312e8173;padding:2.5rem 1rem;font-size:1.15rem;font-weight:800}.boot.error{color:#fecaca}.app-header{border-radius:var(--radius,16px);background:linear-gradient(135deg,#fffbeb 0%,#fce7f3 40%,#e0f2fe 100%);border:3px solid #c4b5fd;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.85rem 1rem;display:flex;box-shadow:0 4px #a78bfa,0 12px 28px #4f46e547}.brand{color:#0c1222;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;display:flex}.badge{color:#854d0e;background:#fef08a;border:2px solid #facc15;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:800}.badge.closed-badge{color:#fff;background:#be123c;border:none;padding:.3rem .65rem;font-size:.85rem}.view-tabs{gap:.3rem;display:flex}.view-tabs button{cursor:pointer;color:#1a1530;background:#fff;border:2px solid #c4b5fd;border-radius:999px;padding:.45rem .85rem;font-weight:700}.view-tabs button.active{color:#fff;background:linear-gradient(135deg,#6366f1,#06b6d4);border-color:#4f46e5;box-shadow:0 3px #4338ca}.auth-bar{align-items:center;gap:.75rem;font-weight:700;display:flex}.linkish{color:#7c3aed;cursor:pointer;background:0 0;border:none;font-weight:700;text-decoration:underline}.coverage-banner{color:#fff;background:#7f1d1d;border:3px solid #450a0a;border-radius:12px;margin-bottom:.85rem;padding:.95rem 1rem;box-shadow:0 4px #450a0a,0 10px 28px #7f1d1d73}.coverage-banner-title{letter-spacing:.02em;margin-bottom:.4rem;font-size:1.08rem;font-weight:900}.coverage-banner ul{margin:.25rem 0 0;padding-left:1.2rem;font-size:1rem;font-weight:750}.coverage-counts{opacity:.95;font-weight:700}.coverage-more{margin:.4rem 0 0;font-weight:700}.panel{border-radius:var(--radius,16px);background:linear-gradient(#fff 0%,#fffbeb 55%,#fdf4ff 100%);border:2px solid #ddd6fe;margin-bottom:.85rem;padding:.9rem 1rem;box-shadow:0 3px #a78bfa8c,0 12px 28px #4f46e538}.date-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.date-nav h2{text-align:center;color:#0c1222;margin:0;font-size:1.3rem;font-weight:900}.date-nav button{cursor:pointer;color:#1a1530;background:#fff;border:2px solid #c4b5fd;border-radius:12px;padding:.45rem .75rem;font-weight:800}.date-nav button:hover{background:#ecfeff;border-color:#06b6d4}.site-block{background:linear-gradient(160deg,#fff 0%,#f5f3ff 100%);border:2px solid #ddd6fe;border-radius:14px;margin-bottom:1.1rem;padding:.75rem}.site-block.level-warn{background:linear-gradient(160deg,#fff7ed 0%,#ffedd5 100%);border-color:#ea580c;box-shadow:inset 0 0 0 1px #fb923c}.site-block.level-closed{background:#fff1f2;border-color:#be123c}.site-block.level-ok{border-color:#34d399;box-shadow:inset 0 0 0 1px #34d39959}.site-block h3{color:#0c1222;margin:0;font-size:1.2rem;font-weight:900}.site-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.site-hours{color:#0c1222;letter-spacing:-.02em;margin:.3rem 0 .55rem;font-size:1.55rem;font-weight:900;line-height:1.1}.site-hours.compact{margin:.15rem 0 .35rem;font-size:1.05rem}.coverage-pill{border:2px solid #0000;border-radius:999px;padding:.25rem .55rem;font-size:.9rem;font-weight:800}.coverage-pill.mini{padding:.15rem .4rem;font-size:.78rem}.coverage-pill.level-ok{color:#166534;background:#dcfce7;border-color:#86efac}.coverage-pill.level-warn{color:#9a3412;background:#ffedd5;border-color:#fb923c}.coverage-pill.level-empty{color:#334155;background:#e2e8f0}.closed-banner{color:#fff;text-align:center;letter-spacing:.03em;background:#be123c;border-radius:10px;margin:.35rem 0 .75rem;padding:.9rem .75rem;font-size:1.2rem;font-weight:900;box-shadow:0 3px #881337}.closed-banner.site-closed{font-size:1.1rem}.closed-banner.column-closed{justify-content:center;align-items:center;min-height:5rem;margin:.25rem 0;padding:1.4rem .4rem;font-size:.95rem;display:flex}.muted{color:#475569}.empty-slot{color:#b91c1c;padding:.4rem;font-weight:800}.role-sections{flex-direction:column;gap:.75rem;margin-top:.35rem;display:flex}.role-block{border:2px solid #0000;border-radius:12px;padding:.55rem .65rem .7rem}.role-block.role-adults{background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 60%);border-color:#93c5fd}.role-block.role-interns{background:linear-gradient(135deg,#f5f3ff 0%,#faf5ff 60%);border-color:#c4b5fd}.role-head{border-bottom:2px solid #0f172a14;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem .75rem;margin-bottom:.45rem;padding-bottom:.35rem;display:flex}.role-label{letter-spacing:.08em;text-transform:uppercase;color:#334155;font-size:.78rem;font-weight:900}.role-adults .role-label{color:#1e3a8a}.role-interns .role-label{color:#5b21b6}.role-hours{letter-spacing:-.02em;color:#0c1222;font-size:1.35rem;font-weight:900;line-height:1.1}.role-interns .role-hours{color:#5b21b6}.week-role-label{letter-spacing:.04em;text-transform:uppercase;border-radius:5px;margin-top:.2rem;padding:.15rem .3rem;font-size:.68rem;font-weight:900}.week-role-label.adults{color:#1e3a8a;background:#dbeafe}.week-role-label.interns{color:#5b21b6;background:#ede9fe;margin-top:.45rem}.chip-row,.chip-col{flex-wrap:wrap;gap:.4rem;display:flex}.chip-col{flex-flow:column}.chip-row.secondary{margin-top:.45rem}.chip{text-align:left;color:#0c1222;background:#f1f5f9;border:2px solid #94a3b8;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.2rem;max-width:100%;padding:.4rem .55rem;font-weight:700;display:flex}.chip.compact{padding:.28rem .4rem;font-size:.88rem}.chip.interactive{cursor:pointer}.chip-main{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.chip-name{font-size:1.02rem;font-weight:900}.chip.compact .chip-name{font-size:.9rem}.chip.on-call{min-width:9.5rem;padding:.5rem .7rem;box-shadow:0 0 0 3px #fef3c7,0 4px #92400e,0 8px 18px #92400e59;color:#451a03!important;background:linear-gradient(#fde68a 0%,#fbbf24 55%,#f59e0b 100%)!important;border:3px solid #92400e!important}.chip.on-call.compact{min-width:0;padding:.35rem .5rem;box-shadow:0 0 0 2px #fef3c7,0 3px #92400e}.chip.on-call .oncall-main{flex-direction:column;align-items:flex-start;gap:.2rem;width:100%}.chip.on-call .oncall-name{letter-spacing:-.02em;color:#1c0a00;text-shadow:0 1px #ffffff73;font-size:1.22rem;font-weight:900;line-height:1.15}.chip.on-call.compact .oncall-name{font-size:1.02rem}.chip.on-call .tag-oncall{color:#fffbeb;letter-spacing:.06em;background:#7c2d12;border-radius:6px;padding:.18rem .5rem;font-size:.78rem;box-shadow:0 1px #451a03}.chip.on-call.compact .tag-oncall{padding:.1rem .35rem;font-size:.68rem}.chip.van{color:#f8fafc!important;background:#0f172a!important;border:3px solid #334155!important;border-left:5px solid #38bdf8!important}.tag{letter-spacing:.02em;text-transform:uppercase;border-radius:6px;padding:.12rem .4rem;font-size:.72rem;font-weight:900;display:inline-block}.tag-oncall{color:#fff;background:#b45309}.tag-van{color:#fff;background:#0284c7}.tag-kind{color:inherit;text-transform:none;background:#0f172a1f;font-weight:700}.tag-note{color:#fef08a;text-transform:none;background:#111827;font-size:.78rem;font-weight:800}.week-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;display:grid}.day-col{background:#fffcf7;border:2px solid #b8c9d9;border-radius:10px;min-height:9rem;padding:.4rem}.day-col.level-warn{background:#fff7ed;border-color:#ea580c}.day-col.level-closed{background:#fff1f2;border-color:#be123c}.day-col.level-ok{border-color:#2dd4bf}.day-col-head{cursor:pointer;color:#0c1222;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;margin-bottom:.3rem;padding:0;font-size:.85rem;font-weight:800;display:flex}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.month-dow{text-align:center;color:#334155;font-size:.8rem;font-weight:800}.month-cell{text-align:left;cursor:pointer;color:#0c1222;background:#fffcf7;border:2px solid #b8c9d9;border-radius:10px;flex-direction:column;gap:.25rem;min-height:5.2rem;padding:.35rem;display:flex}.month-cell.empty{cursor:default;background:0 0;border:none}.month-cell.selected{outline-offset:1px;outline:3px solid #7c3aed}.month-cell.closed{background:#ffe4e6;border-color:#be123c}.month-cell.has-data{background:#f0f7f6}.dom{font-size:1rem;font-weight:900}.month-closed-label{color:#9f1239;font-size:.72rem;font-weight:900}.month-counts{flex-direction:column;gap:.15rem;display:flex}.mc{border:1px solid #0000;border-radius:5px;padding:.12rem .3rem;font-size:.72rem;font-weight:800}.mc.level-ok{color:#166534;background:#dcfce7;border-color:#86efac}.mc.level-warn{color:#9a3412;background:#ffedd5;border-color:#fb923c}.mc.level-empty{color:#475569;background:#e2e8f0}.color-legend{background:#fffcf7e6;border:2px dashed #94b8b0;border-radius:10px;margin-top:.75rem;padding:.65rem}.color-legend-title{margin-bottom:.4rem;font-size:.9rem;font-weight:800}.color-legend-row{flex-wrap:wrap;gap:.35rem;display:flex}.legend-pill{border:2px solid;border-left-width:5px;border-radius:999px;padding:.2rem .5rem;font-size:.8rem;font-weight:700;display:inline-block}.modal-backdrop{z-index:50;background:#0b1a33a6;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:#fffcf7;border:2px solid #7dd3c7;border-radius:14px 14px 0 0;width:min(520px,100%);max-height:90vh;padding:1rem;overflow:auto}@media (width>=640px){.modal-backdrop{align-items:center}.modal{border-radius:14px}}.modal h2{margin:0 0 .25rem;font-size:1.2rem;font-weight:900}.person-picker{border:2px solid #b8c9d9;border-radius:10px;margin:.75rem 0;padding:.5rem}.person-picker legend{padding:0 .35rem;font-weight:800}.picker-group-label{color:#475569;margin:.45rem 0 .25rem;font-size:.8rem;font-weight:800}.picker-option{text-align:left;cursor:pointer;background:#f0f7f6;border:2px solid #0000;border-radius:8px;align-items:center;gap:.45rem;width:100%;margin-bottom:.25rem;padding:.4rem .5rem;font-weight:700;display:flex}.picker-option.selected{outline:3px solid #7c3aed}.picker-swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.note-field{flex-direction:column;gap:.25rem;margin:.5rem 0;font-weight:700;display:flex}.note-field input{border:2px solid #b8c9d9;border-radius:8px;padding:.5rem .6rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.modal-actions button,.primary{cursor:pointer;background:#fff;border:2px solid #b8c9d9;border-radius:10px;padding:.5rem .9rem;font-weight:700}button.primary{color:#fff;background:linear-gradient(135deg,#6366f1,#06b6d4);border-color:#4f46e5;box-shadow:0 3px #4338ca}button.primary:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.admin-hint h3{margin-top:0}@media (width<=720px){.week-grid{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:stretch}.view-tabs button{flex:1}.site-hours{font-size:1.65rem}.role-hours{font-size:1.45rem}}.admin-hint.panel,.admin-hint{border-radius:var(--radius,16px);background:linear-gradient(#fff 0%,#fdf4ff 100%);border:2px solid #ddd6fe;margin-bottom:.85rem;padding:.9rem 1rem;box-shadow:0 3px #a78bfa73,0 10px 28px #4f46e52e}.chip-col{flex-direction:column;gap:.35rem;display:flex}.site-hours .hours-adults{color:#0c1222}.site-hours .hours-interns{color:#5b21b6;margin-top:.1rem;font-size:.92em}.site-hours.compact .hours-adults,.site-hours.compact .hours-interns{font-size:inherit;line-height:1.15}.edit-stamp{color:#64748b;margin:.35rem 0 0;font-size:.85rem}.assistant-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.assistant-head h3{margin:0}.assistant-field{flex-direction:column;gap:.3rem;margin:.65rem 0;font-weight:800;display:flex}.assistant-field select{border:2px solid #b8c9d9;border-radius:10px;padding:.55rem .65rem;font-size:1rem;font-weight:700}.assistant-warn{color:#9a3412;background:#ffedd5;border:2px solid #fb923c;border-radius:10px;margin:.5rem 0;padding:.65rem .75rem;font-weight:800}.assistant-options h4{margin:.75rem 0 .4rem;font-size:1.05rem}.option-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.option-chip{text-align:left;cursor:pointer;background:#fff;border:2px solid #94a3b8;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.65rem .75rem;font-weight:700;display:flex}.option-chip:hover{outline:3px solid #7c3aed}.option-name{font-size:1.05rem;font-weight:900}.option-meta{opacity:.9;font-size:.82rem;font-weight:600}.option-warn{color:#9a3412;font-size:.82rem;font-weight:800}.option-apply{color:#7c3aed;margin-top:.25rem;font-size:.85rem;font-weight:900}.assistant-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.assistant-tabs button{cursor:pointer;color:#1a1530;background:#fff;border:2px solid #c4b5fd;border-radius:999px;padding:.4rem .9rem;font-weight:800}.assistant-tabs button.active{color:#fff;background:linear-gradient(135deg,#f472b6,#a78bfa);border-color:#c026d3;box-shadow:0 2px #86198f}.intake-mode-tabs{gap:.35rem;margin:.5rem 0 .75rem;display:flex}.intake-mode-tabs button{cursor:pointer;background:#faf5ff;border:2px dashed #c4b5fd;border-radius:10px;padding:.35rem .75rem;font-weight:800}.intake-mode-tabs button.active{background:#ede9fe;border-style:solid;border-color:#8b5cf6}.intake-kind{background:#faf5ff;border:2px solid #ddd6fe;border-radius:12px;margin:.5rem 0;padding:.55rem .75rem}.intake-kind legend{padding:0 .35rem;font-weight:900}.intake-radio{cursor:pointer;align-items:center;gap:.4rem;margin:.25rem 0;font-weight:700;display:flex}.dow-chips{flex-wrap:wrap;gap:.35rem;display:flex}.dow{cursor:pointer;background:#fff;border:2px solid #c4b5fd;border-radius:999px;padding:.3rem .65rem;font-weight:800}.dow.on{color:#083344;background:#22d3ee;border-color:#0891b2;box-shadow:0 2px #0e7490}.intake-time-row{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;display:grid}.assistant-field input[type=text],.assistant-field input[type=number],.assistant-field input[type=date],.assistant-field input[type=time],.timeoff-row input{background:#fff;border:2px solid #ddd6fe;border-radius:10px;padding:.45rem .55rem;font-weight:600}.intake-timeoff{background:#fff1f2;border:2px dashed #f9a8d4;border-radius:12px;margin:.75rem 0;padding:.65rem}.intake-timeoff-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.timeoff-row{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.4rem;display:flex}.intake-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin:.75rem 0 .25rem;display:flex}.intake-status{color:#065f46;background:#ecfdf5;border:2px solid #34d399;border-radius:10px;margin:.65rem 0;padding:.65rem .75rem;font-weight:800}.intake-range-row{flex-wrap:wrap;align-items:flex-end;gap:.65rem;margin-bottom:.5rem;display:flex}.intake-person-pill{border:2px solid;border-radius:8px;padding:.1rem .45rem;font-weight:900;display:inline-block}.option-chip.checkable,.option-chip.selected{cursor:pointer;flex-direction:row;align-items:flex-start;gap:.55rem;display:flex}.option-chip.selected{background:#f5f3ff;outline:3px solid #7c3aed}.option-chip.checkable input,.option-chip.selected input{flex-shrink:0;width:1.1rem;height:1.1rem;margin-top:.35rem}.option-body{flex-direction:column;gap:.12rem;min-width:0;display:flex}.color-legend{background:#fffbebf2;border-style:dashed;border-color:#c4b5fd}.intake-empty{flex-direction:column;gap:.55rem;margin:.5rem 0 .75rem;display:flex}.intake-empty-next{color:#1e3a8a;background:#eff6ff;border:2px solid #93c5fd;border-radius:10px;padding:.65rem .85rem;font-weight:700}.intake-empty-next ul{margin:.35rem 0 0;padding-left:1.2rem;font-weight:600}.intake-empty-next li{margin:.2rem 0}.intake-empty-why{color:#334155;background:#f8fafc;border:2px dashed #94a3b8;border-radius:10px;padding:.45rem .75rem;font-weight:700}.intake-empty-why summary{cursor:pointer;font-weight:900}.intake-empty-breakdown{margin:.4rem 0 .2rem;padding-left:1.2rem;font-weight:600}.intake-empty-breakdown li{margin:.15rem 0}.intake-empty-swap{color:#86198f;background:#fdf4ff;border:2px solid #e879f9;border-radius:10px;margin:.35rem 0;padding:.55rem .75rem;font-weight:700}:root{color:#1a1530;--bg-deep:#3b82f6;--bg-mid:#6366f1;--bg-glow:#f472b6;--accent:#06b6d4;--accent-strong:#0891b2;--accent-ink:#0e7490;--danger:#b91c1c;--ok:#15803d;--muted:#5b5675;--border:#c4b5fd;--card:#fffbeb;--card-elevated:#fff;--ink:#1a1530;--radius:16px;--oncall:#b45309;--oncall-bg:#fbbf24;--intern-accent:#7c3aed;background-color:#4f46e5;background-image:radial-gradient(ellipse 80% 55% at 8% -5%, #f9a8d4 0%, transparent 52%), radial-gradient(ellipse 70% 50% at 92% 0%, #67e8f9 0%, transparent 48%), radial-gradient(ellipse 55% 45% at 50% 105%, #c4b5fd 0%, transparent 50%), radial-gradient(circle 28% at 75% 70%, #fde04759 0%, transparent 60%), linear-gradient(165deg, #6366f1 0%, #818cf8 35%, #38bdf8 70%, #a78bfa 100%);background-attachment:fixed;min-height:100%;font-family:Segoe UI,system-ui,-apple-system,Roboto,Comic Sans MS,sans-serif;font-size:17px;line-height:1.35}*{box-sizing:border-box}html,body{min-height:100%}body{-webkit-text-size-adjust:100%;min-width:320px;color:var(--ink);margin:0}button,input,select{font:inherit}a{color:var(--accent-strong)}@media (width<=480px){:root{font-size:18px}}
