/* Portal responsive layout; loaded last so glass styles do not undo breakpoints. */
html,body{min-width:0}#app,.main,.content,.panel,.grid>*,.metrics>*,.split>*{min-width:0}
.content{width:100%}.card-desc{height:auto;min-height:43px}.card-meta{gap:12px;flex-wrap:wrap}
.table-wrap{max-width:100%;overscroll-behavior-x:contain}.table-actions{flex-wrap:wrap}
.panel-head,.section-top,.title-row,.footer{gap:16px;flex-wrap:wrap}.history-item{overflow-wrap:anywhere}
.history-item>.btn{align-self:flex-start;flex-shrink:0}.field input,.field select,.field textarea{min-width:0;max-width:100%}
.sidebar{overflow-y:auto}.sidebar-toggle{display:none}.menu-scrim{display:none}
.viewer-top>div{min-width:0}.viewer-top h2{overflow-wrap:anywhere}.viewer{min-width:0;max-width:100%}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}.password-card{width:calc(100% - 32px)}
@media(max-width:1100px){
 .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{padding:16px;gap:10px}.metric-icon{flex:none}
 .metric-value{overflow-wrap:anywhere}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .main,body.sidebar-collapsed .main{margin-left:0}
 .sidebar,body.sidebar-collapsed .sidebar{width:min(280px,calc(100vw - 56px));inset:8px auto 8px 8px;padding:28px 18px;transform:translateX(calc(-100% - 20px));visibility:hidden;pointer-events:none;z-index:110}
 body.mobile-menu-open .sidebar{transform:none;visibility:visible;pointer-events:auto}
 .sidebar .brand{margin:0 10px 28px}.sidebar .brand-logo{width:122px;height:44px}
 .sidebar .nav-label,.sidebar .nav span,.sidebar .sidebar-foot{display:block}.sidebar .nav button{justify-content:flex-start;padding:14px;min-height:46px}
 .sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
 body.mobile-menu-open .menu-scrim{display:block;position:fixed;inset:0;background:#142d4970;z-index:100;border:0;backdrop-filter:blur(3px)}
 .topbar{height:64px;padding:8px 16px;gap:12px}.top-right{gap:8px}.icon-btn{min-width:44px;min-height:44px}
 .content{padding:24px 16px}.title-row h1{font-size:28px;letter-spacing:-.8px}.title-row{margin-bottom:22px}
 .section-top{align-items:stretch}.tools,.search,.search input{width:100%}.search input{font-size:16px}
 .grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:26px}.metric:last-child{grid-column:1 / -1}
 .metric{display:flex;align-items:center;padding:16px;min-height:80px}.metric-value{font-size:24px}.metric-label{font-size:12px}.metric-icon{width:32px;height:32px;margin-bottom:0}
 .panel{padding:20px 16px}.split,.form-row{grid-template-columns:minmax(0,1fr)}
 .field input,.field select,.field textarea{font-size:16px}.btn{min-height:44px}.card-open{min-height:44px}
 .card-body{padding:20px 20px 0}.card-desc{min-height:0}.card-art{height:120px}.card-state{font-size:11px}
 .panel-head{align-items:flex-start}.panel-head .badge{white-space:normal}.upload-box{padding:26px 16px}
 .history-item{flex-wrap:wrap}.footer{line-height:1.6}.password-card{margin:24px auto}
 .viewer-layout>.viewer-top{padding:8px 12px;gap:8px;min-height:0;display:flex;flex-wrap:wrap}
 .viewer-top>div{gap:8px;flex:1;flex-wrap:wrap}.viewer-top h2{flex-basis:100%;font-size:13px;line-height:1.4}
 .viewer-top #back{font-size:12px;padding:8px 10px}.viewer-top #toggle-sidebar{display:none}
 .viewer-top #update-base{font-size:12px;padding:8px 10px;align-self:flex-start}.viewer-layout>.viewer{border-radius:0}
 .login{display:flex;flex-direction:column;min-height:100dvh}.login-hero{display:flex;padding:26px 24px 18px;min-height:0}
 .login-hero .brand-logo{width:110px;height:42px}.login-copy{display:none}.login-hero-foot{display:none}
 .login-form-side{padding:24px;flex:1;align-items:start}.login-form{max-width:440px}.login-form h2{font-size:26px}
 .login-form .subtitle{margin-bottom:24px}.login-lock{margin-top:22px}
 #toast{max-width:calc(100vw - 24px);right:12px;bottom:12px;overflow-wrap:anywhere}
 .processing-glass{padding:28px 18px}.processing-glass h2{font-size:21px}.processing-orbit{max-width:100%}
}
@media(max-width:380px){.metrics{grid-template-columns:1fr}.metric:last-child{grid-column:auto}.viewer-top #update-base{width:100%}.title-row h1{font-size:25px}}
