/* Shared semantic tokens; loaded after page styles. */
:root[data-theme] {
 --primary:#087f9c;--primary-deep:#08677d;--primary-dark:#153248;--primary-light:#56c5d9;
 --page-bg:#eef3f8;--bg:var(--page-bg);--white:#fff;--card:#fff;--surface:#fff;
 --text:#172b42;--text-sub:#51647a;--text-muted:#61758b;--text-2:var(--text-sub);
 --border:#d6e1eb;--green-bg:#e3f2f6;--green:var(--primary);--green-2:#117d94;
 --red:#c7334b;--danger:var(--red);--warn:#a96508;--shadow:0 4px 18px #1532480a;
 --radius-lg:14px;--radius-md:10px;--radius-sm:8px;
}
:root[data-theme=dark] {
 --primary:#5ad5ec;--primary-deep:#7ce3f4;--primary-dark:#e2f4ff;--primary-light:#73dff0;
 --page-bg:#0b1423;--white:#122237;--card:#122237;--surface:#122237;
 --text:#e1ebf5;--text-sub:#b1c2d5;--text-muted:#93a9c0;--border:#294159;
 --green-bg:#183b4b;--green:var(--primary);--green-2:#247e98;--red:#ff8596;--warn:#ffc66b;
 --shadow:0 6px 24px #0002;
}
html[data-theme] body {background:var(--page-bg);color:var(--text);font-family:'PingFang SC','Microsoft YaHei',sans-serif;line-height:1.55;}
[data-theme] :is(.wb-header,.wb-card,.card,.modal,.wb-id .chip,.fm-card,.metric-card) {background:var(--surface);color:var(--text);border-color:var(--border);}
[data-theme] :is(input,select,textarea) {background:var(--surface);color:var(--text);border-color:var(--border);}
[data-theme] :is(th,td) {border-color:var(--border);}
[data-theme] th {background:var(--green-bg);color:var(--text-sub);}
[data-theme] tr:hover td {background:var(--green-bg);}
[data-theme] :is(.wb-sub,.wb-card-sub,.wb-group h2,.empty,.loading) {color:var(--text-sub);}
[data-theme] :is(.btn-logout,.btn.ghost) {background:var(--surface);color:var(--text);border-color:var(--border);}
[data-theme] :focus-visible {outline:3px solid var(--primary);outline-offset:3px;}
[data-theme] .topbar {gap:14px;padding-inline:20px;}
[data-theme] .search-box {min-width:60px;}
[data-theme] .brand-text .title {font-size:20px;letter-spacing:0;}
[data-theme] .dashboard-charts {margin-top:20px;}
[data-theme] .fm-main {min-width:0;}
.appearance-control {position:fixed;bottom:16px;left:16px;z-index:1000;display:flex;gap:8px;align-items:center;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:12px;box-shadow:var(--shadow);}
.appearance-control select {max-width:90px;padding:4px;border:0;}
[data-theme=dark] svg text {fill:var(--text-sub);}
[data-theme] .metric-card {cursor:default;}
@media(max-width:1200px){[data-theme] .topbar .top-weather{display:none;}[data-theme] .topbar{gap:10px;}[data-theme] .topbar .brand{min-width:0;}[data-theme] .topbar .brand-text .title{font-size:17px;}}
@media(max-width:760px){.appearance-control{bottom:10px;left:10px;}[data-theme] .metrics-row{grid-template-columns:repeat(2,minmax(0,1fr));}[data-theme] .wb-main{padding:16px;}[data-theme] .wb-cards{grid-template-columns:1fr;}[data-theme] .topbar{padding-inline:12px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important;}}

