/* ------------------------------------------------------------------
   2026-11 产品化视觉层
   目标：更薄的侧栏、更清楚的主次、更强的数字与操作提示。
   这一层放在所有业务样式之后，只覆盖壳层和新增组件。
------------------------------------------------------------------- */
:root{
  --green:#0f6b4f;--deep:#0a4d39;--lime:#e7f2ec;--bg:#f4f5f3;--paper:#fff;
  --ink:#1d2b24;--muted:#6d7a72;--line:#e3e8e3;--orange:#e8590c;--red:#c0392b;
  --shadow:0 1px 2px rgba(20,32,25,.035),0 10px 28px rgba(20,32,25,.035);
  --radius:10px;--sidebar:76px;
}
html{scroll-behavior:smooth}
body{font-family:"Inter","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.62;font-variant-numeric:tabular-nums}
h1,h2,h3,h4{color:#20332a;letter-spacing:0}
h1{font-size:28px;font-weight:700;line-height:1.3}
h2{font-size:16px;font-weight:650}
h3{font-size:14px;font-weight:650}
a,button{transition:color .15s,background .15s,border-color .15s,box-shadow .15s,transform .15s}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #d98a4a;outline-offset:2px}

/* ---------- 侧栏：薄薄一列，可独立滚动 ---------- */
.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:var(--sidebar);padding:15px 6px 10px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cbd6cf transparent;scrollbar-gutter:stable}
.sidebar::-webkit-scrollbar{width:4px}
.sidebar::-webkit-scrollbar-thumb{background:#cbd6cf;border-radius:4px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.brand{flex-direction:column;gap:3px;margin:0 0 2px;font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--green);flex-shrink:0}
.brand img{width:30px;height:30px}
.brand span{font-size:11px;color:#3e5e4c}
.sidebar nav{display:grid;gap:3px;margin:0;flex-shrink:0}
.sidebar nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:49px;padding:6px 2px;border-radius:8px;color:#66756d;font-size:10px;line-height:1.25;white-space:nowrap}
.sidebar nav a:hover{background:#f2f7f4;color:var(--green)}
.sidebar nav a.active{background:#e9f4ee;color:var(--green);font-weight:650}
.sidebar nav a.active:before{content:'';position:absolute;left:-6px;top:13px;bottom:13px;width:3px;border-radius:0 3px 3px 0;background:var(--green)}
.nav-icon{font-size:18px;line-height:1;color:inherit}
.rail-label{font-size:9px;color:#9aa49e;text-align:center;margin:8px 0 1px;letter-spacing:.5px}
.rail-divider{height:1px;background:var(--line);margin:8px 6px 4px}
.nav-count{position:absolute;top:3px;right:3px;min-width:14px;padding:0 4px;border-radius:6px;font-size:8px;line-height:14px;color:#fff;background:var(--orange)}
.sidebar-footer{margin-top:auto;flex-shrink:0;padding-top:6px;font-size:8px;color:#93a098;text-align:center;white-space:nowrap}
.live-dot{width:5px;height:5px}

/* ---------- 壳层与顶栏 ---------- */
.main-shell{margin-left:var(--sidebar);min-width:0;min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:25;height:64px;padding:0 28px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px}
.platform-name{display:flex;align-items:center;gap:14px;min-width:0}
.platform-name strong{font-size:20px;font-weight:750;letter-spacing:.8px;color:#14533d;white-space:nowrap}
.platform-name>span{padding-left:14px;border-left:1px solid var(--line);font-size:10px;color:#87948c;white-space:nowrap}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
.top-link{display:flex;align-items:center;gap:5px;padding:8px 10px;border-radius:7px;font-size:11px;color:#53645b;white-space:nowrap}
.top-link span{font-size:15px;color:#7c8e83}
.top-link:hover,.top-link.active{background:#f3f7f4;color:var(--green)}
.account-menu{position:relative}
.account-btn{display:flex;align-items:center;gap:7px;max-width:220px;height:40px;padding:3px 8px 3px 4px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#42554b;font-size:11px;white-space:nowrap}
.account-btn:hover{border-color:#b8d1c4;background:#f8fbf9}
.account-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e4f0e9;color:var(--green);font-size:12px;font-weight:700;flex-shrink:0}
#account-label{overflow:hidden;text-overflow:ellipsis;max-width:118px}
.account-caret{font-size:9px;color:#8b978f}
.account-pop{position:absolute;right:0;top:calc(100% + 9px);width:246px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 18px 50px rgba(17,44,30,.17);z-index:60}
.account-pop[hidden]{display:none}
.account-pop-main{display:flex;align-items:center;gap:10px;padding:9px 8px 11px;margin-bottom:5px;border-bottom:1px solid var(--line);border-radius:7px}
.account-pop-main:hover{background:#f7faf8}
.account-pop-main .account-avatar{width:36px;height:36px;font-size:13px}
.account-pop-main b{display:block;font-size:12px;color:#263e31;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-pop-main small{display:block;margin-top:2px;font-size:9px;color:#8b978f;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-pop>a:not(.account-pop-main),.account-pop>button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 9px;border:0;border-radius:6px;background:transparent;font-size:11px;color:#4e6257;text-align:left;cursor:pointer}
.account-pop>a:not(.account-pop-main):hover,.account-pop>button:hover{background:#f3f7f4;color:var(--green)}
.account-pop>button{border-top:1px solid var(--line);margin-top:4px;border-radius:0 0 6px 6px;color:#8a5a3a}
.page-location{display:flex;align-items:center;gap:9px;padding:12px 28px 0;font-size:10px;color:#8e9a93}
.page-location b{color:#52665a;font-weight:500}
.page-location>span:not(.workspace-scope){color:#c0c8c3}
.workspace-scope{margin-left:auto;font-size:10px;color:#7c8c82}
.main-shell main{flex:1;width:100%;max-width:1640px;padding:14px 28px 30px;min-height:calc(100vh - 150px)}
.main-footer{display:flex;align-items:center;gap:14px;padding:14px 28px;border-top:1px solid var(--line);background:transparent;font-size:9px;color:#95a098}
.main-footer a{margin-left:auto;color:#70857a}

/* ---------- 基础控件 ---------- */
.card,.case-section,.metric,.home-categories,.home-tasks,.home-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-head{padding:16px 18px}
.card-head h2{font-size:15px}
.card-head small{font-size:11px;color:#8a968f;margin-top:3px}
.card-body{padding:0 18px 18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 13px;border:1px solid #dce4de;border-radius:6px;background:#fff;color:#4c6456;font-size:11px;line-height:1.3;white-space:nowrap;cursor:pointer}
.btn:hover{background:#f3f8f5;border-color:#b8d0c3;color:var(--green)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--deep);border-color:var(--deep)}
.btn.small{padding:6px 9px;font-size:10px}
.btn.text{border-color:transparent;background:transparent;color:var(--green);padding-left:4px;padding-right:4px}
.btn.text:hover{background:#eef6f1}
.button-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:9px;font-weight:600;line-height:1.6}
.badge.neutral{background:#f0f4f1;color:#6d7d73}
.badge.warn{background:#fff2e8;color:#b45a24}
.badge.danger{background:#fcece9;color:#b44635}
.input-label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#5e7165}
input,select,textarea{border:1px solid #dbe4dd;border-radius:6px;background:#fff;color:#2e4638;font-size:12px;padding:8px 10px}
input:focus,select:focus,textarea:focus{outline:2px solid #c6e4d5;border-color:#72a98d}
.notice{padding:11px 14px;border:1px solid #dcebe1;border-radius:7px;background:#f2f8f4;color:#5d7666;font-size:11px}
.notice.warning{border-color:#f1dfca;background:#fff8ef;color:#966d39}
.page-head{align-items:flex-end;margin-bottom:18px}
.page-head h1{font-size:25px}
.page-head .subtitle{font-size:11px;color:#7c8a81;margin-top:4px}
.page-head .case-kicker,.page-head .eyebrow{font-size:9px;letter-spacing:1.4px;color:#8aa093}
.subtle{color:#7e8c84}
.mono{font-size:10px;color:#98a49c;letter-spacing:.2px}
.text-link{color:var(--green);font-size:10px;font-weight:600}
.text-link:hover{text-decoration:underline}
.empty{padding:26px 12px;color:#89968e;font-size:11px;text-align:center}
th{background:#f8faf8;color:#7c8a81;font-size:11px;font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid #eef2ee;color:#52655a;font-size:12px;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fbfdfb}
.interactive-table tbody tr{cursor:pointer}
.batch-row:focus-visible{outline:2px solid #d98a4a;outline-offset:-2px;background:#f7fbf8}
.table-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.table-link{display:flex;flex-direction:column;gap:2px;color:#365646}
.table-link small{font-size:9px;color:#94a097}
.table-link:hover strong{color:var(--green)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}
.metric{border-radius:8px;padding:15px 17px;min-width:0}
.metric-label{font-size:10px;color:#7b8b81;display:flex;justify-content:space-between;gap:6px}
.metric-arrow{color:#a7b4ab;font-size:12px}
.metric-value{font-size:27px;font-weight:700;line-height:1.3;color:#234433;margin:5px 0 2px}
.metric-value small{font-size:9px;font-weight:400;color:#8c9a91;margin-left:4px}
.metric-foot{font-size:9px;color:#8f9c94;line-height:1.55}
.metric-link{display:block;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.metric-link:hover{border-color:#afd0bf;box-shadow:0 8px 22px rgba(18,80,56,.08);transform:translateY(-1px)}
.metric.needs-attention{background:linear-gradient(180deg,#fffaf5,#fff);border-color:#f1ddc8}
.metric.needs-attention .metric-value{color:#b45820}
.metric-selected{border-color:var(--green)!important;box-shadow:inset 0 0 0 1px var(--green)}
.metrics{gap:10px}

/* ---------- 顶栏趋势卡 ---------- */
.trend-widget{position:relative}
.trend-trigger{display:flex;align-items:center;gap:8px;height:40px;padding:4px 9px 4px 7px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}
.trend-trigger:hover,.trend-widget.open .trend-trigger{border-color:#b7d1c3;background:#f8fbf9;box-shadow:0 2px 10px rgba(18,80,56,.06)}
.trend-spark{display:block;width:58px;height:24px;flex-shrink:0}
.trend-spark svg{display:block;width:100%;height:100%}
.trend-spark rect{fill:#bcd9ca}
.trend-spark rect.spark-now{fill:var(--orange)}
.trend-empty-bar{display:block;width:46px;height:14px;border-radius:3px;background:#edf2ee}
.trend-trigger-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.trend-trigger-text b{font-size:11px;color:#314b3d;font-weight:650}
.trend-trigger-text small{font-size:8px;color:#8b978f}
.trend-caret{font-size:9px;color:#8d9891}
.trend-pop{position:absolute;right:0;top:calc(100% + 9px);width:392px;padding:15px 15px 13px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px rgba(17,44,30,.2);z-index:55}
.trend-pop[hidden]{display:none}
.trend-pop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.trend-pop-head strong{display:block;font-size:13px;color:#253d30}
.trend-pop-head small{display:block;margin-top:2px;font-size:9px;color:#8b978f}
.trend-product{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:10px;color:#718277}
.trend-product select{flex:1;min-width:0;font-size:11px;padding:7px 8px}
.trend-period{display:flex;gap:2px;padding:3px;margin:9px 0 4px;background:#f3f6f3;border-radius:7px}
.trend-period button{flex:1;padding:6px 4px;border:0;border-radius:5px;background:transparent;color:#74837a;font-size:10px;cursor:pointer}
.trend-period button:hover{color:var(--green)}
.trend-period button.active{background:#fff;color:var(--green);font-weight:650;box-shadow:0 1px 4px rgba(20,50,35,.1)}
.trend-chart{min-height:112px}
.trend-chart-empty{display:grid;place-items:center;min-height:112px;color:#8c9a91;font-size:10px}
.trend-svg{display:block;width:100%;height:auto;margin-top:2px}
.trend-svg text{font-size:9px;fill:#95a198}
.trend-axis{stroke:#e7ece8;stroke-width:1}
.trend-bar{fill:#c9e0d4}
.trend-bar-now{fill:#e7a06f}
.trend-rate-line{fill:none;stroke:var(--orange);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.trend-rate-dot{fill:#fff;stroke:var(--orange);stroke-width:1.4}
.trend-legend{display:flex;gap:14px;font-size:9px;color:#849087;margin:2px 0 0}
.trend-legend span{display:flex;align-items:center;gap:5px}
.trend-legend span:before{content:'';width:12px;height:3px;border-radius:2px;background:#c9e0d4}
.trend-legend .legend-rate:before{background:var(--orange)}
.trend-figures{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.trend-figures small{display:block;font-size:8px;color:#8b978f}
.trend-figures strong{display:block;margin-top:2px;font-size:14px;font-weight:700;color:#294737;line-height:1.25}
.trend-figures strong i{font-style:normal;font-size:8px;font-weight:400;color:#8b978f;margin-left:1px}
.trend-figures strong.up{color:#c46127}
.trend-figures strong.down{color:var(--green)}
.trend-note{margin:8px 0 0;font-size:9px;line-height:1.6;color:#7b8980}
.trend-widget.is-loading .trend-spark{opacity:.55}
.trend-widget.active-route .trend-trigger{border-color:#b7d1c3;background:#eef6f1}
.trend-widget.active-route .trend-trigger-text b{color:var(--green)}

/* ---------- 首页 ---------- */
.home-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:1px 0 18px}
.section-kicker{font-size:9px;letter-spacing:1.7px;color:#8da094}
.home-heading h1{font-size:27px;font-weight:750;margin:6px 0 4px;color:#1d392b}
.home-heading p{font-size:11px;color:#829086}
.home-date{font-size:10px;color:#8b978f;white-space:nowrap}
.home-block-title{display:flex;align-items:flex-end;gap:12px;margin:20px 0 10px}
.block-index{font-size:30px;font-weight:300;line-height:1;color:#c5d4cb}
.home-block-title h2{font-size:19px;font-weight:700;margin:0}
.home-block-title p{font-size:10px;color:#87958c;margin:2px 0 0}
.home-block-links{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:10px;color:#6e8075}
.home-block-links a{display:flex;align-items:center;gap:4px}
.home-block-links a:hover{color:var(--green)}
.home-block-links b{display:inline-grid;place-items:center;min-width:16px;height:15px;padding:0 4px;border-radius:8px;background:#fdece0;color:var(--orange);font-size:9px}
.home-launchpad{display:grid;grid-template-columns:214px minmax(0,1fr) 266px;gap:12px;margin-bottom:14px;min-height:326px}
.home-categories,.home-tasks{padding:17px 16px;min-width:0}
.home-panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.home-panel-title h2{font-size:14px}
.home-panel-title>span{font-size:10px;color:#94a198}
.home-categories>p{font-size:9px;color:#98a39c;margin:4px 0 10px}
.home-categories>a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;font-size:11px;color:#536b5c;border-radius:5px}
.home-categories>a>span:last-child{font-size:10px;color:#94a097;white-space:nowrap}
.home-categories>a:hover{color:var(--green);padding-left:3px}
.home-categories .category-all{border-bottom:1px solid #eef2ee;padding:4px 0 10px;margin-bottom:2px;font-size:11px}
.category-dot{display:inline-block;width:5px;height:5px;margin:0 8px 1px 0;border-radius:2px;background:#6da68a}
.category-dot.tone-1{background:#d5ae6e}
.category-dot.tone-2{background:#9dae9e}
.home-categories .category-import{margin-top:6px;padding-top:10px;border-top:1px solid #eef2ee;color:var(--green);font-size:10px;font-weight:600}
.home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(180px,.88fr);min-height:326px;padding:0;border-radius:var(--radius);background:linear-gradient(135deg,#0d5d44,#147a59);overflow:hidden;isolation:isolate}
.home-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(80% 120% at 0% 0%,rgba(255,255,255,.12),transparent 55%);pointer-events:none}
.home-hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:28px 0 26px 30px;min-width:0}
.hero-overline{font-size:9px;letter-spacing:2px;color:#bfe0ce;margin-bottom:9px}
.home-hero h2{font-size:38px;line-height:1.18;font-weight:750;letter-spacing:2px;color:#fff;margin:0 0 10px}
.home-hero-copy>p{font-size:11px;line-height:1.9;color:#c7e1d4}
.home-search{display:flex;width:100%;max-width:520px;margin-top:16px;padding:3px;background:#fff;border-radius:7px;box-shadow:0 5px 18px rgba(0,30,20,.18)}
.home-search input{flex:1;width:0;border:0;background:transparent;padding:7px 9px;font-size:11px;outline:0}
.home-search button{border:0;border-radius:5px;background:var(--green);color:#fff;padding:8px 12px;font-size:10px;font-weight:600;white-space:nowrap;cursor:pointer}
.home-search button:hover{background:var(--deep)}
.home-hero-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:11px;font-size:9px;color:#b9d8c8}
.home-hero-links a:hover{color:#fff;text-decoration:underline}
.home-hero-visual{position:relative;min-height:100%;overflow:hidden}
.home-hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05)}
.home-hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--green) 0%,rgba(15,107,79,.55) 28%,rgba(15,107,79,.05) 100%)}
.hero-visual-tag{position:absolute;right:15px;bottom:15px;z-index:2;padding:8px 11px;border:1px solid rgba(255,255,255,.32);border-radius:7px;background:rgba(8,48,34,.48);backdrop-filter:blur(5px);color:#e5f2eb;font-size:8px;line-height:1.6;text-align:right}
.hero-visual-tag b{font-size:12px;letter-spacing:1px}
.home-tasks{display:flex;flex-direction:column}
.status-pill{padding:2px 6px;border-radius:4px;background:#edf7f1;color:#5c9077;font-size:8px}
.home-task-summary{display:flex;align-items:center;justify-content:space-between;padding:14px 0 9px;border-bottom:1px solid #eef2ee;font-size:10px;color:#718277}
.home-task-summary strong{font-size:29px;font-weight:700;line-height:1.25;color:var(--orange)}
.home-task-summary small{font-size:9px;font-weight:400;color:#999f91;margin-left:2px}
.home-task-links{display:grid;gap:9px;padding:10px 0;margin-bottom:auto}
.home-task-links a{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#6c7d72}
.home-task-links b{font-size:13px;color:#345642}
.home-task-links small{font-size:8px;font-weight:400;color:#8a978f}
.home-task-links a>span:last-child{font-size:9px;color:#8c9a91}
.home-task-links a:hover{color:var(--green)}
.home-mini-progress{margin:2px 0 6px;padding:8px 9px;border:1px solid #e9efea;border-radius:6px;background:#fbfdfb}
.home-mini-progress>div{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#7c8c82}
.home-mini-progress b{font-size:11px;color:#365644}
.home-mini-progress progress{appearance:none;display:block;width:100%;height:4px;margin-top:5px;border:0;border-radius:3px;background:#eaf1ec}
.home-mini-progress progress::-webkit-progress-bar{background:#eaf1ec;border-radius:3px}
.home-mini-progress progress::-webkit-progress-value{border-radius:3px;background:linear-gradient(90deg,#4b9b78,#0f6b4f)}
.home-mini-progress progress::-moz-progress-bar{border-radius:3px;background:#0f6b4f}
.home-tasks .btn{width:100%;margin-top:7px;padding:9px}
.home-task-bottom{display:flex;justify-content:space-between;gap:6px;margin-top:10px;font-size:9px;color:#89968f}
.home-task-bottom a:hover{color:var(--green)}
.home-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 10px}
.home-stat{display:flex;flex-direction:column;padding:13px 16px;min-width:0;color:inherit;transition:transform .15s,border-color .15s,box-shadow .15s}
.home-stat:hover{transform:translateY(-2px);border-color:#afd0bf;box-shadow:0 9px 22px rgba(20,60,40,.07)}
.home-stat>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#73857a}
.home-stat i{font-style:normal;font-size:12px;color:#a5b2a9}
.home-stat strong{font-size:27px;font-weight:700;line-height:1.25;color:#244735;margin:2px 0 0}
.home-stat small{font-size:9px;font-weight:400;color:#8b998f;margin-left:4px}
.home-stat p{font-size:10px;color:#909d95;margin:2px 0 0}
.home-stat.attention strong{color:var(--orange)}
.home-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:14px 0 8px}
.home-section-head h2{font-size:15px}
.home-section-head p{font-size:10px;color:#8d9992;margin:2px 0 0}
.home-section-head>a{font-size:10px;color:#6b8375}
.home-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:12px 0;margin-bottom:4px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.home-workflow a{display:flex;align-items:center;gap:10px;padding:2px 15px;border-right:1px solid #eef2ee}
.home-workflow a:last-child{border:0}
.home-workflow a>span{font-size:18px;font-weight:300;color:#c1d1c7}
.home-workflow strong{font-size:11px;font-weight:650}
.home-workflow p{font-size:9px;color:#96a198;margin:2px 0 0}
.home-workflow b{margin-left:auto;font-size:11px;font-weight:400;color:#a7b6ac}
.home-workflow a:hover strong{color:var(--green)}
.home-case-board{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:12px;margin-bottom:14px}
.home-case-column{display:flex;flex-direction:column;min-width:0}
.home-case-column .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.home-case-list,.home-task-list,.home-unknown-list{padding:0 12px 12px;display:grid;gap:6px}
.home-case-card{display:block;padding:10px 11px;border:1px solid #e9efea;border-radius:7px;background:#fcfdfc;color:inherit}
.home-case-card:hover{border-color:#bad6c7;background:#f8fcf9;transform:translateY(-1px)}
.home-case-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8px;color:#95a198}
.home-case-card h3{font-size:12px;font-weight:650;margin:5px 0 1px;color:#2d4939;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-case-card>p{font-size:10px;color:#8a978f;margin:0}
progress.home-progress{appearance:none;display:block;width:100%;height:4px;margin:7px 0 6px;border:0;border-radius:3px;background:#eef3ef;overflow:hidden}
progress.home-progress::-webkit-progress-bar{background:#eef3ef;border-radius:3px}
progress.home-progress::-webkit-progress-value{border-radius:3px;background:linear-gradient(90deg,#4b9b78,#0f6b4f)}
progress.home-progress::-moz-progress-bar{border-radius:3px;background:#0f6b4f}
.home-case-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:9px;color:#8c9991}
.home-case-meta b{color:#4c6657;font-weight:650}
.home-task-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;color:inherit}
.home-task-row:hover{background:#f3f8f5}
.task-state-dot{width:5px;height:5px;border-radius:50%;background:var(--orange);flex-shrink:0}
.home-task-row>div,.home-unknown-row>div{min-width:0;flex:1}
.home-task-row strong,.home-unknown-row strong{display:block;font-size:11px;font-weight:600;color:#3b5545;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-task-row small,.home-unknown-row small{display:block;font-size:9px;color:#929e97;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-amount,.home-unknown-row>span{flex-shrink:0;font-size:9px;color:#75867b;white-space:nowrap}
.task-amount b,.home-unknown-row b{color:#b8c4bc;margin-left:3px}
.home-unknown-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;color:inherit}
.home-unknown-row:hover{background:#f9fbfa}
.home-case-action{display:flex;align-items:center;gap:8px;margin:auto 12px 12px;padding:9px 10px;border:1px dashed #cfdcd4;border-radius:7px;color:#5a7264}
.home-case-action:hover{border-color:#9ac4ad;background:#f8fcf9}
.home-case-action>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eaf4ee;color:var(--green);font-size:13px}
.home-case-action div{flex:1}
.home-case-action strong{display:block;font-size:10px}
.home-case-action small{display:block;font-size:8px;color:#8d9a92}
.home-case-action b{font-size:11px;color:#a9b7ae}
.home-case-guest{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;margin-bottom:14px}
.home-case-guest h3{font-size:16px;margin:3px 0 4px}
.home-case-guest p{font-size:10px;color:#819087;margin:0}
.home-bottom{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px}
.home-risk-body{padding:0 16px 15px}
.home-risk-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}
.home-risk-chip{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;border-radius:5px;background:#f7f9f7;font-size:9px;color:#7a8b80}
.home-risk-chip b{font-size:12px;color:#3f5d4c}
.home-risk-chip.risk-0 b{color:#b44635}.home-risk-chip.risk-1 b{color:#b46124}.home-risk-chip.risk-2 b{color:#6a8a76}
.home-risk-chip:hover{background:#eef6f1}
.home-focus-list{display:grid;gap:1px}
.home-focus-row{display:flex;align-items:center;gap:8px;padding:9px 3px;border-bottom:1px solid #f0f3f0;color:inherit}
.home-focus-row:last-child{border-bottom:0}
.home-focus-row:hover{background:#fbfdfb;padding-left:6px}
.focus-severity{width:5px;height:24px;border-radius:3px;background:#b9c8bf;flex-shrink:0}
.focus-severity.sev-0{background:#c74d3b}.focus-severity.sev-1{background:#e08a4b}.focus-severity.sev-2{background:#9db6a7}
.focus-copy{flex:1;min-width:0}
.focus-copy strong{display:block;font-size:11px;font-weight:600;color:#40594a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-copy small{display:block;font-size:9px;color:#96a29a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-arrow{font-size:14px;color:#b3c1b8;margin-left:2px}
.focus-status{font-size:8px;color:#8c9a91;white-space:nowrap}
.home-risk-note{padding:9px 0 6px;font-size:9px;color:#98a49c}
.home-analysis-link{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e8eee9;border-radius:7px;background:#f8fbf9;color:inherit}
.home-analysis-link:hover{border-color:#b9d5c6}
.home-analysis-link>span{font-size:15px;color:#7fa690}
.home-analysis-link div{flex:1}
.home-analysis-link strong{display:block;font-size:10px}
.home-analysis-link p{font-size:8px;color:#8e9b93;margin:1px 0 0}
.home-analysis-link b{color:#a9b7ae}

/* 研判助手：浅色卡片，避免与旧版深色横幅叠加后文字对比度不足 */
.ai-hero{margin:14px 0 12px;padding:18px 20px;border:1px solid #dbe9e1;border-radius:10px;background:linear-gradient(120deg,#f1f8f4,#e8f2ec);color:#2a4536;box-shadow:none}
.ai-hero:before,.ai-hero:after{display:none}
.ai-hero-head{display:flex;align-items:flex-start;gap:11px}
.ai-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--green);color:#fff;font-size:11px;font-weight:700;flex-shrink:0}
.ai-kicker{font-size:8px;letter-spacing:1.2px;color:#789083;margin:0 0 2px;text-transform:uppercase}
.ai-hero h2{font-size:16px;line-height:1.55;margin:0;color:#254634;font-weight:650}
.ai-hero-tag{padding:3px 8px;border:1px solid #cfe1d7;border-radius:10px;background:#fff;color:#6d8577;font-size:8px;white-space:nowrap;margin-left:auto}
.ai-hero-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin-top:12px}
.ai-hero-action{display:flex;gap:8px;padding:9px 10px;border:1px solid #dbe8e0;border-radius:7px;background:#fff;color:#365344}
.ai-hero-action:hover{border-color:#b5d2c2;background:#f8fcf9}
.ai-hero-action>b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e6f2eb;color:var(--green);font-size:9px;flex-shrink:0}
.ai-hero-action strong{display:block;font-size:10px;line-height:1.45}
.ai-hero-action p{font-size:8px;line-height:1.55;color:#87988d;margin:2px 0 0}
.ai-hero-ask{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:10px}
.ai-chip{padding:4px 9px;border:1px solid #d5e5db;border-radius:11px;background:#fff;color:#54725f;font-size:9px;cursor:pointer}
.ai-chip:hover{border-color:#a9ccb8;color:var(--green)}
.ai-note{font-size:8px;line-height:1.6;color:#84968a}
.ai-hero-foot{margin-top:10px}
.ai-hero .btn.primary{font-size:10px}
.case-metrics .metric-selected{background:#f7fbf8}

/* ---------- 趋势 / 法规 / 个人中心新增组件 ---------- */
.portal-view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:520px;padding:4px;margin-bottom:12px;background:#edf1ee;border-radius:9px}
.portal-view-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:0;border-radius:6px;background:transparent;color:#6b7d72;text-align:left;cursor:pointer}
.portal-view-tabs button b{font-size:11px;font-weight:600}
.portal-view-tabs button small{font-size:8px;color:#92a097}
.portal-view-tabs button.active{background:#fff;color:var(--green);box-shadow:0 1px 8px rgba(20,50,35,.1)}
.portal-view-tabs button.active small{color:#7f9b8a}
.portal-filter-bar{padding:12px 16px;margin-bottom:12px}
.portal-filter-bar label{font-size:11px}
.portal-filter-bar select{min-width:160px;font-size:11px;padding:7px 9px}
.portal-segment{padding:3px}
.portal-segment button{padding:6px 12px;font-size:10px}
.portal-scope{font-size:9px;color:#8b978f}
.portal-stats{gap:10px;margin-bottom:12px}
.portal-stat{padding:14px 17px;border-radius:8px}
.portal-stat>span{font-size:10px}
.portal-stat strong{font-size:27px;line-height:1.35;margin-top:1px}
.portal-stat small{font-size:9px}
.portal-stat p{font-size:9px;margin-top:3px}
.portal-stat i{right:15px;top:14px;font-size:13px}
.portal-analysis-layout{gap:12px;margin-bottom:12px}
.portal-section-heading{padding:15px 18px 12px}
.portal-section-heading h2{font-size:14px}
.portal-section-heading h3{font-size:13px}
.portal-section-heading p{font-size:9px;margin-top:2px}
.portal-chart-wrap{padding:0 12px}
.portal-chart{min-width:440px;margin:2px 0 0}
.portal-chart text{font-size:10px;fill:#8f9c94}
.industry-bar{fill:#cbe2d6}
.industry-bar-now{fill:#e7a174}
.industry-rate-line{fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.industry-rate-dot{fill:#fff;stroke:var(--orange);stroke-width:1.6}
.industry-legend-rate:before{background:var(--orange)!important}
.industry-axis-note{font-size:9px;fill:#9aa69e}
.portal-chart-bottom{margin:0 18px;padding:10px 0;font-size:9px;color:#8f9b93}
.portal-insight{padding:18px;background:linear-gradient(160deg,#f1f8f4,#fbfdfb);border-color:#dbe9e0}
.portal-insight h2{font-size:17px;margin:8px 0 5px;line-height:1.5}
.portal-insight>p{font-size:10px;margin:0 0 7px;line-height:1.75}
.portal-insight-detail{padding:9px 0}
.portal-insight-detail small{font-size:9px}
.portal-insight-detail strong{font-size:17px}
.portal-insight-bullet{padding-left:10px;border-left:2px solid #c9ddd1;color:#5e7467!important}
.portal-insight .btn{margin:12px 0 8px;padding:8px}
.portal-fine{font-size:9px;line-height:1.7}
.portal-industry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.portal-ranking-list{padding:0 12px 12px;display:grid;gap:2px}
.portal-ranking-list>a{display:flex;align-items:center;gap:10px;padding:8px 7px;border-radius:6px;color:inherit}
.portal-ranking-list>a:hover{background:#f4f8f5}
.portal-ranking-list>a>b{font-size:10px;color:#b4c3ba;font-weight:500;width:18px}
.portal-ranking-list>a>div{flex:1;min-width:0}
.portal-ranking-list strong{display:block;font-size:10px;color:#3f5b4a}
.portal-ranking-list small{display:block;font-size:8px;color:#95a198}
.ranking-rate{padding:0 6px;font-size:12px;font-weight:700;color:#bd5d25}
.portal-type-list{padding:0 16px 16px;display:grid;gap:9px}
.portal-type-list>div{display:grid;grid-template-columns:82px 1fr 34px;align-items:center;gap:8px;font-size:9px;color:#65776b}
.type-track{appearance:none;width:100%;height:5px;border:0;border-radius:3px;background:#eef3ef;overflow:hidden}
.type-track::-webkit-progress-bar{background:#eef3ef;border-radius:3px}
.type-track::-webkit-progress-value{border-radius:3px;background:linear-gradient(90deg,#8fc2a8,#0f6b4f)}
.type-track::-moz-progress-bar{border-radius:3px;background:#0f6b4f}
.portal-type-list b{text-align:right;font-size:10px;color:#506857}
.portal-anchor-nav{display:flex;gap:4px;padding:4px;margin-bottom:12px;background:#edf1ee;border-radius:8px;max-width:560px}
.portal-anchor-nav button{padding:7px 12px;border:0;border-radius:6px;background:transparent;font-size:10px;color:#6f8176;cursor:pointer}
.portal-anchor-nav button:hover{background:#fff;color:var(--green)}
.portal-law-top{margin-bottom:12px}
.portal-law-hero{padding:24px;border-radius:10px}
.portal-law-hero h2{font-size:24px;margin:10px 0 8px}
.portal-law-hero p{font-size:11px}
.portal-law-hero-tags{display:flex;align-items:center;gap:6px;margin-top:16px}
.portal-law-hero-tags span{padding:3px 8px;font-size:9px}
.portal-hero-action{margin-left:auto;padding:6px 11px;border:0;border-radius:5px;background:var(--green);color:#fff;font-size:9px;font-weight:600;cursor:pointer}
.portal-hero-action:hover{background:var(--deep)}
.portal-channels{padding:18px}
.portal-channels h2{font-size:14px;margin-bottom:9px}
.portal-channels strong{font-size:11px}
.portal-channels a{font-size:10px}
.portal-channels p{font-size:9px}
.portal-law-library{margin-bottom:12px}
.portal-law-search input{min-width:240px;font-size:11px;padding:7px 10px}
.portal-law-tabs{padding:0 18px 12px;gap:6px}
.portal-law-tabs button{padding:5px 10px;font-size:10px}
.portal-law-grid{padding:16px 18px;gap:10px}
.portal-law-card{padding:14px;border-radius:7px}
.portal-law-card h3{font-size:13px;margin-bottom:4px}
.portal-law-card>p{font-size:10px;line-height:1.75;margin:8px 0 10px}
.portal-law-articles{font-size:10px}
.portal-law-meta{margin-bottom:8px}
.portal-law-footer{padding-top:9px}
.portal-law-footer a{font-size:10px}
.portal-assessment{margin-bottom:12px}
.portal-assess-form{padding:0 18px 14px;gap:10px}
.portal-assess-form>label{font-size:10px;gap:5px}
.portal-assess-form select{font-size:11px;padding:7px 9px}
.portal-assess-empty{padding:30px 18px}
.portal-assess-summary{padding:18px}
.portal-assess-summary h3{font-size:18px;margin:5px 0 3px}
.portal-assess-tags{display:flex;gap:6px;flex-wrap:wrap}
.portal-responsibility{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:12px;padding:12px;border-bottom:1px solid #edf1ed}
.portal-party-list{padding:4px 2px}
.portal-party-list .portal-section-heading{padding:4px 6px 8px}
.portal-party{border:1px solid #e8eee9;border-radius:8px;padding:12px;margin-bottom:7px;background:#fcfdfc}
.portal-party.level-high{border-color:#f0d9c4;background:linear-gradient(180deg,#fffaf5,#fff)}
.portal-party.level-mid{border-color:#eee5d6;background:linear-gradient(180deg,#fffdf8,#fff)}
.portal-party.level-mid .party-rank{background:#f8efe1;color:#a97a3f}
.portal-party header{display:flex;align-items:center;gap:10px}
.party-rank{display:grid;place-items:center;width:25px;height:25px;border-radius:6px;background:#f1f5f2;color:#8fa196;font-size:10px;flex-shrink:0}
.portal-party.level-high .party-rank{background:#fdece0;color:#c26a2e}
.portal-party header>div{flex:1;min-width:0}
.portal-party h4{font-size:11px;margin:0;color:#314b3c}
.portal-party header p{font-size:8px;color:#8f9d94;margin:1px 0 0}
.party-score{font-size:17px;font-weight:700;color:#2f5541;line-height:1}
.party-score small{font-size:8px;font-weight:400;color:#97a49b;margin-left:1px}
.portal-party.level-high .party-score{color:#c0642c}
.party-meter{height:4px;margin:8px 0 6px;border-radius:2px;background:#eef3ef;overflow:hidden}
.party-meter progress{appearance:none;display:block;width:100%;height:4px;border:0;border-radius:2px;background:#eef3ef}
.party-meter progress::-webkit-progress-bar{background:#eef3ef;border-radius:2px}
.party-meter progress::-webkit-progress-value{border-radius:2px;background:#8ebba2}
.party-meter progress::-moz-progress-bar{border-radius:2px;background:#8ebba2}
.portal-party.level-high .party-meter progress::-webkit-progress-value{background:linear-gradient(90deg,#e7a475,#d2672a)}
.portal-party.level-high .party-meter progress::-moz-progress-bar{background:#d2672a}
.party-reason{font-size:9px;line-height:1.7;color:#74857a;margin:0 0 7px}
.party-foot{display:flex;align-items:center;gap:7px;font-size:8px;color:#95a198;flex-wrap:wrap}
.party-laws{margin-left:auto;display:flex;gap:7px}
.party-laws a{font-size:8px;color:var(--green)}
.portal-situation{border:1px solid #dce9e1;border-radius:9px;padding:16px;background:linear-gradient(160deg,#f3f9f5,#fbfdfb);align-self:start}
.portal-situation h3{font-size:14px;margin:6px 0 8px}
.situation-list p{font-size:10px;line-height:1.8;color:#62786a;margin:0 0 7px;padding-left:9px;border-left:2px solid #cddfd4}
.situation-industry{margin-top:10px;padding-top:10px;border-top:1px solid #e0ebe4}
.situation-industry>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.situation-industry small{font-size:8px;color:#89978e}
.situation-industry strong{font-size:22px;color:#25513b}
.situation-industry strong span{font-size:9px;font-weight:400;color:#8b998f;margin-left:1px}
.situation-bars{display:flex;align-items:flex-end;gap:3px;height:32px;margin:7px 0 6px}
.situation-bar{flex:1;height:32px;min-width:0}
.situation-bar rect{fill:#b9d8c7}
.situation-bar:hover rect{fill:#7fae94}
.situation-industry p{font-size:9px;line-height:1.65;color:#7c8b81;margin:0 0 4px}
.situation-industry a{font-size:9px;padding:2px 0}
.portal-route-block{border-bottom:1px solid #edf1ed;padding-bottom:12px}
.portal-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px}
.portal-route{border:1px solid #e7ede8;border-radius:8px;padding:13px;background:#fcfdfc}
.portal-route header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.portal-route h4{font-size:11px;margin:0;color:#385342}
.portal-route>p{font-size:9px;line-height:1.7;color:#7b8b81;margin:6px 0 7px}
.portal-route ol{margin:0;padding-left:15px;font-size:9px;line-height:1.8;color:#61766a}
.portal-route-materials{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.portal-route-materials small{width:100%;font-size:8px;color:#94a097}
.portal-route-materials span{padding:2px 5px;border-radius:3px;background:#f1f5f2;font-size:8px;color:#77897d}
.portal-route .portal-law-refs{margin:7px 0 0}
.portal-priority-list{padding-bottom:4px}
.portal-priority{margin:0 18px;padding:16px 0}
.portal-priority-title b{font-size:16px}
.portal-priority-title h3{font-size:12px}
.portal-priority>p{font-size:10px;line-height:1.8;margin:8px 0}
.portal-priority ul{font-size:10px;line-height:1.85}
.portal-evidence-checklist{padding:18px}
.portal-evidence-checklist h3{font-size:13px}
.checklist-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;margin-bottom:12px}
.portal-evidence-checklist label{font-size:10px;margin:5px 0;line-height:1.7}
.portal-process{padding:0 18px 18px;gap:12px}
.portal-process h3{font-size:11px}
.portal-process p{font-size:9px}
.portal-profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.portal-profile-stats a{display:block;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;color:inherit;box-shadow:var(--shadow)}
.portal-profile-stats a:hover{border-color:#b4d2c3;transform:translateY(-1px)}
.portal-profile-stats span{font-size:9px;color:#7d8c83}
.portal-profile-stats strong{display:block;font-size:23px;font-weight:700;color:#2a4b38;line-height:1.25;margin:1px 0}
.portal-profile-stats small{font-size:8px;font-weight:400;color:#8c9a91;margin-left:3px}
.portal-profile-stats p{font-size:8px;color:#94a198;margin:0}
.portal-profile-banner{padding:20px;margin-bottom:12px;border-radius:10px;background:linear-gradient(110deg,#fff 35%,#f0f8f3)}
.portal-profile-banner h2{font-size:19px}
.portal-profile-layout{gap:12px;margin-bottom:12px}
.portal-form-card form{padding:0 18px 18px}
.portal-form-card .form-grid{gap:14px 12px}
.portal-form-card input{padding:9px 10px;font-size:11px}
.portal-form-actions{margin-top:14px}
.portal-recent{margin-bottom:12px}
.portal-recent-list{padding:0 14px 12px;display:grid;gap:2px}
.portal-recent-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 6px;border-radius:5px;color:inherit}
.portal-recent-list a:hover{background:#f4f8f5}
.portal-recent-list strong{display:block;font-size:10px;color:#3b5646}
.portal-recent-list small{display:block;font-size:8px;color:#94a097;margin-top:1px}
.portal-recent-list span{font-size:8px;color:#8c9a91;white-space:nowrap}
.portal-profile-shortcuts{gap:10px}
.portal-profile-shortcuts a{padding:14px 16px;font-size:11px;border-radius:8px}
.portal-login-empty{padding:40px 20px}

/* ---------- 协查页细节 ---------- */
.alert-card{display:flex;align-items:center;gap:12px;padding:13px 16px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}
.alert-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fdf0e7;color:#c0692e;font-size:14px;flex-shrink:0}
.alert-main{flex:1;min-width:0}
.alert-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.alert-title h3{font-size:12px;margin:0;color:#304b3b}
.alert-main>p{font-size:10px;line-height:1.6;color:#7b8b81;margin:4px 0 5px}
.alert-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:9px;color:#93a097}
.alert-meta a{color:var(--green);font-weight:600}
.alert-card>.btn{flex-shrink:0;align-self:center;min-width:68px;white-space:nowrap}
.import-steps{background:#f6faf7;border:1px solid #e4ede7;border-radius:7px;color:#5e7466;padding:10px 12px}
.import-steps b{color:var(--green)}
.import-steps i{color:#a9b8ae}
.case-list-item{border-radius:7px}
.case-list-item:hover{border-color:#b7d3c4;background:#fbfdfb}
.case-filter-row:hover{background:#f9fcfa}
.case-metrics .metric{padding:13px 15px}
.case-metrics .metric-value{font-size:25px}
.case-checklist-row:hover{background:#fbfdfb}
.case-recipient:hover{border-color:#bfd8ca}
.case-section-nav a:hover{color:var(--green);background:#eef6f1}
.case-support a:hover{border-color:#b6d2c3;background:#f8fbf9}
.case-support a{transition:border-color .15s,background .15s}
.page-head .button-group .btn{font-size:11px}
.case-boundary{font-size:9px}

/* ---------- 响应式 ---------- */
@media(min-width:1600px){
  .home-launchpad{grid-template-columns:230px minmax(0,1fr) 290px}
  .home-hero h2{font-size:42px}
}
@media(max-width:1250px){
  .home-launchpad{grid-template-columns:190px minmax(0,1fr) 246px}
  .home-hero{grid-template-columns:1fr 180px}
  .home-hero-copy{padding-left:24px}
  .home-hero h2{font-size:33px}
  .home-bottom{grid-template-columns:minmax(0,1fr) 310px}
  .home-case-board{grid-template-columns:1fr 1fr}
  .home-case-board .home-case-column:last-child{grid-column:1/-1}
  .top-actions{gap:6px}
}
@media(max-width:1080px){
  .platform-name>span{display:none}
  .home-hero h2{font-size:34px}
  .home-hero-copy{padding-right:28px}
  .home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-launchpad{grid-template-columns:180px minmax(0,1fr)}
  .home-tasks{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px 20px}
  .home-tasks .home-panel-title{grid-column:1/-1}
  .home-task-summary{padding:0;border:0}
  .home-task-links{padding:0;margin:0}
  .home-tasks .btn{margin:0}
  .home-task-bottom{grid-column:1/-1;justify-content:flex-end;gap:22px;margin:0}
  .home-case-board{grid-template-columns:1fr}
  .home-case-board .home-case-column:last-child{grid-column:auto}
  .home-bottom{grid-template-columns:1fr}
  .home-risk-body{display:grid;grid-template-columns:1fr 1.5fr;gap:0 18px}
  .home-risk-chips{grid-column:1;margin:0}
  .home-focus-list{grid-column:2;grid-row:1/3}
  .home-risk-note{grid-column:1}
  .home-analysis-link{grid-column:1}
  .portal-responsibility{grid-template-columns:1fr}
  .portal-route-grid{grid-template-columns:1fr}
  .portal-profile-stats{grid-template-columns:repeat(2,1fr)}
  .portal-industry-grid{grid-template-columns:1fr}
}
@media(max-width:860px){
  .home-hero-visual{display:none}
  .home-hero{grid-template-columns:1fr}
  .sidebar{--sidebar:68px;width:68px;padding:11px 4px 8px}
  .sidebar nav a{min-height:46px;font-size:9px}
  .nav-icon{font-size:17px}
  .main-shell{margin-left:68px}
  .topbar{height:58px;padding:0 16px}
  .platform-name strong{font-size:17px;letter-spacing:0}
  .top-link{font-size:0;padding:7px}
  .top-link span{font-size:15px;margin:0}
  .trend-trigger-text{display:none}
  .trend-trigger{padding:4px 6px}
  .trend-spark{width:48px}
  .account-btn{max-width:120px}
  #account-label{display:none}
  .page-location{padding:10px 16px 0}
  .main-shell main{padding:12px 16px 22px}
  .main-footer{padding:12px 16px}
  .home-heading h1{font-size:23px}
  .home-block-links a:nth-child(2){display:none}
  .home-launchpad{grid-template-columns:1fr}
  .home-categories{display:none}
  .home-tasks{grid-template-columns:1fr 1fr}
  .home-tasks .btn{grid-column:1/-1}
  .home-workflow a{padding:2px 10px;gap:7px}
  .home-workflow a>span{display:none}
  .home-workflow p{display:none}
  .portal-view-tabs{max-width:none}
  .portal-page-head{flex-wrap:wrap}
  .portal-law-top{grid-template-columns:1fr}
  .portal-law-hero{padding:20px}
  .portal-law-grid{grid-template-columns:1fr}
  .portal-analysis-layout{grid-template-columns:1fr}
  .portal-profile-layout{grid-template-columns:1fr}
  .checklist-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .sidebar{--sidebar:62px;width:62px;padding:9px 3px 6px}
  .brand span,.sidebar-footer{display:none}
  .rail-label{font-size:8px}
  .sidebar nav a{min-height:44px;font-size:8px}
  .main-shell{margin-left:62px}
  .topbar{padding:0 10px;gap:6px}
  .platform-name strong{font-size:15px}
  .trend-spark{width:36px}
  .account-avatar{width:27px;height:27px}
  .page-location{font-size:9px;padding-top:8px}
  .workspace-scope{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .main-shell main{padding:10px 10px 18px}
  .home-heading h1{font-size:20px}
  .home-date{display:none}
  .home-block-title h2{font-size:16px}
  .home-block-links{font-size:9px;gap:9px}
  .home-stats{grid-template-columns:1fr 1fr;gap:8px}
  .home-stat strong{font-size:23px}
  .home-tasks{grid-template-columns:1fr}
  .home-tasks .btn{grid-column:auto}
  .home-workflow{grid-template-columns:1fr 1fr;padding:9px 0;gap:8px 0}
  .home-workflow a:nth-child(2){border:0}
  .home-bottom{grid-template-columns:1fr}
  .home-risk-body{display:block}
  .home-case-guest{align-items:flex-start;flex-direction:column}
  .portal-stats{grid-template-columns:1fr 1fr;gap:8px}
  .portal-stat{padding:11px 12px}
  .portal-stat strong{font-size:23px}
  .portal-filter-bar{padding:10px}
  .portal-filter-bar>label{width:100%}
  .portal-filter-bar select{flex:1;min-width:0}
  .portal-section-heading{padding:13px 13px 10px}
  .portal-chart-wrap{padding:0 6px}
  .portal-chart-bottom{margin:0 12px;flex-wrap:wrap;gap:4px}
  .portal-route-grid{padding:0 12px}
  .portal-priority{margin:0 12px}
  .portal-evidence-checklist{padding:14px}
  .portal-profile-stats{grid-template-columns:1fr 1fr}
  .portal-profile-banner{padding:15px;gap:12px;flex-wrap:wrap}
  .portal-profile-banner .portal-logout{margin-left:0}
  .portal-form-card form{padding:0 13px 14px}
  .portal-form-card .form-grid{grid-template-columns:1fr}
  .trend-pop{right:-58px;width:min(360px,calc(100vw - 80px))}
}
@media print{
  .sidebar,.topbar,.page-location,.main-footer,.trend-widget{display:none!important}
  .main-shell{margin-left:0}
  .main-shell main{padding:0;max-width:none}
}

/* 角色化外壳：按角色隐藏导航入口，顶栏显示当前身份 */
.hidden-by-role{display:none!important}
.role-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid #dfe6da;border-radius:13px;background:#f5faf6;font-size:11px;color:#3d5a4a;white-space:nowrap}
.role-chip::before{content:'';width:6px;height:6px;border-radius:50%;background:#3f8a66}
.role-chip[data-tone="amber"]{background:#fdf7ec;border-color:#eee0c8;color:#8a642c}
.role-chip[data-tone="amber"]::before{background:#c08a3e}
.role-chip[data-tone="blue"]{background:#eff5fb;border-color:#d7e4f1;color:#2f5c86}
.role-chip[data-tone="blue"]::before{background:#4d7ab5}
.role-chip[data-tone="purple"]{background:#f4f1fa;border-color:#e2dcef;color:#5a4a86}
.role-chip[data-tone="purple"]::before{background:#7a6bb0}
.role-chip[data-tone="gray"]{background:#f5f5f2;border-color:#e3e3dc;color:#6b7069}
.role-chip[data-tone="gray"]::before{background:#8b968c}
@media(max-width:900px){.role-chip{display:none}}
.role-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:11px 16px;border:1px solid #dfe9e2;border-left:3px solid #3f8a66;border-radius:8px;background:#f5faf7;font-size:11px;color:#4a6154}
.role-strip[data-tone="amber"]{border-left-color:#c08a3e;background:#fdf9f1;border-color:#efe4d0}
.role-strip[data-tone="blue"]{border-left-color:#4d7ab5;background:#f4f8fc;border-color:#dbe6f1}
.role-strip[data-tone="purple"]{border-left-color:#7a6bb0;background:#f7f5fb;border-color:#e5dff0}
.role-strip-label{font-weight:500;color:#2f5544;white-space:nowrap}
.role-strip p{margin:0;color:#5d7168;flex:1;min-width:200px}
.role-strip-links{display:flex;gap:14px;white-space:nowrap}
.role-strip-links a{color:#2f6b50;text-decoration:none}
.role-strip-links a:hover{text-decoration:underline}

/* 未登录：只有登录入口的单页 */
body.guest-mode .sidebar,body.guest-mode .topbar,body.guest-mode .page-location,body.guest-mode .main-footer{display:none!important}
body.guest-mode .main-shell{margin-left:0}
body.guest-mode main{padding:0;max-width:none;min-height:100vh}
body.guest-mode{background:#f5f8f3}
.guest-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:center;max-width:1180px;margin:0 auto;padding:6vh 6vw}
.guest-brand{padding-right:5vw;min-width:0}
.guest-logo{display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:1px;color:#1d3d2e}
.guest-logo img{width:38px;height:38px}
.guest-kicker{margin:26px 0 0;font-size:11px;letter-spacing:1.2px;color:#7d9187}
.guest-brand h1{margin:14px 0 16px;font-size:42px;line-height:1.3;font-weight:500;letter-spacing:1px;color:#173a2a}
.guest-lead{max-width:520px;font-size:13px;line-height:1.95;color:#5c6f63}
.guest-points{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:13px;max-width:520px}
.guest-points li{display:flex;gap:14px;font-size:12px;color:#63776b}
.guest-points b{flex:none;width:44px;font-weight:500;color:#2f6b50}
.guest-points span{line-height:1.7}
.guest-note{margin-top:24px;font-size:11px;color:#94a39a}
.guest-card{padding:34px 32px;background:#fff;border:1px solid #e3eae0;border-radius:16px;box-shadow:0 20px 60px rgba(23,58,42,.06)}
.guest-card h2{margin:0 0 6px;font-size:20px;font-weight:500;color:#1d3d2e}
.guest-card-sub{margin-bottom:22px;font-size:12px;line-height:1.7;color:#7b8c82}
.guest-form .input-label{margin-bottom:14px}
.guest-submit{width:100%;height:44px;justify-content:center;font-size:13px;margin-top:2px}
.guest-help{margin-top:18px;font-size:11px;text-align:center;color:#94a39a}
.guest-demo{margin-top:22px;padding-top:18px;border-top:1px dashed #e1e8dd}
.guest-demo-title{margin-bottom:10px;font-size:11px;color:#8a988f}
.guest-demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.guest-demo-btn{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:9px 12px;border:1px solid #e2e9de;border-radius:8px;background:#f8fbf6;cursor:pointer;font-size:12px;color:#33543f}
.guest-demo-btn span{font-family:Consolas,monospace;font-size:10px;color:#8b9a90}
.guest-demo-btn:hover{border-color:#b9d2c2;background:#f1f8ee}
.guest-demo-more{margin-top:10px;font-size:11px;color:#7b8c82}
.guest-demo-more summary{cursor:pointer}
.guest-demo-more p{display:flex;justify-content:space-between;margin:8px 0 0}
.guest-demo-note{margin-top:10px;font-size:10px;color:#a3b0a8}
@media(max-width:900px){.guest-shell{grid-template-columns:1fr;padding:30px 20px;gap:26px}.guest-brand{padding-right:0}.guest-brand h1{font-size:32px}.guest-points{display:none}.guest-card{padding:26px 22px}}
body.guest-mode{overflow-x:hidden}
.guest-shell{width:100%}
.guest-brand,.guest-card{min-width:0}
.guest-card{width:100%;max-width:100%}
@media(max-width:900px){.guest-card{max-width:none}.guest-demo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.guest-demo-grid{grid-template-columns:1fr}}
