/* Responsive layer: preserve the reference desktop, progressively reflow below it. */
.mobile-nav-backdrop{display:none}

/* Wide business tables must remain operable when desktop scaling reduces the
   effective CSS viewport. Keep scrolling inside the card instead of clipping
   the rightmost actions. */
.table-card{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.data-table th:last-child{position:sticky;right:0;z-index:4;background:#fafaf7;box-shadow:-8px 0 14px -14px rgba(23,32,45,.6)}
.data-table td:last-child:not([colspan]){position:sticky;right:0;z-index:2;background:#fff;box-shadow:-8px 0 14px -14px rgba(23,32,45,.6)}
.data-table tbody tr:hover td:last-child:not([colspan]){background:#fcfcf9}
.pagination{position:sticky;left:0;z-index:3;width:100%;min-width:100%;background:#fff}

@media(min-width:1181px) and (max-width:1500px){
  .hero{height:auto;min-height:205px;align-items:flex-start;padding:24px 0;gap:18px;flex-direction:column}
  .hero-greeting{min-width:0;max-width:100%}
  .hero-filters{width:100%;margin-left:0;justify-content:flex-end;flex-wrap:wrap}
}

@media(max-width:1180px){
  :root{--sidebar-w:0px;--content-gutter:22px;--panel-gap:18px}
  body.nav-locked{overflow:hidden;touch-action:none}
  .app-shell{grid-template-columns:minmax(0,1fr)}
  .main{grid-column:1;min-width:0}
  .sidebar{width:288px;transform:translateX(-105%);z-index:70;will-change:transform;box-shadow:12px 0 36px rgba(17,21,29,.16)}
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebar-account{left:11px;width:265px;transform:translateX(-115%);z-index:72;will-change:transform}
  .sidebar-account.mobile-open{transform:translateX(0)}
  .mobile-nav-backdrop{position:fixed;inset:0;z-index:65;background:rgba(18,22,28,.28);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .mobile-nav-backdrop.open{display:block}
  .account-popover{z-index:78}
  .footer{left:0}
  .hero{height:auto;min-height:145px;align-items:flex-start;padding:24px 0;gap:18px;flex-direction:column}
  .hero-greeting{min-width:0;max-width:100%}
  .hero-filters{margin-left:0;max-width:100%;flex-wrap:wrap}
  .dashboard-top{grid-template-columns:minmax(0,1fr)}
  .cockpit,.rhythm{height:auto}
  .metric-grid,.secondary-metrics,.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .operator-mascot{display:none}
  .report-grid{grid-template-columns:minmax(0,1fr)}
  .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  :root{--content-gutter:18px}
  .topbar{padding:0 18px}
  .sidebar-toggle{margin-right:8px}
  .module-icon{margin-left:0}
  .top-actions .top-pill,.top-actions .currency{display:none}
  .top-actions .mini-program-trigger{display:inline-flex;width:42px;padding:0;justify-content:center}
  .mini-program-trigger .top-pill-label{display:none}
  .mini-program-trigger .wechat-mark{transform:none}
  .breadcrumb{min-width:0}
  .breadcrumb strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34vw}
  .page{padding-left:var(--content-gutter);padding-right:var(--content-gutter)}
  .periods{max-width:100%;overflow-x:auto;scrollbar-width:none;overscroll-behavior-inline:contain}
  .periods::-webkit-scrollbar{display:none}
  .period{flex:0 0 auto}
  .cockpit-head{flex-wrap:wrap}
  .panel-actions{margin:14px 0 0;width:100%}
  .toolbar{flex-wrap:wrap}
  .report-filters{flex-wrap:wrap;align-items:end}
  .report-filters>span{width:100%;margin-left:0;padding-bottom:0}
  .search-wrap{order:-1;width:100%}
  .search{width:100%}
  .toolbar-count{margin-left:0}
  .data-table{min-width:920px}
  .page-heading{height:auto;min-height:112px;padding:20px 0;gap:16px;flex-wrap:wrap}
  .page-heading .heading-actions{margin-left:auto}
  .assistant-drawer{right:18px;top:18px;width:calc(100% - 36px);height:calc(100% - 36px)}
  .bar-chart{min-width:600px}
  .chart-panel{overflow-x:auto}
}

@media(max-width:520px){
  .mini-program-overlay{padding:14px}
  .mini-program-dialog{padding:22px;border-radius:18px}
  .mini-program-heading{gap:11px;padding-right:40px}
  .mini-program-heading h2{font-size:18px}
  .mini-program-mark{flex-basis:40px;width:40px;height:40px;border-radius:12px}
  .mini-program-code{margin-top:18px;padding:10px;border-radius:15px}
}

@media(max-width:680px){
  :root{--content-gutter:14px;--panel-gap:14px}
  .topbar{height:58px;padding:0 12px}
  .sidebar-toggle{width:36px;height:36px;margin-right:4px}
  .module-icon{display:none}
  .breadcrumb{margin-left:4px;font-size:12px}
  .breadcrumb strong{font-size:14px;margin-left:5px;max-width:51vw}
  .top-actions{gap:2px}
  .top-actions .icon-btn{width:34px;height:34px}
  .page{padding:0 var(--content-gutter) 84px}
  .hero{min-height:0;padding:18px 0;gap:16px}
  .hero-greeting{width:100%;align-items:center}
  .salad{width:54px;height:54px;flex:0 0 54px;background-size:1343px 843px;background-position:-248px -62px}
  .hero-greeting>div:last-child{min-width:0;flex:1}
  .hero-text{font-size:clamp(20px,5.7vw,27px);line-height:1.35;white-space:normal;margin-left:12px;letter-spacing:0}
  .hero-line{height:3px;margin:5px 0 0 12px}
  .hero-filters{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px}
  .hero-filters .select{height:42px;min-width:0;width:100%;font-size:14px}
  .filter-label{align-self:center;margin-right:0}
  .periods{grid-column:1/-1;width:100%;gap:2px;padding-bottom:3px}
  .period{height:38px;padding:0 12px;font-size:13px}
  .dashboard{padding-top:16px}
  .cockpit,.rhythm{padding:18px 16px}
  .cockpit-head{display:block;min-height:0}
  .health-chip,.date-chip{font-size:11px;padding:0 8px}
  .date-chip{display:inline-flex;align-items:center;margin-left:4px}
  .cockpit-title{font-size:24px;margin-top:15px}
  .cockpit-sub{font-size:12px;line-height:1.6}
  .panel-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .panel-actions .btn{width:100%;height:42px;padding:0 10px;font-size:13px}
  .metric-grid,.secondary-metrics,.health-grid,.cards-grid{grid-template-columns:minmax(0,1fr)}
  .metric-grid{margin-top:18px}
  .secondary-metrics{gap:12px;margin-top:12px}
  .metric,.secondary-metrics .metric{height:auto;min-height:150px;padding:18px}
  .metric-value,.secondary-metrics .metric-value{font-size:30px}
  .rhythm-value{font-size:39px}
  .health-panel{padding:20px 16px;margin-top:14px;margin-bottom:24px}
  .health-sub{line-height:1.5;margin-bottom:16px}
  .health-grid{grid-auto-rows:minmax(132px,auto);gap:10px}
  .health-card{min-height:132px}
  .stats-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat-box{padding:16px 14px}
  .stat-box strong{font-size:22px}
  .page-heading{min-height:104px;padding:18px 0;display:block}
  .page-heading h1{font-size:24px}
  .page-heading .heading-actions{margin:14px 0 0;display:flex;flex-wrap:wrap}
  .page-heading .heading-actions .btn{flex:1;min-width:max-content}
  .toolbar{padding:12px;gap:8px}
  .report-filters{display:grid;grid-template-columns:1fr;margin-bottom:14px;padding:14px}
  .report-filters label,.report-filters .select{width:100%}
  .toolbar .select{flex:1;min-width:0}
  .toolbar-count{width:100%}
  .cards-grid{gap:12px}
  .form-drawer{width:100%}
  .drawer-header{height:68px;padding:0 18px}
  .drawer-body{padding:20px 18px}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .form-field.full{grid-column:1}
  .drawer-footer{height:68px;padding:12px 18px}
  .assistant-drawer{inset:10px;width:auto;height:auto;border-radius:18px}
  .assistant-head{height:86px;padding:18px}
  .assistant-logo{width:43px;height:43px}
  .assistant-title{font-size:17px;margin-left:12px}
  .assistant-body{padding:18px}
  .assistant-message{padding:16px;font-size:14px;border-radius:16px}
  .assistant-compose{padding:0 15px 16px}
  .model-select{width:100%;height:42px}
  .prompt-box{height:70px;padding:0 14px;border-radius:15px}
  .ai-fab{right:15px;bottom:16px;width:54px;height:54px;padding:0;border-radius:16px}
  .ai-fab .fab-label{display:none}
  .account-popover{left:12px;bottom:74px;width:264px}
  .footer{position:static;height:auto;margin:16px -14px -84px;padding:18px 14px;line-height:1.6;text-align:center;display:block}
  .toast{left:14px;right:14px;top:70px;text-align:center}
}

@media(max-width:420px){
  .sidebar{width:min(288px,86vw)}
  .sidebar-account{width:min(265px,calc(86vw - 23px))}
  .stats-strip{grid-template-columns:minmax(0,1fr)}
  .date-chip{margin:6px 0 0;display:flex;width:max-content}
  .panel-actions{grid-template-columns:minmax(0,1fr)}
  .top-actions .icon-btn{display:none}
  .breadcrumb strong{max-width:58vw}
}

.procurement-panel{margin:0 0 18px;padding:20px}.procurement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.procurement-head span{font-size:12px;color:#148d97;font-weight:700}.procurement-head h3{margin:4px 0 5px;font-size:18px}.procurement-head p{margin:0;color:#7b8188;font-size:12px}.procurement-head>strong{padding:7px 10px;border-radius:9px;background:#eefaf8;color:#168b77;font-size:12px;white-space:nowrap}.procurement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.procurement-requirement{border:1px solid #e6e8e5;border-radius:11px;padding:15px;background:linear-gradient(135deg,#fff 0%,#fbfffe 100%)}.procurement-requirement-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.procurement-requirement-head strong{display:block;font-size:14px}.procurement-requirement-head span{display:block;margin-top:4px;color:#7c8188;font-size:11px}.procurement-requirement-head .badge{position:static;flex:none}.procurement-lines{border-top:1px solid #edf0ec;margin-top:12px;padding-top:4px}.procurement-lines>div{padding:9px 0;border-bottom:1px solid #f0f1ee}.procurement-lines>div:last-child{border-bottom:0}.procurement-lines span{display:block;font-size:12px;font-weight:650}.procurement-lines small{display:block;margin-top:4px;color:#7e848b;font-size:11px}.procurement-lines b{color:#b67813}.procurement-complete{display:block;padding:11px 0;color:#168b77;font-size:12px}.procurement-requirement .btn{margin-top:12px;width:100%}
@media(max-width:760px){.procurement-list{grid-template-columns:1fr}.procurement-panel{padding:16px}.procurement-head{display:block}.procurement-head>strong{display:inline-flex;margin-top:10px}}

@media(prefers-reduced-motion:reduce){
  .sidebar,.sidebar-account,.mobile-nav-backdrop{transition:none!important}
}
