/*
  科技运营控制台 · 业务组件层
  在 tech-shell.css 之后加载。仅调整视觉呈现，保留现有页面结构、事件和状态类。
*/

/* Shared controls and information hierarchy */
:is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .rte){
  border:1px solid var(--ctl-border,var(--line));
  border-radius:9px;
  background:color-mix(in srgb,var(--panel) 94%,var(--bg));
  color:var(--text);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 7%,transparent);
}
:is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):hover{border-color:var(--ctl-border-hover,var(--brand))}
:is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .rte):focus-within{border-color:var(--brand);box-shadow:var(--ctl-ring,0 0 0 3px color-mix(in srgb,var(--brand) 24%,transparent))}
input:disabled,select:disabled,textarea:disabled{opacity:.58;background:var(--panel2);cursor:not-allowed}
label,.field-label,.fc-label{color:var(--text);font-weight:700;letter-spacing:.01em}
.field-help,.fc-hint,.fc-note,.hint{color:var(--muted)}

:is(button,a).primary{min-height:38px;border:1px solid var(--brand-btn);border-radius:9px;background:var(--brand-btn);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--brand) 20%,transparent);font-weight:750}
:is(button,a).primary:hover{background:var(--brand-btn-hover);border-color:var(--brand-btn-hover);box-shadow:0 9px 20px color-mix(in srgb,var(--brand) 28%,transparent)}
:is(button,a).ghost{min-height:36px;border:1px solid var(--ctl-border,var(--line));border-radius:9px;background:color-mix(in srgb,var(--panel) 90%,transparent);color:var(--text)}
:is(button,a).ghost:hover{border-color:color-mix(in srgb,var(--brand) 48%,var(--line));background:var(--brand-soft);color:var(--brand-text)}
:is(button,a).link{color:var(--brand-text);border-radius:8px;font-weight:700}
:is(button,a).danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));color:var(--danger-text,var(--danger));border-radius:9px}
:is(button,a).danger:hover{background:var(--danger-soft)}
:is(button,a):disabled{box-shadow:none;filter:saturate(.55);cursor:not-allowed}

.panel,.card,.stat,.task-card,.goal-card,.automation-card,.template-card,.report-card,.foundation-record,.grant-row,.discussion-post,.complaint-row,.personal-task,.personal-office-application,.external-source-row,.external-publication-row{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent);
}
.panel{padding:20px 21px;margin-bottom:16px}
.card{padding:16px}
.panel-head,.section-head{position:relative;align-items:center;padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.panel-head h3,.section-head h2{padding-left:11px;border-left:3px solid var(--accent);letter-spacing:.01em;font-weight:700}
.section-head{display:flex;align-items:center;gap:0;margin:22px 0 13px}
.section-head h2{margin:0;font-size:18px}

.toolbar,.report-toolbar,.member-toolbar,.quota-toolbar,.administration-toolbar,.fc-grant-bar,.business-monitoring-actions{
  padding:11px;
  border:1px solid var(--line);border-radius:12px;
  background:color-mix(in srgb,var(--panel2) 84%,var(--panel));
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent);
}
.toolbar input,.toolbar select,.report-toolbar input,.report-toolbar select,.member-toolbar input,.member-toolbar select,.quota-toolbar input,.quota-toolbar select{background:var(--panel)}
.toolbar .search{background-color:var(--panel)}

/* Tables, data rows, chips and empty feedback */
.table-wrap,.external-table-scroll,.biz-table-host,.fc-table-wrap,.cw-table-wrap{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}
table,.biz-table,.fc-table,.cw-table{font-variant-numeric:tabular-nums;border-collapse:separate;border-spacing:0}
:is(th,.biz-table th,.fc-table th,.cw-table th){position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--panel2) 92%,var(--bg));color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:none}
:is(th,td,.biz-table th,.biz-table td,.fc-table th,.fc-table td,.cw-table th,.cw-table td){border-color:var(--line);padding:12px 13px}
:is(tbody tr:nth-child(even) td,.biz-table tbody tr:nth-child(even) td,.fc-table tbody tr:nth-child(even) td,.cw-table tbody tr:nth-child(even) td){background:color-mix(in srgb,var(--panel2) 35%,var(--panel))}
:is(tbody tr:hover td,.biz-table tbody tr:hover td,.fc-table tbody tr:hover td,.cw-table tbody tr:hover td){background:color-mix(in srgb,var(--brand-soft) 50%,var(--panel))}
.badge,.status-chip,.search-type-chip,.personal-office-kind,.fc-tag,.cw-chip,.administration-expiry{display:inline-flex;align-items:center;gap:5px;min-height:25px;padding:2px 9px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:999px;background:var(--panel2);color:var(--text);font-size:12px;font-weight:750;line-height:1.3}
.fc-tag-ok,.fc-st-approved,.cw-status.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,var(--line));color:var(--ok-text,var(--ok))}
.fc-st-submitted,.cw-warning{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,var(--line));color:var(--warn-text,var(--warn))}
.fc-st-rejected,.fc-sign-bad,.cw-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger-text,var(--danger))}
.state-box,.empty,.search-empty,.cw-empty,.fc-empty{border:1px dashed color-mix(in srgb,var(--brand) 38%,var(--line));border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand-soft) 46%,var(--panel)),var(--panel2));color:var(--muted);box-shadow:none}
.inline-feedback{border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--brand-soft) 55%,var(--panel));color:var(--text)}
.inline-feedback.error,.cw-error{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger-soft) 74%,var(--panel));color:var(--danger-text,var(--danger))}

