/* =========================================================
   江苏华辰企管中心数字化工作平台 V2.6.11
   全局图标系统：统一线性语言、尺寸、状态颜色与触控热区。
   此文件作为最终收口层加载，不改变各业务模块的布局结构。
   ========================================================= */

:root{
  --hc-icon-xs:12px;
  --hc-icon-sm:16px;
  --hc-icon-md:18px;
  --hc-icon-lg:22px;
  --hc-icon-xl:28px;
  --hc-icon-blue:#176ed1;
  --hc-icon-blue-soft:#eaf4ff;
  --hc-icon-muted:#6f8498;
  --hc-icon-orange:#d98316;
  --hc-icon-green:#16835b;
  --hc-icon-red:#c84e58;
  --hc-icon-focus:rgba(35,122,213,.18);
}

.ui-icon{
  display:inline-block;
  width:var(--hc-icon-sm)!important;
  height:var(--hc-icon-sm)!important;
  flex:0 0 auto;
  vertical-align:-3px;
  overflow:visible;
  shape-rendering:geometricPrecision;
  pointer-events:none;
}

.ui-icon *{vector-effect:non-scaling-stroke}
.ui-icon[data-icon-missing="true"]{color:var(--hc-icon-red)!important}
.ui-icon.flip-x{transform:scaleX(-1)!important}
.ui-icon.flip-y{transform:rotate(-90deg)!important}
.ui-icon.rotate-90{transform:rotate(90deg)!important}
.ui-icon.rotate-180{transform:rotate(180deg)!important}

/* 12px：徽标、胶囊、元信息。 */
.badge .ui-icon,.tag .ui-icon,.pill .ui-icon,.task-extension-pill .ui-icon,
.relation-badge .ui-icon,.saved-login-badge .ui-icon,.text-link .ui-icon{
  width:var(--hc-icon-xs)!important;
  height:var(--hc-icon-xs)!important;
}

/* 16px：文字按钮、标题、表格操作，是系统默认等级。 */
.btn .ui-icon,.btn-link .ui-icon,.section-head h3 .ui-icon,.panel h3 .ui-icon,
.unified-module-tabs .ui-icon,.view-switch .ui-icon,.analysis-mode-switch .ui-icon,
.toolbar-search .ui-icon,.page-more-actions .btn .ui-icon,.topbar-tool-button .ui-icon{
  width:var(--hc-icon-sm)!important;
  height:var(--hc-icon-sm)!important;
}

.btn,.btn-link,.section-head h3,.panel h3,.toolbar-search,
.page-more-actions summary,.topbar-more summary{
  align-items:center;
}

/* 18px：导航、独立图标按钮、输入框、状态反馈。 */
.nav button i .ui-icon,.icon-button .ui-icon,.close .ui-icon,
.action-menu summary .ui-icon,.input-with-icon>.ui-icon,
.login-password-toggle .ui-icon,.status-icon .ui-icon,.toast-icon .ui-icon,
.topbar-more summary .ui-icon,.mobile-more-sheet .ui-icon{
  width:var(--hc-icon-md)!important;
  height:var(--hc-icon-md)!important;
}

.login-feature-grid article .ui-icon{
  width:var(--hc-icon-md)!important;
  height:var(--hc-icon-md)!important;
}

.refined-login-card .login-mark .ui-icon{
  width:var(--hc-icon-lg)!important;
  height:var(--hc-icon-lg)!important;
}

.refined-login-foot .ui-icon,.saved-login-badge .ui-icon{
  width:var(--hc-icon-xs)!important;
  height:var(--hc-icon-xs)!important;
}

.login-local-note .ui-icon,.login-security-note .ui-icon,
.platform-access-badge .ui-icon{
  width:var(--hc-icon-sm)!important;
  height:var(--hc-icon-sm)!important;
}

.nav button em .ui-icon{
  width:var(--hc-icon-xs)!important;
  height:var(--hc-icon-xs)!important;
}

.dorm-occupancy-floor>summary .ui-icon{
  width:var(--hc-icon-sm)!important;
  height:var(--hc-icon-sm)!important;
}

.welcome-label .ui-icon,.platform-analytics-tags .ui-icon,
.platform-summary-cards button .ui-icon,.platform-summary-cards article>i .ui-icon,
.platform-permission-legend .ui-icon,.daily-state .ui-icon,
.deadline-field>span em .ui-icon,.media-readonly-note .ui-icon,
.person-kpis>div>span .ui-icon{
  width:var(--hc-icon-xs)!important;
  height:var(--hc-icon-xs)!important;
}

.welcome-warm-copy>span .ui-icon,.analysis-scope .ui-icon,
.daily-date-picker .ui-icon,.utility-floor-finance>summary .ui-icon,
.utility-room-finance>summary .ui-icon,.dorm-template-chip .ui-icon,
.management-tools-strip>button>.ui-icon{
  width:var(--hc-icon-sm)!important;
  height:var(--hc-icon-sm)!important;
}

