/* 西康生活—雅安城市数字服务平台 V2.12 · 全局设计规范
 * 仅定义跨平台通用的字体、触控、响应式、可访问性和组件边界。
 * 平台业务视觉继续由各自唯一业务样式文件负责。
 */
:root{
  --ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;
  --ui-font-size:14px;
  --ui-font-xs:12px;
  --ui-font-sm:13px;
  --ui-font-md:16px;
  --ui-font-lg:20px;
  --ui-font-xl:28px;
  --ui-line-height:1.55;
  --ui-touch:44px;
  --ui-radius-sm:8px;
  --ui-radius-md:12px;
  --ui-radius-lg:16px;
  --ui-focus:0 0 0 3px rgba(79,115,237,.18);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-family:var(--ui-font);font-size:var(--ui-font-size)}
body,button,input,select,textarea{font-family:var(--ui-font);font-size:var(--ui-font-size);line-height:var(--ui-line-height)}
button,input,select,textarea{font-size:14px!important}
body{min-width:320px;overflow-x:hidden}
button,input,select,textarea{max-width:100%}
button,[role="button"],a[onclick],input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:var(--ui-touch)!important}
button,[role="button"],a[onclick]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,[role="button"]:focus-visible,a[onclick]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--ui-focus)}
button:disabled,[aria-disabled="true"]{cursor:not-allowed!important;opacity:.52!important}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-height:18px;vertical-align:middle}
.heading h1,.agent-page-head h1{font-size:var(--ui-font-xl)!important;line-height:1.28}
.dhead h2,.phead h2,.agent-section-head h2{font-size:var(--ui-font-lg)!important;line-height:1.35}
.heading p,.phead p,.agent-page-head p,.agent-section-head p{font-size:var(--ui-font-sm)!important;line-height:1.65}
small,.muted{font-size:var(--ui-font-xs)!important;line-height:1.55}
.app h3,.sub h3,.setting-card h3,.platform-card h3,.agent-platform-card h3{font-size:16px!important;line-height:1.4}
th,td{font-size:13px!important}
.content,#page,.portal main,.shell main{min-width:0;max-width:100%}
.panel,.card,.app,.sub,.platform-card,.setting-card,.agent-section{min-width:0;max-width:100%}
.toolbar,.heading,.heading-actions-inline,.action,.dactions,.agent-section-head,.agent-section-actions{gap:10px;flex-wrap:wrap}
.toolbar .search{flex:1 1 280px;max-width:520px}
.toolbar .search input{width:100%}
.dhead>div,.heading>div,.agent-section-head>div{min-width:0}
.dialog{max-width:min(1080px,94vw);max-height:92vh;overscroll-behavior:contain}
.dbody{overflow-wrap:anywhere}
.toast{max-width:min(520px,calc(100vw - 32px));overflow-wrap:anywhere}
.panel:has(>table),.panel:has(.toolbar + table),.agent-section:has(>table){overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th{white-space:nowrap}
td,th{vertical-align:middle}
img,svg,video,canvas{max-width:100%}
.ui-state{max-width:620px;margin-inline:auto}
.unified-app-more>button,.asset-more>button,.folder-more>button{min-width:44px!important;min-height:44px!important}
@media (max-width:1200px){
  .content{padding-left:22px!important;padding-right:22px!important}
  .cards{gap:14px!important}
}
@media (max-width:900px){
  .content{padding:18px!important}
  .heading h1,.agent-page-head h1{font-size:24px!important}
  .grid2,.overview-focus,.enterprise-layout,.agent-customer-layout-v403{grid-template-columns:1fr!important}
  .toolbar{align-items:stretch!important}
  .toolbar .search{flex-basis:100%;max-width:none}
  .toolbar>button,.toolbar>select{flex:1 1 150px}
  .panel:has(table) table,.agent-section:has(table) table,.portal-table{min-width:760px}
  .form-grid,.portal-form.two,.v29-form-grid{grid-template-columns:1fr!important}
  .dialog{width:min(96vw,760px)!important}
}
@media (max-width:700px){
  .content{padding:14px!important}
  .heading,.agent-page-head,.agent-section-head{align-items:flex-start!important}
  .heading-actions-inline,.agent-section-actions{width:100%;display:flex}
  .heading-actions-inline>button,.agent-section-actions>button,.heading>button{flex:1 1 150px}
  .cards,.appgrid,.subgrid,.setting-cards,.plans,.settings,.platform-grid,.agent-platform-grid,.agent-customer-cards-v403,.v27-dedicated-grid{grid-template-columns:1fr!important}
  .dactions>button{flex:1 1 120px}
}
@media (max-width:560px){
  :root{--ui-font-size:14px;--ui-font-xl:22px}
  .content{padding:12px!important}
  .dialog{width:96vw!important;max-height:94vh!important;border-radius:14px!important}
  .dhead,.dbody,.dactions{padding-left:14px!important;padding-right:14px!important}
  .toolbar>*{width:100%!important;max-width:none!important}
  .cards,.agent-customer-summary,.agent-revenue-summary,.v30-unit-summary{grid-template-columns:1fr!important}
}
@media (pointer:coarse){
  button,[role="button"],a[onclick],input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:48px!important}
  button{padding-top:9px;padding-bottom:9px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