/* Dense dashboards and work management */
.stat-grid,.biz-kpis,.biz-kpis-compact,.today-summary,.workload-grid,.department-widget-grid{gap:12px}
.stat,.biz-kpi,.activation-stat,.quota-item,.workload-item,.department-widget{
  min-height:110px;padding:17px 18px;position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:12px;background:linear-gradient(140deg,var(--panel),color-mix(in srgb,var(--panel2) 50%,var(--panel)));
}
.stat::after,.biz-kpi::after{content:none}
.stat .num,.biz-kpi strong,.biz-gauge strong{font-size:29px;line-height:1.08;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.stat .lbl,.biz-kpi small{position:relative;color:var(--muted);font-weight:650}
.task-card,.notification-item,.member-item,.admin-data-item{border-color:var(--line);background:var(--panel)}
.task-card{border-left:3px solid var(--accent);padding:15px 16px}.task-card:hover,.search-result-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 54%,var(--line));background:color-mix(in srgb,var(--brand-soft) 30%,var(--panel));box-shadow:0 13px 26px rgba(0,0,0,.13)}
.task-card .title{font-weight:760}.task-card .meta,.task-card .desc{color:var(--muted)}
.board-col{padding:11px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 88%,var(--bg)),var(--panel2))}
.board-col h4{padding:7px 7px 12px;color:var(--text);font-weight:760}.board-col .count{border-color:var(--line);background:var(--panel);color:var(--brand-text)}
.workspace-tabs,.handover-center-tabs,.discussion-tabs,.personal-office-tabs,.admin-tabs,.reward-admin-tabs,.fc-tabs{gap:5px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.workspace-tab,.admin-tab,.reward-admin-tab,.fc-tab{border-radius:8px;color:var(--muted);font-weight:750}.workspace-tab.active,.admin-tab.active,.reward-admin-tab.active,.fc-tab.active{background:var(--brand-btn);color:#fff;box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 24%,transparent)}
.goal-card,.automation-card,.template-card,.report-card{padding:17px}.goal-results>div,.automation-flow span,.key-result-editor{border:1px solid color-mix(in srgb,var(--line) 88%,transparent);background:var(--panel2)}
.automation-builder fieldset{border-color:var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel2) 66%,var(--panel))}.automation-arrow{color:var(--accent)}
.automation-template{border-color:var(--line);border-radius:10px;background:var(--panel2)}

/* Finance, business monitors, contracts and administration */
#view-finance .panel,#view-business .panel,#view-administration .panel,#view-business-monitoring .panel{scroll-margin-top:86px}
#financeImportPanel,.finance-history-event,.finance-result-counts span,.administration-record,.administration-content{border-color:var(--line);background:var(--panel)}
.finance-result-counts span{border-radius:9px;background:var(--panel2);font-variant-numeric:tabular-nums}
.finance-history-event{padding:16px;border-radius:10px;margin-bottom:8px}.finance-review-row td:last-child{color:var(--warn-text,var(--warn))}
.business-monitoring-form fieldset{border-color:var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel2) 62%,var(--panel))}.business-monitoring-form legend{color:var(--brand-text)}
.business-monitoring-status{padding:10px 0;color:var(--muted)}.business-monitoring-status small,.business-monitoring-status .state-failed{color:var(--danger-text,var(--danger))}.business-monitoring-status .state-succeeded{color:var(--ok-text,var(--ok))}
.administration-record{padding:17px;border-radius:12px;box-shadow:inset 3px 0 var(--accent)}
.administration-record:hover{border-color:color-mix(in srgb,var(--brand) 44%,var(--line));background:color-mix(in srgb,var(--brand-soft) 22%,var(--panel))}
.administration-content{border-radius:10px}.administration-files article{border-color:var(--line)}
.administration-expiry-expired{color:var(--danger-text,var(--danger));background:var(--danger-soft)}
.administration-expiry-due_today,.administration-expiry-expiring{color:var(--warn-text,var(--warn));background:var(--warn-soft)}
.administration-expiry-normal{color:var(--ok-text,var(--ok));background:var(--ok-soft)}

