:root{--ink:#28252a;--muted:#77737a;--wine:#8c4d68;--wine-dark:#63364a;--blush:#f3e5eb;--paper:#fbfaf8;--line:#e7e2df;--teal:#2d8c79;--gold:#b98a3d;--danger:#a44b52;--sidebar:#242126}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h2{font-size:30px;margin:.3rem 0}.eyebrow{color:var(--wine);font-size:10px;font-weight:800;letter-spacing:.18em}.muted,.empty{color:var(--muted)}.wide{width:100%}.card{background:white;border:1px solid var(--line);border-radius:7px}.btn{border:0;border-radius:4px;padding:12px 18px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px}.btn.primary{background:var(--wine);color:white;box-shadow:0 7px 18px #8c4d6825}.btn.primary:hover{background:var(--wine-dark)}.btn.secondary{border:1px solid var(--line);background:white;color:#625e63}.btn.danger{border:1px solid #dec0c4;background:white;color:var(--danger)}.btn.danger.solid{background:var(--danger);color:white}.btn.wide{width:100%;justify-content:space-between}.flash{padding:13px 16px;margin:0 0 16px;border-radius:5px;font-size:12px;word-break:break-word}.flash.success{background:#e5f2eb;color:#2f7254}.flash.error{background:#f8e9ea;color:#944048}.flash.warning{background:#f8eedc;color:#8f6a2d}.flash.info{background:#e9eff6;color:#486b91}
.brand{display:flex;align-items:center;gap:9px;margin:0 11px 44px}.brand img{width:40px;height:40px;object-fit:contain}.brand>span{display:grid;grid-template-columns:auto auto;font-family:Georgia,serif;line-height:.9}.brand b{font-size:19px;letter-spacing:.04em}.brand em{font-size:27px;color:#d9a4bb;margin:-4px 0 0 3px}.brand small{grid-column:1/3;font-family:Arial,sans-serif;font-size:6px;letter-spacing:.32em;margin-top:5px}.brand.light{color:white}
.public-brand{font:700 22px Georgia,serif;letter-spacing:.06em}.public-brand>span{font-size:30px;color:#d8a2ba;margin-left:3px}.public-brand small{display:block;font:7px Arial,sans-serif;letter-spacing:.35em;margin-top:5px}
.app-shell{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:white;padding:31px 22px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:238px;z-index:10}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:12px;color:#aaa5aa;padding:11px 12px;border-radius:5px;font-size:12px}.sidebar nav a:hover,.sidebar nav a.active{background:#3a333a;color:white}.sidebar nav a.active{box-shadow:inset 3px 0 var(--wine)}.sidebar nav a b{margin-left:auto;background:var(--wine);color:white;border-radius:20px;padding:2px 7px;font-size:9px}.nav-icon{font-size:18px;width:21px;text-align:center}.side-photo{margin-top:auto;position:relative;height:120px;border-radius:6px;overflow:hidden}.side-photo img{width:100%;height:100%;object-fit:cover}.side-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#292128)}.side-photo div{position:absolute;z-index:1;bottom:14px;left:14px;display:flex;flex-direction:column}.side-photo strong{font:15px Georgia,serif}.side-photo span{font-size:8px;color:#ddd}.logout{border:0;background:none;color:#aaa5aa;padding:15px 12px 0;display:flex;align-items:center;gap:12px}.main-area{grid-column:2;min-width:0}.topbar{height:95px;background:white;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.topbar p{font-size:9px;font-weight:700;letter-spacing:.18em;color:#999;margin:0 0 5px}.topbar h1{font-size:27px;margin:0}.user-chip{display:flex;align-items:center;gap:9px}.user-chip>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--wine);font:13px Georgia,serif}.user-chip div{display:flex;flex-direction:column}.user-chip strong{font-size:10px}.user-chip small{font-size:8px;color:#999;margin-top:3px}.content{padding:27px 38px 44px;max-width:1500px;margin:auto}
.hero-strip{height:205px;position:relative;border-radius:7px;overflow:hidden;color:white;display:flex;align-items:center;padding:38px 43px}.hero-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 43%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#16282de6,#302f3666,#61254980)}.hero-strip>div:last-child{position:relative}.hero-strip span{font-size:9px;letter-spacing:.22em}.hero-strip h2{font-size:31px;margin:9px 0 5px}.hero-strip p{font-size:11px;color:#eee}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:17px 0}.stats article{display:flex;gap:13px;background:white;border:1px solid var(--line);border-radius:6px;padding:19px 16px}.stat-icon{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;font-size:17px;flex:0 0 auto}.rose{background:#f3e5eb;color:var(--wine)}.teal{background:#e2f1ef;color:var(--teal)}.gold{background:#f5ecdb;color:var(--gold)}.gray{background:#eee;color:#777}.stats small{font-size:8px;font-weight:800;letter-spacing:.12em;color:#999}.stats strong{font:27px Georgia,serif;display:block;margin:4px 0}.stats p{font-size:8px;color:#999;margin:0}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel{padding:24px}.panel-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:15px}.panel-head h3,.panel h3{font-size:20px;margin:6px 0}.panel-head a{font-size:9px;font-weight:700;color:var(--wine)}.list-row{display:grid;grid-template-columns:38px 1fr auto 12px;align-items:center;gap:11px;border-top:1px solid #eee;padding:11px 3px}.list-row div{display:flex;flex-direction:column}.list-row strong{font-size:10px}.list-row small,.list-row time{font-size:8px;color:#999}.avatar{width:35px;height:35px;border-radius:50%;display:inline-grid;place-items:center;background:var(--blush);color:var(--wine);font-size:9px;font-weight:800;flex:0 0 auto}
.dashboard-actions{margin:0 0 18px}.dashboard-warning{margin-bottom:18px}.dashboard-warning a{font-weight:700;text-decoration:underline;margin-left:4px}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.flash.compact{margin:14px 0 0;padding:10px 12px}
.manual-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:12px;background:#fff5f5;border:1px solid #ecd1d4;border-radius:5px}.manual-confirm input{width:auto;margin:2px 0}
.student-review-warning{display:flex;align-items:center;justify-content:space-between;gap:20px}.student-review-warning strong{display:block;margin-bottom:5px}.student-review-warning p{margin:3px 0;line-height:1.45}.student-review-warning .btn{flex:none;background:white}
.attention-filter-notice{display:flex;align-items:center;justify-content:space-between;gap:18px}.attention-filter-notice .btn{flex:none;background:white}.needs-attention{background:#fffaf1}.attention-cell{min-width:150px}.attention-badge{display:inline-block;margin:2px 4px 2px 0;padding:5px 8px;border-radius:20px;background:#f8eedc;color:#8f6a2d;font-size:8px;font-weight:700}.review-ok{color:var(--teal);font-size:9px;font-weight:700}
@media(max-width:600px){.student-review-warning,.attention-filter-notice{align-items:stretch;flex-direction:column}.student-review-warning .btn,.attention-filter-notice .btn{width:100%}}
.toggle-label span{display:flex;flex-direction:column;gap:3px}.toggle-label small{color:var(--muted);font-weight:400;line-height:1.4}
.withdrawal-documents{margin-top:14px}.withdrawal-document-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-top:1px solid var(--line)}.withdrawal-document-row div{display:flex;flex-direction:column;gap:4px}.withdrawal-document-row span{font-size:9px;color:var(--muted)}.withdrawal-document-row p{margin:3px 0 0}.document-page{background:#eee;padding:30px}.signed-document{width:min(800px,100%);margin:auto;background:white;padding:52px;box-shadow:0 10px 35px #0002}.signed-document header{display:flex;justify-content:space-between;align-items:start;margin-bottom:70px}.signed-document h1{font-size:38px;margin:10px 0 35px}.document-details{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.document-details>div{padding:18px 0;border-top:1px solid var(--line)}.document-details .wide{grid-column:1/3}.document-details dt{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.document-details dd{font-size:14px;margin:8px 0 0;line-height:1.6}.signature-block dd{font:italic 25px Georgia,serif;color:var(--wine)}.signature-block small{color:var(--muted)}.signed-document footer{margin-top:70px;padding-top:18px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
@media(max-width:760px){.withdrawal-document-row{align-items:stretch;flex-direction:column}.document-page{padding:0}.signed-document{padding:30px 20px;box-shadow:none}.document-details{grid-template-columns:1fr}.document-details .wide{grid-column:auto}}
@media print{.document-page{background:white;padding:0}.signed-document{width:100%;padding:0;box-shadow:none}.no-print{display:none!important}}
.summer-program-card{display:block;padding:24px}.summer-program-card h3{font-size:24px;margin:8px 0}.summer-program-card>p{color:var(--muted)}.summer-program-card>div{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:baseline;gap:6px 10px;margin-top:22px}.summer-program-card>div strong{font:25px Georgia,serif;color:var(--wine)}.summer-program-card>div small{color:var(--muted)}.summer-weeks{display:grid;gap:12px}.summer-week-card{display:grid;grid-template-columns:1fr 190px auto;align-items:center;gap:24px;padding:22px}.week-number{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--wine);font-weight:800;float:left;margin-right:12px}.summer-week-card h3{font-size:21px;margin:3px 0}.summer-week-card p{font-size:10px;color:var(--muted);margin:3px 0}.summer-week-settings{margin-bottom:14px}.summer-week-settings .btn{margin-top:15px}.summer-config-grid{margin-bottom:14px}.summer-option{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.summer-option span{font-size:10px;color:var(--muted)}.mini-form{display:grid;grid-template-columns:2fr 1fr 1fr;gap:7px;margin-top:18px}.mini-form .btn{grid-column:1/4}.summer-enroll-panel{margin-bottom:14px}.summer-enroll-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.summer-enroll-form .wide{grid-column:1/5}.summer-enroll-form>button{grid-column:4}.badge.waiting{background:#f5ecdb;color:#936c2c}.badge.cancelled{background:#eee;color:#777}
@media(max-width:900px){.summer-week-card{grid-template-columns:1fr 150px}.summer-week-card>.btn{grid-column:1/3}.summer-enroll-form{grid-template-columns:1fr 1fr}.summer-enroll-form .wide,.summer-enroll-form>button{grid-column:1/3}.mini-form{grid-template-columns:1fr 1fr}.mini-form .btn{grid-column:1/3}}
@media(max-width:600px){.summer-week-card{grid-template-columns:1fr}.summer-week-card>.btn{grid-column:auto}.summer-enroll-form{grid-template-columns:1fr}.summer-enroll-form .wide,.summer-enroll-form>button{grid-column:auto}.mini-form{grid-template-columns:1fr}.mini-form .btn{grid-column:auto}}
.copy-config-form{display:flex;justify-content:flex-end;margin:-4px 0 14px}.summer-option-edit,.summer-service-edit{display:grid;grid-template-columns:2fr repeat(4,1fr) auto auto;align-items:center;gap:6px;padding:10px 0;border-top:1px solid var(--line)}.summer-service-edit{grid-template-columns:2fr 1fr 1fr auto auto}.summer-option-edit label,.summer-service-edit label{display:flex;align-items:center;gap:4px;font-size:9px}.summer-option-edit input[type=checkbox],.summer-service-edit input[type=checkbox]{width:auto;margin:0}
@media(max-width:900px){.summer-option-edit,.summer-service-edit{grid-template-columns:1fr 1fr}.summer-option-edit .btn,.summer-service-edit .btn{grid-column:1/3}}
@media(max-width:600px){.summer-option-edit,.summer-service-edit{grid-template-columns:1fr}.summer-option-edit .btn,.summer-service-edit .btn{grid-column:auto}}
.danger-confirmation{width:min(680px,100%);margin:25px auto;padding:42px;text-align:center}.danger-confirmation .danger-symbol{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#f8e7e9;color:var(--danger);font:32px Georgia,serif}.danger-confirmation h2{font-size:31px;margin:10px 0 20px}.danger-confirmation>p{color:var(--muted);line-height:1.65}.danger-confirmation form{margin-top:28px;text-align:left}.danger-confirmation.final{border-color:#d9a9ae;box-shadow:0 18px 50px #a44b5218}.danger-confirmation.final input{text-transform:uppercase;font-weight:800;letter-spacing:.15em;text-align:center}.danger-confirmation .modal-actions{margin-top:25px}
.page-head,.split-head{display:flex;justify-content:space-between;align-items:end;margin:8px 0 22px}.page-head p,.split-head p{color:var(--muted);margin:.4rem 0}.table-card{overflow:hidden}.filters{display:flex;gap:10px;padding:18px}.filters input{flex:1}.filters select{width:180px}input,select,textarea{border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink);padding:13px 14px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px #8c4d6815}label{font-size:11px;font-weight:700;display:block}label input,label select,label textarea{margin-top:7px;font-weight:400}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th{font-size:8px;letter-spacing:.12em;color:#999;text-align:left;padding:13px 16px;background:#fbfaf9}td{font-size:10px;padding:14px 16px;border-top:1px solid #eee;color:#656165}td:first-child{display:flex;align-items:center;gap:10px;color:var(--ink)}td small{display:block;font-size:8px;color:#999;margin-top:4px}td a{color:var(--wine);font-weight:700}.badge{display:inline-block;border-radius:20px;padding:5px 9px;font-size:8px;font-weight:700}.badge.active,.badge.approved,.badge.submitted{background:#e5f2eb;color:#347357}.badge.inactive,.badge.cancelled,.badge.expired{background:#eee;color:#777}.badge.pending,.badge.sent,.badge.opened{background:#f5ecdb;color:#936c2c}.badge.rejected{background:#f8e7e9;color:#98434a}.back{display:inline-block;color:var(--wine);font-size:10px;font-weight:700;margin-bottom:18px}
.profile-head,.review-head{display:flex;align-items:center;gap:16px;padding:24px;margin-bottom:14px}.big-avatar{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--wine);font:22px Georgia,serif}.profile-head h2,.review-head h2{margin:5px 0}.profile-head p,.review-head p{color:#888;font-size:10px;margin:0}.profile-head>.badge,.review-head>.badge{margin-left:5px}.profile-action{margin-left:auto}.profile-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px}.details{display:grid;grid-template-columns:1fr 1fr;margin:0}.details>div{padding:13px 0;border-top:1px solid #eee}.details .wide{grid-column:1/3}.details dt{font-size:8px;color:#999;margin-bottom:5px}.details dd{font-size:10px;margin:0}.history-item{border-top:1px solid #eee;padding:11px 0;display:grid;grid-template-columns:1fr auto}.history-item strong{font-size:9px}.history-item span{font-size:8px;color:#999}.history-item p{grid-column:1/3;font-size:9px}.modal{border:0;border-radius:7px;padding:0;width:min(470px,90%);box-shadow:0 30px 90px #0005}.modal::backdrop{background:#201d22aa}.modal form{padding:30px}.modal h2{font-size:27px}.modal p{color:#777;font-size:11px;line-height:1.6}.modal textarea{height:80px}.modal-close{position:absolute;right:16px;top:13px;border:0;background:none;font-size:24px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.confirm-modal{overflow:visible}.confirm-modal-content{position:relative;padding:34px;text-align:center}.confirm-modal-icon{width:52px;height:52px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#f8e7e9;color:var(--danger);font:700 28px Georgia,serif}.confirm-modal h2{margin:8px 0 12px}.confirm-modal p{max-width:360px;margin:0 auto}.confirm-modal .modal-actions{justify-content:center;margin-top:26px}.confirm-modal .modal-actions .btn{min-width:120px}
.two-column{display:grid;grid-template-columns:390px 1fr;gap:15px}.invite-form form{display:grid;gap:15px}.callout{background:#faf5f7;border-left:3px solid var(--wine);padding:12px}.callout p{font-size:10px;color:#777;line-height:1.5}.padded{padding-bottom:5px}.tabs{display:flex;gap:5px;margin-bottom:13px}.tabs a{padding:9px 14px;border:1px solid var(--line);background:white;border-radius:4px;font-size:10px}.tabs a.active{background:var(--wine);border-color:var(--wine);color:white}.review-grid{margin-bottom:14px}.consents{display:flex;flex-wrap:wrap;gap:7px}.consents span{font-size:8px;padding:6px 8px;border-radius:20px}.consents .ok{background:#e5f2eb;color:#347357}.consents .no{background:#eee;color:#777}.decision-box{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end}.decision-box h3{font-size:22px;margin:6px 0}.decision-box p{font-size:10px;color:#777}.decision-box textarea{height:60px}.decision-actions{grid-column:1/3;display:flex;justify-content:flex-end;gap:8px}.decision-actions form{margin:0}
.login-page{display:grid;grid-template-columns:57% 43%;min-height:100vh;background:white}.login-visual{position:relative;background:url('hero.jpg') center/cover;color:white;min-height:620px}.visual-overlay{position:absolute;inset:0;background:linear-gradient(100deg,#14282bb8,#27263330 50%,#66234f66)}.login-logo{position:absolute;top:48px;left:58px}.hero-copy{position:absolute;left:8%;bottom:15%}.hero-copy>p{font-size:10px;letter-spacing:.35em;font-weight:700}.hero-copy h1{font-size:58px;line-height:1.04;margin:18px 0}.hero-copy h1 i{color:#e6b5c9;font-weight:400}.hero-copy>span{color:#eee}.visual-foot{position:absolute;bottom:33px;left:8%;font-size:9px;letter-spacing:.18em}.login-panel{display:flex;align-items:center;justify-content:center;padding:45px 8%}.login-card{width:100%;max-width:410px}.login-card h2{font-size:37px;margin:10px 0}.login-card>p{color:#777}.login-card form{display:grid;gap:17px;margin-top:28px}
.public-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#f5eef1,#f8f7f4);padding:20px}.install-card{width:min(590px,100%);padding:42px}.install-card .public-brand{margin-bottom:42px}.install-card h1{font-size:36px}.install-card p{color:#666;line-height:1.65}.success-mark{width:70px;height:70px;display:grid;place-items:center;background:#e5f2eb;color:#347357;border-radius:50%;font-size:35px;margin:0 auto 22px}.success-page{text-align:center}.public-header{height:80px;background:var(--sidebar);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1050px)/2));}.public-header>span{font-size:10px;color:#ccc;letter-spacing:.1em}.registration-page{background:#f8f6f4}.registration-wrap{max-width:1050px;margin:auto;padding:45px 22px 70px}.registration-intro{max-width:720px;margin-bottom:28px}.registration-intro h1{font-size:42px;margin:10px 0}.registration-intro p{color:#666;line-height:1.7}.registration-form{display:grid;gap:15px}.form-section{padding:30px;display:grid;grid-template-columns:50px 1fr;gap:10px 20px}.step{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:white;font-weight:700}.section-title h2{font-size:24px;margin:5px 0 20px}.form-grid,.checkbox-list,.signature{grid-column:2}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .wide{grid-column:1/3}.form-grid textarea{height:85px;resize:vertical}.checkbox-list{display:grid;gap:8px}.checkbox-list label{display:flex;gap:12px;border:1px solid #eee;border-radius:5px;padding:13px}.checkbox-list input{width:auto;accent-color:var(--wine);margin:2px 0}.checkbox-list span{display:flex;flex-direction:column}.checkbox-list small{font-weight:400;color:#777;margin-top:4px;line-height:1.4}.signature{margin-top:15px}.submit-area{display:flex;align-items:center;justify-content:space-between;padding:15px 0}.submit-area p{font-size:10px;color:#777}
@media(max-width:1050px){.stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.two-column{grid-template-columns:1fr}.login-page{grid-template-columns:50% 50%}.hero-copy h1{font-size:45px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;inset:auto 0 0;width:auto;height:68px;padding:7px 10px;flex-direction:row}.sidebar>.brand,.side-photo,.sidebar>form{display:none}.sidebar nav{flex-direction:row;width:100%;justify-content:space-around}.sidebar nav a{flex-direction:column;font-size:8px;gap:1px;padding:5px}.sidebar nav a b{display:none}.main-area{padding-bottom:75px}.topbar{height:76px;padding:0 18px}.topbar h1{font-size:22px}.user-chip div{display:none}.content{padding:20px 15px}.hero-strip{height:220px;padding:25px}.stats{grid-template-columns:1fr 1fr}.profile-grid,.decision-box{grid-template-columns:1fr}.decision-actions{grid-column:auto}.profile-head,.review-head{flex-wrap:wrap}.profile-action{width:100%;margin-left:0}.details .wide{grid-column:auto}.details{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.form-section{grid-template-columns:40px 1fr;padding:22px 16px}.login-page{display:block}.login-visual{min-height:330px}.login-panel{padding:40px 25px}.hero-copy{left:25px;bottom:35px}.hero-copy h1{font-size:35px}.login-logo{left:25px;top:25px}.visual-foot{display:none}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.filters select{flex:1}.page-head{align-items:start}.table-scroll table{min-width:760px}.public-header{padding:0 20px}.public-header>span{display:none}.submit-area{align-items:flex-start;gap:15px}.registration-intro h1{font-size:34px}}
@media(max-width:440px){.stats{grid-template-columns:1fr}.form-section{display:block}.step{margin-bottom:15px}.form-grid,.checkbox-list,.signature{grid-column:auto}.submit-area{flex-direction:column}.submit-area .btn{width:100%}.profile-head>.badge{margin-left:auto}}

/* Formularis administratius i equip */
.admin-form{overflow:hidden;margin-bottom:30px}.admin-form-section{padding:30px 34px;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.section-heading>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--wine);font-size:10px;font-weight:800;flex:none}.section-heading h3{margin:0 0 4px;font-size:23px}.section-heading p{margin:0;color:var(--muted);font-size:11px}.admin-form textarea{min-height:95px;resize:vertical}.field-error{display:block;color:var(--danger);font-weight:600;margin-top:6px}.sticky-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:18px 34px;background:#fffdfbeF;border-top:1px solid var(--line);backdrop-filter:blur(8px);z-index:2}.toggle-label{display:flex;align-items:center;gap:10px;align-self:end;min-height:44px}.toggle-label input{width:auto;margin:0}.group-picker{border:1px solid var(--line);border-radius:6px;padding:16px;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.group-picker legend{padding:0 8px;font-size:11px;font-weight:700}.group-picker label{display:flex;gap:9px;align-items:flex-start;padding:10px;border-radius:5px;background:#faf8f7}.group-picker input{width:auto;margin:2px 0}.group-picker span{display:flex;flex-direction:column}.group-picker small{font-weight:400;color:var(--muted);margin-top:3px}.consent-admin{grid-column:auto}.staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.staff-card{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:18px;padding:18px}.staff-photo{width:76px;height:76px;border-radius:6px;object-fit:cover}.staff-photo.placeholder{display:grid;place-items:center;background:var(--blush);color:var(--wine);font:28px Georgia,serif}.staff-copy{min-width:0}.staff-copy h3{font-size:20px;margin:8px 0 4px}.staff-copy p,.staff-copy small{display:block;color:var(--muted);font-size:10px;white-space:normal}.dashboard-grid.single{grid-template-columns:1fr}.teacher-stats{grid-template-columns:minmax(220px,320px)}
@media(max-width:900px){.staff-grid{grid-template-columns:1fr}}
@media(max-width:760px){.admin-form{margin-left:-15px;margin-right:-15px;border-left:0;border-right:0;border-radius:0}.admin-form-section{padding:24px 18px}.admin-form .form-grid{gap:15px}.sticky-actions{padding:14px 18px}.sticky-actions .btn{flex:1}.group-picker{grid-template-columns:1fr}.staff-card{grid-template-columns:60px 1fr}.staff-photo{width:60px;height:60px}.staff-card>.btn{grid-column:1/3;width:100%}.student-create-form input,.student-create-form select,.student-create-form textarea{font-size:16px;min-height:48px}.student-create-form textarea{min-height:100px}.page-head{gap:14px;flex-direction:column}.page-head .btn{width:100%}}
@media(max-width:440px){.admin-form-section{padding:22px 15px}.section-heading h3{font-size:21px}.sticky-actions{padding:12px 15px}.staff-card{padding:14px}}
.advanced-filters{display:grid;grid-template-columns:2fr repeat(5,minmax(110px,1fr)) auto}.advanced-filters select{width:auto}.pagination{display:flex;justify-content:center;gap:6px;margin:18px}.pagination a{padding:8px 11px;border:1px solid var(--line);background:white;border-radius:4px}.pagination a.active{background:var(--wine);color:white}.group-card{padding:22px;display:grid;grid-template-columns:1fr auto;gap:18px}.group-card h3{font-size:22px;margin:7px 0}.group-card p,.group-card small{color:var(--muted)}.capacity-meter{display:flex;flex-direction:column;min-width:140px}.capacity-meter strong{font:24px Georgia,serif}.capacity-meter span{font-size:9px;color:var(--muted)}.capacity-meter progress{width:100%;margin-top:10px;accent-color:var(--wine)}.card-actions{grid-column:1/3;display:flex;gap:8px}.inline-form{display:grid;grid-template-columns:2fr 1fr auto;gap:8px;margin-top:16px}.consent-row{display:grid;grid-template-columns:90px minmax(115px,145px) minmax(0,1fr) minmax(145px,170px);align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--line);min-width:0}.consent-row>strong{font-size:12px}.consent-row label{margin:0;min-width:0}.consent-row input,.consent-row select{min-width:0;margin:0;padding:11px 12px}.consent-row select{padding-right:32px}.consent-row .btn{width:100%;min-width:0;min-height:42px;padding:10px 8px;white-space:nowrap}.consent-help{font-size:10px;line-height:1.55;margin:0 0 13px}.enrollment-item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:16px 0}.enrollment-item strong{font-size:14px}.enrollment-item span{font-size:9px;white-space:nowrap}.enrollment-item>div{display:flex;justify-content:flex-end}.enrollment-item form{display:flex;gap:6px}.enrollment-item .btn{padding:9px 13px;font-size:10px;white-space:nowrap}.forgot-link{text-align:center;color:var(--wine);font-size:11px}.management-grid{grid-template-columns:minmax(390px,2fr) minmax(0,3fr);margin-top:14px}.management-grid>*{min-width:0}.page-actions{display:flex;gap:8px}
@media(max-width:900px){.advanced-filters{grid-template-columns:1fr 1fr}.advanced-filters input:first-child{grid-column:1/3}.group-card{grid-template-columns:1fr}.capacity-meter,.card-actions{grid-column:auto}.inline-form{grid-template-columns:1fr}}
@media(max-width:700px){.consent-row{grid-template-columns:1fr 1fr}.consent-row>strong{grid-column:1/3;font-size:13px}.consent-row .btn{grid-column:1/3}}
.consent-row input[type=checkbox]{width:auto;min-width:auto;margin:0 6px 0 0;padding:0}
.management-grid .inline-form{grid-template-columns:minmax(180px,1fr) 104px 140px;align-items:stretch}
.management-grid .inline-form input[name=academic_year]{min-width:104px;padding:12px 10px;font-size:13px;text-align:center}
.management-grid .inline-form .btn{padding-left:14px;padding-right:14px}
.consent-row select{width:135px;max-width:100%}
@media(max-width:1100px){.management-grid .inline-form{grid-template-columns:minmax(160px,1fr) 100px 125px}.management-grid .inline-form input[name=academic_year]{min-width:100px;font-size:12px}}
@media(max-width:900px){.management-grid .inline-form{grid-template-columns:minmax(0,1fr) 110px 135px}}
@media(max-width:600px){.management-grid .inline-form{grid-template-columns:1fr}.management-grid .inline-form input[name=academic_year]{width:100%;font-size:16px}.consent-row select{width:100%}}
@media(max-width:1200px){.management-grid{grid-template-columns:1fr}.management-grid .inline-form{grid-template-columns:minmax(220px,1fr) 120px 150px}}
@media(max-width:700px){.management-grid .inline-form{grid-template-columns:1fr}.consent-row{grid-template-columns:120px minmax(0,1fr)}.consent-row>strong{grid-column:1}.consent-row label,.consent-row select{grid-column:2}.consent-row input[name=notes]{grid-column:1}.consent-row .btn{grid-column:2}}
.staff-actions{display:flex;gap:8px;align-items:center}.staff-actions form{margin:0}.staff-actions .btn{white-space:nowrap}
@media(max-width:760px){.staff-card>.staff-actions{grid-column:1/3;width:100%}.staff-actions .btn,.staff-actions form{flex:1;width:100%}}
.account-security{max-width:720px;padding:34px}.account-security form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-top:24px}.totp-uri{display:block;overflow-wrap:anywhere;margin:12px 0;padding:12px;background:#f6f3f2}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}.recovery-codes code{padding:12px;text-align:center;background:#f6f3f2;font-size:16px}@media(max-width:600px){.account-security form,.recovery-codes{grid-template-columns:1fr}}
.card-actions form{margin:0}.fee-plan-actions{flex-wrap:wrap}
.management-grid .enrollment-create-form{grid-template-columns:minmax(0,1fr) 92px auto}.enrollment-create-form>*{min-width:0}.enrollment-create-form .btn{padding-inline:16px;white-space:nowrap}
.consent-panel{min-width:0}.consent-panel .consent-help{margin:5px 0 12px}.consent-panel .consent-row{grid-template-columns:88px 100px minmax(180px,1fr) 78px;gap:8px;padding:10px 0}.consent-panel .consent-row>strong{font-size:11px}.consent-panel .consent-row select,.consent-panel .consent-row input:not([type=hidden]){width:100%;min-width:0;height:36px;padding:7px 9px;font-size:11px}.consent-panel .consent-row select{padding-right:25px}.consent-panel .consent-row .btn{width:auto;min-height:36px;padding:7px 12px;font-size:10px}
.movement-history{margin-top:14px;padding:0;overflow:hidden}.movement-history summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 22px;cursor:pointer;list-style:none}.movement-history summary::-webkit-details-marker{display:none}.movement-history summary span:first-child{display:flex;flex-direction:column;gap:4px}.movement-history summary small{color:var(--wine);font-size:9px;font-weight:800;letter-spacing:.16em}.movement-history summary strong{font:18px Georgia,serif}.history-toggle{font-size:10px;color:var(--wine);font-weight:700}.movement-history[open] .history-toggle{font-size:0}.movement-history[open] .history-toggle:after{content:'Amagar historial';font-size:10px}.movement-history-body{padding:0 22px 18px;border-top:1px solid var(--line)}
@container (max-width:560px){.management-grid .enrollment-create-form{grid-template-columns:minmax(0,1fr) 88px}.enrollment-create-form .btn{grid-column:1/3;width:100%}.consent-panel .consent-row{grid-template-columns:minmax(0,1fr) 105px;gap:8px 10px;padding:13px 0}.consent-panel .consent-row>strong{grid-column:1;grid-row:1}.consent-panel .consent-row>select{grid-column:2;grid-row:1}.consent-panel .consent-row>input:not([type=hidden]){grid-column:1/3;grid-row:2;padding-right:9px}.consent-panel .consent-row>.btn{grid-column:2;grid-row:3;justify-self:end;width:64px}}
@media(max-width:600px){.management-grid .enrollment-create-form,.consent-panel .consent-row{grid-template-columns:1fr}.enrollment-create-form .btn,.consent-panel .consent-row>strong,.consent-panel .consent-row>select,.consent-panel .consent-row>input:not([type=hidden]),.consent-panel .consent-row>.btn{grid-column:1;grid-row:auto;width:100%;padding-right:9px}.movement-history summary{padding:16px}}
@media(max-width:480px){.consent-row{grid-template-columns:1fr}.consent-row>strong,.consent-row label,.consent-row select,.consent-row input[name=notes],.consent-row .btn{grid-column:1}.consent-row select{width:100%}}

/* Autoritzacions: una sola fila quan la targeta disposa d'espai suficient. */
.management-grid>.panel{container-type:inline-size}
.consent-row{grid-template-columns:105px 145px minmax(150px,1fr) 180px;column-gap:12px;row-gap:10px}
.consent-row>strong{grid-column:1;grid-row:1}
.consent-row>label,.consent-row>select{grid-column:2;grid-row:1;width:100%}
.consent-row>input:not([type=hidden]){grid-column:3;grid-row:1;width:100%}
.consent-row>.btn{grid-column:4;grid-row:1;width:100%}
@container (max-width:650px){.consent-row{grid-template-columns:120px minmax(0,1fr)}.consent-row>strong{grid-column:1;grid-row:1}.consent-row>label,.consent-row>select{grid-column:2;grid-row:1}.consent-row>input:not([type=hidden]){grid-column:1;grid-row:2}.consent-row>.btn{grid-column:2;grid-row:2}}
@container (max-width:440px){.consent-row{grid-template-columns:1fr}.consent-row>strong,.consent-row>label,.consent-row>select,.consent-row>input:not([type=hidden]),.consent-row>.btn{grid-column:1;grid-row:auto}.consent-row>select{width:100%}}

.invitation-layout{grid-template-columns:340px minmax(0,1fr);align-items:start}.invitation-history{min-width:0}.invitation-history .panel{padding-bottom:14px}.invitation-history .panel p{margin:6px 0 0}.invitation-tabs{padding:0 20px;margin-bottom:12px;overflow-x:auto}.invitation-tabs a{white-space:nowrap}.invitation-filters{display:grid;grid-template-columns:minmax(190px,1fr) 145px 145px auto;gap:8px;padding:0 20px 18px}.invitation-filters input,.invitation-filters select{min-width:0}.invitation-resend{padding:8px 11px}.invitation-history td:last-child form{margin:0}
@media(max-width:1150px){.invitation-layout{grid-template-columns:1fr}.invitation-filters{grid-template-columns:minmax(0,1fr) 150px 150px auto}}
@media(max-width:760px){.invitation-filters{grid-template-columns:1fr 1fr}.invitation-filters input{grid-column:1/3}.invitation-filters .btn{width:100%}}
@media(max-width:480px){.invitation-filters{grid-template-columns:1fr}.invitation-filters input{grid-column:1}.invitation-tabs{padding:0 15px}.invitation-filters{padding-left:15px;padding-right:15px}}
@media(max-width:600px){.enrollment-item{grid-template-columns:1fr auto;gap:7px 12px}.enrollment-item strong{font-size:13px}.enrollment-item>div{grid-column:1/3;justify-content:flex-start}.enrollment-item>div form{width:100%}.enrollment-item .btn{width:100%}}
.school-policy {
  grid-column: 2;
  min-width: 0;
  max-height: 22rem;
  overflow-y: auto;
  margin: 1rem 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--border, #ddd4d7);
  border-radius: 8px;
  background: #faf8f7;
  line-height: 1.55;
}

.school-policy ul {
  margin: 0;
  padding-left: 1.2rem;
}

.school-policy li + li {
  margin-top: .65rem;
}

@media (max-width: 640px) {
  .school-policy {
    max-height: 18rem;
    padding: .85rem 1rem;
  }
}

@media (max-width: 440px) {
  .school-policy {
    grid-column: auto;
    width: 100%;
  }
}

.fee-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.fee-form{display:grid;gap:14px;margin-top:20px}.fee-plans{display:grid;gap:12px}.fee-plan-card{padding:20px}.fee-plan-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.fee-plan-head strong{font-size:10px;color:var(--muted)}.fee-plan-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.fee-plan-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:15px}.fee-plan-actions label{display:flex;align-items:center;gap:7px;font-weight:400}.fee-plan-actions input[type=checkbox]{width:auto;margin:0}.student-fee-panel{margin-top:14px}.student-fee-panel .panel-head{margin-bottom:14px}.fee-amount{font:24px Georgia,serif;color:var(--wine)}.student-fee-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.fee-note{font-size:10px;margin:12px 0 0}
.student-fee-form .fee-field-locked input{background:#f5f2f1;color:#777;cursor:not-allowed}
@media(max-width:900px){.fee-layout{grid-template-columns:1fr}.student-fee-form{grid-template-columns:1fr 1fr}.student-fee-form .btn{grid-column:1/3}.fee-plan-fields{grid-template-columns:1fr 1fr}.fee-plan-fields label:first-child{grid-column:1/3}.fee-plan-actions{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.student-fee-form,.fee-plan-fields{grid-template-columns:1fr}.student-fee-form .btn,.fee-plan-fields label:first-child{grid-column:auto}.student-fee-panel .panel-head{align-items:flex-start;flex-direction:column}.fee-amount{font-size:21px}}
.registration-brand{max-width:1050px;margin:auto;padding:36px 22px 20px;display:flex;align-items:center;gap:28px}.registration-brand img{width:150px}.registration-brand h1{margin:4px 0;font-size:38px}.registration-brand span{color:var(--wine);font-size:11px;font-weight:800;letter-spacing:.16em}.registration-page>.flash,.registration-page>.registration-form{max-width:1050px;margin-left:auto;margin-right:auto}.registration-step{background:#fff;border:1px solid #e6dfdc;border-radius:9px;padding:30px;display:grid;grid-template-columns:50px 1fr;gap:20px}.step-number{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;font-weight:700}.step-content h2{margin:5px 0 20px}.summer-registration-weeks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.summer-registration-weeks label{display:grid;gap:7px;padding:15px;border:1px solid #e7dfdc;border-radius:7px}.summer-registration-weeks small{color:#777}.registration-submit{display:flex;justify-content:space-between;align-items:center;padding:8px 0 55px}.registration-submit p{color:#777;font-size:12px}.public-message{width:min(620px,calc(100% - 32px));margin:10vh auto;padding:50px;text-align:center;background:#fff;border:1px solid #e5deda;border-radius:10px}.public-message img{width:180px;margin-bottom:30px}.summer-profile-enroll{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.summer-profile-enroll label{display:grid;gap:7px}
@media(max-width:700px){.registration-brand{align-items:flex-start;flex-direction:column}.registration-brand h1{font-size:31px}.registration-step{grid-template-columns:1fr;padding:21px}.registration-step .form-grid,.summer-registration-weeks,.summer-profile-enroll{grid-template-columns:1fr}.registration-submit{align-items:stretch;flex-direction:column;gap:10px}.public-message{padding:32px 22px}}
.summer-fixed-schedules{margin-bottom:14px}.fixed-schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.fixed-schedule{display:flex;justify-content:space-between;align-items:center;padding:18px;border:1px solid var(--line);border-radius:7px;background:#fbfaf9}.fixed-schedule span{color:var(--wine);font-weight:700}@media(max-width:700px){.fixed-schedule-grid{grid-template-columns:1fr}}
.summer-program-picker{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;max-width:760px;margin-top:20px}.summer-program-picker label{display:grid;gap:7px}@media(max-width:700px){.summer-program-picker{grid-template-columns:1fr}.summer-program-picker .btn{width:100%}}
.advanced-filters{grid-template-columns:2fr repeat(3,minmax(130px,1fr)) auto}
@media(max-width:900px){.advanced-filters{grid-template-columns:1fr 1fr}.advanced-filters input:first-child{grid-column:1/3}}
.management-grid{margin-bottom:14px}
.profile-grid .student-fee-panel{margin-top:0}.profile-grid .student-fee-form{grid-template-columns:1fr 1fr}.profile-grid .student-fee-form>label:first-of-type,.profile-grid .student-fee-form>.btn{grid-column:1/3}.profile-grid .student-fee-form>.btn{width:100%}
.profile-grid .student-personal-card{grid-column:1/3}
@media(max-width:760px){.profile-grid .student-fee-form{grid-template-columns:1fr}.profile-grid .student-fee-form>label:first-of-type,.profile-grid .student-fee-form>.btn{grid-column:1}}
.consent-panel .consent-row select{appearance:none;-webkit-appearance:none;text-align:center;text-align-last:center;padding-left:22px;padding-right:22px;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 12px) 15px,calc(100% - 8px) 15px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}
@container (max-width:650px){.consent-panel .consent-row{grid-template-columns:minmax(0,1fr) 96px;gap:10px}.consent-panel .consent-row>strong{grid-column:1;grid-row:1}.consent-panel .consent-row>select{grid-column:2;grid-row:1;width:96px}.consent-panel .consent-row>input:not([type=hidden]){grid-column:1;grid-row:2;width:100%;padding-right:9px}.consent-panel .consent-row>.btn{grid-column:2;grid-row:2;width:82px;justify-self:end}}
@container (max-width:340px){.consent-panel .consent-row{grid-template-columns:1fr}.consent-panel .consent-row>strong,.consent-panel .consent-row>select,.consent-panel .consent-row>input:not([type=hidden]),.consent-panel .consent-row>.btn{grid-column:1;grid-row:auto;width:100%}}
