@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#192d32;--muted:#718184;--line:#e5ecea;--paper:#f4f7fb;--white:#fff;--teal:#2878c7;--deep:#1d4f91;--mint:#e6f0fc;--peach:#fff0e5;--shadow:0 12px 34px rgba(35,67,120,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}.portal-shell{max-width:1320px;margin:auto;min-height:100vh;padding:0 42px}.portal-header{height:86px;display:flex;align-items:center;gap:56px;border-bottom:1px solid #e7edf4}.portal-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);min-width:235px}.brand-star{width:42px;height:42px;border-radius:14px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:24px}.portal-brand strong,.profile b{display:block;font:700 16px Manrope,sans-serif;letter-spacing:-.3px}.portal-brand small,.profile small{display:block;color:#83918f;font-size:9px;letter-spacing:1.5px;margin-top:4px}.portal-nav{display:flex;align-self:stretch;gap:24px}.nav-tab{border:0;border-bottom:2px solid transparent;background:none;color:#778684;padding:2px 6px 0;font:600 13px 'DM Sans';cursor:pointer}.nav-tab.active{color:var(--deep);border-color:var(--teal)}.profile{margin-left:auto;display:flex;align-items:center;gap:10px}.profile b{font:700 13px 'DM Sans'}.profile small{letter-spacing:.2px;font-size:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#dceafa;color:#1f5b9d;display:grid;place-items:center;font-weight:700;font-size:12px}.demo-ribbon{margin:22px 0 0;padding:10px 14px;border-radius:9px;background:#fff7df;color:#856a24;font-size:12px}.demo-ribbon span{font-size:9px;letter-spacing:1px;font-weight:700;border:1px solid #ead79c;border-radius:4px;padding:3px 6px;margin-right:9px}.view{display:none;padding:38px 0 26px}.view.active{display:block}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{margin:0 0 8px;color:#84918e;font-size:10px;font-weight:700;letter-spacing:1.6px}.welcome-row h1{font:700 clamp(27px,3vw,36px) Manrope,sans-serif;letter-spacing:-1.3px;margin:0 0 8px}.subhead{color:var(--muted);margin:0;font-size:14px}.preview-picker{color:#758481;font-size:11px;font-weight:600;display:grid;gap:7px}.preview-picker select{min-width:190px}.preview-picker select,.form-surface input,.form-surface select,.form-surface textarea,.add-student-panel input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);font:500 13px 'DM Sans';padding:11px 12px;outline:none}.preview-picker select:focus,.form-surface input:focus,.form-surface select:focus,.form-surface textarea:focus,.add-student-panel input:focus{border-color:#78aee3;box-shadow:0 0 0 3px #e6f0fc}.student-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stat-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px 21px;min-height:145px;box-shadow:var(--shadow)}.primary-stat{background:#2878c7;color:#fff;border-color:#2878c7}.stat-icon{position:absolute;right:20px;top:18px;width:31px;height:31px;border-radius:10px;background:rgba(255,255,255,.16);display:grid;place-items:center;color:#fff;font-size:17px}.stat-icon.peach{background:var(--peach);color:#d48255}.stat-icon.mint{background:var(--mint);color:#3174b5}.stat-label{display:block;color:#758481;font-size:12px;font-weight:600}.primary-stat .stat-label,.primary-stat small{color:#dceaf8}.stat-card strong{display:block;font:800 36px Manrope,sans-serif;letter-spacing:-1.4px;margin:12px 0 2px}.stat-card small{color:#85928f;font-size:11px}.student-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.9fr);gap:18px}.surface{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow)}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-top h2,.recognition-surface h2{font:700 18px Manrope,sans-serif;letter-spacing:-.4px;margin:0}.section-top .eyebrow{margin-bottom:5px}.count-pill{padding:6px 9px;background:#f1f5fa;border-radius:20px;color:#72817e;font-size:10px;font-weight:600}.record-list{display:grid}.record-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:12px;padding:15px 0;border-top:1px solid #edf1f7}.record-symbol{width:36px;height:36px;border-radius:12px;background:var(--mint);color:#3174b5;display:grid;place-items:center;font-size:17px}.record-main strong{display:block;font-size:13px;margin:1px 0 4px}.record-main p{font-size:12px;color:#73817f;margin:0 0 7px;line-height:1.5}.record-meta{font-size:10px;color:#99a4a2}.points-badge{padding:6px 9px;border-radius:18px;background:#e8f2fc;color:#2169ad;font-size:11px;font-weight:700;white-space:nowrap}.aside-copy{font-size:12px;line-height:1.6;color:#7c8987;margin:8px 0 17px}.milestone-list{display:grid;gap:9px}.milestone{display:flex;align-items:center;gap:10px;padding:11px;background:#f7f9fc;border-radius:10px;border:1px solid #edf1ef}.milestone-icon{width:29px;height:29px;border-radius:9px;background:#edf2f1;color:#8d9a97;display:grid;place-items:center}.milestone.done .milestone-icon{background:#fff1d7;color:#c5881d}.milestone b{font-size:11px;display:block}.milestone small{display:block;color:#8b9895;font-size:10px;margin-top:3px}.privacy-note{display:flex;gap:9px;margin-top:19px;padding:12px;border-radius:9px;background:#f1f5fb;color:#6480a1}.privacy-note p{margin:0;font-size:10px;line-height:1.5}.admin-pill{border-radius:30px;padding:9px 12px;background:#e8f2fb;color:#3574ad;font-size:11px;font-weight:700}.admin-pill span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3379b8;margin-right:7px}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 18px}.summary-card small{display:block;color:#85928f;font-size:11px}.summary-card strong{display:block;font:700 23px Manrope;margin-top:7px}.admin-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.3fr);align-items:start;gap:18px}.form-icon{width:31px;height:31px;background:var(--mint);color:var(--teal);border-radius:10px;display:grid;place-items:center;font-size:19px}.form-surface form{display:grid;gap:13px}.form-surface label,.add-student-panel label{display:grid;gap:6px;color:#61716e;font-weight:600;font-size:11px}.form-row{display:grid;grid-template-columns:1.4fr .8fr;gap:11px}.form-surface textarea{resize:vertical;min-height:76px}.submit-button,.small-button{border:0;border-radius:8px;background:var(--teal);color:#fff;font:700 12px 'DM Sans';padding:13px 15px;cursor:pointer}.submit-button{display:flex;justify-content:space-between;align-items:center;margin-top:3px}.submit-button:hover,.small-button:hover{background:var(--deep)}.form-message{font-size:11px;color:#3174b5;min-height:14px;margin:0}.quiet-button{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--teal);padding:9px 11px;font:700 11px 'DM Sans';cursor:pointer}.roster-head,.roster-row{display:grid;grid-template-columns:1fr auto;align-items:center}.roster-head{padding:8px 10px;color:#99a4a2;font-size:9px;letter-spacing:1px}.roster-row{padding:12px 10px;border-top:1px solid #edf1f7}.roster-student{display:flex;align-items:center;gap:10px}.roster-avatar{width:32px;height:32px;border-radius:10px;background:#e8f1fa;color:#386fa3;display:grid;place-items:center;font-size:10px;font-weight:700}.roster-student b{display:block;font-size:12px}.roster-student small{display:block;color:#8a9694;font-size:10px;margin-top:3px}.roster-points{font-weight:700;font-size:12px}.add-student-panel{background:#f5f8fc;border:1px solid #e8eff7;border-radius:9px;padding:13px;display:grid;gap:10px;margin:0 0 12px}.add-student-panel .small-button{justify-self:start;padding:9px 13px}.add-student-panel p{margin:0;color:#3f75a6;font-size:11px}.admin-records{border-top:1px solid var(--line);margin-top:19px;padding-top:18px}.admin-records-list .record-item{grid-template-columns:34px minmax(0,1fr) auto;padding:11px 0}.admin-records-list .record-symbol{width:30px;height:30px}.admin-records-list .record-main p{margin-bottom:5px}.security-note{margin:17px 2px 0;color:#788683;font-size:11px;line-height:1.6}.security-note b{color:#526460}.portal-footer{border-top:1px solid #e6ebf0;padding:19px 0 25px;display:flex;justify-content:space-between;color:#93a09d;font-size:10px}.portal-footer a{color:#6686a7;text-decoration:none}.empty-state{padding:23px 10px;text-align:center;color:#8b9794;font-size:12px}
.quick-points{display:flex;align-items:center;gap:8px;margin-top:-5px}.quick-points span{font-size:10px;color:#84918e;margin-right:3px}.quick-points button{background:#edf4fc;border:1px solid #dbe8f6;border-radius:7px;padding:7px 12px;color:#2672b6;font:700 11px 'DM Sans';cursor:pointer}.quick-points button:hover,.quick-points button.selected{background:var(--teal);border-color:var(--teal);color:#fff}.optional-label{display:inline;color:#9aa5a2;font-weight:400}
@media(max-width:900px){.portal-shell{padding:0 23px}.portal-header{gap:25px}.portal-brand{min-width:200px}.student-layout,.admin-layout{grid-template-columns:1fr}.recognition-surface{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.recognition-surface>.eyebrow,.recognition-surface>h2,.recognition-surface>.aside-copy{grid-column:1/-1}.privacy-note{align-self:start;margin-top:0}}
@media(max-width:620px){.portal-shell{padding:0 15px}.portal-header{height:auto;min-height:74px;flex-wrap:wrap;gap:0}.portal-brand{min-width:0;flex:1}.portal-brand strong{font-size:14px}.portal-nav{order:3;width:100%;height:44px;gap:22px}.profile{margin-left:auto}.profile>span:last-child{display:none}.demo-ribbon{margin-top:15px;font-size:10px}.view{padding-top:28px}.welcome-row{align-items:flex-start;flex-direction:column}.welcome-row h1{font-size:28px}.preview-picker{width:100%}.preview-picker select{width:100%}.student-stats{grid-template-columns:1fr;gap:9px}.stat-card{min-height:112px;padding:16px}.stat-card strong{font-size:30px;margin:7px 0 0}.student-layout{gap:12px}.surface{padding:17px}.recognition-surface{display:block}.privacy-note{margin-top:18px}.admin-summary{gap:8px}.summary-card{padding:12px}.summary-card small{font-size:9px}.summary-card strong{font-size:19px}.admin-pill{align-self:flex-start}.form-row{grid-template-columns:1fr 90px}.portal-footer{gap:12px;font-size:9px}.portal-footer span{text-align:right}}
.login-wrap{min-height:calc(100vh - 155px);display:grid;place-items:center;padding:35px 0}.login-card{width:min(100%,430px);padding:34px}.login-card h1{font:700 30px Manrope,sans-serif;letter-spacing:-1px;margin:0 0 8px}.login-star{width:42px;height:42px;border-radius:14px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:24px;margin-bottom:25px}.login-card form{display:grid;gap:14px;margin-top:24px}.login-card label{display:grid;gap:7px;color:#61716e;font-weight:600;font-size:11px}.login-card input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);font:500 14px 'DM Sans';padding:12px;outline:none}.login-card input:focus{border-color:#78aee3;box-shadow:0 0 0 3px #e6f0fc}.login-help{font-size:11px;line-height:1.6;color:#8b9794;margin:17px 0 0}.setup-warning{background:#fff7df;border-radius:9px;padding:13px;margin-top:20px;color:#7b682f;font-size:12px;line-height:1.6}.setup-warning b{display:block;margin-bottom:4px}.setup-warning code{font-size:11px}.loading-card{padding:24px 28px;color:#6480a1;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:12px}.error-message{color:#ae4949}.profile{gap:10px}.profile .quiet-button{margin-left:8px}.portal-header .profile[hidden]{display:none}
[hidden]{display:none!important}
.access-surface{margin-top:18px}.access-intro{font-size:12px;color:#7c8987;margin:8px 0 0}.access-form{display:grid;grid-template-columns:1.2fr 1.4fr 1.2fr auto;align-items:end;gap:11px;padding:15px;background:#f6f9fd;border:1px solid #e9eff6;border-radius:10px}.access-form label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600}.access-form input,.access-form select{min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:500 12px 'DM Sans'}.access-form .small-button{white-space:nowrap}.access-form p{grid-column:1/-1;margin:0;min-height:14px;color:#3174b5;font-size:11px}.access-table-head,.access-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(180px,1fr) minmax(150px,.9fr) 70px;align-items:center;gap:12px}.access-table-head{padding:17px 10px 8px;color:#99a4a2;font-size:9px;letter-spacing:1px}.access-row{padding:10px;border-top:1px solid #edf1f7;font-size:11px}.access-account{display:flex;align-items:center;gap:9px;min-width:0}.access-account b{overflow-wrap:anywhere;font-size:11px}.access-role{font-weight:700}.access-role.student{color:#4778a6}.access-role.admin{color:#956a20}.access-linked{color:#74817e}.access-edit{border:1px solid var(--line);background:#fff;color:var(--teal);border-radius:7px;padding:7px 9px;font:700 10px 'DM Sans';cursor:pointer}.access-surface .security-note{border-top:1px solid var(--line);padding-top:12px}.view:not(.active){display:none}
.category-surface{margin-top:18px}.category-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;padding:14px;background:#f6f9fd;border:1px solid #e9eff6;border-radius:10px}.category-form label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600}.category-form input,.category-row input{border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:500 12px 'DM Sans';outline:none}.category-form p{grid-column:1/-1;margin:0;min-height:14px;color:#3174b5;font-size:11px}.category-row{display:grid;grid-template-columns:32px minmax(130px,1fr) minmax(140px,1fr) auto auto;align-items:center;gap:10px;padding:10px;border-top:1px solid #edf1f7}.category-row:first-child{margin-top:9px}.category-icon{width:29px;height:29px;border-radius:9px;background:var(--mint);color:var(--teal);display:grid;place-items:center}.category-status{font-size:10px;color:#82908d}.disabled-category .category-icon{background:#f1f3f2;color:#929e9b}.disabled-category input{color:#929e9b;background:#f8f9f9}.disabled-category .category-status{color:#a0aaa7}
@media(max-width:900px){.access-form{grid-template-columns:1fr 1fr}.access-form .small-button{min-height:38px}.access-table-head,.access-row{grid-template-columns:minmax(150px,1.2fr) minmax(150px,1fr) minmax(110px,.8fr) 64px;gap:8px}}
@media(max-width:620px){.access-form{grid-template-columns:1fr}.access-table-head,.access-row{grid-template-columns:minmax(0,1fr) auto;gap:7px}.access-table-head span:nth-child(3),.access-table-head span:nth-child(4){display:none}.access-row .access-linked{grid-column:1}.access-row .access-edit{grid-column:2;grid-row:1/3}.access-role{font-size:10px}}
@media(max-width:620px){.category-form{grid-template-columns:1fr}.category-row{grid-template-columns:28px minmax(0,1fr) auto;gap:7px}.category-row input{grid-column:2/-1}.category-status{grid-column:2/-1}.category-row .access-edit{grid-row:2}.category-row .access-edit:last-child{grid-column:3}}
@media(max-width:620px){.login-card{padding:25px 20px}.portal-header .profile .quiet-button{font-size:10px;padding:8px}.portal-header .profile{gap:6px}}
.point-stepper{display:flex;align-items:stretch;gap:5px}.point-stepper input{min-width:0;width:54px;text-align:center;padding:9px 4px!important}.point-stepper button{width:34px;border:1px solid var(--line);border-radius:8px;background:#edf4fc;color:#2672b6;font:700 18px 'DM Sans';cursor:pointer}.point-stepper button:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.request-surface,.review-surface{margin-top:18px}.request-form{display:grid;gap:12px;max-width:760px}.request-form label,.review-controls label{display:grid;gap:6px;color:#61716e;font-weight:600;font-size:11px}.request-form input,.request-form select,.request-form textarea,.review-controls input,.review-controls textarea{width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);font:500 13px 'DM Sans';padding:10px 12px}.request-history-heading{margin-top:27px}.request-list,.request-review-list{display:grid;gap:10px}.request-item,.review-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff}.request-item strong,.review-request-info strong{font-size:13px}.request-item p,.review-request-info p{margin:5px 0;color:#758481;font-size:11px;line-height:1.5}.request-admin-note{padding-top:6px}.request-status{white-space:nowrap;border-radius:20px;padding:6px 9px;font-size:10px;font-weight:700}.request-status.pending{background:#fff5d7;color:#8b6d1b}.request-status.approved{background:#e4effb;color:#2672b6}.request-status.rejected{background:#fbe9e6;color:#9a5145}.review-item{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}.review-controls{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px}.review-controls label:nth-child(2){grid-column:1/-1}.review-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px}.review-actions .access-edit{padding:9px 14px}.review-controls textarea{resize:vertical}.request-surface #request-message{margin:0;color:#2672b6;font-size:11px}
@media(max-width:620px){.request-item,.review-item{grid-template-columns:1fr}.request-status{justify-self:start}.review-controls{grid-template-columns:90px minmax(0,1fr)}}
.quick-points{flex-wrap:wrap;gap:7px}.quick-points .quick-points-label{margin-right:0}.quick-points .quick-add-label{margin-left:7px}.quick-points .point-stepper{gap:4px}.quick-points .point-stepper input{width:48px}@media(max-width:620px){.quick-points .quick-add-label{margin-left:0}}
.organization-logos{display:flex;align-items:center;gap:8px;flex-shrink:0}.organization-logos img{display:block;object-fit:contain;background:#fff;border:1px solid #e5ebf2;border-radius:7px;padding:3px}.organization-logos .theatre-logo{width:104px;height:58px}.organization-logos .tech-logo{width:58px;height:58px}.portal-header{gap:28px}@media(max-width:900px){.portal-shell{padding:0 20px}.portal-header{gap:16px}.organization-logos .theatre-logo{width:78px;height:46px}.organization-logos .tech-logo{width:46px;height:46px}}@media(max-width:620px){.organization-logos{order:2;width:100%;justify-content:center;padding:8px 0}.portal-header .portal-nav{order:3}}
.milestone{align-items:flex-start}.milestone-icon{flex:none}.milestone>span:last-child{min-width:0}.milestone .milestone-description{font-weight:400;line-height:1.45;color:#7184a0}.milestone .milestone-progress{font-weight:700;color:#3174b5}
.activity-guidance{margin:0;padding:10px 12px;border:1px solid #dce8f7;border-radius:8px;background:#f3f7fd;color:#58718e;font-size:11px;line-height:1.5}.point-stepper input:read-only{background:#f2f6fb}.point-stepper button:disabled,.quick-points button:disabled{opacity:.45;cursor:not-allowed}.production-surface{margin-top:18px}.production-form{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(130px,.8fr) minmax(220px,1.2fr) auto;align-items:end;gap:11px;padding:15px;background:#f6f9fd;border:1px solid #e9eff6;border-radius:10px}.production-form label{display:grid;gap:6px;color:#61718e;font-size:11px;font-weight:600}.production-form input,.production-form select{min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:500 12px 'DM Sans'}.production-form select[multiple]{height:85px}.production-form label small{color:#8291a7;font-size:9px;line-height:1.4;font-weight:400}.production-form p{grid-column:1/-1;margin:0;min-height:14px;color:#3174b5;font-size:11px}.production-list{display:grid;margin-top:8px}.production-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(100px,.5fr) minmax(200px,1.3fr);align-items:center;gap:10px;padding:11px 9px;border-top:1px solid #edf1f7;font-size:11px}.production-row small{color:#7184a0;line-height:1.4}.review-feedback{grid-column:1/-1;margin:0;color:#9a5145;font-size:10px;min-height:12px}
@media(max-width:900px){.production-form{grid-template-columns:1fr 1fr}.production-form label:nth-child(3){grid-column:1/-1}.production-form>.small-button{justify-self:start}.production-row{grid-template-columns:1fr 1fr}.production-row small{grid-column:1/-1}}@media(max-width:620px){.production-form{grid-template-columns:1fr}.production-form label:nth-child(3){grid-column:auto}.production-form p{grid-column:auto}.production-row{grid-template-columns:1fr}.production-row small{grid-column:auto}}

.award-calculation{display:grid;gap:5px;padding:12px 13px;border-radius:9px;background:#eef5fc;border:1px solid #dceaf8;color:#28699f}.award-calculation strong{font:700 16px Manrope,sans-serif}.award-calculation span{font-size:11px;line-height:1.5;color:#5d7690}.form-surface .access-intro{margin:7px 0 0;font-size:11px;line-height:1.5}.form-surface textarea{min-height:88px}.record-main .record-meta{line-height:1.6}

/* Mobile touch, safe-area, and narrow-screen layout refinements */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,select,input,textarea{max-width:100%;font:inherit}
@media(pointer:coarse){button,.quiet-button,.small-button,.submit-button,.nav-tab,.access-edit,.install-button,input,select,textarea{min-height:44px;touch-action:manipulation}}
:focus-visible{outline:3px solid #72a9dc;outline-offset:2px}
.install-button{border:1px solid #cbdff2;border-radius:9px;padding:8px 11px;background:#edf5fd;color:#1f639f;font-weight:700;font-size:11px;cursor:pointer}
.record-main,.record-item,.section-top,.form-surface,.roster-surface,.surface,.access-account{min-width:0}
.record-main p,.record-main strong,.access-account b,.production-row,.request-item,.review-item{overflow-wrap:anywhere}
.request-form,.form-surface form,.access-form,.production-form,.category-form{width:100%;min-width:0}
.form-surface form>*,.form-surface form>label,.request-form>*,.request-form>label,.production-form>*,.production-form>label,.access-form>*,.access-form>label,.category-form>*{min-width:0}
.form-surface label>input,.form-surface label>select,.form-surface label>textarea,.request-form label>input,.request-form label>select,.request-form label>textarea,.production-form label>input,.production-form label>select,.access-form label>input,.access-form label>select,.category-form label>input,.add-student-panel label>input{width:100%;min-width:0}
@media(max-width:620px){
  .portal-shell{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right));padding-top:env(safe-area-inset-top)}
  input,select,textarea,.form-surface input,.form-surface select,.form-surface textarea,.access-form input,.access-form select,.preview-picker select,.add-student-panel input{font-size:16px}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .quick-points{row-gap:9px}
  .submit-button,.request-form>.small-button,.production-form>.small-button,.access-form>.small-button,.category-form>.small-button{width:100%;justify-content:center}
  .review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .review-actions>*{width:100%;text-align:center;justify-content:center}
  .admin-records-list .record-item{grid-template-columns:30px minmax(0,1fr) auto}
}
@media(max-width:380px){
  .portal-shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .portal-nav{gap:8px;justify-content:space-between}
  .nav-tab{padding-left:4px;padding-right:4px;font-size:12px}
  .organization-logos .theatre-logo{width:92px;height:52px}
  .organization-logos .tech-logo{width:52px;height:52px}
  .surface{padding:14px}
  .summary-card{padding:10px 8px}
  .summary-card strong{font-size:17px}
}

/* Phase 1 authentication gate; the existing portal styles remain unchanged. */
[hidden]{display:none!important}
.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--paper)}
.auth-card{width:min(100%,440px);padding:32px}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 auto 22px}
.auth-brand img:first-child{width:146px;height:82px;object-fit:contain}
.auth-brand img:last-child{width:86px;height:86px;object-fit:contain}
.auth-card h1,.connected-status h1{font:700 26px Manrope,sans-serif;letter-spacing:-.8px;margin:0 0 10px}
.auth-status,.connection-note{color:var(--muted);font-size:13px;line-height:1.6}
.auth-form{display:grid;gap:14px;margin-top:20px}
.auth-form label{display:grid;gap:6px;color:#61716e;font-size:12px;font-weight:600}
.auth-form input{width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);font:500 14px 'DM Sans',sans-serif}
.auth-form input:focus{outline:3px solid #e6f0fc;border-color:#78aee3}
.auth-form .submit-button{width:100%}
.demo-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:24px;padding-top:18px;color:#84918e;font-size:11px}
.demo-exit-button{margin-left:10px;border:1px solid #ead79c;border-radius:5px;background:transparent;color:#856a24;padding:4px 7px;font:600 10px 'DM Sans',sans-serif;cursor:pointer}
.connected-status{margin:38px auto;max-width:760px;padding:30px}
.connected-status .eyebrow{margin-bottom:8px}
.connection-note{margin:20px 0 0;padding:14px;background:#f1f5fb;border-radius:9px}
@media(max-width:620px){.auth-gate{padding:16px}.auth-card{padding:23px}.auth-brand img:first-child{width:120px;height:70px}.auth-brand img:last-child{width:72px;height:72px}.connected-status{margin:24px auto;padding:20px}}

/* Live Supabase administrator workspace; demo portal styling above is preserved. */
.live-admin-dashboard{padding:20px 0 34px}
.live-admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 0 22px}
.live-admin-heading h1{font:700 clamp(27px,3vw,36px) Manrope,sans-serif;letter-spacing:-1.3px;margin:0 0 8px}
.live-admin-tabs{display:flex;gap:7px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 14px;padding:0 0 9px;scrollbar-width:thin}
.live-admin-tabs button{flex:0 0 auto;border:1px solid transparent;border-radius:8px;background:transparent;color:#667982;padding:9px 13px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}
.live-admin-tabs button.active{background:#e9f2fc;border-color:#d9e8f8;color:#1d4f91}
.live-admin-status{min-height:20px;margin:0 0 14px;color:#61758a;font-size:12px}
.live-admin-status.error{color:#a44343}
.live-admin-panel{display:grid;gap:16px}
.live-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.live-admin-card{min-width:0}
.live-search-label,.live-review-controls label,.live-review-card>label,.live-production-form label,.live-production-row label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600;min-width:0}
.live-search-label{max-width:520px;margin:0 0 14px}
.live-search-label input,.live-search-label select,.live-review-controls input,.live-review-controls select,.live-review-controls textarea,.live-review-card>label textarea,.live-production-form input,.live-production-form select,.live-production-row input,.live-production-row select{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;font:500 13px 'DM Sans',sans-serif}
.live-search-label input:focus,.live-search-label select:focus,.live-review-controls input:focus,.live-review-controls select:focus,.live-review-controls textarea:focus,.live-review-card>label textarea:focus,.live-production-form input:focus,.live-production-form select:focus,.live-production-row input:focus,.live-production-row select:focus{outline:3px solid #e6f0fc;border-color:#78aee3}
.live-student-list{display:grid}
.live-student-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,auto) auto;align-items:center;gap:14px;border-top:1px solid #edf1f7;padding:13px 0}
.live-student-row>div{min-width:0}.live-student-row>div>strong{display:block;font-size:13px}.live-student-meta{display:block;margin-top:4px;color:#77878b;font-size:11px}.live-student-points{color:#1d4f91;font:700 16px Manrope,sans-serif;white-space:nowrap}
.live-review-list{display:grid;gap:12px}
.live-review-card{min-width:0;border:1px solid #e8eef4;border-radius:11px;padding:15px;background:#fbfcfe}
.live-review-heading{display:flex;justify-content:space-between;gap:12px}.live-review-heading strong,.live-review-heading span{display:block;overflow-wrap:anywhere}.live-review-heading strong{font-size:13px}.live-review-heading span{margin-top:5px;color:#77878b;font-size:11px}
.live-review-card>p:not(.live-review-message){margin:10px 0;color:#64757b;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.live-review-controls{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(180px,1.45fr);gap:10px;margin:12px 0}
.live-review-controls>label:last-child{grid-column:1/-1}
.live-review-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
.live-review-message,.live-production-message{min-height:18px;margin:8px 0 0;color:#637a8b;font-size:11px;line-height:1.45}
.live-achievement-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:0 0 7px;padding:14px;border-radius:9px;background:#eef5fc;color:#1d4f91;font-size:13px}
.live-achievement-summary span{font-weight:600}
.live-production-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr auto;align-items:end;gap:10px;padding:14px 0 20px;border-bottom:1px solid var(--line)}
.live-production-form .small-button{min-height:40px;white-space:nowrap}.live-production-form .live-production-message{grid-column:1/-1}
.live-production-list{display:grid;gap:10px;padding-top:16px}
.live-production-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.1fr 1.2fr auto;align-items:end;gap:9px;padding:12px;border:1px solid #edf1f7;border-radius:10px;background:#fbfcfe}
.live-production-row .live-production-message{grid-column:1/-1}
.live-note{margin:14px 0 0;padding:12px;border-radius:8px;background:#f3f6fa;color:#657781;font-size:11px;line-height:1.55}
#live-account-email{margin:0 0 8px;font:700 20px Manrope,sans-serif;overflow-wrap:anywhere}
#live-account-detail{margin:0 0 18px}
@media(max-width:900px){.live-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-production-form,.live-production-row{grid-template-columns:repeat(2,minmax(0,1fr))}.live-production-form button,.live-production-row button{grid-column:1/-1}}
@media(max-width:620px){.live-admin-dashboard{padding-top:12px}.live-admin-heading{align-items:flex-start}.live-admin-heading>.quiet-button{white-space:nowrap}.live-admin-tabs{margin-right:-2px}.live-admin-tabs button{padding:9px 10px}.live-stat-grid{gap:9px}.live-stat-grid .summary-card{min-height:82px}.live-student-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}.live-student-points{grid-column:1;grid-row:2;font-size:14px}.live-student-row>.small-button{grid-column:2;grid-row:1/3}.live-review-controls{grid-template-columns:minmax(0,1fr)}.live-review-controls>label:last-child{grid-column:auto}.live-production-form,.live-production-row{grid-template-columns:minmax(0,1fr)}.live-production-form button,.live-production-row button{grid-column:auto;width:100%}.live-admin-card{padding:15px}.live-achievement-summary{display:grid}}

.live-student-dashboard{max-width:1180px;margin:0 auto;padding:28px 0 60px}
.live-student-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px}
.live-student-welcome h1{margin:0;color:#193b62;font:700 clamp(25px,4vw,36px) Manrope,sans-serif;letter-spacing:-.04em}
.live-student-welcome .subhead{margin:8px 0 0}
.student-progress-summary{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:14px;margin:18px 0 22px}
.student-progress-card{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:150px;padding:22px;border:1px solid #e2eaf3;border-radius:15px;background:#fff;box-shadow:0 10px 28px #173b6310}
.student-recognition-card{border-color:#9dbddd;background:linear-gradient(145deg,#f1f7fd,#fff);box-shadow:0 10px 28px #173b6318}.student-recognition-card .eyebrow{color:#245f96}.student-recognition-card>strong{color:#173e68;font-size:clamp(22px,2.8vw,31px)}.recognition-level-detail{display:block;color:#5b7188;font-size:11px;line-height:1.5}
.stat-current-recognition{display:flex;align-items:flex-start;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid #ffffff55}.stat-current-recognition>img{width:47px;height:47px;flex:none;object-fit:contain}.stat-current-recognition>div{display:grid;gap:4px;min-width:0}.stat-current-recognition b{font:700 13px/1.3 Manrope,sans-serif;color:#fff;overflow-wrap:anywhere}.stat-current-recognition small{font-size:10px;line-height:1.4;color:#dceaf8!important}
.student-progress-card>strong{color:#183e68;font:700 clamp(20px,2.6vw,29px) Manrope,sans-serif;line-height:1.2;overflow-wrap:anywhere}
.student-progress-card>span:not(.eyebrow){color:#71818d;font-size:12px}
.student-progress-primary{background:linear-gradient(145deg,#173e68,#2d6499);border-color:#173e68}.student-progress-primary .eyebrow,.student-progress-primary>strong,.student-progress-primary>span:not(.eyebrow){color:white}
.student-progress-bar{height:7px;width:100%;overflow:hidden;border-radius:9px;background:#e8eff7}.student-progress-bar span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#55a7dc,#f0c26e);transition:width .25s ease}
.student-progress-card small{color:#697f8e;font-size:11px;line-height:1.45}
.student-stage-section,.student-milestone-section{margin:0 0 20px;padding:22px}
.student-stage-current{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:14px 0;padding:15px 18px;border-radius:12px;background:linear-gradient(110deg,#edf5fc,#f8f4ed)}
.student-stage-current>div:first-child{display:grid;gap:5px}.stage-current-label,.stage-next-callout>span{color:#58738b;font-size:9px;font-weight:800;letter-spacing:.14em}
.student-stage-current strong{color:#1d456d;font:700 17px Manrope,sans-serif}.student-stage-current>div:first-child>span:last-child,.stage-next-callout small{color:#71818d;font-size:11px;line-height:1.45}
.stage-next-callout{display:grid;gap:5px;text-align:right}.stage-next-callout strong{font-size:14px}
.student-stage-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-top:14px}
.student-stage-card{min-width:0;overflow:hidden;border:1px solid #e4ebf2;border-radius:12px;background:#fbfcfe;opacity:.72;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.student-stage-card.is-current{opacity:1;transform:translateY(-3px);border-color:#4c84b4;box-shadow:0 8px 20px #1b4d781c}.student-stage-card.is-past{opacity:.88}
.stage-art{display:block;width:100%;height:auto;background:#eaf2fb}.stage-card-caption{display:grid;gap:4px;padding:10px}.stage-card-caption span{color:#688098;font-size:8px;font-weight:800;letter-spacing:.12em}.stage-card-caption strong{color:#24496c;font:700 11px/1.35 Manrope,sans-serif}.stage-card-caption small{color:#798994;font-size:9px;line-height:1.4}
.live-student-milestones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.recognition-badge{display:block;flex:none;object-fit:contain}.recognition-badge-feature{width:72px;height:72px;margin:2px 0}.recognition-badge-stat{width:47px;height:47px}.recognition-badge-path{width:48px;height:48px}.recognition-badge-demo{width:42px;height:42px}.recognition-badge.is-muted{filter:grayscale(1) opacity(.38)}.recognition-badge.is-current{filter:drop-shadow(0 2px 4px #b8862a55)}.student-milestone.is-current,.milestone.is-current{border-color:#6496c2;box-shadow:0 0 0 2px #dceafa}.student-milestone.is-next,.milestone.is-next{border-style:dashed;border-color:#a8bfd6}.live-student-milestones .student-milestone{grid-template-columns:48px 54px minmax(0,1fr) 22px}.demo-milestone-copy{display:grid;gap:2px;min-width:0;flex:1}.demo-milestone-copy>b{font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.earned-awards-panel{margin:0 0 20px;padding:20px}.earned-awards-panel .section-top{margin-bottom:12px}.earned-awards-list{display:flex;flex-wrap:wrap;align-items:center;gap:9px;min-height:38px}.earned-award{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #cfe0ef;border-radius:999px;background:#f2f8fc;color:#24496c;font-size:12px;font-weight:700}.earned-award>span{color:#d39a2e}.earned-award small{color:#71818d;font-size:10px;font-weight:600}.demo-earned-awards{margin:18px 0}.demo-current-recognition{display:block;margin:0 0 12px;color:#183e68;font:700 20px Manrope,sans-serif}
.student-milestone{display:grid;grid-template-columns:54px minmax(0,1fr) 22px;align-items:center;gap:11px;padding:12px;border:1px solid #e8edf2;border-radius:10px;background:#fbfcfe}.student-milestone.is-earned{background:#f2f8fc;border-color:#cfe0ef}
.milestone-points{color:#1e5790;font:700 12px Manrope,sans-serif;white-space:nowrap}.student-milestone strong,.student-milestone small{display:block;overflow-wrap:anywhere}.student-milestone strong{color:#29465d;font-size:11px}.student-milestone small{margin-top:4px;color:#75848d;font-size:10px;line-height:1.4}.milestone-check{color:#348162;font-size:17px;font-weight:800;text-align:center}
.live-student-content-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:start;gap:16px}.live-student-content-grid>.surface{min-width:0;padding:20px}
.test-student-setup h3{margin:18px 0 6px;color:#29465d;font:700 15px Manrope,sans-serif}.test-student-setup p:not(.eyebrow){max-width:760px}.test-student-link{margin-top:18px;padding-top:16px;border-top:1px solid #e7edf4}.test-student-link-form{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:11px;margin-top:12px}.test-student-link-form label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600;min-width:0}.test-student-link-form label input,.test-student-link-form label select,.test-student-form input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px 11px;font:500 13px 'DM Sans',sans-serif}.test-student-link-form label:nth-child(3){grid-column:1/-1}.test-student-link-form .live-production-message{grid-column:1/-1}.test-student-form{grid-template-columns:1fr 1fr auto}.test-student-form .live-production-message{grid-column:1/-1}
.live-student-content-grid .record-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:13px 0;border-top:1px solid #edf1f7}.live-student-content-grid .record-row>div{min-width:0}.live-student-content-grid .record-row strong,.live-student-content-grid .record-row span{display:block;overflow-wrap:anywhere}.live-student-content-grid .record-row strong{color:#29465d;font-size:12px}.live-student-content-grid .record-row span{margin-top:5px;color:#75848d;font-size:10px;line-height:1.45}.live-student-content-grid .record-row>b{color:#1d4f91;font-size:11px;white-space:nowrap}
.student-request-history{display:grid;gap:10px}.student-request-row{padding:12px;border:1px solid #e8edf2;border-radius:10px;background:#fbfcfe}.student-request-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.student-request-heading strong{color:#29465d;font-size:12px}.student-request-row p{margin:8px 0;color:#657781;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.student-request-row>small{color:#75848d;font-size:10px;line-height:1.45}.request-status-badge{flex:none;border-radius:99px;padding:4px 8px;background:#edf2f7;color:#5d7180;font-size:9px;font-weight:800;text-transform:capitalize}.status-pending{background:#fff3d8;color:#8a6212}.status-approved{background:#e5f4ec;color:#28714d}.status-rejected{background:#f9e8e8;color:#9b4545}
@media(max-width:900px){.live-student-dashboard{padding:20px 0 45px}.student-stage-track{grid-template-columns:repeat(3,minmax(0,1fr))}.live-student-milestones{grid-template-columns:1fr}}
@media(max-width:620px){.live-student-welcome{align-items:flex-start;flex-direction:column;gap:12px}.live-student-welcome>.quiet-button{width:100%;min-height:42px}.student-progress-summary{grid-template-columns:1fr 1fr;gap:9px}.student-progress-card{min-height:116px;padding:15px}.student-progress-card:last-child{grid-column:1/-1}.student-stage-section,.student-milestone-section{padding:15px}.student-stage-current{align-items:flex-start;flex-direction:column}.stage-next-callout{text-align:left}.student-stage-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stage-card-caption{padding:8px}.live-student-content-grid{grid-template-columns:1fr}.live-student-content-grid>.surface{padding:15px}.live-student-milestones .student-milestone{grid-template-columns:40px 44px minmax(0,1fr) 18px;gap:6px;padding:8px}.recognition-badge-path{width:40px;height:40px}.milestone-points{font-size:10px}}
@media(max-width:620px){.test-student-form,.test-student-link-form{grid-template-columns:minmax(0,1fr)}.test-student-link-form label:nth-child(3),.test-student-link-form .live-production-message,.test-student-form .live-production-message{grid-column:auto}.student-test-setup{padding:15px}}
.section-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.add-student-form{grid-template-columns:1.2fr 1fr auto;margin:4px 0 16px;padding:14px;border:1px solid #e4ebf2;border-radius:11px;background:#f8fafc}.add-student-form input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px 11px;font:500 13px 'DM Sans',sans-serif}.add-student-form .live-production-message{grid-column:1/-1}
.test-dropdown-help{color:#71818d;font-size:10px;font-weight:400;line-height:1.45}
.student-request-submit{margin:18px 0;padding:22px}.live-student-request-form{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:13px}.live-student-request-form>label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600;min-width:0}.live-student-request-form input,.live-student-request-form select,.live-student-request-form textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;font:500 13px 'DM Sans',sans-serif}.live-student-request-form input:focus,.live-student-request-form select:focus,.live-student-request-form textarea:focus{outline:3px solid #e6f0fc;border-color:#78aee3}.live-student-request-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px}.live-student-request-fields label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600}.live-student-request-form>.live-student-request-fields,.live-student-request-form>#live-request-guidance,.live-student-request-form>.live-production-message{grid-column:1/-1}.live-student-request-form>.small-button{justify-self:start;min-height:40px}.live-production-message.error{color:#a44343}
@media(max-width:620px){.add-student-form{grid-template-columns:minmax(0,1fr)}.add-student-form .live-production-message{grid-column:auto}.section-actions{gap:6px}.section-actions .small-button{padding:9px 10px}}
@media(max-width:620px){.student-request-submit{padding:15px}.live-student-request-form{grid-template-columns:minmax(0,1fr)}.live-student-request-form>.live-student-request-fields,.live-student-request-form>#live-request-guidance,.live-student-request-form>.live-production-message{grid-column:auto}.live-student-request-fields{grid-template-columns:1fr}}
.admin-award-surface{margin-bottom:16px}.admin-award-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px}.admin-award-form>label{display:grid;gap:6px;color:#61716e;font-size:11px;font-weight:600;min-width:0}.admin-award-form input,.admin-award-form select,.admin-award-form textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;font:500 13px 'DM Sans',sans-serif}.admin-award-form textarea{resize:vertical}.admin-award-wide{grid-column:1/-1}.admin-award-form>.small-button{justify-self:start;min-height:40px}.admin-award-form .live-production-message{margin:0}@media(max-width:760px){.admin-award-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.admin-award-form{grid-template-columns:minmax(0,1fr)}.admin-award-wide{grid-column:auto}}
