/* One visual system for sign-in, house portals and operational controls. */
:root{--dsc-bg:#0b0e12;--dsc-surface:#191e25;--dsc-line:#343c46;--dsc-text:#f5f3ee;--dsc-muted:#b5bdc8;--dsc-gold:#d4b46f;--dsc-success:#a7e1b7}
.portalShell .btn.primary,.cleanLogin .btn.primary,.dscMemberSurface .btn.primary{background:var(--dsc-gold);border-color:var(--dsc-gold);color:#151515;box-shadow:none}
.portalShell .btn.secondary,.cleanLogin .btn.secondary,.dscMemberSurface .btn.secondary{background:var(--dsc-surface);border:1px solid #434d59;color:var(--dsc-text);box-shadow:none}
.portalShell .btn,.cleanLogin .btn{min-height:46px;border-radius:11px;font-size:14px;font-weight:650;line-height:1.35;padding:12px 16px;cursor:pointer;transition:background-color .15s,border-color .15s}
.portalShell button:disabled,.cleanLogin button:disabled{cursor:not-allowed;opacity:.58}
.portalShell :is(button,a,input,select,textarea,summary):focus-visible,.cleanLogin :is(button,a,input,select,textarea):focus-visible{outline:3px solid #f2cc79;outline-offset:3px}
@media(hover:hover){.portalShell .btn.primary:hover,.cleanLogin .btn.primary:hover{background:#e0c58e;border-color:#e0c58e}.portalShell .btn.secondary:hover{background:#262e38;border-color:#697484}}
.cleanLoginCard{background:linear-gradient(145deg,#1a1e24,#11151a)!important;border:1px solid var(--dsc-line)!important;border-radius:22px!important;padding:30px!important;box-shadow:0 22px 70px #0005!important;max-width:430px}
.cleanLoginCard h1{color:var(--dsc-text);font-size:34px!important;letter-spacing:-.04em;line-height:1.12}.cleanLoginCard p{color:var(--dsc-muted)!important;font-size:14px!important;line-height:1.65}.cleanLoginCard :is(input,select){font-size:16px!important;min-height:48px;background:#11161d!important;color:var(--dsc-text)!important;border:1px solid #414b57!important;border-radius:10px!important}.cleanLoginCard label{font-size:13px!important;color:#d4d8df}.cleanLoginCard .loginHelp button{min-height:44px;font-size:13px;color:#e4c58b}.cleanLoginCard .field{margin-bottom:18px}.cleanLoginBrand{margin-bottom:25px!important}.cleanLoginBack{min-height:44px;color:#c6ccd4!important}
.dscStudentSurface:has(.dscHouseHome) .appTopbar,.dscStudentSurface:has(.dscHouseHome) .dscMobileHeader{display:none!important}.dscStudentSurface:has(.dscHouseHome) .appContent{max-width:1220px;padding:0 42px 110px!important}
.dscStudentHome .dscPlanPicker{max-width:620px}.dscStudentMenuStatus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 24px;font-size:12px;color:var(--dsc-muted)}.dscStudentHome .dscHomeEmpty .btn{display:flex;justify-content:space-between;gap:15px;margin:10px auto 0;width:100%;max-width:350px}.dscStudentHome .dscHomeNext p{line-height:1.6;max-width:400px}
.dscMealDetails{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 0 8px 12px;color:#e8cd97;font-size:12px;background:none;border:0;cursor:pointer}.dscStudentHome .dscHomeMealCopy footer{padding-top:8px;margin-top:13px}.dscStudentHome .dscHomeMealImage>span{font-size:11px}.dscStudentSurface .dscHomeTime{font-size:13px}
.dscAccountTabs{display:flex;gap:6px;background:#11151a;border:1px solid var(--dsc-line);border-radius:13px;padding:5px;margin:0 0 28px;max-width:390px}.dscAccountTabs>button{flex:1;min-height:44px;background:transparent;border:1px solid transparent;border-radius:9px;color:var(--dsc-muted);font-size:14px;font-weight:600;cursor:pointer}.dscAccountTabs>button.active{color:#f2dfb6;background:#2c2c28;border-color:#5b5038}
.dscMemberCard{border:1px solid var(--dsc-line);border-radius:18px;background:linear-gradient(145deg,#1d232b,#171c22);padding:26px}.dscMemberCard h2,.dscMemberInbox h2{font-size:23px;letter-spacing:-.035em;color:var(--dsc-text);line-height:1.2;margin:0 0 20px}.dscMemberCard>p{font-size:14px;color:var(--dsc-muted);line-height:1.7}.dscMemberCard label{display:block;font-size:13px;line-height:1.4;font-weight:600;color:#d4d9e0;margin:0 0 8px}.dscMemberCard :is(input,select,textarea){box-sizing:border-box;display:block;max-width:100%;width:100%;min-width:0;border:1px solid #46515e;border-radius:10px;background:#11171e;color:var(--dsc-text);font:inherit;font-size:16px;min-height:48px;padding:12px;margin:0 0 20px}.dscMemberCard textarea{resize:vertical;min-height:120px;line-height:1.6}.dscMemberCard input[type=date]{appearance:none;-webkit-appearance:none;min-width:0}.dscMemberCard ::placeholder{color:#a0aab7;opacity:1}.dscMemberFormPair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dscMemberFormPair>div{min-width:0}.dscMemberCard fieldset{padding:0;margin:0;border:0;min-width:0}.dscMemberHint{font-size:12px;color:#b5bdc8;line-height:1.65;margin:0 0 20px}.dscMemberRequestGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.dscMemberInbox>header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.dscMemberInbox>header h2{margin:0}.dscMemberInbox .dscHomeTextButton{margin:0;min-height:46px}.dscMemberRequest{border:1px solid var(--dsc-line);border-radius:15px;background:#181e25;padding:19px;margin-bottom:12px;overflow-wrap:anywhere}.dscMemberRequest>header{display:flex;align-items:center;gap:10px;justify-content:space-between}.dscMemberRequest h3{font-size:17px;margin:0;color:#f2f1eb;line-height:1.35}.dscMemberRequest p{font-size:14px;line-height:1.65;color:#c8ced6;margin:12px 0 0;white-space:pre-wrap}.dscMemberRequest .dscRequestDate{color:#b7a178;font-size:12px}.dscStatus.denied{color:#ffb7a7;background:#e4907314}.dscRequestReason{border-top:1px solid var(--dsc-line);padding-top:12px;color:#ffc2b4!important}.dscMemberEmpty{padding:26px;border:1px dashed #424d58;border-radius:16px;text-align:center}.dscMemberEmpty h3{font-size:20px;margin:0 0 8px}.dscMemberEmpty p{font-size:14px;color:var(--dsc-muted);line-height:1.6;margin:0}.dscMemberError{color:#ffd0c2;border:1px solid #aa6758;padding:16px;border-radius:12px;font-size:14px;line-height:1.6}.dscMemberMuted{color:var(--dsc-muted);font-size:14px}.dscMemberSuccess{color:#b0e4bf!important}.dscMemberErrorText{color:#ffc7b8!important}#dsc-request-message{font-size:13px;line-height:1.6;margin:14px 0 0;min-height:0}#dsc-request-message:empty{display:none}
.dscMemberDetails{margin:0 0 22px}.dscMemberDetails>div{padding:16px 0;border-bottom:1px solid var(--dsc-line);display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px}.dscMemberDetails dt{font-size:13px;color:var(--dsc-muted)}.dscMemberDetails dd{font-size:14px;line-height:1.55;color:var(--dsc-text);margin:0;overflow-wrap:anywhere}.dscMemberAccountActions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.dscMemberAccountActions .dscMemberCard{display:flex;flex-direction:column;align-items:start}.dscMemberAccountActions p{flex:1;margin-top:0}.dscMemberAccountActions h2{margin-bottom:12px}.dscMemberSurface .dscReadOnlyMealModal{background:#191f26;border:1px solid var(--dsc-line);border-radius:20px;color:var(--dsc-text)}.dscMemberSurface .dscReadOnlyMealModal p{color:var(--dsc-muted);line-height:1.6}
@media(max-width:900px){.dscStudentSurface:has(.dscHouseHome) .appContent{padding:0 20px 110px!important}.dscStudentSurface .bottomIn{grid-template-columns:repeat(4,minmax(0,1fr))!important}.dscMemberRequestGrid,.dscMemberAccountActions{grid-template-columns:1fr}.dscMemberCard{padding:21px}.dscMemberCard h2,.dscMemberInbox h2{font-size:22px}.dscMemberInbox{margin-top:5px}.dscMemberDetails>div{grid-template-columns:65px minmax(0,1fr);gap:12px}.dscMemberFormPair{gap:10px}.dscStudentHome .dscHomeSectionHead h1{font-size:32px}.dscStudentHome .dscHomeSectionHead p{font-size:13px}.dscStudentHome .dscHomeSectionHead{margin-bottom:18px}.dscStudentHome .dscHomeMealImage{height:175px}.dscStudentHome .dscHomeMealCopy h3{font-size:24px}.dscAccountTabs{margin-bottom:25px}}
@media(max-width:360px){.dscStudentSurface:has(.dscHouseHome) .appContent{padding-inline:14px!important}.dscMemberFormPair{grid-template-columns:1fr}.dscMemberCard{padding:18px}.dscMemberRequest>header{align-items:start;flex-direction:column}.cleanLoginCard{padding:23px!important;width:calc(100% - 24px)!important}.dscStudentMenuStatus{font-size:11px}.dscStudentHome .dscHomeSectionHead h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){.portalShell *,.cleanLogin *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Replace legacy tiny library text and gradient overrides with the shared controls. */
.portalShell .btn.primary,.cleanLogin .btn.primary,.dscMemberSurface .btn.primary{background:var(--dsc-gold)!important;color:#151515!important;border-color:var(--dsc-gold)!important;box-shadow:none!important;font-weight:650!important}
.dscMemberSurface .btn.secondary{background:var(--dsc-surface)!important;border-color:#434d59!important;color:var(--dsc-text)!important;box-shadow:none!important}
.dscMemberSurface .btn{min-height:46px;font-size:14px!important;font-weight:650;border-radius:11px;padding:12px 16px;line-height:1.35}
.dscStudentExplore .browseHero{align-items:start;gap:20px;padding:0 0 24px}.dscStudentExplore .browseHero h1{font-size:38px;line-height:1.12;letter-spacing:-.04em;margin:10px 0 14px}.dscStudentExplore .browseHero p{color:var(--dsc-muted);font-size:14px;line-height:1.65;max-width:560px}.dscStudentExplore .browseHero .eyebrow{font-size:10px;letter-spacing:.17em;color:#c3aa78}.dscStudentExplore .browseTools{margin-bottom:20px;padding:12px;border-color:var(--dsc-line);border-radius:16px}.dscStudentExplore .cleanSearch{background:#171d24;border-color:#414b57}.dscStudentExplore .cleanSearch input{font-size:16px;min-width:0;min-height:44px}.dscStudentExplore .cleanPills{display:flex;gap:7px;overflow:auto;padding-top:13px}.dscStudentExplore .cleanPills .chip{flex:none;min-height:44px;font-size:12px;padding:10px 14px;border-color:#414b57;color:#c6ced9}.dscStudentExplore .cleanPills .chip.active{background:#d4b46f!important;color:#151515!important}.dscStudentExplore .cleanFoodGrid{gap:18px}.dscStudentExplore .cleanFoodCard{background:#191f26;border:1px solid #343c46;border-radius:18px!important}.dscStudentExplore .cleanFoodCard .foodCardPhoto{height:185px!important}.dscStudentExplore .cleanFoodCard .foodCardBody{padding:18px!important}.dscStudentExplore .cleanFoodCard .foodCardBody small{font-size:11px!important;color:#d3bb8b}.dscStudentExplore .cleanFoodCard .foodCardBody h3{font-size:23px!important;line-height:1.2;letter-spacing:-.025em;margin:9px 0!important}.dscStudentExplore .cleanFoodCard .foodCardBody p{font-size:13px!important;line-height:1.65;color:var(--dsc-muted);min-height:42px!important;margin-bottom:18px}
@media(max-width:900px){.dscStudentExplore .browseHero{display:block}.dscStudentExplore .browseHero h1{font-size:32px}.dscStudentExplore .browseHero>.btn{margin-top:16px}.dscStudentExplore .cleanFoodGrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr))!important}.dscStudentExplore .cleanSearch input{padding-left:4px}.dscStudentExplore .cleanPills .chip{font-size:12px}}
.dscMemberSurface .dscSkipLink:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap}
