/* Keep navigation and the signed-in account in separate, non-overlapping rows. */
.sidebar{display:flex;flex-direction:column;height:100dvh;padding:28px 22px 20px;gap:0}
.sidebar>.brand{flex-shrink:0;min-width:0;padding-bottom:23px;border-bottom:1px solid var(--line)}
.brand-icon{flex-shrink:0}
.brand>span:last-child{min-width:0;overflow-wrap:anywhere}
.sidebar .nav-label{flex-shrink:0;margin:25px 13px 12px}
.sidebar nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;scrollbar-width:thin;padding-right:3px;gap:5px}
.sidebar nav a{display:flex;align-items:center;line-height:1.45;min-height:43px;padding:11px 13px;white-space:normal}
.sidebar nav a:before{flex-shrink:0}
.sidebar-bottom{position:static;flex-shrink:0;margin-top:20px;padding-top:18px;gap:10px;min-width:0;background:#fff}
.sidebar-bottom>div{flex:1;min-width:0;line-height:1.4;overflow-wrap:anywhere;font-weight:600}
.sidebar-bottom small{margin-top:4px;font-weight:400}
.sidebar-bottom .avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;padding:0}
.sidebar-bottom form{flex-shrink:0;margin:0}
.sidebar-bottom .logout{border-radius:5px;min-width:32px;min-height:36px}
.sidebar-bottom .logout:hover{background:var(--paper);color:var(--green)}
.topbar .logout{font-size:12px;padding:7px 12px;letter-spacing:0}
.topbar .logout:hover{background:#e9ede4;color:var(--green)}
.page-heading h1{max-width:760px;text-wrap:balance}
.panel{box-shadow:0 3px 15px #283d2903}
.panel summary{line-height:1.5}
.form-grid label{min-width:0}
.form-grid input,.form-grid select,.form-grid textarea{max-width:100%}
.stats .stat{border-radius:9px}
.public-main>.brand{max-width:460px}
@media(min-width:761px) and (max-height:650px){
  .sidebar{padding-top:18px;padding-bottom:14px}
  .sidebar>.brand{padding-bottom:16px}
  .sidebar .nav-label{margin-top:18px;margin-bottom:8px}
  .sidebar nav a{min-height:39px;padding-top:9px;padding-bottom:9px}
  .sidebar-bottom{margin-top:14px;padding-top:14px}
}
@media(max-width:760px){
  .sidebar{display:block;height:auto;padding:18px 20px 0}
  .sidebar>.brand{border:0;padding-bottom:0}
  .sidebar .nav-label,.sidebar-bottom{display:none}
  .sidebar nav{display:flex;overflow-x:auto;overflow-y:hidden;gap:6px;padding:0 0 13px;margin-top:20px;scrollbar-width:thin}
  .sidebar nav a{display:block;flex-shrink:0;white-space:nowrap;min-height:35px;padding:9px 13px;font-size:11px}
  .sidebar nav a:before{display:none}
  .topbar .logout{font-size:11px;padding:6px 8px}
  .content{padding-top:28px}
  .page-heading h1{font-size:34px}
  .panel summary .muted{overflow-wrap:anywhere}
}

/* Responsive workspace: contain intrinsic widths instead of clipping the page. */
html{scrollbar-gutter:stable}
body{min-width:0}
.main,.content,.public-main,.auth-layout,.auth-layout>*,.page-heading>*,.section-heading>*,.toolbar>*,.stats>*,.link-box>*,.assignment-grid>*{min-width:0}
.content,.public-main{width:100%}
h1,h2,h3,p,td,legend,.notice,.card-body,.empty,.contact-panel{overflow-wrap:anywhere}
img,video{max-width:100%}
input,select,textarea{min-width:0}
button,.button{max-width:100%;white-space:normal}
.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.asset-selection,.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.table-wrap{max-width:100%;min-width:0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.panel.table-wrap{padding:0}
.row-actions,.card-footer{flex-wrap:wrap}
.checks label,fieldset label{display:flex;align-items:flex-start;gap:8px;min-width:0}
input[type=checkbox]{flex:0 0 18px;margin:3px 0 0}
fieldset label span{min-width:0;overflow-wrap:anywhere}
legend{max-width:100%;white-space:normal}
.brand small{line-height:1.6}
.nav-toggle,.nav-close,.nav-backdrop{display:none}
.auth-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.auth-card{min-width:0}
.studio-banner>div:first-child{min-width:0;position:relative;z-index:1}
.building-graphic{flex-shrink:0}
.presentation-grid .image-button img{object-fit:contain;background:#eeefe8}
#lightbox{width:min(1100px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
#lightbox img{max-height:calc(100dvh - 145px)}
@media(min-width:1025px) and (max-width:1280px){
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page-heading{align-items:flex-start;flex-wrap:wrap}
 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .studio-banner{padding:28px}
 .building-graphic{width:190px;margin-right:0}
}
@media(max-width:1024px){
 .sidebar{position:relative;inset:auto;display:block;width:100%;height:auto;padding:18px 24px;border:0;border-bottom:1px solid var(--line)}
 .sidebar>.brand{padding:0;border:0;max-width:calc(100% - 48px)}
 .sidebar .nav-label,.sidebar-bottom{display:none}
 .sidebar nav{display:flex;flex-wrap:wrap;overflow:visible;margin:20px 0 0;padding:0;gap:6px}
 .sidebar nav a{flex:0 1 auto;min-height:44px;padding:11px 14px;font-size:13px}
 .sidebar nav a:before{display:none}
 .main,body>footer{margin-left:0;width:100%}
 .content{padding:30px 24px 48px}
 .topbar{min-height:64px;height:auto;padding:12px 24px;gap:12px}
 .topbar .breadcrumb{flex:1;min-width:0;overflow-wrap:anywhere}
 .topbar form{flex-shrink:0}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page-heading{align-items:flex-start;flex-wrap:wrap}
 .page-heading h1{font-size:38px}
 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-grid,.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .auth-layout{gap:32px;margin:42px auto}
 .auth-intro h1{font-size:48px}
 .auth-card{padding:28px}
 .public-main{padding:28px 24px}
 .presentation-hero h1{font-size:48px}
}
/* Without JavaScript the full navigation above stays visible and usable. */
@media(max-width:1024px){
 .js .sidebar{position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;width:min(320px,calc(100vw - 32px));height:100vh;height:100dvh;padding:26px 20px 20px;z-index:50;transform:translateX(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s}
 .js.nav-open .sidebar{transform:translateX(0);visibility:visible}
 .js .sidebar>.brand{padding:12px 0 24px;border-bottom:1px solid var(--line);max-width:100%;margin-top:18px}
 .js .sidebar .nav-label{display:block;margin:22px 10px 10px}
 .js .sidebar nav{display:flex;flex-direction:column;flex-wrap:nowrap;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:initial;margin:0;padding:0 4px 0 0;gap:6px}
 .js .sidebar nav a{flex:0 0 auto;min-height:44px;white-space:normal}
 .js .sidebar-bottom{display:flex;margin-top:18px;padding-top:18px}
 .js .nav-close{display:flex;position:absolute;top:8px;right:9px;width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--ink);font-size:29px}
 .js .nav-toggle{display:inline-flex;align-items:center;flex-shrink:0;min-width:44px;min-height:44px;padding:8px 12px;background:white;color:var(--green);border:1px solid var(--line);font-size:16px}
 .js .nav-toggle span{font-size:12px}
 .js .nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:40;border:0;border-radius:0;background:#14211988;padding:0;backdrop-filter:blur(2px)}
 .js.nav-open{overflow:hidden}
 .js.nav-open body{overflow:hidden}
 .js .topbar{position:sticky;top:0;background:var(--paper);z-index:20}
}
@media(max-width:640px){
 .content{padding:24px 16px 40px}
 .public-main{padding:22px 16px}
 .topbar{padding:10px 16px;gap:9px}
 .topbar .breadcrumb{font-size:9px;letter-spacing:.6px}
 .topbar .breadcrumb b{display:block;margin:0}
 .topbar .logout{min-height:44px;font-size:11px;padding:7px}
 .nav-toggle span{display:none}
 .page-heading{display:flex;flex-direction:column;gap:16px;margin:4px 0 24px}
 .page-heading h1{font-size:clamp(28px,7.5vw,36px);letter-spacing:-1px}
 .page-heading .button{margin:0;width:100%}
 h2{font-size:25px}
 .eyebrow{letter-spacing:1.4px}
 .stats{gap:12px}
 .stat{padding:17px 15px}
 .stat>span{font-size:12px}
 .stat strong{font-size:32px}
 .project-grid,.asset-grid,.presentation-grid,.form-grid,.asset-selection,.assignment-grid,.link-box{grid-template-columns:minmax(0,1fr)}
 .form-grid{gap:18px}
 .form-grid button{width:100%;justify-self:stretch}
 .panel{padding:23px 18px;margin-top:22px}
 .panel.compact{padding:20px 18px}
 .panel summary .muted{display:block;margin:6px 0 0}
 .panel input,.panel select,.panel textarea,.auth-card input,.toolbar input,.link-box input{font-size:16px}
 .toolbar{flex-wrap:wrap;gap:10px}
 .toolbar input{flex:1 1 100%;max-width:none}
 .toolbar span{margin-left:0}
 .section-heading{flex-wrap:wrap;align-items:baseline;gap:8px}
 .section-heading .muted{max-width:none;text-align:left}
 .card-body{padding:20px}
 .project-cover{height:auto;aspect-ratio:4/3}
 .project-cover img{height:100%;position:absolute;inset:0}
 .placeholder-building{position:absolute;inset:0}
 .asset-card img,.presentation-grid .asset-card img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:contain;background:#eeefe8}
 .asset-card video,.presentation-grid .asset-card video{height:auto;aspect-ratio:16/9}
 .checks{flex-direction:column;gap:14px}
 .checks label,.check{min-height:32px}
 .asset-selection{max-height:none;overflow:visible}
 fieldset{padding:16px}
 .link-box{padding:18px}
 .link-box small{grid-column:auto}
 .link-box button{width:100%}
 .studio-banner{padding:28px 23px}
 .studio-banner h2{font-size:29px}
 .building-graphic{position:absolute;right:-80px;bottom:-40px;opacity:.18}
 .auth-layout{display:block;margin:32px 0}
 .auth-intro h1{font-size:clamp(36px,10vw,48px);letter-spacing:-1.8px}
 .auth-intro h1 br{display:none}
 .auth-intro>p{max-width:none}
 .architecture-art{display:none}
 .auth-card{padding:27px 22px;margin:28px auto}
 .auth-card h1{font-size:32px}
 .auth-card h2{font-size:30px}
 .public-main .brand{font-size:21px;gap:10px}
 .public-main .brand small{font-size:7px;letter-spacing:1px}
 .presentation-hero{padding:42px 0 32px}
 .presentation-hero h1{font-size:clamp(32px,9vw,44px);letter-spacing:-1px}
 .presentation-hero .tag{white-space:normal}
 .filter-tabs{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:16px;overscroll-behavior-x:contain}
 .filter-tabs .tab{flex-shrink:0;min-height:44px;padding:9px 14px}
 .contact-panel{padding:35px 20px;margin-top:30px}
 .contact-panel h2{font-size:30px}
 .contact-panel .button{width:100%}
 th,td{padding:14px 16px}
 body>footer{padding:20px 16px;font-size:8px;letter-spacing:1.3px}
}
@media(prefers-reduced-motion:reduce){.js .sidebar,.project-card,button,.button{transition:none}}
