/* Functional screens retain the nexoLab design system. */
.workspace-switch{display:block;padding:12px;margin-bottom:25px}
.workspace-switch label{font-size:9px;color:var(--muted);margin-bottom:5px}
select{width:100%;font:inherit;font-size:12px;color:var(--ink);background:white;border:1px solid #ded9eb;border-radius:8px;padding:10px}
.workspace-switch select{border:0;font-size:11px;font-weight:700;padding:3px 0}
.workspace-switch select{max-width:100%;text-overflow:ellipsis}.page-footer>span{min-width:0;overflow-wrap:anywhere}
.profile{margin-top:5px;padding-bottom:8px}
.profile>div{min-width:0}.profile strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:145px}
.logout-link{background:transparent;color:var(--muted);font-size:10px;margin:0 0 16px 48px;padding:3px}
.flash-list{margin-bottom:22px}.flash{padding:13px 17px;border-radius:9px;margin-bottom:12px;border:1px solid #dbd3f2;background:#f2edfc;font-size:12px;overflow-wrap:anywhere}
.flash.success{background:#e8f6ef;border-color:#cee9dc;color:#145a40}.flash.error{background:#fff0ed;border-color:#f5cfc8;color:#913c2d}
.form-panel{padding:28px;max-width:760px}.form-panel form>p{margin-bottom:21px}.form-panel label,.access-card label{display:block;font-size:12px;margin-bottom:7px}.form-panel input:not([type=checkbox]):not([type=radio]),.form-panel textarea,.form-panel select{margin-top:6px}.form-panel input[type=file]{max-width:100%;font-size:12px}
.helptext{font-size:10px;color:var(--muted);display:block}.errorlist{padding:10px 15px 10px 30px;color:#913c2d;background:#fff0ed;border-radius:8px;font-size:12px;list-style:disc;margin-bottom:15px}
input[type=checkbox],input[type=radio]{width:16px!important;height:16px;accent-color:var(--purple-text);vertical-align:middle;flex-shrink:0}
.checklist{display:flex;flex-direction:column;gap:14px;margin:24px 0}.checklist label,.check-label{display:flex;align-items:center;gap:10px;font-size:12px}.checklist small{color:var(--muted);font-weight:500}.check-label{margin:20px 0}
.form-panel [id$=permissions] label,.form-panel [id$=projects] label{display:flex;gap:10px;align-items:center;margin:12px 0;font-size:12px;font-weight:500}
.padded-form{padding:0 25px 25px}.padded-form>.section-description{margin-top:0}.spaced-panel{margin-top:24px}.spaced-form{margin-top:20px}.spaced-button{margin-top:15px}.spaced-form label{margin-bottom:12px}
.event-list{padding:5px 25px 25px;font-size:12px}.event-list>div,.event-list>details{padding:14px 0;border-bottom:1px solid var(--line)}.event-list small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.event-list p{font-size:11px;color:var(--muted);margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}.event-list summary{cursor:pointer;font-weight:700}.notice-row{display:block;border-bottom:1px solid var(--line);padding:18px 0}.notice-row:hover strong{color:var(--purple-text)}
.approver-choice{display:flex;justify-content:space-between;gap:20px;align-items:center}.approver-choice>label:first-child{flex:1}.approver-choice input[type=number]{width:80px!important}.decision-panel .approver>div{min-width:0}.comments-panel form{margin-top:23px}.comments-panel textarea{margin-top:8px}.decision-panel .text-link{margin-top:15px}
.access-body{min-height:100dvh;background:radial-gradient(ellipse at 10% 10%,#473284 0,transparent 50%),#1a1340;display:flex;align-items:center;justify-content:center;padding:35px 18px}
.access-card{margin:auto;padding:40px!important;width:100%;max-width:490px;background:#fff;border-radius:22px;box-shadow:0 15px 70px #0002}.access-logo{display:block;width:180px;margin:0 0 35px}.access-card h1{font-size:32px;margin-bottom:18px}.access-card>p{font-size:12px;color:var(--muted);margin-bottom:22px}.access-card form>p{margin-bottom:18px}.access-card form label{margin-top:8px}.access-google{margin-top:14px}.access-card>.text-link{margin-top:20px}
.review-panel .empty-state{padding:30px 0;font-size:11px}.review-preview h3{font-size:12px}.review-preview>p{font-size:10px}.review-preview-bottom{font-size:10px}.approval-card h2{min-height:0}.team-row .text-link{font-size:10px}.project-overview strong{overflow-wrap:anywhere}.page-heading h1{overflow-wrap:anywhere}.notice-row p{white-space:normal}
.search-field button{background:transparent;font-size:11px;color:var(--purple-text);font-weight:700}.pagination{display:flex;gap:15px;justify-content:center;align-items:center;margin:20px;font-size:12px}
.stage-row{border-radius:0}.deliverable-footer{gap:15px;flex-wrap:wrap}.event-list details>p{padding-left:10px}.form-panel textarea{width:100%}
.table-scroll{position:relative}.subjects-table{min-width:2200px}.subjects-table th{font-size:9px}.subjects-table td{font-size:11px;vertical-align:top}.subjects-table th:first-child,.subjects-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;min-width:100px;box-shadow:1px 0 0 var(--line)}.subjects-table th:first-child{background:#fbfafe;z-index:2}.subjects-table tr:hover td:first-child{background:#fcfbff}.subject-code{font-weight:800;color:var(--purple-text)}.subject-title{font-size:12px;display:block;white-space:normal;min-width:220px;max-width:280px;font-weight:700}.expert-name{font-size:11px;display:block}.expert-email{font-size:10px;color:var(--purple-text);display:block;overflow-wrap:anywhere}.document-note{display:block;font-size:10px;color:var(--muted);white-space:normal;max-width:180px;margin-top:6px}.table-hint{font-size:10px;color:var(--muted);padding:13px 24px;border-top:1px solid var(--line)}
.subject-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:24px;margin-bottom:24px}.subject-team>div{min-width:0}.subject-team strong{font-size:13px;overflow-wrap:anywhere}.subject-team .eyebrow{margin-bottom:8px}.subject-team .expert-email{margin-top:4px}
.subject-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 35px;padding:0 25px 25px}.subject-facts>div{min-width:0}.subject-facts span{display:block;font-size:11px;color:var(--muted)}.subject-facts strong{display:block;font-size:13px;margin-top:5px}.subject-facts small{display:block;color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.subject-form{max-width:1000px}.form-section{padding:26px;margin-bottom:22px}.form-section h2{margin-bottom:18px}.form-section>.section-description{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-field{min-width:0}.form-field label{margin-bottom:7px;font-size:11px}.form-field .helptext{margin-top:7px}.form-field input{margin:0}.required-marker{color:var(--purple-text)}.subsection-heading{margin:26px 0 10px;font-size:14px}
.component-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.component-actions .text-link{font-size:10px}.danger-link{color:#9b3c2c}.button.danger{background:#9b3c2c;color:white;border-color:#9b3c2c}.button.danger:hover{background:#7e3022}.detail-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:12px}.detail-toolbar .back-link{margin-bottom:0}.delete-impact{color:#9b3c2c;font-size:12px;margin:18px 0}.trash-name{white-space:normal;min-width:200px;max-width:350px;overflow-wrap:anywhere}.file-title{display:flex;align-items:center;gap:14px;flex:1;min-width:180px}.file-title>div{min-width:0}.file-row .component-actions{flex:0 0 auto}.mobile-stage-create{display:none;margin-bottom:18px}
@media(max-width:1050px){.mobile-stage-create{display:block}}
@media(max-width:760px){.file-title{flex-basis:100%}.component-actions{gap:14px}.team-row .component-actions{margin-left:43px}.team-row .component-actions .text-link{margin-left:0}.file-row .component-actions{flex-basis:100%;margin-left:49px}.detail-toolbar{gap:15px}.detail-toolbar .back-link{max-width:75%}}
@media(max-width:760px){.subject-team,.subject-facts{grid-template-columns:1fr 1fr;gap:18px}.subject-team>div:last-child{grid-column:1/-1}.form-grid{grid-template-columns:1fr;gap:18px}.form-section{padding:20px}.subject-facts{padding:0 20px 20px}.table-hint{padding-inline:18px}.subject-team{padding:20px}.subjects-table td{font-size:11px}}
@media(max-width:760px){.form-panel{padding:22px}.form-panel form>p{margin-bottom:18px}.access-card{padding:27px!important}.access-logo{width:160px;margin-bottom:25px}.access-card h1{font-size:29px}.checklist label{flex-wrap:wrap}.checklist small{flex-basis:100%;margin-left:26px}.approver-choice{align-items:flex-start}.team-row .text-link{margin-left:43px}.project-overview{grid-template-columns:1fr 1fr}.event-list{padding-inline:18px}.event-list details{overflow-wrap:anywhere}}
.week-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--border,#eee)}
.week-card h3{margin:6px 0}.week-card h3 a{color:inherit;text-decoration:none}.week-card p{font-size:13px;color:var(--muted,#777);margin:8px 0}.week-card .component-actions{flex-shrink:0}.resource-type{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6042b8;margin-bottom:6px}
@media(max-width:700px){.week-card{align-items:flex-start;flex-direction:column}.week-card .component-actions{flex-wrap:wrap}.page-heading>.component-actions{flex-wrap:wrap}}
.unit-setup{margin-top:20px}.unit-setup>.section-heading{padding:0;margin-bottom:22px}.unit-setup .form-field:last-child{grid-column:1/-1}.unit-setup textarea{min-height:90px}.batch-summary{margin-top:20px}
.menu-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.menu-toggle .icon{width:20px;height:20px}
@media(min-width:761px){.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}.sidebar-collapsed .app{margin-left:0}.sidebar-collapsed .topbar{left:0}}
.layout-transitions{--menu-duration:280ms;--menu-ease:cubic-bezier(.22,.61,.36,1)}
.layout-transitions .sidebar{transition:transform var(--menu-duration) var(--menu-ease),visibility 0s linear 0s;will-change:transform}
.layout-transitions .app{transition:margin-left var(--menu-duration) var(--menu-ease)}
.layout-transitions .topbar{transition:left var(--menu-duration) var(--menu-ease)}
@media(min-width:761px){.layout-transitions.sidebar-collapsed .sidebar{transition-delay:0s,var(--menu-duration)}}
.flash-list.toast-list{position:fixed;top:86px;right:24px;z-index:90;display:flex;flex-direction:column;gap:10px;width:min(420px,calc(100vw - 32px));margin:0;padding:0;pointer-events:none}.toast-list .flash.toast{display:flex;align-items:flex-start;gap:12px;margin:0;padding:16px;border-radius:13px;background:#fff;border:1px solid #d7eade;border-left:4px solid #4a9c78;color:#325d4b;box-shadow:0 10px 35px #3020441c;pointer-events:auto;animation:toast-arrive .2s ease-out}.toast-symbol{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:#eaf6ef;color:#478a69}.toast-symbol>.icon{width:17px;height:17px}.toast-message{flex:1;min-width:0;font-size:12px;line-height:1.7;overflow-wrap:anywhere;padding-top:3px}.toast-close{flex-shrink:0;width:26px;height:26px;border-radius:7px;color:inherit;opacity:.7}.toast-close:hover{background:#00000008;opacity:1}.toast-close>.icon{width:15px;height:15px}.toast-list .toast.error{border-color:#f0d4cf;border-left-color:#b35c51;color:#8f4138}.toast.error .toast-symbol{background:#fff0ed;color:#b35c51}.toast-list .toast.warning{border-color:#eadfbf;border-left-color:#b48935;color:#805f26}.toast.warning .toast-symbol{background:#fff7e4;color:#a97f2e}.toast-list .toast.info{border-color:#ddd4ef;border-left-color:#8c6db3;color:#6a4f89}.toast.info .toast-symbol{background:#f4eefc;color:#8c6db3}@keyframes toast-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.flash-list.toast-list{top:70px;right:16px}.toast-message{font-size:13px}}@media(prefers-reduced-motion:reduce){.toast-list .flash.toast{animation:none}}
.toast-list .flash.toast{position:relative;inset:auto;transform:none;width:auto;max-width:none;min-width:0}

/* Connected account and logout stay visible when the sidebar is closed. */
.topbar .breadcrumbs{min-width:0}.topbar .breadcrumbs strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .top-actions{flex-shrink:0;gap:14px}
.connected-user{display:flex;align-items:center;gap:9px;min-width:0}
.connected-user-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ink)}
.topbar-logout{margin:0;flex-shrink:0}.topbar-logout .button{min-height:36px;padding:8px 13px;font-size:11px;white-space:nowrap}
@media(max-width:1050px){.topbar .demo-label{display:none}.connected-user-name{max-width:145px}.topbar .top-actions{gap:10px}}
@media(max-width:760px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding-block:10px;gap:8px}.topbar .breadcrumbs{flex-basis:100%}.topbar .top-actions{width:100%;gap:10px}.connected-user{flex:1}.connected-user-name{max-width:calc(100vw - 210px)}.topbar-logout .button{min-height:36px}.flash-list.toast-list{top:120px}}

/* Let the navigation scroll within the viewport. Account controls live in the topbar. */
.sidebar{height:100vh;height:100dvh;overflow:hidden}
.sidebar>.brand{flex-shrink:0}
.sidebar-scroll{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-padding-block:12px;scrollbar-width:thin}
.sidebar-scroll>.workspace,.sidebar-scroll>.nav-caption,.sidebar-scroll>nav,.sidebar-scroll>.brand-note,.sidebar-scroll>.help-button{flex-shrink:0}
.sidebar-scroll>.nav-caption{display:block}
.sidebar-scroll>.brand-note{margin-top:auto}
.sidebar-scroll>.help-button{margin-top:8px;margin-bottom:8px}
@media(max-height:850px){.sidebar-scroll>.brand-note{display:none}.sidebar-scroll>.workspace-switch{margin-bottom:16px}}
@media(max-height:700px){.sidebar{padding-top:12px}.sidebar>.brand{min-height:58px;margin-bottom:8px;padding-bottom:8px}.sidebar>.brand img{max-height:45px}}

.topbar a.connected-user{padding:4px 6px;margin-inline:-6px;border-radius:8px;text-decoration:none}
.topbar a.connected-user:hover{background:#f5f1fc}
.topbar a.connected-user:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
html{scroll-padding-top:calc(var(--topbar-height) + 16px)}
.app .flash-list.toast-list{top:calc(var(--topbar-height) + 10px)}