/* Role home uses the same opaque operational surfaces as dynamic views. */
.home-widget,.todo-group{border-color:var(--line);border-radius:13px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel2) 44%,var(--panel)));box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 6%,transparent)}
.home-widget>header,.todo-group>header{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.widget-row{border-color:var(--line);border-radius:9px;background:var(--panel2)}
.widget-row:hover{border-color:color-mix(in srgb,var(--brand) 44%,var(--line));background:color-mix(in srgb,var(--brand-soft) 44%,var(--panel2))}
.tag{border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:999px}.stale-banner{border-color:color-mix(in srgb,var(--warn) 44%,var(--line));background:var(--warn-soft);color:var(--warn-text,var(--warn))}
.home-hero{position:relative;align-items:center;gap:24px;margin-bottom:20px;padding:25px 28px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;background:linear-gradient(110deg,var(--panel2),var(--panel));box-shadow:var(--shadow)}
.home-hero-copy{min-width:0;flex:1 1 300px}
.home-hero h1{font-size:30px;letter-spacing:-.035em;line-height:1.3;margin:8px 0 10px;font-weight:700}
.home-hero .muted{font-size:13px;line-height:1.7;max-width:60ch}
.home-role{display:inline-flex;align-items:center;min-height:26px;padding:2px 9px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:5px;background:color-mix(in srgb,var(--brand-soft) 65%,var(--panel));color:var(--brand-text);font-size:12px;font-weight:650}
.home-hero-tools{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex:0 1 auto;min-width:0}
.home-date{color:var(--muted);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.home-widget-heading{display:flex;align-items:center;gap:11px;min-width:0}
.home-widget-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:9px;background:var(--brand-soft);color:var(--accent)}
.home-widget-icon svg{width:21px;height:21px}
.home-widget>header{align-items:center;flex-wrap:wrap;row-gap:9px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line-2)}
.home-widget>header h3{font-size:16px;line-height:1.4;letter-spacing:.01em}
.home-widget .widget-src{font-size:12px;white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--muted)}
.home-grid{gap:18px}
.home-widget{padding:21px;border-radius:12px;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--brand) 30%,transparent)}
.home-widget .widget-row{border-width:0 0 1px;border-radius:0;padding:12px 0;background:transparent;min-height:52px;flex-wrap:wrap;row-gap:8px}
.home-widget .widget-row:hover{background:color-mix(in srgb,var(--brand-soft) 30%,transparent)}
.home-widget .widget-row:last-child{border-bottom:0}
.home-widget .widget-row .row-title{flex-basis:140px;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.home-widget .widget-row .row-go{margin-left:auto}
.home-widget .widget-empty,.home-widget .widget-error{min-height:76px;padding:16px;line-height:1.7}
.stat-strip{gap:0;padding:3px 0}.stat-cell{min-width:112px;padding:3px 16px 3px 0;margin-right:16px;border-right:1px solid var(--line)}
.stat-cell:last-child{margin-right:0;border-right:0}.stat-cell .num{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.025em;overflow-wrap:anywhere}.stat-cell .lbl{font-weight:650}
.page-tab{min-height:44px}

/* Personal dashboard layout editor: ui-system's --surface fallback is white in dark mode. */
.pdl-bar{border-color:var(--line);background:var(--panel);color:var(--text);box-shadow:none;border-radius:10px;padding:14px 16px;margin-bottom:20px}
.pdl-bar .pdl-info{padding-bottom:8px;border-bottom:1px solid var(--line-2)}
.pdl-row{border-color:var(--line);background:var(--panel2)}
.pdl-row:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:color-mix(in srgb,var(--brand-soft) 34%,var(--panel2))}
.pdl-error,.pdl-conflict{border-color:color-mix(in srgb,var(--danger) 44%,var(--line));background:color-mix(in srgb,var(--danger-soft) 48%,var(--panel))}
.pdl-unknown{border-color:color-mix(in srgb,var(--warn) 44%,var(--line));background:color-mix(in srgb,var(--warn-soft) 44%,var(--panel))}

