/* 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}}
/* A single dashboard toolbar combines navigation and account actions. */
.dashboard-topbar{height:auto;min-height:72px;padding:10px 20px;gap:16px;flex-wrap:wrap}
.dashboard-navigation{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.dashboard-navigation h2{font-size:16px;overflow-wrap:anywhere}
.dashboard-navigation #back{white-space:nowrap;color:var(--blue);font-weight:700}
.dashboard-topbar .top-right{gap:12px;flex-shrink:0;margin-left:auto}
.dashboard-topbar #update-base{white-space:nowrap}
@media(max-width:1100px){.dashboard-topbar .user-info{display:none}}
@media(max-width:760px){
 .dashboard-topbar{padding:8px 12px;gap:8px;min-height:64px}
 .dashboard-navigation{gap:8px;flex:1 1 auto}
 .dashboard-navigation #toggle-sidebar{display:none}
 .dashboard-navigation h2{font-size:13px}
 .dashboard-navigation #back{font-size:0;padding:10px;min-width:44px;min-height:44px}
 .dashboard-navigation #back svg{width:20px;height:20px}
 .dashboard-topbar .top-right{gap:6px}
 .dashboard-topbar #update-base{font-size:11px;padding:8px}
}
@media(max-width:480px){
 .dashboard-topbar .dashboard-navigation{flex:1 1 calc(100% - 60px)}
 .dashboard-topbar .top-right{width:100%;justify-content:flex-end}
 .dashboard-topbar #update-base{margin-right:auto}
}
.password-checklist{list-style:none;margin:14px 0 8px;padding:0;display:grid;gap:9px}
.password-checklist li{display:flex;align-items:center;gap:9px;color:#728197;font-size:12px;line-height:1.4;transition:color .15s}
.password-checklist li.met{color:#247655}
.requirement-icon{flex:none;display:grid;place-items:center;width:18px;height:18px;border:1.5px solid #b8c5d5;border-radius:50%;background:#ffffff80}
.met .requirement-icon{background:#e4f5ec;border-color:#459b74}
.requirement-icon svg{width:13px;height:13px;stroke-width:2.5}
.password-progress{display:block;font-size:11px;color:#65778e;line-height:1.5}
.fullscreen-hint{display:none}
body .main:fullscreen{margin:0!important;width:100%;height:100dvh;background:#edf2f8;transition:none}
.main:fullscreen>.dashboard-topbar{display:none!important}
.main:fullscreen .viewer{border-radius:0}
.main:fullscreen .fullscreen-hint{display:block;position:fixed;right:18px;bottom:16px;z-index:100;padding:8px 12px;border:1px solid #ffffff80;border-radius:10px;background:#172e48c7;color:#fff;font-size:12px;line-height:1.5;backdrop-filter:blur(12px);pointer-events:none;box-shadow:0 3px 16px #10274218}
.fullscreen-hint kbd{font:inherit;font-weight:700;border:1px solid #ffffff60;border-radius:4px;padding:1px 4px;margin:0 2px}
.language-select{border:1px solid #c5d4e8b0;border-radius:10px;padding:9px 26px 9px 10px;background:#ffffffad;color:#345475;font:600 12px inherit;min-height:40px;max-width:125px}
@media(max-width:760px){.language-select{font-size:12px;max-width:110px;padding:8px}.dashboard-topbar .top-right{flex-wrap:wrap}}
.viewer-layout{position:relative}
.screen-loading{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:linear-gradient(135deg,#f3f7fc,#e8eff8);border-radius:inherit}
.screen-loading-card{display:flex;align-items:center;flex-direction:column;gap:24px;padding:30px;color:#6b7f98;font-size:13px;letter-spacing:.02em}
.fmc-fill-logo{position:relative;width:180px;height:76px}
.fmc-fill-logo img{display:block;width:180px;height:76px;object-fit:contain}
.fmc-fill-logo>img{filter:grayscale(1);opacity:.16}
.fmc-fill-color{position:absolute;inset:0;animation:fmcFill 2.2s ease-in-out infinite;clip-path:inset(100% 0 0 0)}
@keyframes fmcFill{0%{clip-path:inset(100% 0 0 0);opacity:.65}65%,85%{clip-path:inset(0);opacity:1}100%{clip-path:inset(0);opacity:0}}
.route-loading{position:fixed;inset:0;z-index:95}
@media(prefers-reduced-motion:reduce){.fmc-fill-color{animation:none;clip-path:inset(0);opacity:.8}}
.language-switch{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #c5d4e880;border-radius:12px;background:#ffffff70;flex:none}
.language-switch button{width:40px;height:36px;padding:7px 6px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;opacity:.55;transition:opacity .15s,background .15s}
.language-switch button:hover{opacity:1;background:#ffffffa0}
.language-switch button[aria-pressed=true]{opacity:1;background:#fff;border-color:#94b5dd;box-shadow:0 2px 6px #20466a15}
.language-switch img{width:28px;height:20px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px #23344b15}
@media(max-width:760px){.language-switch button{width:40px;height:40px}}
