/* Shared responsive layout; drawing canvases retain their own coordinate system. */
.mobile-nav-toggle{display:none}
.mobile-table-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.mobile-table-scroll:focus-visible{outline:2px solid var(--company-main,#1769cc);outline-offset:2px}
@media(max-width:1000px){
 main,.panel,.card,.grid>*{min-width:0}
 header,.toolbar,.row{flex-wrap:wrap}
 .toolbar>div{display:flex;flex-wrap:wrap;gap:8px}
}
@media(max-width:800px){
 html{scroll-padding-block:16px}body{overflow-wrap:anywhere}
 #app>aside{position:relative;padding:14px 16px;min-width:0;height:auto}
 #app>aside h2{font-size:22px;margin:0 100px 4px 0}
 #app>aside>small{margin:0 95px 0 0;font-size:11px}
 #app>aside>p{display:none}
 .mobile-nav-toggle{display:block;position:absolute;right:14px;top:14px;min-height:44px;background:#26465b;border-color:#52697c;color:#fff}
 #nav{display:none;margin-top:12px;max-height:48vh;overflow-y:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 body.mobile-nav-open #nav{display:grid}
 #nav button{margin:0;min-width:0;padding:11px 10px;white-space:normal}
 body.has-task-rail main,body.task-rail-collapsed main,main{margin:0;padding:16px 12px calc(88px + env(safe-area-inset-bottom,0px));max-width:100%;width:100%}
 main>header{gap:12px;margin-bottom:18px;align-items:flex-start}
 main>header>div{width:100%;min-width:0}
 main>header>div:last-child{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
 #identity{flex-basis:100%;margin-bottom:2px}
 h1{font-size:23px}h3{font-size:17px;line-height:1.5}
 button,input,select,textarea{font-size:16px}
 button,select,input:not([type=checkbox]):not([type=radio]){min-height:44px}
 button{padding:10px 12px;touch-action:manipulation}
 input,select,textarea{min-width:0;max-width:100%}
 input[type=file]{width:100%;font-size:14px}
 input[type=checkbox],input[type=radio]{width:22px;height:22px;flex-shrink:0}
 textarea{min-height:88px}
 .grid{grid-template-columns:minmax(0,1fr)!important;gap:0}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;margin:16px 0}
 .card,.panel{padding:14px;border-radius:10px;max-width:100%;overflow:visible}
 .card strong{font-size:26px}.card button{max-width:100%}
 .notice{padding:11px 12px;line-height:1.65}
 .company-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .company-choice{padding:10px 8px;gap:8px;min-height:70px;min-width:0}
 .company-choice img{display:none}.company-choice b{font-size:16px}.company-choice small{font-size:11px}
 .company-filter .row{margin-bottom:12px}
 .toolbar{align-items:stretch;gap:10px}.toolbar>input{width:100%;max-width:none}
 .toolbar>div{width:100%}.toolbar a{padding:10px 0;display:inline-block}
 .row>h3,.row>h4{margin:0;min-width:0;flex:1 1 180px}
 .actions{gap:8px;align-items:center}.actions button{flex:0 1 auto}
 dialog[open]{inset:auto 0 0!important;top:env(safe-area-inset-top,0px)!important;width:100%;max-width:100%;height:calc(100dvh - env(safe-area-inset-top,0px));max-height:calc(100dvh - env(safe-area-inset-top,0px));margin:0;padding:16px 12px calc(24px + env(safe-area-inset-bottom,0px));border-radius:0;overscroll-behavior-y:contain}
 dialog .row>button{flex-shrink:0}
 dialog iframe{max-width:100%}img,video{max-width:100%}
 body:has(dialog[open]){overflow:hidden}
 .mobile-table-scroll{margin:8px 0 14px}
 .mobile-table-scroll table{min-width:680px}
 .mobile-table-scroll table[data-mobile-columns="1"],.mobile-table-scroll table[data-mobile-columns="2"],.mobile-table-scroll table[data-mobile-columns="3"]{min-width:100%}
 .mobile-table-scroll table[data-mobile-columns="10"],.mobile-table-scroll table[data-mobile-columns="11"],.mobile-table-scroll table[data-mobile-columns="12"]{min-width:1000px}
 .mobile-table-scroll td,.mobile-table-scroll th{padding:12px 9px;vertical-align:top}
 .mobile-table-scroll input:not([type=checkbox]):not([type=radio]),.mobile-table-scroll select{min-width:100px}
 .mobile-table-scroll textarea{min-width:180px}
 .mobile-table-scroll::before{content:'左右滑动查看完整表格';display:block;font-size:12px;color:var(--muted);padding:4px 0 10px}
 .parallel-status{display:inline-block;margin:3px 0}
 .quote-status-track{max-width:100%;padding-block:12px;touch-action:pan-x}
 .task-rail,.task-rail.collapsed{top:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:none;width:min(360px,calc(100vw - 24px));max-height:52dvh;z-index:4}
 .task-rail.collapsed{width:auto;max-width:calc(100vw - 24px)}
 .task-rail.collapsed header{padding:5px 8px;display:flex;flex-wrap:nowrap;gap:12px}
 .task-rail.collapsed header span{display:inline;font-size:13px}
 .task-rail.collapsed header button{writing-mode:horizontal-tb;min-height:44px;padding:6px 10px}
 .task-rail .task-rail-list .task-dismiss{width:44px;height:44px;line-height:40px;right:2px;top:2px}
 .task-rail .task-rail-list .task-open{padding-right:48px}
 #page-dashboard .dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 #page-dashboard .dashboard-filters label{min-width:0;width:100%}
 #page-dashboard .dashboard-charts{grid-template-columns:minmax(0,1fr)}
 #page-dashboard button.dashboard-card{min-height:130px;padding:12px}
 #page-dashboard button.dashboard-bar{grid-template-columns:minmax(72px,1fr) 1fr auto;gap:8px}
 #privacy-canvas{max-width:100%;height:auto;touch-action:none}
 #toast{max-width:calc(100vw - 28px);font-size:15px;z-index:100}
 .login{margin:7vh 12px;padding:24px;max-width:calc(100% - 24px)}
}
@media(max-width:360px){.cards,#page-dashboard .dashboard-cards{grid-template-columns:minmax(0,1fr)!important}.company-choice{gap:5px;padding:8px 5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