.nav button i,.status-icon,.toast-icon,.empty-icon,.focus-icon,
.login-mark,.login-feature-grid article>span,.login-warm-line>span{
  display:grid;
  place-items:center;
}

/* 22px：模块卡片和关键入口。 */
.focus-icon .ui-icon,.management-tools-strip .tool-icon .ui-icon,
.vehicle-simple-hero>div:first-child>span .ui-icon,
.dorm-hero-main.compact>span .ui-icon,.budget-kpi-icon .ui-icon,
.reminder-row>span .ui-icon,
.daily-report-module-icon .ui-icon,.admin-affair-hero>div:first-child>span .ui-icon,
.person-period-hero>div:first-child>span .ui-icon,.media-hero>div:first-child>span .ui-icon,
.platform-analytics-hero>div:first-child>span .ui-icon,
.platform-summary-cards article>span .ui-icon,
.vehicle-v218-topbar>div:first-child>span .ui-icon,
.budget-period-icon .ui-icon,.management-center-head h2 .ui-icon{
  width:var(--hc-icon-lg)!important;
  height:var(--hc-icon-lg)!important;
}

/* 28px：空状态与加载反馈，只用于低频大面积区域。 */
.empty-icon .ui-icon,.empty.icon-empty>.empty-icon .ui-icon,.loading-spinner .ui-icon{
  width:var(--hc-icon-xl)!important;
  height:var(--hc-icon-xl)!important;
}

/* 图标按钮：视觉尺寸紧凑，操作热区保持清晰。 */
.icon-button,.close,.action-menu summary{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 auto;
}

.icon-button{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  padding:0!important;
  border-radius:11px!important;
}

.close{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  padding:0!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  background:#f1f5f8!important;
  color:#5f7488!important;
  font-size:0!important;
  line-height:1!important;
  cursor:pointer;
}

.close:hover{
  border-color:#d7e4ee!important;
  background:#eaf2f8!important;
  color:#215f99!important;
}

.action-menu summary{
  width:34px;
  height:34px;
  min-width:34px;
  padding:0!important;
  border-radius:9px;
  color:var(--hc-icon-muted);
  cursor:pointer;
}

.action-menu summary::-webkit-details-marker,.page-more-actions summary::-webkit-details-marker,
.topbar-more summary::-webkit-details-marker{display:none}

.action-menu[open] summary,.page-more-actions[open] summary,.topbar-more[open] summary{
  color:var(--hc-icon-blue)!important;
  background:var(--hc-icon-blue-soft)!important;
}

/* 状态用色：颜色只强化语义，不单独承担语义。 */
.icon-button.blue,.icon-button.active,.nav button.active i,
.unified-module-tabs button.active .ui-icon,.view-switch button.active .ui-icon{
  color:var(--hc-icon-blue)!important;
}

.danger .ui-icon,.icon-button.danger .ui-icon,.icon-button.red .ui-icon,
.btn.danger .ui-icon,.btn.danger-outline .ui-icon{color:var(--hc-icon-red)!important}
.success .ui-icon,.ok .ui-icon,.green .ui-icon{color:var(--hc-icon-green)}
.warning .ui-icon,.orange .ui-icon,.yellow .ui-icon{color:var(--hc-icon-orange)}

.toast-icon{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  border-radius:11px!important;
}

#toast.success .toast-icon{background:rgba(22,131,91,.18);color:#7ce0bb}
#toast.error .toast-icon{background:rgba(200,78,88,.2);color:#ffadb3}

.login-password-toggle.is-visible{color:var(--hc-icon-blue)!important}
.draft-remove{display:grid!important;place-items:center!important;font-size:0!important}
.draft-remove .ui-icon{width:var(--hc-icon-sm)!important;height:var(--hc-icon-sm)!important}

/* 键盘操作统一可见焦点。 */
.icon-button:focus-visible,.close:focus-visible,.action-menu summary:focus-visible,
.page-more-actions summary:focus-visible,.topbar-more summary:focus-visible,
.login-password-toggle:focus-visible{
  outline:2px solid #2b7edc!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 4px var(--hc-icon-focus)!important;
}

/* 仅旋转同步类图标，不让容器抖动。 */
.is-loading .ui-icon[data-icon="sync"],.loading-spinner .ui-icon[data-icon="sync"],
.health-syncing .ui-icon[data-icon="sync"]{animation:hcIconSpin 1s linear infinite}

@keyframes hcIconSpin{to{transform:rotate(360deg)}}

@media(max-width:820px){
  .mobile-bottom-nav button .ui-icon{
    width:20px!important;
    height:20px!important;
  }

  .mobile-bottom-nav button i{
    width:30px!important;
    height:30px!important;
  }

  .icon-button,.close{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
  }

  .action-menu summary{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
  }

  .page-more-actions summary,.topbar-more summary{
    min-height:42px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .ui-icon,.is-loading .ui-icon,.loading-spinner .ui-icon,.health-syncing .ui-icon{
    animation:none!important;
    transition:none!important;
  }
}
