:root{--teal:#0f766e;--teal-soft:#dbe7e6;--teal-deep:#0d5f58;--bg:#eef2f4;--surface:#fff;--ink:#0f172a;--muted:#475569;--muted-soft:#64748b;--border:#cbd5e1;--danger:#b91c1c;--warn:#b45309;--warn-bg:#fef3c7;--ok-bg:#dcfce7;--ok:#166534;--stripe-a:#fff;--stripe-b:#dbe7e6;--radius:4px;--font-sans:"DM Sans", system-ui, sans-serif;--font-display:"Fraunces", Georgia, serif;--shadow:0 1px 2px #0f172a0a;--max:920px}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{min-height:100vh;font-family:var(--font-sans);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 100% -20%, #0f766e14, transparent), radial-gradient(ellipse 60% 40% at 0% 100%, #0f766e0f, transparent), var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}#root{min-height:100vh}a{color:var(--teal);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}h1,h2,.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.15}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#ffffffe0;flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.topbar-menu-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);cursor:pointer;background:#fff;align-items:center;gap:.4rem;margin:0;padding:.35rem .65rem;font-size:.85rem;font-weight:700;display:none}.topbar-menu-btn:hover{border-color:var(--teal);color:var(--teal-deep)}.topbar-menu-icon{background:linear-gradient(currentColor,currentColor) 0 0/100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0/100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0 100%/100% 2px no-repeat;width:1rem;height:.7rem;display:block}.topbar-brand{font-family:var(--font-display);color:var(--teal);letter-spacing:-.01em;font-size:1.15rem;font-weight:700;text-decoration:none}.topbar-brand:hover{color:var(--teal-deep);text-decoration:none}.topbar-nav{flex-wrap:wrap;flex:1;align-items:center;gap:.35rem 1rem;display:flex}.topbar-nav a{color:var(--muted);font-size:.9rem;font-weight:600;text-decoration:none}.topbar-nav a:hover,.topbar-nav a.active,.nav-dropdown.is-active>a{color:var(--teal)}.nav-dropdown{position:relative}.nav-dropdown-menu{border:1px solid var(--border);z-index:120;background:#fff;border-radius:10px;min-width:13.5rem;margin-top:.15rem;padding:.4rem 0;display:none;position:absolute;top:100%;left:0;box-shadow:0 10px 28px #0f172a1a}.nav-dropdown:after{content:"";height:.35rem;position:absolute;top:100%;left:0;right:0}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:block}.nav-dropdown-menu a{white-space:nowrap;padding:.45rem .9rem;display:block}.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active{background:#0f766e14}.topbar-actions{align-items:center;gap:.75rem;display:flex}.topbar-user{color:var(--muted-soft);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.8rem;overflow:hidden}.page{width:100%;max-width:var(--max);flex:1;margin:0 auto;padding:1.75rem 1.5rem 3.5rem}.page-narrow{max-width:480px}.brand-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 .75rem;font-size:.75rem;font-weight:700}.brand-eyebrow a{color:inherit;text-decoration:none}.brand-eyebrow a:hover{text-decoration:underline}.student-detail-crumbs{flex-wrap:wrap;align-items:center;gap:.45rem .65rem;display:flex}.student-detail-crumb-sep{color:var(--muted-soft);letter-spacing:0;font-weight:500}.page-title{color:var(--ink);margin:0;font-size:clamp(1.75rem,4vw,2.25rem)}.page-lede{color:var(--muted);max-width:42rem;margin:.65rem 0 1.5rem;font-size:.95rem}.section-header{letter-spacing:.1em;text-transform:uppercase;color:var(--muted-soft);margin:1.75rem 0 .75rem;font-size:.75rem;font-weight:700}.field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft);margin:1rem 0 .4rem;font-size:.75rem;font-weight:700;display:block}.field-hint{color:var(--muted-soft);margin:-.15rem 0 .5rem;font-size:.85rem}.read-value{color:var(--ink);margin:0;font-size:1rem;line-height:1.5}.empty-state{color:var(--muted-soft);font-size:.95rem}.error-text{color:var(--danger);margin:.5rem 0;font-size:.9rem}.success-text{color:var(--ok);margin:.5rem 0;font-size:.9rem}.warn-text{color:var(--warn);font-size:.85rem;font-weight:600}.preview-banner{background:var(--teal);color:#ecfdf5;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;display:flex}.preview-banner button{color:#fff;cursor:pointer;border-radius:var(--radius);background:0 0;border:1px solid #ffffff73;padding:.3rem .75rem;font-weight:800}.preview-banner button:hover{background:#ffffff1f}.menu-list{flex-direction:column;display:flex}.menu-link{border-top:1px solid var(--border);color:inherit;border-radius:8px;padding:1.1rem .75rem;text-decoration:none;transition:opacity .15s;display:block}.menu-link:nth-child(odd of .menu-link){background-color:var(--stripe-a)}.menu-link:nth-child(2n of .menu-link){background-color:var(--stripe-b)}.menu-link:hover{opacity:.75;text-decoration:none}.menu-link-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.15rem;font-weight:700}.menu-link-body{color:var(--muted-soft);margin:.35rem 0 0;font-size:.9rem;line-height:1.45}.card-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.list-row{border-top:1px solid var(--border);background-color:var(--stripe-a);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.9rem .75rem;display:flex}.list-row:nth-child(2n of .list-row){background-color:var(--stripe-b)}.list-row-plain,.list-row-plain:nth-child(2n of .list-row){background-color:var(--stripe-a)}.sd-category-toggle{cursor:pointer;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:0;display:flex}.sd-subcategory-title{color:var(--ink);flex:1;margin:0;font-size:.875rem;font-weight:600}.sd-subcategory-block{border-left:3px solid var(--border);margin:0 0 .75rem .25rem;padding-left:1.25rem}button.list-row{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;border-bottom:none;border-left:none;border-right:none}.list-row-active{background:color-mix(in srgb, var(--accent,#0f766e) 12%, transparent);padding-left:.5rem;padding-right:.5rem}.list-row-title{color:var(--ink);margin:0;font-weight:700}.list-row-meta{color:var(--muted-soft);margin:.25rem 0 0;font-size:.85rem}.list-row-actions{flex-shrink:0;align-items:center;gap:.85rem;display:flex}.student-row{border-top:1px solid var(--border);background-color:var(--stripe-a);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.45rem .75rem;display:flex}.student-row:nth-child(2n of .student-row){background-color:var(--stripe-b)}.student-row.is-selected{background-color:var(--teal-soft);outline:1px solid #0f766e40}.info-list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;margin:.85rem 0 .35rem;display:flex}.info-bulk-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.info-select-all{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;display:inline-flex}.info-select-all input{width:1rem;height:1rem;accent-color:var(--teal)}.info-row-check{cursor:pointer;align-items:flex-start;padding-top:.2rem;display:flex}.info-row-check input{width:1.05rem;height:1.05rem;accent-color:var(--teal);cursor:pointer}.student-row-main{flex:1;min-width:0}.student-row-open{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0;display:block}.student-row-open:hover .student-row-name{color:var(--teal)}.student-detail-title-row{flex-wrap:wrap;align-items:center;gap:.55rem .75rem;margin-bottom:.35rem;display:flex}.student-detail-dl{grid-template-columns:minmax(7rem,10rem) 1fr;gap:.45rem 1rem;max-width:36rem;margin:0 0 1.25rem;display:grid}.student-detail-dl>div{display:contents}.student-detail-dl dt{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft);margin:0;padding-top:.15rem;font-size:.8rem;font-weight:700}.student-detail-dl dd{color:var(--ink);border-bottom:1px solid var(--border);margin:0;padding-bottom:.35rem;font-size:.95rem;font-weight:600}.student-detail-art{margin-bottom:1rem}.student-detail-art-title{color:var(--ink);margin:0 0 .35rem;font-size:.95rem;font-weight:750}.student-detail-art-count{color:var(--muted-soft);font-weight:600}.student-lesson-note{white-space:pre-wrap;color:var(--ink);margin-top:.35rem;font-style:italic}.student-row-top{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;display:flex}.student-row-name{color:var(--ink);margin:0;font-size:.95rem;font-weight:650;line-height:1.25}.student-row-inactive{color:var(--muted-soft);font-weight:500}.student-row-meta{color:var(--muted-soft);margin:.1rem 0 0;font-size:.78rem;line-height:1.3}.student-row-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.15rem;display:flex}.belt-chip{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:.12rem .45rem;font-size:.7rem;font-weight:700;line-height:1.2;display:inline-flex}.accordion{border-bottom:1px solid var(--border);margin-bottom:.35rem;padding-bottom:.35rem}.accordion-header{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.85rem 0;display:flex}.accordion-header-row{align-items:center;gap:.85rem;display:flex}.accordion-add-link{white-space:nowrap;flex-shrink:0;font-size:.9rem}.accordion-chevron-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.85rem 0;line-height:1}.accordion-header:hover .accordion-title{color:var(--teal)}.accordion-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.15rem;font-weight:700}.accordion-meta{color:var(--muted-soft);margin:.15rem 0 0;font-size:.85rem}.accordion-chevron{color:var(--teal);padding:0 .25rem;font-size:1.5rem;font-weight:300;line-height:1}.form-stack{flex-direction:column;display:flex}.input,.select,.textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--ink);outline:none;padding:.7rem .85rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e26}.input:disabled,.select:disabled,.textarea:disabled{color:var(--muted);background:#f1f5f9}.textarea{resize:vertical;min-height:8rem;line-height:1.5}.textarea.textarea-sm{min-height:4.5rem}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;margin-bottom:.65rem;padding:.65rem .85rem;font-size:.95rem}.search-input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #0f766e26}.list-filters{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;margin:0 0 .65rem;display:flex}.list-filters .select,.list-filters .search-input,.list-filters .multiselect{flex:9.5rem;width:auto;min-width:0;max-width:100%;margin:0}.list-filters .search-input{flex:2 14rem;margin-bottom:0;padding:.5rem .7rem}.list-filters .select{padding:.5rem .65rem;font-size:.9rem}.list-filters .multiselect{flex:1.4 11rem;max-width:none}.list-filters .multiselect-trigger{padding:.5rem .65rem;font-size:.9rem;font-weight:600}.list-filters-check{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:.4rem;margin:0;font-size:.85rem;display:inline-flex}.list-filters-check input{margin:0}@media (width<=640px){.list-filters .select,.list-filters .multiselect,.list-filters .search-input{flex:100%}}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.4rem;padding:.75rem 1.15rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:hover:not(:disabled){text-decoration:none}.btn-primary{background:var(--teal);color:#f8fafc}.btn-primary:hover:not(:disabled){background:var(--teal-deep);color:#f8fafc}.btn-secondary{background:var(--teal-soft);color:var(--teal)}.btn-secondary:hover:not(:disabled){color:var(--teal-deep);background:#c5d9d7}.btn-danger{color:var(--danger);background:0 0;padding:.35rem 0;font-weight:700}.btn-danger:hover:not(:disabled){text-decoration:underline}.btn-ghost{color:var(--teal);background:0 0;padding:.35rem 0;font-weight:700}.btn-ghost:hover:not(:disabled){text-decoration:underline}.btn-block{width:100%}.btn-sm{padding:.45rem .75rem;font-size:.85rem}.btn-icon{background:var(--teal-soft);width:2.5rem;height:2.5rem;color:var(--teal);padding:0;font-size:1.35rem;font-weight:300;line-height:1}.btn-row{flex-wrap:wrap;gap:.65rem;margin-top:1.25rem;display:flex}.form-adjacent-nav{justify-content:space-between;gap:1rem;margin:.35rem 0 1.25rem;display:flex}.form-adjacent-link{color:var(--teal);text-overflow:ellipsis;white-space:nowrap;max-width:48%;font-size:.9rem;font-weight:700;text-decoration:none;overflow:hidden}.form-adjacent-link:hover{text-decoration:underline}.form-adjacent-link-next{text-align:right;margin-left:auto}.form-adjacent-placeholder{flex:1}.link-btn{color:var(--teal);cursor:pointer;font-weight:700;font-size:inherit;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.add-form-block{border-bottom:1px solid var(--border);margin:0 0 .85rem;padding-bottom:.75rem}.stack-form{flex-direction:column;gap:.65rem;max-width:28rem;margin-top:1rem;display:flex}.teach-layout{flex-direction:column;gap:1.25rem;max-width:36rem;margin-top:1rem;display:flex}.teach-layout-compact{gap:.85rem}.teach-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.15rem 1.25rem}.teach-layout-compact .teach-panel{box-shadow:none;padding:.75rem .9rem .95rem}.teach-panel .section-header{margin-top:0}.teach-panel .stack-form{max-width:none;margin-top:0}.teach-date-row{flex-direction:column;gap:.4rem;max-width:16rem;display:flex}.teach-filters{grid-template-columns:1fr 1fr;gap:.45rem .75rem;margin-bottom:.55rem;display:grid}.teach-filter{min-width:0}.teach-filter .field-label{margin-top:0;margin-bottom:.3rem}.teach-filter-span{grid-column:1/-1}.teach-kind-row{margin:0}.teach-locked-inline{margin:0;padding:.55rem .75rem}.teach-inline-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin:.15rem 0 .55rem;display:flex}.teach-count{color:var(--muted-soft);font-size:.8rem;font-weight:600}.teach-submit-row{flex-wrap:nowrap;margin-top:.75rem}.teach-submit-row .btn{text-align:center;white-space:normal;flex:1;justify-content:center;min-width:0;padding-left:.65rem;padding-right:.65rem;line-height:1.25}@media (width<=640px){.teach-filters{grid-template-columns:1fr}}.form-success{color:#0f766e;margin:.75rem 0 0;font-size:.95rem;font-weight:600}.feedback-category-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:.25rem;display:grid}.feedback-category{border:1px solid var(--border);cursor:pointer;background:var(--surface,#fff);border-radius:10px;flex-direction:column;gap:.15rem;padding:.75rem .85rem;display:flex}.feedback-category input{opacity:0;pointer-events:none;position:absolute}.feedback-category.is-selected{border-color:var(--accent,#1f4b3a);box-shadow:inset 0 0 0 1px var(--accent,#1f4b3a)}.feedback-category-label{font-size:.95rem;font-weight:650}.feedback-category-hint{color:var(--muted,#667);font-size:.8rem;line-height:1.3}.feedback-file-list{gap:.4rem;margin:.35rem 0 0;padding:0;list-style:none;display:grid}.feedback-file-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .65rem;font-size:.9rem;display:flex}@media (width<=640px){.feedback-category-row{grid-template-columns:1fr}}.feedback-inbox-list{gap:.85rem;margin-top:.75rem;display:grid}.feedback-inbox-item{border:1px solid var(--border);background:var(--surface,#fff);border-radius:12px;padding:.75rem .9rem .85rem}.feedback-inbox-head{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;gap:.2rem;padding:0;display:grid}.feedback-inbox-kicker{color:var(--muted,#667);font-size:.8rem}.feedback-inbox-subject{font-size:1.05rem;font-weight:650}.feedback-inbox-from{color:var(--muted,#667);font-size:.9rem}.feedback-inbox-status-bar{align-items:center;gap:.65rem;margin-top:.75rem;display:flex}.feedback-inbox-status-bar .field-label{margin:0}.feedback-inbox-status-bar .select{max-width:14rem}.feedback-inbox-body{border-top:1px solid var(--border);gap:.55rem;margin-top:.85rem;padding-top:.85rem;display:grid}.feedback-inbox-details{white-space:pre-wrap;margin:0;font-family:inherit;font-size:.95rem;line-height:1.5}.feedback-mine{margin-top:2.25rem}.feedback-comments{gap:.55rem;margin-top:.35rem;display:grid}.feedback-comment-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.feedback-comment{border:1px solid var(--border);background:var(--surface,#fff);border-radius:8px;padding:.55rem .7rem}.feedback-comment-meta{color:var(--muted,#667);flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;margin-bottom:.35rem;font-size:.8rem;display:flex}.feedback-comment-meta strong{color:inherit;font-weight:650}.feedback-comment-body{white-space:pre-wrap;margin:0;font-family:inherit;font-size:.92rem;line-height:1.45}.feedback-comment-form{gap:.45rem;display:grid}.waiver-list{gap:.75rem;margin-top:.75rem;display:grid}.waiver-list-item{border:1px solid var(--border);background:var(--surface,#fff);border-radius:12px;padding:.75rem .9rem}.waiver-list-head{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;gap:.15rem;padding:0;display:grid}.waiver-list-kicker{color:var(--muted,#667);font-size:.8rem}.waiver-list-name{font-size:1.05rem;font-weight:650}.waiver-list-meta{color:var(--muted,#667);font-size:.9rem}.waiver-list-body{border-top:1px solid var(--border);gap:.75rem;margin-top:.85rem;padding-top:.85rem;display:grid}.waiver-signature-block{gap:.35rem;display:grid}.waiver-signature-img{object-fit:contain;border:1px solid var(--border);background:#fafafa;border-radius:8px;max-width:min(100%,28rem);max-height:10rem;padding:.5rem}.waiver-signature-text{margin:.35rem 0 0;font-size:.95rem;line-height:1.45}.waiver-text-block{gap:.35rem;display:grid}.waiver-text-body{white-space:pre-wrap;border:1px solid var(--border);background:#fafafa;border-radius:8px;max-height:22rem;margin:0;padding:.75rem .85rem;font-family:inherit;font-size:.88rem;line-height:1.45;overflow:auto}.waiver-details-toggle{justify-self:start;margin-top:.15rem}.waiver-details-full{border-top:1px dashed var(--border);gap:.75rem;padding-top:.65rem;display:grid}.waiver-forms-section{gap:1rem;margin-top:1.5rem;display:grid}.waiver-live-links{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.waiver-live-links li{gap:.15rem;display:grid}.waiver-form-editor{border-top:1px solid var(--border);gap:.45rem;padding:.85rem 0 1.1rem;display:grid}.waiver-form-editor .btn{justify-self:start}.access-section{border:1px solid var(--border);background:#fff;border-radius:14px;margin:1.75rem 0 0;overflow:visible;box-shadow:0 1px #0f172a08}.access-section-header{border-bottom:1px solid var(--border);background:linear-gradient(#f8fafc 0%,#fff 100%);border-radius:14px 14px 0 0;padding:1.1rem 1.25rem .95rem}.access-section-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.2rem;font-weight:700}.access-section-desc{max-width:40rem;color:var(--muted);margin:.35rem 0 0;font-size:.9rem;line-height:1.45}.access-section-body{padding:1rem 1.25rem 1.15rem}.access-action-row{flex-wrap:wrap;align-items:flex-start;gap:.75rem;display:flex}.access-action-row .multiselect{flex:16rem;min-width:min(100%,16rem);max-width:none}.access-action-row .multiselect.is-open{z-index:60}.access-action-row .multiselect-panel{z-index:60;width:max(100%,22rem);max-width:min(100vw - 2rem,36rem)}.access-action-row .btn{flex-shrink:0;align-self:flex-start}.access-action-row-belt .select{flex:0 12rem;min-width:10rem}.access-credentials{gap:.75rem;margin:.65rem 0 .85rem;display:grid}.access-credential .temp-password-value{margin:.35rem 0 0}.access-readonly-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.access-readonly-list li{gap:.15rem;display:grid}.access-empty{color:var(--muted-soft);margin:0;font-size:.9rem;line-height:1.45}.access-person-name{color:var(--ink);margin:0;font-weight:700}.access-person-meta{color:var(--muted-soft);word-break:break-word;margin:0;font-size:.85rem}.temp-password-card{border:1px solid var(--border);background:var(--ok-bg);border-radius:12px;margin:1rem 0;padding:1rem 1.1rem}.temp-password-title{color:var(--ok);margin:0;font-weight:700}.temp-password-value{letter-spacing:.04em;-webkit-user-select:all;user-select:all;background:#fff;border-radius:8px;margin:.65rem 0 .85rem;padding:.65rem .75rem;font-size:1.05rem;display:block}.form-error{color:#b91c1c;margin:.75rem 0 0;font-size:.95rem;font-weight:600}.form-ok{color:var(--ok);margin:.75rem 0 0;font-size:.95rem;font-weight:600}.table-wrap{margin-top:.5rem;overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:.9rem}table.data-table th,table.data-table td{text-align:left;border-top:1px solid var(--border);vertical-align:top;padding:.7rem .5rem}table.data-table th{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft);border-top:none;font-size:.7rem;font-weight:700}.subscriber-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:.5rem;overflow-x:auto}.subscriber-table{width:100%;margin:0}.subscriber-table th,.subscriber-table td{vertical-align:top;padding:.75rem .85rem}.subscriber-name{color:var(--ink);font-weight:650}.subscriber-email{color:var(--muted);word-break:break-all;font-size:.88rem}.subscriber-status-stack,.subscriber-tags{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.subscriber-meta{color:var(--muted);margin-top:.2rem;font-size:.82rem;display:block}.subscriber-actions{white-space:nowrap;text-align:right}.badge{border-radius:var(--radius);white-space:nowrap;padding:.2rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-open{background:var(--warn-bg);color:#92400e}.badge-done{background:var(--ok-bg);color:var(--ok)}.duration-stepper{align-items:center;gap:.35rem;display:inline-flex}.duration-stepper button{background:var(--teal-soft);width:1.75rem;height:1.75rem;color:var(--teal);cursor:pointer;border-radius:var(--radius);border:none;font-weight:700;line-height:1}.duration-stepper span{text-align:center;min-width:2.5rem;font-size:.9rem;font-weight:700}.modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;padding:1.5rem;box-shadow:0 12px 40px #0f172a2e}.modal h2{margin:0 0 .5rem;font-size:1.35rem}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.25rem;display:flex}.auth-card{width:100%;max-width:420px}.auth-switch{text-align:center;margin-top:1.25rem}.loading-screen{min-height:100vh;color:var(--teal);justify-content:center;align-items:center;font-weight:600;display:flex}.spinner{border:3px solid var(--teal-soft);border-top-color:var(--teal);border-radius:50%;width:2rem;height:2rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.date-nav{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.date-nav-center{text-align:center}.date-nav-label{font-family:var(--font-display);margin:0;font-size:1.25rem;font-weight:700}.view-toggle{background:var(--teal-soft);flex-wrap:wrap;gap:0;margin:1rem 0 1.25rem;display:flex}.view-toggle-btn{color:var(--teal);cursor:pointer;background:0 0;border:none;flex:auto;padding:.65rem .75rem;font-size:.85rem;font-weight:700}.view-toggle-btn.active{background:var(--teal);color:#f8fafc}.cal-month{grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:1.25rem;display:grid}.cal-weekday{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-soft);padding:.35rem 0;font-size:.7rem;font-weight:700}.cal-day{aspect-ratio:1;cursor:pointer;color:var(--ink);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.25rem;font-weight:700;display:flex}.cal-day.muted{opacity:.4}.cal-day.today{box-shadow:inset 0 0 0 1px var(--teal)}.cal-day.selected{background:var(--teal);color:#f8fafc}.cal-day-num{font-size:.95rem}.cal-day-count{color:var(--teal);font-size:.7rem;font-weight:700}.cal-day.selected .cal-day-count{color:#ecfdf5}.cal-week{flex-direction:column;margin-bottom:1rem;display:flex}.cal-week-row{text-align:left;border:none;border-top:1px solid var(--border);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.85rem .5rem;display:flex}.cal-week-row.selected{background:var(--teal-soft)}.cal-week-row .list-row-title,.cal-week-row .list-row-meta{display:block}.stats-custom-range{grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem;display:grid}.stats-total{color:var(--ink);margin:1.5rem 0 .5rem;font-size:1.25rem;font-weight:800}.stats-row-time{color:var(--teal);white-space:nowrap;margin:0;font-weight:800}.multiselect{flex-direction:column;gap:.4rem;max-width:36rem;display:flex;position:relative}.multiselect.is-disabled{opacity:.6}.multiselect-trigger{border:1px solid var(--border);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:.7rem .9rem;font-weight:600;display:flex}.multiselect-trigger:disabled{cursor:not-allowed}.multiselect.is-open .multiselect-trigger{border-color:var(--teal)}.multiselect-trigger-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.multiselect-trigger-label.is-placeholder{color:var(--muted-soft);font-weight:500}.multiselect-chevron{color:var(--muted-soft);flex-shrink:0}.multiselect-panel{z-index:40;border:1px solid var(--border);background:#fff;flex-direction:column;gap:.4rem;width:max(100%,16rem);min-width:100%;padding:.55rem;display:flex;position:absolute;top:calc(100% + .25rem);left:0;box-shadow:0 10px 28px #0f172a1f}.multiselect.is-open{z-index:40}.multiselect-toolbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.multiselect-count{color:var(--muted-soft);font-size:.8rem}.multiselect-search{margin:0}.multiselect-list{border:1px solid var(--border);background:#fff;flex-direction:column;display:flex;overflow-y:auto}.multiselect-footer{justify-content:flex-end;display:flex}.multiselect-empty{color:var(--muted-soft);margin:0;padding:.85rem 1rem;font-size:.9rem}.multiselect-option{border-top:1px solid var(--border);cursor:pointer;background-color:var(--stripe-a);flex-direction:row;align-items:center;gap:.45rem;margin:0;padding:.32rem .6rem;font-weight:400;display:flex}.multiselect-option:nth-child(2n of .multiselect-option){background-color:var(--stripe-b)}.multiselect-option:first-child{border-top:none}.multiselect-option:hover{background:var(--teal-soft)}.multiselect-option.is-selected{background:#e6f4f2}.multiselect-option input{accent-color:var(--teal);flex-shrink:0;width:.95rem;height:.95rem;margin:0}.multiselect-option-text{flex-flow:wrap;align-items:baseline;gap:.15rem .45rem;min-width:0;display:flex}.multiselect-option-label{color:var(--ink);font-size:.88rem;font-weight:600;line-height:1.25}.multiselect-option-meta{color:var(--muted-soft);font-size:.8rem}.locked-school{background:var(--teal-soft);color:var(--ink);margin:0 0 .75rem;padding:.75rem 1rem;font-weight:600}.checkbox-row{align-items:flex-start;gap:.75rem;margin-top:1.15rem;display:flex}.checkbox-row input{accent-color:var(--teal);width:1.1rem;height:1.1rem;margin-top:.2rem}.checkbox-row label{color:var(--ink);font-weight:700}.checkbox-row .hint{color:var(--muted-soft);margin-top:.25rem;font-size:.85rem;font-weight:400;display:block}.gap-student-list,.stripe-list{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.gap-student-block,.stripe-block{background:var(--stripe-a);border-radius:10px;padding:0 .85rem .4rem}.gap-student-block.is-alt,.stripe-block.is-alt{background:var(--stripe-b)}.gap-student-block>.list-row,.stripe-block>.list-row{background-color:#0000;border-top-color:#0000}.gap-student-block .form-select-row,.stripe-block .form-select-row{background-color:#0000}.gap-subsection-header{cursor:pointer;width:100%;font:inherit;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;margin:.35rem 0 .15rem;padding:.4rem 0;font-size:.95rem;font-weight:800;display:flex}.gap-subsection-header .accordion-chevron{padding:0;font-size:1.35rem}.gap-nested{margin:0 0 .35rem;padding-left:1.25rem}.gap-nested-empty{color:var(--muted-soft);margin:0;padding:.35rem 0 .5rem;font-size:.85rem}.gap-nested-date{color:var(--muted);align-items:center;gap:.65rem;margin:.15rem 0 .4rem;font-size:.8rem;font-weight:600;display:flex}.gap-nested-date .input{width:auto;padding:.35rem .55rem;font-size:.85rem}.gap-nested-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.4rem 0;display:flex}.gap-nested-title{color:var(--ink);margin:0;font-size:.85rem;font-weight:600;line-height:1.35}.gap-nested-row .link-btn{flex-shrink:0;font-size:.8rem}.gap-form-actions{flex-wrap:nowrap;margin-top:.65rem}.gap-form-actions .btn{flex:1;min-width:0}.form-select-row{border-top:1px solid var(--border);cursor:pointer;background-color:var(--stripe-a);border-radius:8px;align-items:center;gap:.75rem;padding:.65rem .75rem;font-weight:600;display:flex}.form-select-row:nth-child(2n of .form-select-row){background-color:var(--stripe-b)}.form-select-row label{cursor:pointer;flex:1;align-items:center;gap:.65rem;font-weight:600;display:flex}.form-select-row input[type=checkbox]{accent-color:var(--teal);width:1.05rem;height:1.05rem}.sticky-footer{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#eef2f4eb;margin:1.5rem -1.5rem -1.75rem;padding:1rem 1.5rem 1.25rem;position:sticky;bottom:0}@media (width<=860px){.topbar{gap:.65rem .85rem;padding:.65rem 1rem}.topbar-brand{flex:1;min-width:0;font-size:1.05rem}.topbar-actions{gap:.5rem;margin-left:auto}.topbar-user{max-width:7.5rem}.topbar-signout{display:none}.topbar-menu-btn{display:inline-flex}.topbar-nav{border-top:1px solid var(--border);flex-direction:column;order:3;align-items:stretch;gap:0;width:100%;padding:.35rem 0 .15rem;display:none}.topbar-nav.is-open{display:flex}.topbar-nav>a,.topbar-nav .nav-dropdown>a{border-bottom:1px solid #cbd5e18c;padding:.7rem .15rem;font-size:.95rem;display:block}.topbar-nav .nav-dropdown:last-child>a,.topbar-nav>a:last-child{border-bottom:none}.nav-dropdown-menu{display:none!important}.topbar.nav-open .topbar-signout{display:inline}}@media (width<=640px){html,body{overflow-x:clip}.page{padding:1.25rem 1rem 2.5rem}.page-wide{padding-left:.75rem;padding-right:.75rem}.sticky-footer{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.list-row,.student-row{flex-wrap:wrap}.list-row-actions{flex-wrap:wrap;justify-content:flex-start;gap:.5rem .85rem;width:100%}.info-panel,.card-panel{min-width:0}.info-panel:has(table){overflow-x:auto}.student-curriculum-summary{gap:.45rem}.student-curriculum-num{font-size:1.2rem}.proj-field,.proj-search{flex:100%;min-width:0}.proj-wrap{max-height:calc(100dvh - 12rem)}.ss-stat-grid,.ss-stat-grid-wide{grid-template-columns:1fr 1fr}.date-nav{flex-wrap:wrap}.cal-day{aspect-ratio:auto;min-height:2.75rem;padding:.2rem .1rem;font-size:.8rem}}.tag-editor{gap:.4rem;display:grid}.tag-chips{flex-wrap:wrap;gap:.35rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.tag-chip{color:var(--teal,#0f766e);background:#dbe7e6;border-radius:999px;padding:.12rem .5rem;font-size:.75rem;font-weight:700;line-height:1.4}.attendance-page{max-width:100%}.att-controls{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.att-controls label{flex-direction:column;gap:.2rem;font-size:.8rem;font-weight:600;display:flex}.att-controls select,.att-controls input[type=number]{padding:.3rem .4rem;font-size:.85rem}.att-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.att-table{border-collapse:collapse;white-space:nowrap;width:max-content;font-size:.72rem}.att-table th,.att-table td{border:1px solid #bbb;padding:.15rem .35rem}.att-section-title{text-align:left;background:#fff;border-bottom:none;font-size:.82rem;font-weight:700}.att-col-hdr th{background:#f5f5f5;font-weight:600}.att-day-hdr{text-align:center;vertical-align:bottom;min-width:1.6rem;line-height:1.15}.att-day-hdr .att-dow{font-size:.65rem;display:block}.att-day-hdr .att-dom{font-weight:700;display:block}.att-weekend{background:#e0e0e0}.att-num{text-align:center;width:1.5rem}.att-name{min-width:9rem}.att-prog{min-width:4rem}.att-belt{min-width:5rem}.att-pad-row td{height:1.15rem}@media print{.att-controls,.topbar,.preview-banner,.brand-eyebrow{display:none}.att-table{font-size:8pt}.att-scroll{overflow:visible}}.school-stats-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1.25rem;margin-bottom:.5rem;display:flex}.school-stats-header .page-lede{max-width:40rem;margin-bottom:0}.ss-filters{border:1px solid var(--border,#d5dcdc);z-index:3;background:#f4f6f6;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:.65rem 1rem;margin:1rem 0 1.25rem;padding:.85rem 1rem;display:flex;position:relative;overflow:visible}.ss-filters label{color:#445;flex-direction:column;gap:.2rem;font-size:.78rem;font-weight:600;display:flex}.ss-filters select,.ss-filters input[type=date],.ss-filters input[type=search]{min-width:8rem;padding:.35rem .45rem;font-size:.88rem}.activity-log-types{color:#445;flex-direction:column;gap:.2rem;min-width:14rem;font-size:.78rem;font-weight:600;display:flex;overflow:visible}.ss-filters .multiselect-option{color:var(--ink);flex-direction:row;align-items:center;font-size:.88rem;font-weight:400}.activity-log-types .multiselect{min-width:14rem}.ss-filters .multiselect-trigger{padding:.35rem .45rem;font-size:.88rem;font-weight:600}.ss-table .btn-danger{white-space:nowrap}.form-stack .proj-tabs{width:fit-content}.ss-section{margin-bottom:1.5rem}.ss-section-title{margin:0 0 .65rem;font-size:1rem;font-weight:700}.ss-table-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.ss-table-head .ss-section-title{margin-bottom:.5rem}.ss-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.ss-stat-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.ss-stat-grid,.ss-stat-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}.ss-stat{border:1px solid var(--border,#d5dcdc);background:#fff;border-radius:12px;padding:.85rem 1rem}.ss-stat-btn{font:inherit;text-align:left;cursor:pointer;width:100%}.ss-stat-btn:hover{border-color:#9bb;box-shadow:0 1px #0f172a0a}.ss-stat-label{color:#556;margin:0;font-size:.78rem;font-weight:600}.ss-stat-value{letter-spacing:-.02em;margin:.2rem 0 0;font-size:1.85rem;font-weight:750;line-height:1.1}.ss-stat-total{background:linear-gradient(160deg,#f7f8f8,#eef1f1)}.ss-stat-adult .ss-stat-value{color:#1f7a4d}.ss-stat-child .ss-stat-value{color:#1d5fad}.ss-stat-hh .ss-stat-value{color:#8a5a12}.ss-roster-modal{max-width:min(920px,100%);padding:1.1rem 1.2rem 1.25rem}.ss-roster-modal-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.ss-roster-modal-head h2{margin:0}.ss-roster-modal-head .field-hint{margin:.2rem 0 0}.ss-roster-modal-table{max-height:min(70vh,560px);overflow:auto}.ss-metric-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.5rem;display:grid}.ss-metric{text-align:left;border:1px solid var(--border,#d5dcdc);cursor:pointer;font:inherit;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .75rem;display:flex}.ss-metric:hover{border-color:#9bb}.ss-metric.is-active{outline-offset:1px;outline:2px solid #0f766e}.ss-metric-label{color:#556;font-size:.72rem;font-weight:650}.ss-metric-value{font-size:1.35rem;font-weight:750;line-height:1.1}.ss-metric-adult{background:#f1f8f4}.ss-metric-adult .ss-metric-value{color:#1f7a4d}.ss-metric-hh{background:#f8f4ec}.ss-metric-hh .ss-metric-value{color:#8a5a12}.ss-metric-child{background:#eef4fb}.ss-metric-child .ss-metric-value{color:#1d5fad}.ss-table-wrap{border:1px solid var(--border,#d5dcdc);background:#fff;border-radius:10px;overflow-x:auto}.ss-table{border-collapse:collapse;width:100%;font-size:.84rem}.ss-table th,.ss-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e7ecec;padding:.45rem .65rem}.ss-table th{text-transform:uppercase;letter-spacing:.03em;color:#667;background:#f7f9f9;font-size:.72rem;position:sticky;top:0}.ss-table tbody tr:last-child td{border-bottom:none}.ss-table tbody tr:hover td{background:#fafcfc}.ss-empty{color:#778;text-align:center!important;padding:1.25rem!important}.ss-region{text-transform:capitalize;color:#556;font-size:.8rem}.ss-type-pills{flex-wrap:wrap;align-items:center;gap:.22rem .28rem;display:flex}.ss-type-pill{color:#345;background:#e8eeee;border-radius:999px;padding:.1rem .4rem;font-size:.72rem;font-weight:700;display:inline-block}.ss-count{font-weight:700;text-align:center!important}.ss-notes{color:#445;white-space:normal;max-width:18rem}.re-banner{color:#5a3d00;background:#fff6e5;border:1px solid #f0d9a8;border-radius:8px;margin:0 0 1rem;padding:.85rem 1rem}.re-banner-next{color:#1f4d3a;background:#eef6f3;border-color:#b7d4c8}.ss-stat-wide{grid-column:span 2}.ss-stat-value-sm{line-height:1.3;font-size:1.05rem!important}.re-actions{flex-wrap:wrap;gap:.75rem;display:flex}.re-draft-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.re-draft{background:#fff;border:1px solid #dde3e3;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.re-draft-pending{background:#fffdf7;border-color:#e0c070}.re-draft-title{margin:0 0 .25rem;font-weight:700}.re-draft-status{text-transform:uppercase;letter-spacing:.04em;color:#667;font-size:.75rem}.re-draft-subject{margin:0 0 .35rem}.re-draft-meta{color:#667;margin:0;font-size:.85rem}.re-draft-actions{flex-wrap:wrap;gap:.5rem;display:flex}.re-preview-modal{max-width:40rem;max-height:90vh;overflow:auto}.re-preview-html{background:#fafafa;border:1px solid #e5e5e5;border-radius:6px;margin:1rem 0;padding:1rem}.re-editor-modal{width:min(52rem,96vw);max-height:92vh;padding:1.25rem 1.35rem 1.5rem;overflow:auto}.re-editor-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.re-editor-tabs{background:#eef1f1;border-radius:8px;gap:.25rem;padding:.2rem;display:inline-flex}.re-editor-tab{font:inherit;cursor:pointer;color:#445;background:0 0;border:none;border-radius:6px;padding:.4rem .85rem;font-size:.9rem}.re-editor-tab.active{color:#111;background:#fff;box-shadow:0 1px 2px #00000014}.re-editor-toolbar{flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .35rem;display:flex}.re-toolbar-btn{font:inherit;cursor:pointer;color:#223;background:#fff;border:1px solid #cfd6d6;border-radius:6px;padding:.35rem .55rem;font-size:.8rem}.re-toolbar-btn:hover:not(:disabled){background:#f7fafa;border-color:#9aa}.re-toolbar-btn.active{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.re-toolbar-btn:disabled{opacity:.55;cursor:not-allowed}.re-toolbar-sep{background:#d5dbdb;align-self:stretch;width:1px;margin:0 .15rem}.re-editor-hint{margin:0 0 .5rem}.re-editor-canvas{background:#fff;border:1px solid #d5dbdb;border-radius:8px;min-height:18rem;max-height:48vh;overflow:auto}.re-editor-prose{color:#1a1a1a;outline:none;min-height:16rem;padding:1rem 1.15rem;font-family:Georgia,Times New Roman,serif;font-size:1.02rem;line-height:1.65}.re-editor-prose p{margin:0 0 .9rem}.re-editor-prose h1,.re-editor-prose h2,.re-editor-prose h3{margin:0 0 .65rem;font-family:Georgia,serif;line-height:1.3}.re-editor-prose img{border-radius:4px;max-width:100%;height:auto;margin:.75rem 0}.re-editor-prose a{color:#0b5}.re-editor-prose ul,.re-editor-prose ol{margin:0 0 .9rem;padding-left:1.35rem}.re-editor-prose p.is-editor-empty:first-child:before{color:#99a;content:attr(data-placeholder);float:left;pointer-events:none;height:0}.re-editor-footer{margin-top:1rem}.waiver-page{padding-bottom:3rem}.waiver-address-row{grid-template-columns:2fr 1fr 1fr;gap:.75rem;display:grid}@media (width<=640px){.waiver-address-row{grid-template-columns:1fr}}.waiver-legal{background:#fafbfb;border:1px solid #dde3e3;border-radius:8px;max-height:16rem;margin:1rem 0;padding:1rem;overflow:auto}.waiver-legal-body{white-space:pre-wrap;color:#223;font-size:.92rem;line-height:1.55}.waiver-association-note{gap:.35rem;margin:.25rem 0 .15rem;display:grid}.waiver-association-text{margin:0;font-size:.95rem;line-height:1.5}.required-mark{color:#b42318;margin-left:.15em;font-weight:700}.signature-pad{gap:.5rem;display:grid}.signature-pad-canvas{touch-action:none;cursor:crosshair;background:#fff;border:1px solid #c5d0cf;border-radius:8px;width:100%;box-shadow:inset 0 1px 2px #1428280f}.signature-pad-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.info-thread{gap:.85rem;margin-top:.35rem;display:grid}.info-thread-empty{text-align:center;color:var(--muted);border:1px dashed var(--border);background:#f8fafb;border-radius:10px;margin:0;padding:1.25rem}.info-thread-msg{border:1px solid var(--border);background:var(--surface);white-space:pre-wrap;border-radius:12px;padding:.9rem 1rem}.info-thread-inbound{background:linear-gradient(#f0f7ff 0%,#eaf3fc 100%);border-color:#c5daf3}.info-thread-outbound{background:linear-gradient(#f3faf6 0%,#eaf6ef 100%);border-color:#c5e0cf}.info-thread-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem;font-size:.82rem;display:flex}.info-thread-who{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.info-thread-role{color:var(--ink);font-weight:700}.info-thread-channel{color:var(--muted-soft)}.info-thread-subject{font-family:var(--font-display);color:var(--ink);margin:0 0 .4rem;font-size:1.02rem;font-weight:600}.info-thread-body{color:#1e293b;font-size:.98rem;line-height:1.55}.info-thread-delivery{color:var(--muted-soft);margin:.45rem 0 0;font-size:.8rem}.info-status-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.12rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.info-status-ok{background:var(--ok-bg);color:var(--ok)}.info-status-pending{color:#334155;background:#e2e8f0}.info-status-warn{background:var(--warn-bg);color:var(--warn)}.info-status-bad{color:var(--danger);background:#fee2e2}.info-status-muted{color:var(--muted);background:#f1f5f9}.student-profile-panel-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.student-profile-panel-head .info-panel-title{margin:0}.student-profile-photo{object-fit:cover;border:1px solid var(--border);background:#f1f5f9;border-radius:12px;width:5.5rem;height:5.5rem;display:block}.student-profile-photo-btn{cursor:zoom-in;background:0 0;border:0;border-radius:12px;margin:0 0 .5rem;padding:0;display:block}.student-profile-photo-btn:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.student-photo{margin:0 0 .75rem}.student-photo .field-hint{margin:0 0 .35rem}.student-photo .link-btn{margin-top:.15rem;display:inline-block}.student-photo-edit{margin:0 0 .35rem}.student-photo-edit .student-profile-photo{margin-bottom:.35rem}.photo-lightbox{z-index:80;background:#0f172ad1;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.photo-lightbox-inner{flex-direction:column;align-items:center;gap:.85rem;max-width:100%;display:flex}.photo-lightbox-img{object-fit:contain;background:#0f172a;border-radius:12px;max-width:min(96vw,920px);max-height:82vh;box-shadow:0 18px 50px #00000059}.photo-lightbox-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.85rem;display:flex}.photo-lightbox-actions .link-btn{color:#ecfdf5}.info-facts dd.pre-line{white-space:pre-line}.form-section-title{border-top:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:1.15rem 0 .35rem;padding-top:.85rem;font-size:.82rem;font-weight:700}.form-section-title:first-of-type{border-top:none;margin-top:.35rem;padding-top:0}.form-grid-2{grid-template-columns:1fr 1fr;gap:0 .75rem;display:grid}@media (width<=560px){.form-grid-2{grid-template-columns:1fr}}.student-curriculum-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:.35rem;display:grid}.student-curriculum-summary>button{border:1px solid var(--border);text-align:center;cursor:pointer;font:inherit;color:inherit;background:#f8fafc;border-radius:10px;gap:.15rem;padding:.75rem .65rem;display:grid}.student-curriculum-summary>button:hover{background:#f0fdfa;border-color:#99f6e4}.student-curriculum-summary>button.is-open{border-color:var(--teal);background:#f0fdfa}.student-curriculum-summary>button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.student-curriculum-num{font-family:var(--font-display);color:var(--ink);font-size:1.45rem;font-weight:650;line-height:1.1}.student-curriculum-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft);font-size:.75rem;font-weight:700}.student-curriculum-panel,.student-about-panel{margin-bottom:1rem}.student-profile .accordion{margin-top:.85rem}.student-curriculum-lists{border-top:1px solid var(--border);margin-top:.85rem}.student-curriculum-lists .accordion{margin-top:0}.student-curriculum-lists .accordion:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.info-profile{max-width:960px}.info-profile-hero{background:linear-gradient(135deg, #0f766e1a, transparent 55%), var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;grid-template-columns:1.4fr 1fr;gap:1.25rem;margin:.35rem 0 1.25rem;padding:1.25rem 1.35rem;display:grid}.info-profile-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin:0 0 .25rem;font-size:.78rem;font-weight:700}.info-profile-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 .65rem;font-size:clamp(1.65rem,2.4vw,2.1rem);font-weight:650;line-height:1.15}.info-chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.info-chip{background:var(--teal-soft);color:var(--teal-deep);border-radius:999px;align-items:center;padding:.2rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.info-chip-status{color:#166534;background:#dcfce7}.info-chip-muted{color:#475569;background:#eef2f7}.info-profile-contact{align-content:start;gap:.65rem;display:grid}.info-contact-link{border:1px solid var(--border);color:inherit;background:#f8fafc;border-radius:10px;gap:.15rem;padding:.7rem .85rem;text-decoration:none;display:grid}.info-contact-link:hover{border-color:var(--teal);text-decoration:none}.info-contact-link.is-empty{opacity:.72}.info-contact-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted-soft);font-size:.72rem;font-weight:700}.info-contact-value{color:var(--ink);word-break:break-word;font-weight:600}.info-profile-grid{grid-template-columns:1.1fr .9fr;gap:1rem;margin-bottom:1rem;display:grid}.info-profile-grid-solo,.info-profile-grid.info-profile-grid-solo{grid-template-columns:1fr}.student-related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.student-related-table{width:100%;margin-top:.85rem}@media (width<=960px){.student-related-grid{grid-template-columns:1fr}}.info-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;min-width:0;padding:1.1rem 1.2rem}.info-panel-title{font-family:var(--font-display);color:var(--ink);margin:0 0 .35rem;font-size:1.25rem;font-weight:650}.info-panel-lede{color:var(--muted);margin:0 0 .85rem;font-size:.92rem;line-height:1.45}.info-facts{grid-template-columns:8.5rem 1fr;gap:.55rem 1rem;margin:0;display:grid}.info-facts-wide{grid-template-columns:8.5rem minmax(0,1fr) 8.5rem minmax(0,1fr);column-gap:1.75rem}.info-facts dt{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft);margin:0;padding-top:.2rem;font-size:.75rem;font-weight:700}.info-facts dd{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);min-width:0;margin:0;font-size:.98rem;line-height:1.5}.info-facts dd a{color:var(--teal-deep);font-weight:600}.expandable-text{gap:.25rem;min-width:0;display:grid}.expandable-text-body{white-space:pre-wrap;overflow-wrap:anywhere;color:inherit;margin:0;line-height:1.5}.expandable-text-body.is-clamped{max-height:calc(1.5em * var(--expandable-lines,2));overflow:hidden}.expandable-text-body.is-expanded{max-height:none}.expandable-text-toggle{justify-self:start;font-size:.85rem;font-weight:600}.info-thread-body .expandable-text-body{color:#1e293b}.info-thread-body{white-space:normal}.info-welcome-log{gap:.35rem;margin:.85rem 0 0;padding:0;list-style:none;display:grid}.info-welcome-log li{color:var(--muted);background:#f8fafc;border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.4rem .55rem;font-size:.82rem;display:flex}.info-conversation{margin-bottom:1rem;padding-top:.85rem}.info-conversation-toggle{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:flex-start;gap:.75rem;margin:0;padding:0;display:flex}.info-conversation-toggle .info-panel-title{margin:0 0 .25rem}.info-conversation-toggle .info-panel-lede{margin:0}.info-conversation-toggle:hover .info-panel-title{color:var(--teal)}.info-conversation .info-thread{margin-top:.85rem}.info-reply-form{border-top:1px solid var(--border);gap:.45rem;margin-top:1.1rem;padding-top:1rem;display:grid}.info-reply-title{font-family:var(--font-display);margin:0 0 .25rem;font-size:1.05rem}.info-reply-textarea{min-height:7rem}.info-profile-danger{margin-top:.5rem}@media (width<=820px){.info-profile-hero,.info-profile-grid{grid-template-columns:1fr}.info-facts,.info-facts-wide{grid-template-columns:1fr;gap:.15rem}.info-facts dt{padding-top:.55rem}}.page-wide{max-width:none}.proj-heading{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.proj-heading .page-lede{margin-bottom:.85rem}.proj-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin:.35rem 0 .5rem;display:flex}.proj-field,.proj-search{min-width:12rem;margin:0}.proj-search .search-input{margin:.3rem 0 0}.proj-field .select{min-width:12rem;margin-top:.3rem}.proj-tabs{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:.3rem;padding:.18rem;display:flex}.proj-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:700}.proj-tabs button.is-active{background:var(--teal);color:#fff}.proj-check{color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.proj-legend{flex-wrap:wrap;gap:.45rem;margin:.35rem 0 .65rem;display:flex}.proj-wrap{border:1px solid var(--border);background:var(--surface);border-radius:8px;max-height:calc(100vh - 16rem);overflow:auto}.proj-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.78rem}.proj-table th,.proj-table td{border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle;padding:.35rem .45rem}.proj-table thead th{z-index:2;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft);box-shadow:inset 0 -1px 0 var(--border);background:#f8fafc;font-size:.68rem;font-weight:700;position:sticky;top:0}.proj-table thead th.proj-th-field{text-transform:none;letter-spacing:0}.proj-table tbody tr:nth-child(odd){background:var(--stripe-a)}.proj-table tbody tr:nth-child(2n){background:var(--stripe-b)}.proj-table th:first-child,.proj-table td:first-child{z-index:1;min-width:11rem;position:sticky;left:0;box-shadow:4px 0 8px #0f172a0f}.proj-table thead th:first-child{z-index:3;background:#f8fafc}.proj-table tbody tr:nth-child(odd) td:first-child{background:var(--stripe-a)}.proj-table tbody tr:nth-child(2n) td:first-child{background:var(--stripe-b)}.proj-name a{color:var(--ink);font-weight:700;text-decoration:none}.proj-name a:hover{color:var(--teal);text-decoration:underline}.proj-num{font-variant-numeric:tabular-nums;text-align:right}.proj-muted{color:var(--muted);text-overflow:ellipsis;max-width:11rem;overflow:hidden}.proj-sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:none;padding:0}.proj-sort:hover{color:var(--ink)}.proj-ntd{border-radius:999px;align-items:center;padding:.12rem .4rem;font-size:.72rem;font-weight:700;display:inline-flex}.proj-ntd.is-overdue{color:#991b1b;background:#fee2e2}.proj-ntd.is-soon{color:#92400e;background:#fef3c7}.proj-ntd.is-ok{color:#166534;background:#dcfce7}.proj-ntd.is-missing{color:#64748b;background:#f1f5f9}.proj-ntd.is-suggested{color:#3730a3;background:#e0e7ff}.proj-date-cell.is-ntd.is-overdue{background:#fee2e2}.proj-date-cell.is-ntd.is-soon{background:#fef3c7}.proj-date-cell.is-ntd.is-ok{background:#dcfce7}.proj-date,.proj-datetime,.proj-notes,.proj-course{width:8.6rem;font:inherit;color:inherit;background:#ffffff8c;border:1px solid #0000;border-radius:4px;padding:.2rem .25rem}.proj-datetime{width:13.5rem}.proj-notes{width:10rem}.proj-course{width:11rem}.proj-date:focus,.proj-datetime:focus,.proj-notes:focus,.proj-course:focus{border-color:var(--teal);background:#fff;outline:none;box-shadow:0 0 0 2px #0f766e2e}.proj-check-cell{text-align:center}.proj-check-cell input{width:1rem;height:1rem;accent-color:var(--teal)}.proj-empty{color:var(--muted);white-space:normal;padding:1.25rem .75rem}.proj-footer{color:var(--muted-soft);margin:.65rem 0 0;font-size:.85rem}.proj-files-btn{font:inherit;color:var(--teal);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-weight:700}.proj-files-btn:hover{text-decoration:underline}.course-files-modal{max-width:36rem}.course-files-list{flex-direction:column;gap:.45rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.course-files-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.course-files-add{margin-top:.75rem}.modal-actions{justify-content:flex-end;margin-top:1rem;display:flex}.choice-grid{flex-wrap:wrap;gap:.4rem;display:flex}.choice-chip{border:1px solid var(--border);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:.35rem .75rem;font-size:.9rem;font-weight:700}.choice-chip:hover{border-color:var(--teal)}.choice-chip.is-on{background:var(--teal);border-color:var(--teal);color:#fff}.pick-list{border:1px solid var(--border);background:#fff;border-radius:8px;max-height:16rem;overflow:auto}.pick-empty{color:var(--muted-soft);margin:0;padding:.75rem .85rem;font-size:.9rem}.pick-row{cursor:pointer;border-bottom:1px solid var(--border);align-items:flex-start;gap:.6rem;padding:.45rem .75rem;display:flex}.pick-row:last-child{border-bottom:none}.pick-row input{accent-color:var(--teal);margin-top:.2rem}.pick-row.is-on{background:var(--teal-soft)}.pick-meta{color:var(--muted-soft);font-weight:500}