/* Web application components: shared by console, workspaces, portal and meter. */
:root[data-theme] {--action:#087f9c;--on-action:#fff;--ring:0 0 0 3px #26b7d526;--radius:14px;}
[data-theme] :is(button,input,select,textarea){font:inherit;box-sizing:border-box;}
[data-theme] :is(button,[role=button],a){-webkit-tap-highlight-color:transparent;}
[data-theme] :is(button,.btn,.fm-btn){min-height:36px;border-radius:8px;}
[data-theme] :is(button:disabled,.btn:disabled){opacity:.5;cursor:not-allowed;}
[data-theme] :is(.btn-primary,.btn.primary,.fm-btn.primary,.submit-btn,.wb-primary){background:var(--action);color:var(--on-action);border-color:var(--action);box-shadow:none;}
[data-theme] :is(.btn-outline,.fm-btn:not(.primary)){border:1px solid var(--border);background:var(--surface);color:var(--text);}
[data-theme] :is(.card,.panel,.pg-card,.fm-card,.wb-card,.kpi){border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);}
[data-theme] :is(.toolbar,.filter-bar,.fm-toolbar){gap:10px;flex-wrap:wrap;align-items:center;}
[data-theme] :is(.input,.fm-input,.fm-select,.form-group input,.form-group select){min-height:40px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;max-width:100%;}
[data-theme] :is(input,textarea)::placeholder{color:var(--text-muted);opacity:1;}
[data-theme] :is(h1,h2,h3){letter-spacing:-.015em;}
[data-theme] :is(.modal,.fm-modal){max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 80px #0005;}
[data-theme] :is(.modal-body,.fm-modal-body){overflow:auto;overscroll-behavior:contain;}
[data-theme] :is(.modal-header,.modal-footer,.fm-modal-head,.fm-modal-foot){border-color:var(--border);background:var(--surface);}
[data-theme] :is(.table-wrap,.fm-table-wrap,.reg-table){max-width:100%;overflow:auto;overscroll-behavior-inline:contain;border-radius:10px;border:1px solid var(--border);}
[data-theme] table{border-collapse:collapse;font-variant-numeric:tabular-nums;}
[data-theme] :is(th,td){padding:12px 14px;vertical-align:middle;}
[data-theme] th{font-size:12px;font-weight:600;white-space:nowrap;}
[data-theme] :is(.pagination,.fm-pagination){display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block:16px;}
[data-theme] :is(.navbar,.fm-sidebar){background:var(--surface);border-right:1px solid var(--border);padding-bottom:86px;}
[data-theme] .nav-item{border-radius:8px;margin:3px 10px;padding:10px 12px;font-size:13px;color:var(--text-sub);min-height:42px;}
[data-theme] .nav-item:hover{background:var(--green-bg);color:var(--text);}
[data-theme] .nav-item.active{background:var(--green-bg);color:var(--primary);font-weight:650;box-shadow:inset 3px 0 var(--primary);}
[data-theme] .nav-group-title{font-size:11px;letter-spacing:.06em;color:var(--text-muted);margin-top:16px;}
[data-theme] .nav-item svg{width:18px;height:18px;flex-shrink:0;}
[data-theme] .wb-main{max-width:1440px;padding:32px 32px 90px;}
[data-theme] .wb-cards{gap:16px;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));}
[data-theme] .wb-card{padding:22px;min-height:108px;}
[data-theme] .wb-card-name{font-size:16px;padding-right:20px;}
[data-theme] .wb-card-sub{margin-top:8px;line-height:1.6;}
[data-theme] .wb-card-farm{background:var(--surface);border-color:var(--border);}
[data-theme] :is(.wb-card-farm .wb-card-name,.wb-go,.wb-doc-links a){color:var(--primary);}
[data-theme] .wb-logo{background:var(--action);color:#fff;}
[data-theme] .fm-main{padding-bottom:80px;}
[data-theme] .search-box:focus-within{background:var(--surface);box-shadow:var(--ring);}
[data-theme] .appearance-control{box-shadow:var(--shadow);}
[data-theme] .ui-skip{position:fixed;left:16px;top:-80px;z-index:20000;padding:12px;background:var(--surface);color:var(--text);}
[data-theme] .ui-skip:focus{top:12px;}
.ui-table-scroll{max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:10px;}
.ui-search-results{position:fixed;top:68px;left:260px;right:24px;max-width:720px;max-height:60vh;overflow:auto;z-index:200;background:var(--surface);padding:12px;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);}
.ui-search-results button{display:block;width:100%;text-align:left;background:transparent;color:var(--text);padding:12px;border:0;}
.ui-search-results button:hover{background:var(--green-bg);}
.ui-search-results p{color:var(--text-sub);padding:12px;}
@media(max-width:1000px){[data-theme] .wb-main{padding:24px 20px 84px;}[data-theme] .actions{gap:8px;}[data-theme] .brand-text .subtitle{display:none;}.ui-search-results{left:16px;right:16px;}}
@media(max-width:600px){[data-theme] :is(.form-row,.fm-form.c2){grid-template-columns:minmax(0,1fr);}[data-theme] .wb-main{padding:20px 14px 80px;}[data-theme] .wb-cards{grid-template-columns:1fr;}[data-theme] .wb-header{padding:14px;}[data-theme] :is(.modal,.fm-modal){max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);}[data-theme] .wb-title{font-size:16px;}[data-theme] .topbar .brand-text .title{font-size:14px;}[data-theme] .topbar .feedback-btn{display:none;}}

