:root{color-scheme:light;--purple-dark: #6b4fd6;--purple-light: #a78bfa;--pink: #ff8db8;--yellow: #f9d166;--teal: #7ed6c5;--cream: #f7f4ff;--cream-mid: #f3eeff;--text: #2a2140;--muted: #8b849c;--soft: #b0a9c0;--card: #ffffff;--surface-variant: #f1ecfa;--border: #e8e2f5;--success: #4caf7a;--danger: #e57373;--danger-strong: #c8484a;--toast-bg: #4a3a8c;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--shadow: 0 2px 6px rgba(42, 33, 64, .07);--shadow-md: 0 6px 18px rgba(107, 79, 214, .1);--shadow-lg: 0 18px 44px rgba(42, 33, 64, .18);--ease: cubic-bezier(.22, .61, .36, 1);font-family:Nunito,Segoe UI Variable,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1100px 460px at 12% -8%,rgba(167,139,250,.2),transparent 62%),radial-gradient(900px 420px at 92% 0%,rgba(255,141,184,.16),transparent 60%),linear-gradient(180deg,var(--cream) 0%,var(--cream-mid) 46%,var(--cream) 100%);background-attachment:fixed}a{color:var(--purple-dark);text-decoration-color:#6b4fd659;text-underline-offset:2px}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0;color:var(--purple-dark);letter-spacing:-.01em}h2{font-size:1.32rem;font-weight:800}h3{font-size:1.05rem;font-weight:800}svg.icon{display:block;flex:none}.shell{width:min(760px,calc(100% - 1.75rem));margin:0 auto;padding:1.1rem 0 4rem;animation:page-in .32s var(--ease) both}.stack{display:grid;gap:1rem}.hidden{display:none!important}.brand-mark{display:grid;gap:.14rem;min-width:0}.brand-mark-top{display:flex;align-items:center;gap:.34rem}.brand-mark-littles{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;color:var(--purple-dark);line-height:1}.brand-mark-heart{color:var(--pink);margin-top:.12rem}.brand-mark-notebook{font-size:.62rem;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--purple-light);line-height:1}.brand-mark-sub{margin-top:.2rem;font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand{display:flex;flex-direction:column;gap:.15rem;min-width:0}.brand-kicker{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.brand-title{font-size:clamp(1.35rem,3.4vw,1.7rem);font-weight:800;color:var(--purple-dark);letter-spacing:-.015em}.app-header{display:flex;align-items:center;gap:.75rem;padding:.15rem 0 .4rem}.app-header-main{min-width:0;flex:1;display:grid;gap:.05rem}.app-header-actions{display:flex;align-items:center;gap:.4rem;flex:none}.page-title{font-size:1.24rem;font-weight:800;color:var(--text);letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-sub{font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.icon-btn{appearance:none;width:40px;height:40px;flex:none;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--card);color:var(--purple-dark);box-shadow:var(--shadow);cursor:pointer;transition:transform .14s var(--ease),box-shadow .14s var(--ease),background .14s var(--ease)}.icon-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.icon-btn:active{transform:scale(.94)}.icon-btn.muted{color:var(--muted)}.icon-btn.pink{color:var(--pink)}.icon-btn.primary{background:var(--purple-dark);border-color:transparent;color:#fff}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.toolbar-actions{justify-items:end}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:1.15rem}.card-tight{padding:.9rem 1rem}.hero{display:grid;gap:.3rem;padding:.1rem 0 .2rem}.hero-greeting{font-size:clamp(1.35rem,4vw,1.6rem);font-weight:800;color:var(--text);letter-spacing:-.02em}.hero-greeting em{font-style:normal;color:var(--purple-dark)}.hero-sub{color:var(--muted);font-size:.96rem}.section{display:grid;gap:.55rem}.section-label{margin:0;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--purple-light)}.stack>.section-label{margin-bottom:-.55rem}.card-nav{display:flex;align-items:center;gap:.85rem;width:100%;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow);padding:.95rem 1rem;color:inherit;transition:transform .14s var(--ease),box-shadow .14s var(--ease)}.card-nav:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.card-nav:active{transform:scale(.995)}.card-nav-body{flex:1;min-width:0;display:grid;gap:.1rem}.card-nav-chevron{color:var(--soft);flex:none}.button{appearance:none;border:0;border-radius:var(--r-md);padding:.82rem 1.25rem;background:var(--purple-dark);color:#fff;font-weight:800;font-size:.96rem;cursor:pointer;box-shadow:0 6px 16px #6b4fd63d;transition:transform .14s var(--ease),box-shadow .14s var(--ease),filter .14s var(--ease)}.button:hover{filter:brightness(1.06);box-shadow:0 10px 22px #6b4fd64d}.button:active{transform:scale(.97)}.button.secondary{background:var(--card);color:var(--purple-dark);border:1px solid var(--border);box-shadow:var(--shadow)}.button.secondary:hover{background:var(--surface-variant);filter:none;box-shadow:var(--shadow-md)}.button.small{padding:.48rem .9rem;font-size:.86rem;border-radius:var(--r-sm);box-shadow:none}.button.small:hover{box-shadow:var(--shadow)}.button.danger{background:var(--danger-strong);box-shadow:0 6px 16px #c8484a38}.button.secondary.danger{background:var(--card);color:var(--danger-strong);border-color:#e5737366}.button:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none;filter:none}.button-icon{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.link-button{background:none;border:0;color:var(--purple-dark);font-weight:700;cursor:pointer;padding:0;text-align:left;border-radius:6px;transition:color .14s var(--ease)}.link-button:hover{color:var(--purple-light)}.link-button.pink{color:var(--pink)}.back-link{font-size:.9rem;margin-bottom:.25rem}.action-row{display:flex;gap:.5rem;flex-wrap:wrap}.pill-row,.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.pill-btn{flex:1 1 auto;min-width:5rem}.chip-btn{white-space:nowrap}.chip-toggle{border:1px solid var(--border);border-radius:var(--r-pill);padding:.35rem .8rem}.field{display:grid;gap:.35rem}.field label{font-weight:700;font-size:.9rem;color:var(--text)}.field input,.field textarea,.field select{border:1.5px solid var(--border);border-radius:var(--r-md);padding:.78rem .95rem;background:#fff;color:var(--text);transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--purple-light);box-shadow:0 0 0 4px #a78bfa2e}.field textarea{resize:vertical}:focus-visible{outline:3px solid rgba(167,139,250,.55);outline-offset:2px}.toggle-row{display:flex;align-items:center;gap:.7rem;font-weight:600;cursor:pointer}.toggle-row input[type=checkbox],.toggle-row input[type=radio]{width:1.15rem;height:1.15rem;accent-color:var(--purple-dark);flex:none}.error,.message{border-radius:var(--r-md);padding:.75rem .95rem;font-weight:600;font-size:.94rem;animation:fade-slide .25s var(--ease) both}.error{color:#9f2f2c;background:#fdf1f1;border:1px solid rgba(229,115,115,.4)}.message{color:#1f7a53;background:#edfbf3;border:1px solid rgba(76,175,122,.35)}.hint{color:var(--muted);font-size:.93rem}.hint-card{display:flex;gap:.8rem;align-items:flex-start;background:linear-gradient(180deg,#f9d16629,#f9d16614);border-color:#f9d16680}.hint-card .icon{color:#b8860b;margin-top:.1rem}.notice-banner{border-color:#f9d1668c;background:linear-gradient(180deg,#f9d16624,#ffffffe6)}.info-callout{display:flex;gap:.75rem;align-items:flex-start;background:#7ed6c529;border:1px solid rgba(126,214,197,.4);border-radius:var(--r-md);padding:.9rem 1rem}.info-callout .icon{color:#2f8f7e;flex:none;margin-top:.1rem}.empty{color:var(--muted);text-align:center;padding:1.5rem 1rem}.empty-state{display:grid;justify-items:center;gap:.5rem;text-align:center;padding:1.25rem 1rem 1.5rem}.empty-art{width:min(72%,240px);max-height:150px;object-fit:contain;opacity:.95;animation:float-in .5s var(--ease) both}.empty-title{font-weight:800;color:var(--purple-dark)}.avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--surface-variant);flex:none;display:block}.avatar.small{width:40px;height:40px}.avatar.large{width:72px;height:72px}.avatar-initials{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,#a78bfa8c,#ff8db873);color:var(--purple-dark);font-weight:800;font-size:1rem;letter-spacing:.01em;text-transform:uppercase}.avatar-initials.small{width:40px;height:40px;font-size:.85rem}.avatar-initials.large{width:72px;height:72px;font-size:1.5rem}.avatar-initials.xl{width:58px;height:58px;font-size:1.2rem}.avatar.xl,.avatar-btn.xl .avatar{width:58px;height:58px}.avatar-btn{border:0;padding:0;background:none;cursor:pointer;border-radius:50%;position:relative;flex:none;line-height:0;transition:transform .16s var(--ease)}.avatar-btn:hover{transform:scale(1.04)}.avatar-btn:active{transform:scale(.96)}.avatar-badge{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;background:var(--purple-dark);color:#fff;display:grid;place-items:center;border:2px solid #fff}.avatar-badge .icon{width:11px;height:11px}.avatar-stack{display:flex;align-items:center}.avatar-stack>*{margin-left:-12px;border:2.5px solid #fff;border-radius:50%;box-sizing:content-box}.avatar-stack>*:first-child{margin-left:0}.child-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .8rem;border-radius:var(--r-pill);background:var(--surface-variant);color:var(--purple-dark);font-weight:700;font-size:.86rem}.status-chip{display:inline-flex;align-items:center;gap:.38rem;margin-top:.3rem;padding:.24rem .65rem .24rem .55rem;border-radius:var(--r-pill);font-size:.75rem;font-weight:800;letter-spacing:.02em}.status-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}.status-in-care{background:#e0f7f2;color:#2f8f7e}.status-napping{background:#e4eeff;color:#5b7cda}.status-out{background:#fff0e8;color:#c46a3a}.status-away{background:#fff3d6;color:#b8860b}.badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--r-pill);background:var(--purple-dark);color:#fff;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.badge.warn{background:#f9d16666;color:#8a6300}.badge.ok{background:#4caf7a2e;color:#2f8f7e}.roster-greeting{margin:0}.roster-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.roster-item{display:grid;gap:.7rem;padding:.95rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:fade-slide .3s var(--ease) both;transition:transform .16s var(--ease),box-shadow .16s var(--ease)}.roster-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.roster-list>.roster-item:nth-child(2){animation-delay:.04s}.roster-list>.roster-item:nth-child(3){animation-delay:.08s}.roster-list>.roster-item:nth-child(4){animation-delay:.12s}.roster-list>.roster-item:nth-child(n+5){animation-delay:.16s}.roster-main{display:flex;gap:.85rem;align-items:center;min-width:0}.roster-body{min-width:0;flex:1}.roster-name{font-weight:800;font-size:1.06rem;color:var(--text);letter-spacing:-.01em}.roster-actions{display:flex;gap:.45rem;flex-wrap:wrap}.child-menu{display:grid;gap:.3rem;padding:.55rem;background:var(--surface-variant);border-radius:var(--r-md);animation:fade-slide .2s var(--ease) both}.child-menu.hidden{display:none}.child-menu button{text-align:left;border:0;background:#fff;border-radius:var(--r-sm);padding:.58rem .8rem;cursor:pointer;font-weight:700;color:var(--purple-dark);font-size:.9rem;transition:background .14s var(--ease),transform .14s var(--ease)}.child-menu button:hover{background:#a78bfa24;transform:translate(2px)}.group-card{background:linear-gradient(135deg,#a78bfa29,#7ed6c524);border-color:#a78bfa59}.clock-banner{border-color:#a78bfa73;background:linear-gradient(180deg,#a78bfa1a,#ffffffe6)}.timeline-list{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}.timeline-item{display:grid;grid-template-columns:44px 1fr;gap:.85rem;align-items:stretch;animation:fade-slide .3s var(--ease) both}.timeline-list>.timeline-item:nth-child(2){animation-delay:.04s}.timeline-list>.timeline-item:nth-child(3){animation-delay:.08s}.timeline-list>.timeline-item:nth-child(4){animation-delay:.12s}.timeline-list>.timeline-item:nth-child(n+5){animation-delay:.16s}.timeline-rail{display:flex;flex-direction:column;align-items:center}.timeline-spine{width:2px;flex:1;min-height:12px;margin-bottom:-.45rem;background:var(--border);border-radius:2px}.timeline-item:last-child .timeline-spine{display:none}.event-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;background:var(--surface-variant);color:var(--purple-dark)}.tone-checkin{background:#e5f6ec;color:#4caf7a}.tone-checkout{background:#e5f6ec;color:var(--purple-dark)}.tone-meal{background:#fff5d9;color:#c9a227}.tone-diaper{background:#e8f4ff;color:var(--purple-dark)}.tone-potty{background:#e8f4ff;color:#4caf7a}.tone-nap{background:#e4eeff;color:#5b7cda}.tone-activity{background:#ffeaf2;color:var(--pink)}.tone-photo{background:#ffe8f0;color:var(--pink)}.tone-note{background:#ede6ff;color:var(--purple-dark)}.tone-injury{background:#ffe8e8;color:var(--danger)}.tone-illness{background:#e8f8f4;color:#3aa898}.tone-medication{background:#dff7f2;color:var(--purple-dark)}.timeline-body{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:.85rem 1rem;box-shadow:var(--shadow);margin-bottom:.55rem;transition:box-shadow .16s var(--ease)}.timeline-body:hover{box-shadow:var(--shadow-md)}.timeline-head{display:flex;align-items:baseline;gap:.55rem}.timeline-type{font-size:.98rem;font-weight:800;color:var(--text);letter-spacing:-.01em;flex:1;min-width:0}.timeline-time{color:var(--muted);font-size:.8rem;font-weight:700;flex:none}.timeline-summary{margin-top:.2rem;color:var(--muted);font-size:.94rem;line-height:1.45}.timeline-photo-btn{border:0;padding:0;background:none;cursor:pointer;display:block;border-radius:14px;overflow:hidden;margin-top:.7rem;transition:transform .18s var(--ease)}.timeline-photo-btn:hover{transform:scale(1.015)}.timeline-photo{width:100%;max-width:340px;border-radius:14px;display:block}.timeline-actions{margin-top:.6rem}.summary-card{background:linear-gradient(160deg,#fff,#a78bfa17);border-color:#a78bfa4d}.summary-narrative{white-space:pre-wrap;line-height:1.65;font-size:1rem;color:#6b4fd6eb;font-style:italic}.summary-foot{display:flex;align-items:center;gap:.4rem;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.summary-foot .icon{color:var(--pink)}.date-nav{display:flex;align-items:center;gap:.5rem}.date-nav strong{color:var(--purple-dark)}.date-nav-label{flex:1;text-align:center;font-weight:800;color:var(--purple-dark)}.quick-log{gap:1.15rem}.log-section{display:grid;gap:.55rem}.log-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.log-row-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.log-meal-grid{display:grid;gap:.65rem}.log-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}.log-meal-tile,.log-action-tile,.log-nap-tile,.log-activity-tile,.log-pill-btn{appearance:none;border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow);padding:.9rem .85rem;cursor:pointer;color:var(--purple-dark);font:inherit;display:grid;justify-items:center;gap:.4rem;text-align:center;transition:transform .14s var(--ease),box-shadow .14s var(--ease),border-color .14s var(--ease)}.log-meal-tile:hover:not(:disabled),.log-action-tile:hover:not(:disabled),.log-nap-tile:hover:not(:disabled),.log-activity-tile:hover:not(:disabled),.log-pill-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#a78bfa73}.log-meal-tile:active:not(:disabled),.log-action-tile:active:not(:disabled),.log-nap-tile:active:not(:disabled),.log-activity-tile:active:not(:disabled),.log-pill-btn:active:not(:disabled){transform:scale(.96)}.log-activity-tile{width:100%;grid-template-columns:auto 1fr;justify-items:start;align-items:center;text-align:left;gap:.8rem;padding:1rem}.log-pill-btn{padding:.72rem .35rem;font-size:.88rem;font-weight:800;gap:.25rem}.tile-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--surface-variant);color:var(--purple-dark)}.tile-icon.tone-green{background:#e5f6ec;color:#4caf7a}.tile-icon.tone-purple{background:#ede6ff;color:var(--purple-dark)}.tile-icon.tone-yellow{background:#fff5d9;color:#c9a227}.tile-icon.tone-teal{background:#dff7f2;color:#2f8f7e}.tile-icon.tone-pink{background:#ffe8f0;color:var(--pink)}.tile-icon.tone-red{background:#ffe8e8;color:var(--danger)}.tile-icon.tone-blue{background:#e4eeff;color:#5b7cda}.tile-icon.tone-muted{background:var(--surface-variant);color:var(--muted)}.log-tile-title{display:block;font-weight:800;font-size:.92rem;color:var(--text);line-height:1.25}.log-tile-sub{display:block;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.log-action-tile-checkin{border-color:#4caf7a59;background:linear-gradient(180deg,#4caf7a1a,#fff)}.log-action-tile-checkin .log-tile-title{color:#2f8f7e}.log-action-tile-danger{border-color:#e5737359;background:linear-gradient(180deg,#e5737314,#fff)}.log-action-tile-danger .log-tile-title{color:var(--danger-strong)}.log-meal-tile:disabled,.log-action-tile:disabled,.log-nap-tile:disabled,.log-activity-tile:disabled,.log-pill-btn:disabled,.log-btn[disabled]{opacity:.38;cursor:not-allowed;box-shadow:none}.potty-choices{gap:.65rem}.potty-choice{appearance:none;border:1.5px solid var(--border);border-radius:18px;background:#fff;padding:.95rem 1rem;font-weight:800;cursor:pointer;color:var(--purple-dark);display:flex;align-items:center;justify-content:center;gap:.55rem;transition:transform .14s var(--ease),box-shadow .14s var(--ease)}.potty-choice:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.potty-choice:active{transform:scale(.97)}.potty-choice:first-of-type{background:#7ed6c529;border-color:#7ed6c580;color:#2f8f7e}.potty-choice:last-of-type{background:#f9d16633;border-color:#f9d1668c;color:#8a6d00}.contact-list,.team-list{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}.contact-item,.team-item{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;padding:.85rem .95rem;background:var(--surface-variant);border-radius:var(--r-md)}.contact-main{display:flex;align-items:center;gap:.75rem;min-width:0}.attendance-choices{gap:.5rem}.attendance-choice{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;background:#fff;transition:border-color .14s var(--ease),background .14s var(--ease)}.attendance-choice:hover{border-color:#a78bfa80}.attendance-choice:has(input:checked){border-color:var(--purple-dark);background:#6b4fd60f}.attendance-choice input{flex:none;width:1.15rem;height:1.15rem;accent-color:var(--purple-dark)}.attendance-choice-body{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1}.choice-text{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0}.photo-upload-row{display:flex;flex-direction:row;align-items:center;gap:1rem}.photo-upload-row .button{margin-top:.5rem}.login-shell{min-height:100vh;display:grid;align-content:center;justify-items:stretch;width:min(430px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 3rem;animation:page-in .36s var(--ease) both}.login-hero{display:grid;justify-items:center;gap:.55rem;text-align:center;margin-bottom:1.25rem}.login-logo{width:auto;height:172px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(107,79,214,.18));animation:float-in .55s var(--ease) both}.login-tenant{font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--purple-light)}.login-title{font-size:1.5rem;font-weight:800;color:var(--purple-dark);letter-spacing:-.02em}.role-toggle{display:flex;gap:.3rem;background:#ede8f8;padding:.3rem;border-radius:18px}.role-btn{flex:1;border:0;background:transparent;padding:.62rem 1rem;border-radius:14px;font-weight:800;color:var(--muted);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}.role-btn.active{background:#fff;color:var(--purple-dark);box-shadow:var(--shadow)}body.modal-open{overflow:hidden}.photo-modal-overlay{position:fixed;inset:0;background:#231b369e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:overlay-in .2s var(--ease) both}.photo-modal{position:relative;max-width:min(720px,100%);max-height:calc(100vh - 2rem);overflow:auto;background:#fff;border-radius:var(--r-xl);padding:1.35rem;box-shadow:var(--shadow-lg);animation:modal-in .24s var(--ease) both}.confirm-modal{width:min(420px,100%);background:#fff;border-radius:var(--r-xl);padding:1.35rem;box-shadow:var(--shadow-lg);animation:modal-in .24s var(--ease) both}.confirm-modal h2{margin:0;font-size:1.2rem;color:var(--purple-dark)}.confirm-modal .action-row{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}.photo-modal-close{position:absolute;top:.6rem;right:.8rem;border:0;background:none;font-size:1.9rem;line-height:1;cursor:pointer;color:var(--soft);transition:color .14s var(--ease)}.photo-modal-close:hover{color:var(--purple-dark)}.photo-modal-img{width:100%;border-radius:var(--r-md);display:block}.photo-modal-caption,.photo-modal-time{margin-top:.75rem;text-align:center}.app-toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%) translateY(140%);background:var(--toast-bg);color:#fff;padding:.8rem 1.3rem;border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:1100;transition:transform .3s var(--ease),opacity .3s var(--ease);opacity:0;pointer-events:none;max-width:min(90vw,420px);font-weight:700;display:flex;align-items:center;gap:.6rem}.app-toast[hidden]{display:none}.app-toast-check{width:22px;height:22px;border-radius:50%;background:var(--teal);color:#1f5d52;display:grid;place-items:center;flex:none}.app-toast.visible{transform:translate(-50%) translateY(0);opacity:1}.calendar-picker{display:grid;gap:.75rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.calendar-header strong{color:var(--purple-dark);font-size:1.02rem}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;text-align:center;font-size:.66rem;font-weight:800;letter-spacing:.1em;color:var(--soft)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.calendar-cell{appearance:none;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;min-height:2.5rem;position:relative;cursor:pointer;font:inherit;font-weight:600;color:var(--text);transition:background .12s var(--ease),border-color .12s var(--ease)}.calendar-cell:hover:not(:disabled):not(.empty){background:var(--surface-variant)}.calendar-cell.empty{border:0;background:transparent;cursor:default}.calendar-cell.selected{border-color:transparent;background:var(--purple-dark);color:#fff;font-weight:800}.calendar-cell.today{font-weight:800;border-color:var(--purple-light)}.calendar-cell.has-activity .calendar-dot{position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--pink)}.calendar-cell.selected.has-activity .calendar-dot{background:#fff}.calendar-cell:disabled{opacity:.35;cursor:not-allowed}.mfa-secret,.backup-codes{background:var(--surface-variant);border-radius:var(--r-sm);padding:.8rem;overflow-x:auto;font-size:.85rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade-slide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes float-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:520px){.log-row-4{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-actions .button{flex:1 1 auto}.app-header-actions{gap:.3rem}.icon-btn{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
