.form-error{display:block;margin-top:var(--space-xs);font-size:var(--fs-small);color:#e74c3c}.is-invalid{border-color:#e74c3c!important;box-shadow:0 0 0 3px #e74c3c33!important}#dashboard-shell[hidden],.dashboard-page .site-header[hidden],.dashboard-page .site-footer[hidden],.dashboard-page .nav-drawer[hidden],.dashboard-page .nav-overlay[hidden]{display:none!important}.dashboard-page .site-header{background-color:var(--color-charcoal);box-shadow:0 2px 16px #0000004d}.auth-gate[hidden]{display:none!important}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px var(--space-lg) var(--space-3xl);background-color:var(--color-light-gray)}.auth-card{width:100%;max-width:440px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3xl) var(--space-2xl);text-align:center}.auth-card__logo{display:block;width:80px;height:auto;margin:0 auto var(--space-lg)}.auth-card__title{font-family:var(--font-heading);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--color-charcoal);margin-bottom:var(--space-xs)}.auth-card__subtitle{font-family:var(--font-body);font-size:var(--fs-small);color:var(--color-text-light);margin-bottom:var(--space-2xl)}.auth-form{text-align:left}.auth-form .form-group{margin-bottom:var(--space-md)}.auth-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.auth-card__btn{width:100%;margin-top:var(--space-md)}.auth-card__divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0;color:var(--color-text-light);font-size:var(--fs-small)}.auth-card__divider:before,.auth-card__divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.auth-card__link{display:block;margin:var(--space-md) auto 0;background:none;border:0;padding:var(--space-xs);color:var(--color-text-light);font:inherit;font-size:var(--fs-small);text-decoration:underline;cursor:pointer}.auth-card__note{color:var(--color-text-light);font-size:var(--fs-small);margin-bottom:var(--space-md)}.auth-error{background:#fef2f2;color:#c0392b;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--fs-small);margin-top:var(--space-sm);border:1px solid #fecaca}.dashboard{display:flex;min-height:100vh;padding-top:0}.dashboard__sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--color-charcoal);overflow-y:auto;z-index:100;transition:transform var(--transition-base);display:flex;flex-direction:column}.dashboard__main{flex:1;margin-left:260px;min-width:0;display:flex;flex-direction:column}.dashboard__topbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--color-white);border-bottom:1px solid #e5e5e5;position:sticky;top:0;z-index:50}.dashboard__sidebar-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--color-text);padding:var(--space-xs)}.dashboard__page-title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal);flex:1}.dashboard__user-info{display:flex;align-items:center;gap:var(--space-md)}.dashboard__user-name{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text-light)}.dashboard__content{padding:var(--space-xl);flex:1}.btn--small{padding:.4rem 1rem;font-size:var(--fs-caption)}.sidebar__header{padding:var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);text-align:center}.sidebar__logo{width:64px;height:64px;object-fit:contain;margin:0 auto var(--space-sm);display:block}.sidebar__title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--color-gold);text-transform:uppercase;letter-spacing:.08em}.sidebar__section{padding:var(--space-md) 0;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar__section-label{display:block;padding:var(--space-xs) var(--space-lg);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);color:#fff6;text-transform:uppercase;letter-spacing:.1em}.sidebar__link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:#ffffffb3;text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast);cursor:pointer;border:none;background:none;width:100%;text-align:left}.sidebar__link:hover{color:var(--color-white);background:#ffffff14}.sidebar__link--active{color:var(--color-gold);background:#a899681f;border-right:3px solid var(--color-gold)}.sidebar__link svg{width:18px;height:18px;flex-shrink:0}.sidebar__footer{margin-top:auto;padding:var(--space-lg);border-top:1px solid rgba(255,255,255,.1)}.sidebar__sign-out{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:#ffffffb3;font-size:var(--fs-caption);font-family:var(--font-heading);cursor:pointer;transition:all var(--transition-fast)}.sidebar__sign-out:hover{color:var(--color-white);border-color:#fff6;background:#ffffff0d}.sidebar__sign-out svg{width:16px;height:16px;flex-shrink:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.stats-card{background:var(--color-white);border-radius:var(--radius-md);padding:var(--space-xl);box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:var(--space-md);transition:box-shadow var(--transition-fast)}.stats-card:hover{box-shadow:var(--shadow-md)}.stats-card--clickable{cursor:pointer;border:2px solid transparent;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.stats-card--clickable:hover{border-color:var(--color-gold-light)}.stats-card--active{border-color:var(--color-gold);box-shadow:var(--shadow-md)}.stats-card--active .stats-card__value{color:var(--color-gold-dark)}.stats-card__icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#a899681f;color:var(--color-gold-dark)}.stats-card__icon svg{width:24px;height:24px}.stats-card__info{flex:1;min-width:0}.stats-card__value{display:block;font-family:var(--font-heading);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--fw-bold);line-height:1;color:var(--color-charcoal);margin-bottom:var(--space-xs)}.stats-card__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.data-table-wrapper{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.data-table__toolbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid #eee;flex-wrap:wrap}.data-table__search{flex:1;min-width:200px;padding:.5rem .75rem;font-family:var(--font-body);font-size:var(--fs-small);border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-light-gray)}.data-table__search:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #a8996833}.data-table__actions{display:flex;gap:var(--space-sm)}.data-table__scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--fs-small)}.data-table th{padding:var(--space-sm) var(--space-md);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;white-space:nowrap;border-bottom:2px solid #e0e0e0;-webkit-user-select:none;user-select:none}.data-table__th--sortable{cursor:pointer}.data-table__th--sortable:hover{color:var(--color-gold-dark)}.data-table__th--sortable:after{content:" ↕";font-size:.7em;opacity:.5}.data-table__th--asc:after{content:" ↑";opacity:1;color:var(--color-gold-dark)}.data-table__th--desc:after{content:" ↓";opacity:1;color:var(--color-gold-dark)}.data-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #f0f0f0;vertical-align:middle;color:var(--color-text)}.data-table tbody tr:hover{background:#a899680a}.data-table__row--clickable{cursor:pointer}.data-table__row--clickable:hover{background:#a8996814!important}.data-table__empty{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--color-text-light);font-style:italic}.data-table__pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-top:1px solid #eee;font-size:var(--fs-small);color:var(--color-text-light)}.data-table__page-btns{display:flex;gap:var(--space-xs)}.data-table__page-btn{padding:.3rem .7rem;border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-white);font-family:var(--font-heading);font-size:var(--fs-caption);cursor:pointer;transition:all var(--transition-fast)}.data-table__page-btn:hover{border-color:var(--color-gold);color:var(--color-gold-dark)}.data-table__page-btn--active{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-white)}.data-table__page-btn:disabled{opacity:.4;cursor:not-allowed}.form-section{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-2xl);margin-bottom:var(--space-xl);border:1px solid #e8e8e4}.form-section__title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal);margin-bottom:var(--space-xs);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-gold);display:flex;align-items:center;gap:var(--space-sm)}.form-section__title svg{width:22px;height:22px;color:var(--color-gold);flex-shrink:0}.form-section__desc{color:var(--color-text-light);font-size:var(--fs-small);line-height:var(--lh-normal);margin-bottom:var(--space-xl)}.form-section__title+.form-group,.form-section__title+.form-row,.form-section__title+.form-row--3,.form-section__title+.form-row--4{margin-top:var(--space-xl)}.form-section__desc+.form-group,.form-section__desc+.form-row,.form-section__desc+.form-row--3,.form-section__desc+.form-row--4{margin-top:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.form-row--3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-lg)}.form-row--4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--space-lg)}.dashboard .form-input,.dashboard .form-select,.dashboard .form-textarea{padding:.85rem 1rem;border-radius:var(--radius-md);border-color:#ddd;font-size:var(--fs-small);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.dashboard .form-input:hover,.dashboard .form-select:hover,.dashboard .form-textarea:hover{border-color:#bbb}.dashboard .form-input:focus,.dashboard .form-select:focus,.dashboard .form-textarea:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #a8996826;background-color:var(--color-white)}.dashboard .form-input:disabled,.dashboard .form-select:disabled{background-color:var(--color-light-gray);color:var(--color-text-light);border-color:#e8e8e4;cursor:not-allowed;opacity:.8}.dashboard .form-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);margin-bottom:var(--space-xs)}.dashboard .form-group{margin-bottom:var(--space-md)}.dashboard .form-section>.btn,.dashboard .form-section form>.btn{margin-top:var(--space-lg);min-width:200px}.repeater__rows{display:flex;flex-direction:column;gap:var(--space-md)}.repeater__row{display:grid;grid-template-columns:1fr 1fr 90px 110px auto;gap:var(--space-md);align-items:end;padding:var(--space-lg);background:var(--color-light-gray);border-radius:var(--radius-md);border:1px solid #e8e8e4;position:relative}.repeater__row .form-group{margin-bottom:0}.repeater__remove{width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:1px solid #e0d0d0;color:#c0392b;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;transition:all var(--transition-fast);align-self:end;margin-bottom:2px}.repeater__remove:hover{background:#c0392b;color:var(--color-white);border-color:#c0392b}.repeater__remove:disabled{opacity:.3;cursor:not-allowed}.repeater__add{margin-top:var(--space-md)}.mini-form-block{background:var(--color-light-gray);border-radius:var(--radius-md);padding:var(--space-lg);border:1px solid #e8e8e4}.mini-form-block__title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--color-charcoal);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.04em}.mini-form-block__row{display:flex;gap:var(--space-sm)}.mini-form-block__row .form-input{flex:1}.mini-form-block__list{margin-top:var(--space-md)}.mini-form-block__item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #e0e0e0;font-size:var(--fs-small);color:var(--color-text)}.mini-form-block__item:last-child{border-bottom:none}.mini-form-block__empty{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic;display:block;padding:var(--space-xs) 0}.badge--pending{background:#fef3cd;color:#856404}.badge--approved{background:#d4edda;color:#155724}.badge--denied{background:#f8d7da;color:#721c24}.badge--checked-in{background:#d1ecf1;color:#0c5460}.toast-container{position:fixed;top:100px;right:var(--space-lg);z-index:1300;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-charcoal);color:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);animation:toastSlideIn var(--transition-base) ease;max-width:400px}.toast--success{background:#155724}.toast--error{background:#721c24}.toast--warning{background:#856404}.toast__close{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.7;margin-left:auto;padding:0 var(--space-xs)}.toast__close:hover{opacity:1}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.modal-overlay.is-open{opacity:1;visibility:visible}.modal-container{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:720px;max-height:85vh;overflow-y:auto;transform:translateY(20px);transition:transform var(--transition-base)}.modal-overlay.is-open .modal-container{transform:translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid #e5e5e5}.modal-title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-light);cursor:pointer;padding:var(--space-xs);line-height:1}.modal-close:hover{color:var(--color-text)}.modal-body{padding:var(--space-xl)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid #e5e5e5}.app-modal{display:flex;flex-direction:column;gap:var(--space-lg)}.app-modal__section{padding-bottom:var(--space-lg);border-bottom:1px solid #eee}.app-modal__section:last-child{border-bottom:none;padding-bottom:0}.app-modal__section-title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-gold-dark);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.app-modal__badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-gold);color:var(--color-white);font-size:var(--fs-caption);font-weight:var(--fw-bold);width:22px;height:22px;border-radius:50%;line-height:1}.app-modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-xl)}.app-modal__field{display:flex;flex-direction:column;gap:2px}.app-modal__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light)}.app-modal__value{font-size:var(--fs-small);color:var(--color-text);line-height:var(--lh-normal)}.app-modal__table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.app-modal__table th{padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;border-bottom:2px solid #e0e0e0}.app-modal__table td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #f0f0f0;color:var(--color-text)}.app-modal__table tbody tr:hover{background:#a899680a}.app-modal__empty{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic;margin:0}.app-modal .form-row{margin-bottom:0}.app-modal .form-group{margin-bottom:var(--space-md)}@media(max-width:480px){.app-modal__grid{grid-template-columns:1fr}}.checkin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.checkin-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-xl);border-left:4px solid #d1d1d1;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.checkin-card:hover{box-shadow:var(--shadow-md)}.checkin-card--checked-in{border-left-color:#28a745;background:#f8fdf9}.checkin-card--not-checked-in{border-left-color:#ffc107}.checkin-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.checkin-card__name{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--color-charcoal)}.checkin-card__kid-count{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--color-text-light);background:var(--color-light-gray);padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.checkin-card__detail{font-size:var(--fs-small);color:var(--color-text-light);margin-bottom:var(--space-xs)}.checkin-card__children{margin:var(--space-md) 0 0;padding-top:var(--space-sm);border-top:1px solid #e8e8e4}.checkin-card__children-label{display:block;font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);margin-bottom:var(--space-xs)}.checkin-card__child-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.checkin-card__child{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:4px 8px;background:var(--color-light-gray);border-radius:var(--radius-sm);font-size:var(--fs-small)}.checkin-card__child-name{font-weight:var(--fw-medium);color:var(--color-text)}.checkin-card__child-meta{font-size:var(--fs-caption);color:var(--color-text-light);white-space:nowrap}.checkin-card__no-children{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic}.checkin-card__time{font-size:var(--fs-caption);color:var(--color-text-light);margin-left:var(--space-sm)}.checkin-card__actions{display:flex;align-items:center;margin-top:var(--space-md)}.checkin-group{margin-bottom:var(--space-2xl)}.checkin-group__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-gold)}.checkin-group__title{display:flex;flex-direction:column;gap:2px}.checkin-group__location{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal)}.checkin-group__datetime{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text-light)}.checkin-group__meta{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.checkin-group__count{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--color-text)}.checkin-group__progress{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);background:var(--color-light-gray);padding:3px 10px;border-radius:10px}@media(max-width:768px){.checkin-group__header{flex-direction:column;align-items:flex-start}.checkin-group__meta{flex-wrap:wrap}}.bar-chart{display:flex;flex-direction:column;gap:var(--space-sm)}.bar-chart__row{display:flex;align-items:center;gap:var(--space-md)}.bar-chart__label{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text);min-width:120px;text-align:right}.bar-chart__bar-wrapper{flex:1;height:28px;background:var(--color-light-gray);border-radius:var(--radius-sm);overflow:hidden}.bar-chart__bar{height:100%;background:var(--color-gold);border-radius:var(--radius-sm);transition:width var(--transition-slow);min-width:2px}.bar-chart__value{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--color-text);min-width:40px}.stats-dashboard{display:flex;flex-direction:column;gap:var(--space-2xl)}.stats-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-md)}.stats-kpi-link{text-decoration:none;color:inherit}.stats-kpi{background:var(--color-white);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-md);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.stats-kpi-link:hover .stats-kpi,.stats-kpi:hover{box-shadow:var(--shadow-md)}.stats-kpi-link:hover .stats-kpi{transform:translateY(-2px)}.stats-kpi__icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#a899681f;color:var(--color-gold-dark)}.stats-kpi__value{display:block;font-family:var(--font-heading);font-size:1.75rem;font-weight:var(--fw-bold);line-height:1;color:var(--color-charcoal)}.stats-kpi__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.stats-charts-row{display:grid;grid-template-columns:300px 1fr;gap:var(--space-xl)}.stats-chart-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.stats-chart-card--wide{min-height:220px}.stats-chart-card__title{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--color-charcoal);padding:var(--space-md) var(--space-lg);border-bottom:1px solid #eee;margin:0}.stats-chart-card__body{padding:var(--space-lg);position:relative}.stats-chart-card__body--centered{display:flex;align-items:center;justify-content:center}.stats-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.stats-table th{text-align:left;font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);padding:var(--space-sm) var(--space-md);border-bottom:2px solid #eee}.stats-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #f0f0f0}.stats-table tr:last-child td{border-bottom:none}@media(max-width:768px){.stats-charts-row{grid-template-columns:1fr}.stats-chart-card--wide{min-height:200px}.stats-kpi-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.stats-kpi-row{grid-template-columns:1fr}}.dashboard__sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}@media(max-width:1024px){.dashboard__sidebar.is-open~.dashboard__sidebar-overlay{display:block}}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--color-text-light);font-family:var(--font-heading);font-size:var(--fs-small);gap:var(--space-sm)}.loading-spinner:before{content:"";width:24px;height:24px;border:3px solid var(--color-light-gray);border-top-color:var(--color-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--color-text-light)}.empty-state__icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.3}.empty-state__text{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-medium)}.action-btn{padding:.25rem .5rem;border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-white);font-family:var(--font-heading);font-size:var(--fs-caption);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.action-btn:hover{border-color:var(--color-gold);color:var(--color-gold-dark)}.action-btn--approve{border-color:#28a745;color:#28a745}.action-btn--approve:hover{background:#28a745;color:var(--color-white)}.action-btn--deny{border-color:#dc3545;color:#dc3545}.action-btn--deny:hover{background:#dc3545;color:var(--color-white)}.action-btn--danger{border-color:#dc3545;color:#dc3545}.action-btn--danger:hover{background:#dc3545;color:var(--color-white)}.action-btn--send{border-color:var(--color-gold);color:var(--color-gold-dark)}.action-btn--send:hover{background:var(--color-gold);color:var(--color-white)}.filter-bar{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.filter-bar .form-select{width:auto;min-width:180px;padding:.5rem 2.5rem .5rem .75rem;font-size:var(--fs-small)}.filter-bar .form-input{width:auto;min-width:200px;padding:.5rem .75rem;font-size:var(--fs-small)}.csv-preview__scroll{overflow-x:auto;margin-top:var(--space-sm)}.csv-preview{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--fs-caption)}.csv-preview th{padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;white-space:nowrap;border-bottom:2px solid #e0e0e0}.csv-preview td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #f0f0f0;color:var(--color-text);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-preview tbody tr:hover{background:#a899680a}@media(max-width:1024px){.dashboard__sidebar{transform:translate(-100%)}.dashboard__sidebar.is-open{transform:translate(0);box-shadow:var(--shadow-xl)}.dashboard__main{margin-left:0}.dashboard__sidebar-toggle{display:block}.form-section{padding:var(--space-xl)}}@media(max-width:768px){.dashboard__content{padding:var(--space-md)}.dashboard__topbar{padding:var(--space-sm) var(--space-md)}.dashboard__page-title{font-size:var(--fs-body)}.stats-grid{grid-template-columns:1fr 1fr}.form-row,.form-row--3,.form-row--4{grid-template-columns:1fr;gap:0}.form-section{padding:var(--space-lg)}.repeater__row{grid-template-columns:1fr 1fr;gap:var(--space-sm);padding:var(--space-md)}.repeater__row .form-group:nth-child(3),.repeater__row .form-group:nth-child(4){grid-column:auto}.repeater__remove{grid-column:1 / -1;justify-self:end;width:100%;border-radius:var(--radius-sm);height:auto;padding:var(--space-xs) var(--space-sm);font-size:var(--fs-caption)}.data-table__toolbar{flex-direction:column;align-items:stretch}.data-table__search{min-width:0}.data-table__scroll{font-size:var(--fs-caption)}.checkin-grid{grid-template-columns:1fr}.auth-gate{padding:var(--space-xl) var(--space-md) var(--space-2xl)}.auth-card{padding:var(--space-2xl) var(--space-lg)}.auth-form__row{grid-template-columns:1fr}.modal-container{max-width:100%;margin:var(--space-md);max-height:90vh}.dashboard__user-name{display:none}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .form-select,.filter-bar .form-input{width:100%;min-width:0}.dashboard .form-section>.btn,.dashboard .form-section form>.btn{width:100%;justify-content:center}.stats-card{padding:var(--space-lg)}.stats-card__icon{width:40px;height:40px}.stats-card__icon svg{width:20px;height:20px}.bar-chart__label{min-width:80px;font-size:var(--fs-caption)}.bar-chart__row{flex-wrap:wrap}.checkin-card{padding:var(--space-lg)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr;gap:var(--space-md)}.data-table__pagination{flex-direction:column;gap:var(--space-sm);text-align:center}.repeater__row{grid-template-columns:1fr}.form-section__title{font-size:var(--fs-body)}.sidebar__header{padding:var(--space-lg) var(--space-md)}.sidebar__link{padding:var(--space-sm) var(--space-md);font-size:var(--fs-caption)}}@media print{.site-header,.site-footer,.dashboard__sidebar,.dashboard__topbar,.toast-container,.modal-overlay,.data-table__toolbar,.data-table__pagination,.action-btn,.btn{display:none!important}.dashboard__main{margin-left:0}.dashboard{padding-top:0}.data-table-wrapper{box-shadow:none;border:1px solid #ccc}.data-table th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.stats-card{box-shadow:none;border:1px solid #ddd}}.checkin-search{margin-bottom:var(--space-md)}.checkin-search .checkin-search__input{width:100%;font-size:1rem;padding:.75rem 1rem .75rem 2.6rem!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat .85rem center}.checkin-search__count{margin:0 0 var(--space-md);font-size:var(--fs-small);color:var(--color-text-light)}.checkin-card mark{background:#f3e7b3;color:inherit;padding:0 1px;border-radius:2px}.dashboard .season-switcher__select{width:auto;min-width:0;height:auto;padding:.45rem 2.5rem .45rem .85rem!important;background-position:right .75rem center;font-family:var(--font-heading);font-size:var(--fs-small);font-weight:600;line-height:1.3}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.season-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin:var(--space-md) var(--space-xl) 0;padding:var(--space-sm) var(--space-md);background:#fbf6e4;border:1px solid #E8D9A8;border-left:4px solid var(--color-gold);border-radius:var(--radius-sm);font-size:var(--fs-small);color:var(--color-text)}.season-banner[hidden]{display:none}.season-archived #view-container [data-action]:not([data-action=view]):not([data-action=send-setup]),.season-archived .season-writable,.season-archived #view-container input[data-field=approved]{display:none!important}.season-archived #view-container select[data-field],.season-archived #view-container input[data-field]:not([data-field=approved]){pointer-events:none;opacity:.75}.setup-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.setup-toolbar__summary{font-size:var(--fs-body);color:var(--color-text)}.setup-toolbar__todo{color:#9a6b00;font-weight:600}.setup-toolbar__done{color:#2e7d4f;font-weight:600}.setup-toolbar__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.setup-filter{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.setup-filter__btn{padding:.4rem .9rem;border:1px solid #DDD8C8;border-radius:999px;background:#fff;font:inherit;font-size:var(--fs-small);color:var(--color-text);cursor:pointer}.setup-filter__btn.is-active{background:var(--color-black);border-color:var(--color-black);color:#fff}.setup-filter__link{margin-left:auto;font-size:var(--fs-small);color:var(--color-gold-dark)}.schedule-table__wrap{overflow-x:auto;background:#fff;border:1px solid #ECE9DF;border-radius:var(--radius-md, 8px)}.schedule-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.schedule-table th{text-align:left;padding:.75rem 1rem;background:#f8f7f2;font-family:var(--font-heading);font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-light);white-space:nowrap}.schedule-table td{padding:.75rem 1rem;border-top:1px solid #F0EEE6;vertical-align:middle}.schedule-table .num{text-align:right;font-variant-numeric:tabular-nums}.schedule-table tr.needs-date{background:#fffcf2}.schedule-table__school{font-family:var(--font-heading);font-weight:600;color:var(--color-black)}.schedule-table__counselors{margin-top:2px;color:var(--color-text-light);font-size:var(--fs-caption)}.schedule-table .form-select,.schedule-table .form-input{min-width:140px;padding:.45rem .6rem;font-size:var(--fs-small)}.schedule-table .form-select{padding-right:2rem}.schedule-table__status{white-space:nowrap}.pill{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:#f1efe7;font-size:var(--fs-caption);font-weight:600;color:var(--color-text)}.pill--ok{background:#e3f2e8;color:#2e7d4f}.pill--todo{background:#fcf0d2;color:#8a5d00}.setup-extras{margin-top:var(--space-xl);font-size:var(--fs-small)}.setup-extras>div{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.setup-extras__label{font-family:var(--font-heading);font-weight:600;margin-right:var(--space-xs)}.setup-extras__add{display:inline-flex;gap:var(--space-xs);margin-left:var(--space-sm)}.setup-extras__add .form-input{width:160px;padding:.35rem .6rem;font-size:var(--fs-small)}.counselor-picker{position:relative}.counselor-picker__options{position:absolute;z-index:20;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;background:#fff;border:1px solid #DDD8C8;border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;max-height:320px;overflow-y:auto}.counselor-picker__option{display:flex;justify-content:space-between;gap:var(--space-md);padding:.6rem .75rem;border-radius:4px;cursor:pointer}.counselor-picker__option.is-active,.counselor-picker__option:hover{background:#f5f1e3}.counselor-picker__name{font-weight:600}.counselor-picker__school{color:var(--color-text-light);font-size:var(--fs-small);text-align:right}.counselor-picker__empty{padding:.75rem;color:var(--color-text-light);font-size:var(--fs-small)}.counselor-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-sm) var(--space-lg);margin-top:var(--space-md);padding:var(--space-md);background:#f8f7f2;border:1px solid #ECE9DF;border-radius:var(--radius-sm);font-size:var(--fs-small)}.counselor-summary__label{display:block;font-family:var(--font-heading);font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-light)}.counselor-summary__pending{color:#8a5d00}.duplicate-warning{margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);background:#fff8e6;border:1px solid #F0DCA5;border-radius:var(--radius-sm);font-size:var(--fs-small)}.duplicate-warning ul{margin:6px 0;padding-left:1.2rem}.duplicate-warning[hidden]{display:none}.activity-filters{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-sm)}.activity-filters #activity-search{flex:1 1 260px}.activity-filters .form-select{width:auto}.activity-filters__date{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-small);color:var(--color-text-light)}.activity-filters__date .form-input{width:auto;padding:.45rem .6rem;font-size:var(--fs-small)}.activity-note{margin:0 0 var(--space-md);font-size:var(--fs-small);color:var(--color-text-light)}.activity-table td{vertical-align:top}.activity-table__when{white-space:nowrap}.activity-table__sub{color:var(--color-text-light);font-size:var(--fs-caption)}.activity-changes{margin:6px 0 0;padding:0;list-style:none;font-size:var(--fs-caption);color:var(--color-text)}.activity-changes li{padding:2px 0}.activity-changes__field{display:inline-block;min-width:110px;color:var(--color-text-light)}.activity-record summary{margin-top:4px;cursor:pointer;font-size:var(--fs-caption);color:var(--color-gold-dark)}.activity-pill--insert{background:#e3f2e8;color:#2e7d4f}.activity-pill--delete{background:#fbe4e1;color:#a3352a}.activity-pill--update{background:#fcf0d2;color:#8a5d00}.activity-pill--email_sent{background:#e4ecf7;color:#2f5c8f}.activity-more{margin-top:var(--space-md);text-align:center}.pill{white-space:nowrap}.user-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.home-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-sm);margin-bottom:var(--space-xl)}.home-kpi{background:#fff;border:1px solid #ECE9DF;border-radius:8px;padding:var(--space-md)}.home-kpi__value{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--color-black);font-variant-numeric:tabular-nums;line-height:1.1}.home-kpi__label{margin-top:4px;font-size:var(--fs-caption);color:var(--color-text-light)}.home-kpi--warn .home-kpi__value{color:#9a6b00}.home-kpi--bad .home-kpi__value{color:#a3352a}.checklist{background:#fff;border:1px solid #ECE9DF;border-radius:10px;padding:var(--space-lg)}.checklist__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.checklist__head h3{margin:0;font-size:1.15rem}.checklist__note{font-size:var(--fs-small);color:var(--color-text-light)}.checklist__steps{list-style:none;margin:0;padding:0}.checklist__step{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-top:1px solid #F0EEE6}.checklist__mark{flex:0 0 32px;height:32px;border-radius:50%;display:grid;place-items:center;border:2px solid #D6D2C4;font-family:var(--font-heading);font-weight:700;font-size:.85rem;color:var(--color-text-light)}.checklist__step.is-done .checklist__mark{background:#2e7d4f;border-color:#2e7d4f;color:#fff}.checklist__body{flex:1;min-width:0}.checklist__title{font-family:var(--font-heading);font-weight:600;color:var(--color-black)}.checklist__step.is-done .checklist__title{color:var(--color-text-light)}.checklist__detail{font-size:var(--fs-small);color:var(--color-text-light)}.review-tabs{display:flex;gap:4px;align-items:center;border-bottom:1px solid #E6E3D8;margin-bottom:var(--space-md);flex-wrap:wrap}.review-tab{background:none;border:0;border-bottom:3px solid transparent;padding:.6rem .9rem;font:600 var(--fs-small) var(--font-heading);color:var(--color-text-light);cursor:pointer}.review-tab span{margin-left:4px;padding:1px 7px;border-radius:999px;background:#f1efe7;font-size:var(--fs-caption)}.review-tab.is-active{color:var(--color-black);border-bottom-color:var(--color-gold)}.review-new{margin-left:auto;margin-bottom:6px}.review-bulk{position:sticky;top:0;z-index:5;display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:var(--color-black);color:#fff;border-radius:8px}.review-bulk .btn--outline{background:transparent;color:#fff;border-color:#666}.review-bulk[hidden]{display:none}.review-row{cursor:pointer}.review-row:hover td{background:#fbfaf6}.pill--bad{background:#fbe4e1;color:#a3352a}.app-history ul{margin:0;padding:0;list-style:none;font-size:var(--fs-small);max-height:260px;overflow-y:auto}.app-history li{padding:6px 0;border-top:1px solid #F0EEE6}.app-history__when{display:block;font-size:var(--fs-caption);color:var(--color-text-light)}body.event-mode .dashboard__sidebar,body.event-mode .dashboard__topbar,body.event-mode .season-banner{display:none!important}body.event-mode .dashboard__main{margin-left:0!important;width:100%}body.event-mode .dashboard__content{padding:0}.ev{min-height:100vh;background:#f5f4f0}.ev-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:10px var(--space-md);background:var(--color-black);color:#fff}.ev-bar__title{font:700 1rem var(--font-heading);letter-spacing:.04em;display:flex;align-items:center;gap:8px;margin-right:var(--space-sm)}.ev-live{width:10px;height:10px;border-radius:50%;background:#777}.ev-live.is-live{background:#3fbf6f;box-shadow:0 0 0 3px #3fbf6f40}.dashboard .ev-select{width:auto;min-width:0;padding:.4rem 2.2rem .4rem .7rem!important;font-size:var(--fs-small);background-color:#fff}.ev-bar__actions{margin-left:auto;display:flex;gap:var(--space-sm)}.ev-bar .btn--outline{background:transparent;color:#fff;border-color:#777}.ev-phoneqr{display:grid;grid-template-columns:240px 1fr;gap:var(--space-lg);align-items:center}.ev-phoneqr__code svg{display:block;width:240px;height:240px;border:1px solid #ECE9DF;border-radius:8px}.ev-phoneqr__steps{margin:0;padding-left:1.2rem;display:grid;gap:8px;line-height:1.5}.ev-phoneqr__url{grid-column:1 / -1;margin:0;font-size:var(--fs-small);color:var(--color-text-light);word-break:break-all}@media(max-width:640px){.ev-phoneqr{grid-template-columns:1fr;justify-items:center}.ev-phones{display:none}}.ev-scan{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-black)}.ev-counts{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-sm);padding:var(--space-md)}.ev-count{background:#fff;border:1px solid #ECE9DF;border-radius:8px;padding:10px 12px}.ev-count__n{font:700 1.6rem/1.1 var(--font-heading);font-variant-numeric:tabular-nums;color:var(--color-black)}.ev-count__l{font-size:var(--fs-caption);color:var(--color-text-light)}.ev-count--ok .ev-count__n{color:#2e7d4f}.ev-count--bad .ev-count__n{color:#a3352a}.ev-views{display:flex;gap:4px;padding:0 var(--space-md);border-bottom:1px solid #E6E3D8}.ev-views button{background:none;border:0;border-bottom:3px solid transparent;padding:.6rem .9rem;font:600 var(--fs-small) var(--font-heading);color:var(--color-text-light);cursor:pointer}.ev-views button.is-active{color:var(--color-black);border-bottom-color:var(--color-gold)}#ev-body{padding:var(--space-md);max-width:1100px;margin:0 auto}.ev-search .form-input{width:100%;font-size:1.25rem;padding:.9rem 1.1rem;margin-bottom:var(--space-sm)}.ev-list{display:flex;flex-direction:column;gap:8px}.ev-card{display:flex;align-items:center;gap:var(--space-md);padding:12px 16px;background:#fff;border:1px solid #ECE9DF;border-left:0;border-radius:8px}.ev-card.is-active{outline:3px solid var(--color-gold);outline-offset:-1px}.ev-card.is-in{background:#f2f8f4}.ev-card__main{flex:1;min-width:0}.ev-card__name{font:700 1.05rem var(--font-heading);color:var(--color-black);display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ev-card__kids{font-size:var(--fs-small);margin-top:2px}.ev-card__meta{font-size:var(--fs-caption);color:var(--color-text-light);margin-top:2px}.ev-card__action{display:flex;align-items:center;gap:var(--space-sm)}.ev-card__time{color:#2e7d4f;font:700 var(--fs-small) var(--font-heading);white-space:nowrap}.ev-checkin{min-width:120px;min-height:48px;font-size:1rem}.ev-warn{color:#a3352a}.ev-ok{color:#2e7d4f;font:700 1.1rem var(--font-heading)}.ev-slot{background:#fff;border:1px solid #ECE9DF;border-radius:8px;padding:var(--space-md);margin-bottom:var(--space-sm)}.ev-slot__head{display:flex;justify-content:space-between;gap:var(--space-md);align-items:center;flex-wrap:wrap}.ev-slot__nums{font-size:var(--fs-small);min-width:200px}.ev-progress{height:8px;background:#eeece4;border-radius:99px;overflow:hidden;margin-top:4px}.ev-progress span{display:block;height:100%;background:#2e7d4f}.ev-slot__label{margin-top:var(--space-sm);font:600 var(--fs-caption) var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light)}.ev-slot__missing ul{list-style:none;margin:6px 0 0;padding:0;font-size:var(--fs-small)}.ev-slot__missing li{display:flex;justify-content:space-between;gap:var(--space-md);padding:6px 0;border-top:1px solid #F0EEE6}.ev-slot__missing a{color:var(--color-gold-dark);white-space:nowrap}.ev-scanner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#111;color:#fff;display:flex;flex-direction:column}.ev-scanner__top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px}.ev-scanner__top .btn--outline{background:transparent;color:#fff;border-color:#777}.ev-scanner__view{position:relative;flex:1;overflow:hidden}.ev-scanner__view video{width:100%;height:100%;object-fit:cover}.ev-scanner__frame{position:absolute;inset:50% auto auto 50%;width:min(64vw,280px);aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid var(--color-gold);border-radius:14px;box-shadow:0 0 0 100vmax #00000059}.ev-scanner__result{padding:14px 16px 22px;background:#fff;color:var(--color-text);max-height:50vh;overflow-y:auto}.ev-scanner__result .btn{margin-top:10px;width:100%}@media(max-width:760px){.ev-counts{grid-template-columns:repeat(3,1fr);padding:var(--space-sm)}.ev-count__n{font-size:1.3rem}.ev-bar__title{width:100%}.dashboard .ev-bar .ev-select{flex:1 1 0}.ev-bar__actions{margin-left:0;width:100%}.ev-bar__actions .btn{flex:1}.ev-scan{flex:2!important;min-height:44px;font-size:1rem}.ev-card{flex-direction:column;align-items:stretch}.ev-card__action .ev-checkin{width:100%}.ev-search .form-input{font-size:1rem}}.report-head{display:flex;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;align-items:flex-start;margin-bottom:var(--space-md)}.report-title{margin:0}.report-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.report-card{background:#fff;border:1px solid #ECE9DF;border-radius:10px;padding:var(--space-md);break-inside:avoid}.report-card--wide{grid-column:1 / -1}.report-card h4{margin:0 0 var(--space-sm);font-size:.95rem}.report-chart{position:relative;height:240px}.report-chart--tall{height:380px}@media(max-width:900px){.report-grid{grid-template-columns:1fr}}@media print{.dashboard__sidebar,.dashboard__topbar,.season-banner,.no-print,.toast-container,#toast-container{display:none!important}.dashboard__main{margin:0!important}.dashboard__content{padding:0!important}body{background:#fff!important}.report-chart{height:220px}.report-chart--tall{height:300px}}.home-guide{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;padding:var(--space-md);margin-bottom:var(--space-lg);background:#fbf6e4;border:1px solid #E8D9A8;border-radius:10px;font-size:var(--fs-small)}.guide{font-size:var(--fs-small);line-height:1.65}.guide-toc{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid #EEECE4}.guide-toc a{padding:3px 10px;border-radius:999px;background:#f1efe7;color:var(--color-text);text-decoration:none;font-size:var(--fs-caption)}.guide-sec{padding-top:var(--space-sm);scroll-margin-top:8px}.guide-sec h4{margin:var(--space-sm) 0 6px;font-size:1rem;color:var(--color-black)}.guide-sec ul,.guide-sec ol{margin:0 0 var(--space-sm);padding-left:1.2rem}.guide-sec li{margin-bottom:4px}.guide kbd{padding:1px 6px;border:1px solid #CFCAB9;border-bottom-width:2px;border-radius:4px;background:#fff;font-size:.8em}.activity-pill--sign_in_failed,.activity-pill--sign_in_blocked{background:#fbe4e1;color:#a3352a}.activity-pill--sign_in{background:#e3f2e8;color:#2e7d4f}.review-bulk.is-empty{background:#f1efe7;color:var(--color-text-light)}.review-bulk.is-empty .btn{opacity:.45;pointer-events:none}.review-bulk.is-empty .btn--outline{color:var(--color-text);border-color:#cfcab9}.app-modal__status{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-right:auto}.app-modal__status-label{font-size:var(--fs-small);color:var(--color-text-light)}.modal-container{display:flex;flex-direction:column;overflow:hidden}.modal-header,.modal-footer{flex-shrink:0}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}.modal-footer{flex-wrap:wrap;background:var(--color-white)}@media(max-width:600px){.app-modal__status{width:100%;margin-right:0}}@media(max-width:768px){body.dashboard-page input:not([type=checkbox]):not([type=radio]),body.dashboard-page select,body.dashboard-page textarea{font-size:16px!important}}@media(pointer:coarse){body.dashboard-page .btn--small{min-height:40px}body.dashboard-page .data-table__pagination button,body.dashboard-page .repeater__remove{min-width:40px;min-height:40px}body.dashboard-page .action-btn{min-height:40px}}@media(max-width:640px){.dashboard__topbar{gap:var(--space-sm);padding:8px var(--space-sm)}.dashboard__page-title{min-width:0;font-size:1rem;line-height:1.25}.dashboard__user-info{gap:var(--space-sm)}.dashboard__user-name,#sign-out-btn{display:none}.season-switcher__select{max-width:46vw}.activity-changes__field{min-width:0;display:block}.season-banner{margin:var(--space-sm) var(--space-sm) 0}.dashboard__content{padding:var(--space-sm)}.schedule-table__wrap,.data-table__scroll{overflow:visible;background:none;border:0}.schedule-table,.schedule-table tbody,.data-table,.data-table tbody{display:block;width:100%}.schedule-table thead,.data-table thead{display:none}.schedule-table tr,.data-table tbody tr{display:block;position:relative;margin-bottom:10px;padding:12px 14px;background:#fff;border:1px solid #ECE9DF;border-radius:10px}.schedule-table td,.data-table td{display:block;position:relative;padding:5px 0!important;border:0!important;text-align:left!important;white-space:normal;min-width:0;overflow-wrap:anywhere}.schedule-table td[data-label],.data-table td[data-label]{padding-left:36%!important;min-height:1.6em}.schedule-table td:empty,.data-table td:empty{display:none}.schedule-table td[data-label]:before,.data-table td[data-label]:before{content:attr(data-label);position:absolute;left:0;top:7px;width:33%;font:600 .72rem/1.4 var(--font-heading);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-light)}.schedule-table td[data-primary],.data-table td[data-primary]{display:block;padding:0 2.5rem 6px 0!important;font-size:1rem}.schedule-table td[data-select]{position:absolute;top:8px;right:8px;padding:0!important}.schedule-table td[data-select] input{width:24px;height:24px}.schedule-table td[colspan],.data-table td[colspan]{display:block}.schedule-table .form-input,.schedule-table .form-select{min-width:0;width:100%}}@media(max-width:640px){.modal-overlay{padding:8px}.modal-container{max-height:calc(100dvh - 16px)}.modal-footer .btn{flex:1 1 auto}}