/* Form centre, approvals, signatures and policy records */
.form-center,.fc-editor,.fc-card,.fc-detail,.fc-records,.fc-section,.fc-grant-list{min-width:0}
.fc-card,.fc-editor,.fc-section,.fc-group{border-color:var(--line);border-radius:12px;background:var(--panel);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}
.fc-card{border-left:3px solid var(--accent)}.fc-card:hover{border-color:color-mix(in srgb,var(--brand) 48%,var(--line));background:color-mix(in srgb,var(--brand-soft) 20%,var(--panel))}
.fc-editor-head,.fc-card-top,.fc-card-foot,.fc-group-title{border-color:var(--line)}
.fc-fld,.fc-grant-item,.fc-opt{border-color:var(--line);border-radius:10px;background:var(--panel2)}
.fc-table-wrap{overflow:auto}.fc-table th{white-space:nowrap}.fc-sign-pad{border-color:var(--line);background:var(--panel2)}
.handwritten-signature{border-color:var(--line);border-radius:12px;background:var(--panel2)}
.handwritten-signature-surface,.handwritten-signature-readonly{background:#fff;border-color:color-mix(in srgb,var(--line) 84%,#778ca5)}

/* Calculation, settings, department and discussion surfaces */
.cw-workbench,.cw-card,.cw-section,.cw-list-item,.department-panel,.department-layout-widget,.department-design-editor,.handover-center-card{border-color:var(--line);border-radius:12px;background:var(--panel);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}
.cw-card,.cw-section,.department-layout-widget{padding:16px}.cw-section-head,.cw-row-head{border-color:var(--line)}
.cw-review-row,.cw-payslip-row,.handover-center-items>li{border-color:var(--line);background:var(--panel2)}
.department-layout-heading,.department-widget,.dashboard-svg-card{border-color:var(--line);background:var(--panel)}
.discussion-post,.complaint-row{border-left:3px solid color-mix(in srgb,var(--brand) 80%,var(--accent))}
.rte-toolbar,.rte-analysis-panel,.rte-attachment-panel{border-color:var(--line);background:var(--panel2)}

/* Dialogs stay structurally untouched while gaining a focused surface */
.modal,.drawer-mask{background:rgba(2,9,19,.66);backdrop-filter:blur(10px)}
.modal-card,.drawer-body{border:1px solid color-mix(in srgb,var(--line) 90%,var(--brand));border-radius:15px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 86%,var(--panel2)));box-shadow:0 28px 75px rgba(0,0,0,.46),0 0 0 1px color-mix(in srgb,var(--brand) 12%,transparent)}
.modal-head,.drawer-head{border-color:var(--line)}.modal-title,.drawer-title{letter-spacing:.01em}
.toast{border:1px solid var(--line);background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.28)}

@media (max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .automation-list,.goal-grid,.collab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:680px){
  .panel{padding:15px 14px;border-radius:11px}.card,.goal-card,.automation-card{padding:14px}
  .toolbar,.report-toolbar,.member-toolbar,.quota-toolbar,.administration-toolbar,.fc-grant-bar{padding:9px;border-radius:10px}
  .stat-grid,.biz-kpis,.biz-kpis-compact,.today-summary,.workload-grid,.department-widget-grid,.automation-list,.goal-grid,.collab-grid{grid-template-columns:1fr}
  :is(button,a).primary,:is(button,a).ghost,:is(button,a).danger{min-height:44px}
  .workspace-tabs,.admin-tabs,.reward-admin-tabs,.fc-tabs{overflow:auto;max-width:100%}
  .workspace-tab,.admin-tab,.reward-admin-tab,.fc-tab{min-height:44px;white-space:nowrap}
  .administration-actions,.administration-record-actions{width:100%}
  .administration-record{gap:13px}
  .home-hero{padding:19px 17px;gap:18px;align-items:flex-start}
  .home-hero-copy{flex-basis:100%}.home-hero h1{font-size:26px}
  .home-hero-tools{width:100%;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
  .home-date{font-size:12px}.home-hero-tools .primary{min-height:44px}
  .home-grid{gap:14px}.home-widget{padding:16px}.home-widget>header{gap:8px}
  .home-widget .widget-src{flex-basis:100%;padding-left:47px}
  .stat-strip{gap:10px}.stat-cell{flex:1 1 calc(50% - 5px);min-width:0;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
  .stat-cell .num{font-size:23px}
  .stat-cell:last-child{border-right:1px solid var(--line)}
  .modal-card{border-radius:16px 16px 0 0}
}
@media (prefers-reduced-motion:reduce){
  .task-card,.search-result-card,:is(button,a).primary{transition:none;transform:none}
}