.ui-nav-group{margin:6px 0;border-bottom:1px solid var(--border);padding-bottom:6px;}.ui-nav-group>summary{padding:13px 18px;color:var(--text-sub);font-size:13px;font-weight:600;cursor:pointer;}.ui-nav-group[open]>summary{color:var(--text);}.ui-nav-error{padding:20px;color:var(--text-sub);}

/* Login shares the product palette; existing authentication controls are retained. */
[data-theme] .auth-split{--ink:var(--text);--ink-soft:var(--text-sub);--ink-mute:var(--text-muted);--line:var(--border);--line-soft:var(--border);--green-soft:var(--green-bg);--green-hover:#096c83;}
[data-theme] .auth-split .brand-panel{background:radial-gradient(ellipse at 20% 15%,#175775 0,transparent 55%),linear-gradient(145deg,#0c2034,#122f45 65%,#0b4352);}
[data-theme] .auth-split .brand-panel::after{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:48px 48px;pointer-events:none;}
[data-theme] .auth-split .brand-title{color:#edf7ff;letter-spacing:1px;font-size:36px;}
[data-theme] .auth-split .brand-slogan{color:#b7d3e4;font-size:16px;letter-spacing:.5px;line-height:1.8;}
[data-theme] .auth-split .brand-inner{max-width:540px;padding:48px;}
[data-theme] .auth-split .brand-logo{width:80px;height:80px;border-radius:22px;background:#ffffff0d;border:1px solid #ffffff25;box-shadow:0 16px 40px #0002;font-size:40px;}
[data-theme] .auth-split .brand-deco{display:none;}
[data-theme] .auth-split .form-panel{padding-bottom:90px;}
[data-theme] .auth-split .form-group label{color:var(--text-sub);font-weight:500;}
[data-theme] .auth-split .submit-btn{min-height:48px;letter-spacing:.08em;}
@media(max-width:760px){[data-theme] .auth-split .brand-inner{padding:28px 24px;}[data-theme] .auth-split .brand-title{font-size:26px;}[data-theme] .auth-split .brand-logo{width:56px;height:56px;font-size:30px;margin-bottom:16px;}[data-theme] .auth-split .form-panel{padding:24px 20px 80px;}}

:root[data-theme]{--bg0:var(--page-bg);--bg1:var(--page-bg);--panel:var(--surface);--panel2:var(--green-bg);--txt:var(--text);--sub:var(--text-sub);--dim:var(--text-muted);--cyan:var(--primary);}
[data-web-page=gov_screen] .top-mid .region{color:var(--text);text-shadow:none;}
[data-web-page=gov_screen] .brand h1{text-shadow:none;letter-spacing:0;}
[data-web-page=gov_screen] .panel{box-shadow:none;border-color:var(--border);}
[data-web-page=gov_screen] body{background:var(--page-bg);}
[data-web-page=gov_screen] .wrap{padding-bottom:80px;}

.ui-session-state{position:sticky;top:0;z-index:300;padding:12px 24px;background:var(--surface);color:var(--warn);border-bottom:1px solid var(--border);display:flex;gap:16px;align-items:center;justify-content:center;}

[data-permission-denied]{display:none!important;}

/* Final console density and controls across Web workspaces. */
[data-theme] .topbar{background:var(--surface);box-sizing:border-box;gap:12px;max-width:100vw;}
[data-theme] .topbar .search-box{min-width:80px;max-width:280px;padding-inline:10px;}
[data-theme] .topbar .search-box input{min-width:0;}
[data-theme] .btn{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:8px 14px;}
[data-theme] .btn-primary{background:var(--action);border-color:var(--action);color:var(--on-action);}
[data-theme] .btn-danger{background:var(--red);border-color:var(--red);color:#fff;}
[data-theme] .btn:hover:not(:disabled){border-color:var(--primary);}
@media(max-width:1550px){[data-theme] .topbar .top-weather{display:none;}[data-theme] .topbar>a[href="/apidoc.html"]{display:none;}}
@media(max-width:1180px){[data-theme] .topbar>a[href="/farm.html"]{display:none;}[data-theme] .topbar .brand-text .subtitle{display:none;}}

.ui-page-header{margin:0 0 22px;padding:2px 0 18px;border-bottom:1px solid var(--border)}.ui-page-eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--primary);margin-bottom:6px}.ui-page-header h1{font-size:26px;line-height:1.35;margin:0;color:var(--text)}.ui-page-header p{font-size:13px;color:var(--text-sub);margin:8px 0 0}.ui-table-scroll table{width:100%;}.ui-table-scroll:focus-visible{outline-offset:2px;}[data-theme] :is(.v2-toolbar,.v2-filters,.filter-row){display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}[data-theme] :is(.v2-toolbar,.v2-filters,.filter-row) :is(input,select){min-height:38px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;max-width:100%;}[data-theme] :is(.v2-card,.v2-panel){background:var(--surface);border:1px solid var(--border);border-radius:12px;}[data-theme] .v2-table th{background:var(--green-bg);font-weight:600;}[data-theme] .v2-table td{color:var(--text);}@media(max-width:700px){.ui-page-header h1{font-size:23px}.ui-page-header{margin-bottom:18px}.ui-page-header p{line-height:1.6}[data-theme] :is(.v2-toolbar,.v2-filters,.filter-row)>input{flex:1 1 160px;}}

@media(min-width:981px) and (max-width:1550px){.topbar a[href="/apidoc.html"]{display:none}}

.fm-quick{display:flex;align-items:center;gap:16px;cursor:pointer;min-height:100px;transition:border-color .15s,transform .15s}
.fm-quick:hover{border-color:var(--accent);transform:translateY(-2px)}
.fm-quick-icon{width:48px;height:48px;flex:0 0 48px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;color:var(--accent)}
.fm-quick-icon svg{width:26px;height:26px}
.fm-side{padding-bottom:88px!important;scroll-padding-bottom:88px}
#fmHomeStats{gap:16px;margin-bottom:18px}
.fm-card-title{font-weight:650;margin-bottom:14px}
.fm-quick-sub{font-size:12px;color:var(--text-sub);line-height:1.6}

@media(max-width:600px){
 .topbar{gap:8px!important;padding:0 12px!important;max-width:100%;}
 .topbar #regionSwitcher,.topbar #wxaMiniappBtn,.topbar .brand-subtitle{display:none!important}
 .topbar .brand{min-width:0!important;flex:1;gap:8px!important}
 .topbar .actions{margin-left:auto;gap:6px!important;min-width:0!important;flex-shrink:0}
 .topbar .user{padding:0!important;gap:0!important}
 .topbar .avatar{width:30px!important;height:30px!important}
 .topbar .icon-btn{width:30px!important;height:30px!important;padding:4px!important}
 .topbar .brand-title{font-size:14px!important;white-space:nowrap}
 .reg-trend-label{font-size:9px}
 .appearance-control{bottom:8px!important;left:8px!important}
}

[hidden]{display:none!important}
@media(min-width:1000px){.wrap>.cards{grid-template-columns:repeat(5,minmax(0,1fr))}}
