
/* ============================================================
   admin-redesign.css — NFJG 后台 1:1 复刻设计稿
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font-body);background:#F5F7FB;color:var(--on-surface);-webkit-font-smoothing:antialiased;font-size:14px;line-height:22px}
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;vertical-align:middle}
.hidden{display:none !important}
.fade-in{animation:fadeIn .18s ease-out}
@keyframes fadeIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}

/* ============ 登录页 ============ */
.login-shell{position:fixed;inset:0;z-index:1000;overflow:hidden;background:#faf8ff;color:#131b2e;font-family:Inter,"Noto Sans SC","PingFang SC",sans-serif}
#loginView.login-redesign{padding:0!important}
.login-bg-photo{position:absolute;inset:0;z-index:0;background-image:url("https://lh3.googleusercontent.com/aida-public/AB6AXuBJeQujT2q0GvM6Wk2cW4u4WQAQtuQKLyFAER67qSm9hPnMS6X45jLjcXIrSw6b1vbrlits3hcMmT_Qtb0H6QHEifHzHZhe2lr4q2jtxvd1OHqzea312Mnys0-iM4EqvA3Xs__DSXlenT752YDc011YFtFTZcFDDBGTmyvvEA5SWsV3DZG7Jvr2DyTj8bPGDUA3jBoTud4Wt9uY7UG7_75pMZOV8DZFI4m3SSh82zpLXqtQnsgXIwxydpk6BVi3dkwx7zBzLbWfwrg");background-size:cover;background-position:center;background-attachment:fixed}
.login-bg-photo::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.1)}
.login-main{position:relative;z-index:1;display:flex;width:100%;height:100vh;max-width:1920px;margin:0 auto;overflow:hidden}
.login-info-panel{width:60%;display:flex;flex-direction:column;justify-content:center;padding:48px 128px;position:relative}
.login-info-inner{width:100%;display:block}
.login-kicker{display:flex;align-items:center;gap:12px;color:#004ac6;font-size:20px;font-weight:700;letter-spacing:.1em;margin-bottom:16px}
.login-kicker-icon{width:40px;height:40px;padding:8px;border-radius:8px;background:#004ac6;color:#fff;display:flex;align-items:center;justify-content:center}
.login-kicker-icon .material-symbols-outlined{font-size:24px;font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
.login-hero-title{margin:0;font-size:64px;line-height:1.25;font-weight:900;letter-spacing:-.025em;color:#131b2e}
.login-hero-title span{color:#004ac6}
.login-hero-copy{max-width:672px;margin:16px 0 0;color:#434655;font-size:24px;line-height:1.5;font-weight:400}
.login-stat-grid{display:flex;gap:24px;margin-top:48px}
.login-stat-card{flex:1;min-width:0;padding:32px;border-radius:16px;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:none;transition:transform .3s ease}
.login-stat-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(19,27,46,.1)}
.login-stat-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;color:#434655;font-size:18px;font-weight:500}
.login-stat-head .material-symbols-outlined{font-size:24px;color:#006c49;font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
.login-stat-card:nth-child(2) .login-stat-head .material-symbols-outlined{color:#004ac6}
.login-stat-card:nth-child(3) .login-stat-head .material-symbols-outlined{color:#ba1a1a}
.login-stat-value{display:flex;align-items:baseline;gap:8px}
.login-stat-value strong{font-size:48px;line-height:1;font-weight:700;color:#131b2e;letter-spacing:-.02em}
.login-stat-value em{font-style:normal;color:#006c49;font-size:18px;font-weight:800}
.login-stat-value small{font-size:18px;color:#434655;font-weight:500}
.login-progress{width:100%;height:6px;margin-top:16px;border-radius:999px;background:rgba(195,198,215,.3);overflow:hidden}
.login-progress span{display:block;height:100%;border-radius:inherit;background:#006c49}
.login-stat-card p{margin:16px 0 0;color:#434655;font-size:14px;font-weight:500}
.login-form-panel{width:40%;display:flex;align-items:center;justify-content:center;padding:48px}
.login-card{width:100%;max-width:520px;padding:48px;border-radius:32px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.login-card-head{text-align:center;margin-bottom:40px}
.login-title{margin:0 0 8px;font-size:30px;line-height:36px;font-weight:700;color:#131b2e;letter-spacing:0}
.login-sub{margin:0;color:#434655;font-size:16px;line-height:24px}
.login-form{display:flex;flex-direction:column;gap:24px}
.login-field{display:block;margin:0;color:#131b2e;font-size:14px;font-weight:700}
.login-field > span{display:block;padding:0 4px;margin-bottom:8px}
.login-input-wrap{position:relative;display:flex;align-items:center}
.login-input-wrap > .material-symbols-outlined{position:absolute;left:16px;color:#737686;font-size:24px;transition:color .15s}
.login-input-wrap input{display:block;width:100%;height:58px;margin:0;padding:16px 48px;border:1px solid #c3c6d7;border-radius:12px;background:#fff;color:#131b2e;font-size:16px;line-height:24px;outline:none;transition:border-color .15s,box-shadow .15s}
.login-input-wrap input::placeholder{color:#737686}
.login-input-wrap:focus-within > .material-symbols-outlined{color:#004ac6}
.login-input-wrap input:focus{border-color:#004ac6;box-shadow:0 0 0 4px rgba(0,74,198,.1)}
.login-pwd-toggle{position:absolute;right:0;top:0;width:52px;height:58px;margin:0!important;padding:0 16px 0 0!important;border:0!important;background:transparent!important;color:#737686!important;border-radius:12px!important;box-shadow:none!important;display:flex;align-items:center;justify-content:flex-end;cursor:pointer}
.login-pwd-toggle:hover{color:#131b2e!important;background:transparent!important}
.login-pwd-toggle .material-symbols-outlined{font-size:24px}
.login-submit{width:100%;height:64px;margin:0!important;border:0!important;border-radius:12px!important;background:#004ac6!important;color:#fff!important;font-size:16px!important;font-weight:700!important;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 10px 15px -3px rgba(0,74,198,.2),0 4px 6px -4px rgba(0,74,198,.2)!important;transition:background .15s,transform .15s,box-shadow .15s}
.login-submit:hover{background:#003ea8!important;box-shadow:0 16px 30px rgba(0,74,198,.25)!important}
.login-submit .material-symbols-outlined{font-size:22px;transition:transform .18s}
.login-submit:hover .material-symbols-outlined{transform:translateX(4px)}
@media (max-width:1280px){.login-info-panel{padding-left:48px;padding-right:48px}.login-hero-title{font-size:56px}.login-hero-copy{font-size:21px}.login-stat-grid{gap:16px}.login-stat-card{padding:24px 20px}.login-card{padding:40px}}
@media (max-width:980px){.login-main{display:block;overflow-y:auto}.login-info-panel,.login-form-panel{width:100%;padding:32px 24px}.login-info-panel{min-height:auto}.login-form-panel{padding-top:0}.login-hero-title{font-size:42px}.login-hero-copy{font-size:17px}.login-stat-grid{margin-top:32px;display:grid;grid-template-columns:1fr}.login-card{max-width:560px;margin:0 auto 32px}}

/* ============ App Shell ============ */
.app-shell{position:fixed;inset:0;display:flex;background:var(--background);overflow:hidden}

/* ============ 侧栏 ============ */
.app-sidebar{width:var(--sidebar-w);height:100vh;background:var(--inverse-surface);color:var(--inverse-on-surface);display:flex;flex-direction:column;padding:var(--stack-lg) 0 0;border-right:1px solid rgba(255,255,255,.06);flex:0 0 auto;z-index:50;position:relative}
.app-sidebar-brand{padding:0 20px 20px;display:flex;align-items:center;gap:12px}
.app-brand-mark{width:40px;height:40px;border-radius:10px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 40px}
.app-brand-mark .material-symbols-outlined{font-size:22px}
.app-brand-text h1{margin:0;font-size:14px;font-weight:600;color:#fff;letter-spacing:-.01em;line-height:1.2}
.app-brand-text p{margin:2px 0 0;font-size:10px;color:var(--primary-fixed-dim);opacity:.7;letter-spacing:.16em;text-transform:uppercase}
.app-sidebar-search{margin:0 16px 12px;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:6px 10px}
.app-sidebar-search .material-symbols-outlined{font-size:16px;color:var(--outline-variant)}
.app-sidebar-search input{flex:1;background:none;border:0;outline:0;color:#fff;font-size:12px}
.app-sidebar-search input::placeholder{color:rgba(255,255,255,.42)}
.app-nav{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin}
.app-nav::-webkit-scrollbar{width:4px}
.app-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:4px}
.app-nav-item{display:flex;align-items:center;gap:12px;padding:11px 16px;margin:2px 12px;border-radius:10px;color:var(--surface-variant);cursor:pointer;transition:background .12s,color .12s,transform .12s;font-size:14px;font-weight:400;user-select:none}
.app-nav-item .material-symbols-outlined{font-size:20px;flex:0 0 20px}
.app-nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.app-nav-item.active{background:linear-gradient(90deg,var(--primary) 0%,#2563eb 100%);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.28)}
.app-nav-item.active .material-symbols-outlined{color:#fff}
.app-nav-item .dot{margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--tertiary-fixed);opacity:.85;animation:pulseDot 1.8s infinite}
@keyframes pulseDot{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}
.app-nav-sep{margin:12px 20px 8px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.32);border-top:1px solid rgba(255,255,255,.06);padding-top:10px}
.app-sidebar-footer{margin-top:auto;padding:14px 12px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:6px}
.app-side-icon{display:flex;align-items:center;gap:12px;padding:8px 12px;background:none;border:0;color:var(--surface-variant);cursor:pointer;border-radius:8px;font:inherit;text-align:left;width:100%}
.app-side-icon:hover{background:rgba(255,255,255,.06);color:#fff}
.app-side-icon .material-symbols-outlined{font-size:20px}
.app-sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-top:4px;border-top:1px solid rgba(255,255,255,.06);padding-top:12px}
.app-sidebar-user .avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
.app-sidebar-user .u-name{color:#fff;font-size:13px}
.app-sidebar-user .u-role{color:rgba(255,255,255,.4);font-size:10px;letter-spacing:.12em}
.app-sidebar-toggle{display:none;position:absolute;top:14px;right:-14px;width:28px;height:28px;border:0;background:var(--primary);color:#fff;border-radius:50%;cursor:pointer}

/* ============ 主体 & 顶栏 ============ */
.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100vh}
.app-topbar{height:var(--topbar-h);padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-bright);border-bottom:1px solid var(--outline-variant);position:sticky;top:0;z-index:40;flex:0 0 var(--topbar-h)}
.app-topbar-left{display:flex;align-items:center;gap:12px}
.app-topbar-title{margin:0;font-size:20px;font-weight:600;color:var(--on-surface);line-height:28px}
.app-topbar-sub{color:var(--on-surface-variant);font-size:14px}
.app-topbar-divider{width:1px;height:18px;background:var(--outline-variant)}
.app-topbar-right{display:flex;align-items:center;gap:12px}
.app-topbar-nav{display:flex;gap:4px;align-items:center}
.app-link-btn{background:none;border:0;padding:6px 12px;color:var(--on-surface-variant);font-size:14px;cursor:pointer;border-radius:8px;transition:.12s}
.app-link-btn:hover{background:var(--surface-container-high);color:var(--primary)}
.app-link-btn.icon{padding:6px 8px}
.app-notif-bell{position:relative;background:none;border:0;cursor:pointer;padding:8px;border-radius:50%;transition:.12s}
.app-notif-bell:hover{background:var(--surface-container-high)}
.app-notif-bell .material-symbols-outlined{color:var(--primary);font-size:22px}
.app-notif-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--error);color:#fff;font-size:10px;line-height:16px;text-align:center;border-radius:9999px;border:2px solid #fff;box-sizing:content-box;font-family:var(--font-mono)}
.app-topbar-user{color:var(--on-surface);font-size:13px}
.app-logout-btn{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--primary);color:#fff;border:0;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:.15s;box-shadow:0 2px 8px rgba(37,99,235,.16)}
.app-logout-btn:hover{background:#003ea8;box-shadow:0 4px 12px rgba(37,99,235,.28)}

/* ============ 内容区 ============ */
.app-content{flex:1;overflow-y:auto;padding:24px;background:var(--background)}
.app-view{display:block;max-width:1920px;margin:0 auto}
.app-view > * + *{margin-top:24px}

/* ============ 运营总览 · 4彩卡 ============ */
.dash-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1200px){.dash-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.dash-stats-grid{grid-template-columns:1fr}}
.dash-card{position:relative;overflow:hidden;padding:24px;border-radius:12px;color:#fff;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s;cursor:pointer}
.dash-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.dash-card::after{content:'';position:absolute;right:-16px;bottom:-16px;width:96px;height:96px;background:rgba(255,255,255,.1);border-radius:50%;filter:blur(20px)}
.dash-card .dc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;position:relative;z-index:1}
.dash-card .dc-title{font-size:14px;opacity:.9;margin:0}
.dash-card .dc-icon{opacity:.7;font-size:20px;transition:transform .18s}
.dash-card:hover .dc-icon{transform:scale(1.1)}
.dash-card .dc-value{font-family:var(--font-mono);font-size:40px;font-weight:700;line-height:1;position:relative;z-index:1}
.dash-card .dc-unit{font-size:14px;opacity:.8;margin-left:6px}
.dash-card .dc-note{margin-top:16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.6;position:relative;z-index:1}
.dash-card.c1{background:var(--card-c1)}
.dash-card.c2{background:var(--card-c2)}
.dash-card.c3{background:var(--card-c3)}
.dash-card.c4{background:var(--card-c4)}

/* ============ 运营总览 · 地图 ============ */
.dash-map-panel{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}
.dash-map-head{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--outline-variant);background:var(--surface-container-low)}
.dash-map-head .hd-l{display:flex;align-items:center;gap:12px}
.dash-map-head h3{margin:0;font-size:16px;font-weight:600;color:var(--on-surface)}
.live-tag{padding:2px 8px;background:rgba(37,99,235,.1);color:var(--primary);font-size:10px;font-weight:700;border-radius:4px}
.title-status{color:var(--on-surface-variant);font-size:12px}
.dash-map-head .hd-r{display:flex;gap:8px}
.dash-map-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid var(--outline-variant);border-radius:6px;font-size:13px;color:var(--on-surface-variant);cursor:pointer;transition:.12s}
.dash-map-btn:hover{background:var(--surface-container)}
.dash-map-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.dash-map-btn.primary:hover{opacity:.9;background:#003ea8}
.dash-map-btn .material-symbols-outlined{font-size:16px}
.dash-map-body{position:relative;height:500px;background:#eaf1ff}
.dash-map-canvas{position:absolute;inset:0;width:100%;height:100%}
.dash-map-legend{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);padding:14px;border-radius:12px;border:1px solid var(--outline-variant);box-shadow:var(--shadow-lg);max-width:260px}
.dash-map-legend h4{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--on-surface-variant);text-transform:uppercase}
.dash-map-legend .lg-row{display:flex;align-items:center;gap:10px;padding:2px 0;font-size:13px;color:var(--on-surface)}
.lg-dot{width:12px;height:12px;border-radius:50%}
.lg-dot.red{background:#ef4444;box-shadow:0 0 8px rgba(239,68,68,.5)}
.lg-dot.blue{background:#3b82f6;animation:pulseDot 1.8s infinite}
.dash-map-zoom{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px}
.dash-map-zoom button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--outline-variant);cursor:pointer;transition:.12s}
.dash-map-zoom button:first-child{border-radius:8px 8px 0 0;border-bottom:1px solid var(--outline-variant)}
.dash-map-zoom button:last-child{border-radius:0 0 8px 8px;margin-top:-1px}
.dash-map-zoom button:hover{background:var(--surface-container)}

/* ============ 运营总览 · 底部两栏 ============ */
.dash-bottom-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;min-height:400px}
@media (max-width:1024px){.dash-bottom-grid{grid-template-columns:1fr}}
.dash-timeline-panel,.dash-driver-panel{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;max-height:500px}
.dash-panel-head{padding:14px 24px;border-bottom:1px solid var(--outline-variant);display:flex;justify-content:space-between;align-items:center}
.dash-panel-head h3{margin:0;font-size:16px;font-weight:600;color:var(--on-surface)}
.mono-tag{color:var(--on-surface-variant);font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase}
.link-primary{background:none;border:0;color:var(--primary);font-size:12px;font-weight:700;cursor:pointer}
.link-primary:hover{text-decoration:underline}

/* 时间线 */
.timeline-list{flex:1;overflow-y:auto;padding:24px;position:relative}
.timeline-list::before{content:'';position:absolute;left:35px;top:32px;bottom:32px;width:2px;background:var(--outline-variant)}
.timeline-item{position:relative;padding-left:44px;margin-bottom:24px}
.timeline-item:last-child{margin-bottom:0}
.timeline-item .dot{position:absolute;left:12px;top:4px;width:24px;height:24px;border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center}
.timeline-item.done .dot{background:var(--primary);border:4px solid #fff;box-shadow:0 0 0 1px var(--outline-variant)}
.timeline-item.done .dot::after{content:'check';font-family:'Material Symbols Outlined';color:#fff;font-size:14px;font-weight:700}
.timeline-item.current .dot{background:#fff;border:2px solid var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.14)}
.timeline-item.past .dot{background:rgba(37,99,235,.18);border:2px solid rgba(37,99,235,.36)}
.timeline-item.past .dot::before{content:'';width:8px;height:8px;border-radius:50%;background:rgba(37,99,235,.4)}
.timeline-card{border:1px solid var(--outline-variant);border-radius:10px;padding:14px 16px;background:var(--surface-container-low)}
.timeline-item.current .timeline-card{background:#fff;border-color:rgba(37,99,235,.2)}
.timeline-item.past .timeline-card{opacity:.6}
.timeline-card .th{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.timeline-card .tt{margin:0;font-size:14px;font-weight:700;color:var(--on-surface)}
.timeline-card .tm{font-family:var(--font-mono);font-size:11px;color:var(--on-surface-variant)}
.timeline-card .desc{margin:0;font-size:13px;color:var(--on-surface-variant);line-height:1.5}
.timeline-card .foot{margin-top:12px;display:flex;align-items:center;gap:10px}
.status-pill{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700}
.status-draft{background:#F3F4F6;color:#374151}
.status-dispatched{background:#EFF6FF;color:#2563EB}
.status-arrived{background:#ECFDF5;color:#059669}
.status-returning{background:#FEF3C7;color:#D97706}
.status-completed{background:#F0FDF4;color:#16A34A}
.status-cancelled{background:#FEF2F2;color:#DC2626}
.timeline-card .bar{flex:1;height:4px;background:var(--outline-variant);border-radius:9999px;overflow:hidden}
.timeline-card .bar > i{display:block;height:100%;background:var(--primary);border-radius:inherit}

/* 司机表 */
.dash-driver-panel .driver-scroll{flex:1;overflow-y:auto}
.driver-table{width:100%;border-collapse:collapse;text-align:left}
.driver-table thead{position:sticky;top:0;background:var(--surface-container-low);border-bottom:1px solid var(--outline-variant);z-index:1}
.driver-table th{padding:12px 16px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--on-surface-variant);text-transform:uppercase}
.driver-table th:last-child{text-align:right}
.driver-table td{padding:10px 16px;font-size:13px;border-bottom:1px solid rgba(195,198,215,.4);vertical-align:middle}
.driver-table td:last-child{text-align:right}
.driver-table tr:hover{background:var(--surface-container-low);cursor:pointer}
.driver-cell{display:flex;align-items:center;gap:12px}
.driver-cell .av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.driver-cell .av.a{background:rgba(37,99,235,.14);color:var(--primary)}
.driver-cell .av.b{background:var(--secondary-container);color:var(--secondary)}
.driver-cell .av.c{background:rgba(0,120,140,.14);color:var(--tertiary)}
.driver-cell .av.d{background:var(--surface-variant);color:var(--on-surface-variant)}
.driver-cell .nm{font-size:14px;font-weight:700;color:var(--on-surface)}
.driver-cell .pt{font-size:10px;color:var(--on-surface-variant)}
.rating-star{display:inline-flex;align-items:center;gap:4px}
.rating-star .material-symbols-outlined{font-size:14px;color:#f59e0b;font-variation-settings:'FILL' 1}
.rating-star .v{font-family:var(--font-mono);font-size:13px;color:var(--on-surface)}
.dur-mono{font-family:var(--font-mono);font-size:13px;color:var(--on-surface-variant)}

/* ============ 数据统计 ============ */
.stats-filter-bar{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;box-shadow:var(--shadow-sm)}
.stats-filter-bar .lft{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.stats-filter-bar .dim h3{margin:0;font-size:16px;font-weight:600;color:var(--on-surface)}
.stats-filter-bar .dim .lb{font-size:11px;color:var(--outline);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px;display:block}
.stats-filter-bar .vd{width:1px;height:32px;background:var(--outline-variant)}
.stats-filter-bar .dp{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--on-surface-variant)}
.stats-filter-bar .dp-wrap{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--outline);border-radius:10px;padding:8px 12px}
.stats-filter-bar .dp-wrap .material-symbols-outlined{font-size:18px;color:var(--outline)}
.stats-filter-bar .dp-wrap input{border:0;outline:0;font:inherit;font-family:var(--font-mono);width:104px;padding:0;background:transparent}
.stats-filter-bar .sep{color:var(--outline)}
.stats-filter-bar .btn-query{display:flex;align-items:center;gap:8px;padding:10px 22px;background:var(--primary);color:#fff;border:0;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;box-shadow:0 2px 8px rgba(37,99,235,.16)}
.stats-filter-bar .btn-query:hover{box-shadow:0 8px 24px rgba(37,99,235,.28)}
.stats-filter-bar .btn-query:active{transform:scale(.97)}
.stats-filter-bar .btn-query .material-symbols-outlined{font-size:20px}

.stats-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
@media (max-width:1280px){.stats-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.stats-metric-grid{grid-template-columns:1fr}}
.data-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--outline-variant);border-radius:12px;padding:20px;box-shadow:var(--shadow-sm);transition:transform .18s,border-color .18s;cursor:default}
.data-card:hover{border-color:var(--primary);transform:translateY(-2px)}
.data-card::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--primary) 0%,var(--tertiary-fixed-dim) 100%);opacity:.9}
.data-card .lb{font-size:11px;color:var(--outline);letter-spacing:.06em;margin:0 0 16px}
.data-card .v{display:flex;align-items:baseline;gap:4px}
.data-card .v .val{font-family:var(--font-mono);font-size:32px;font-weight:700;line-height:1;color:var(--on-surface)}
.data-card .v .val.small{font-size:26px}
.data-card .foot{margin-top:16px;display:flex;align-items:center;gap:8px}
.data-card .chip{padding:2px 8px;background:#ecfdf5;color:#059669;border-radius:9999px;font-size:11px;font-weight:700}
.data-card .foot .material-symbols-outlined{font-size:16px;color:#059669;font-weight:700}
.data-card .foot .u{font-size:11px;font-weight:700;color:#059669}

/* 图表 */
.stats-charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:1024px){.stats-charts-grid{grid-template-columns:1fr}}
.stats-panel{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm)}
.stats-panel .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.stats-panel .head h4{margin:0;font-size:16px;font-weight:600;color:var(--on-surface);display:flex;align-items:center;gap:8px}
.stats-panel .head h4::before{content:'';display:inline-block;width:4px;height:20px;background:var(--primary);border-radius:9999px}
.stats-panel .more{background:none;border:0;color:var(--outline);cursor:pointer;padding:4px}
.stats-panel .more:hover{color:var(--primary)}

.rank-list{display:flex;flex-direction:column;gap:20px}
.rank-list .rk{display:flex;flex-direction:column;gap:8px}
.rank-list .rk .top{display:flex;justify-content:space-between;font-size:13px}
.rank-list .rk .top .nm{color:var(--on-surface)}
.rank-list .rk .top .v{color:var(--outline)}
.rank-list .rk .bar{height:16px;background:var(--surface-container);border-radius:9999px;overflow:hidden}
.rank-list .rk .bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--tertiary-fixed-dim) 100%);border-radius:inherit}
.rank-list .rk.dim{opacity:.6}
.rank-list .rk.dim .bar > i{background:var(--outline-variant)}
.rank-empty{height:120px;display:flex;align-items:flex-end;justify-content:center;color:var(--outline-variant);font-style:italic;font-size:13px}

.status-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:32px;padding-top:8px}
.status-ring{position:relative;width:192px;height:192px}
.status-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.status-ring .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.status-ring .center .total{font-size:16px;font-weight:700;color:var(--on-surface)}
.status-ring .center .lb{font-size:11px;color:var(--outline)}
.status-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.status-legend .item{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;font-size:13px}
.status-legend .item .sq{width:12px;height:12px;border-radius:2px}
.status-legend .item.blue{background:#eff6ff;color:#1e40af}
.status-legend .item.blue .sq{background:#2563eb}
.status-legend .item.amber{background:#fffbeb;color:#92400e}
.status-legend .item.amber .sq{background:#d97706}
.status-legend .item.emerald{background:#ecfdf5;color:#065f46}
.status-legend .item.emerald .sq{background:#059669}
.status-legend .item.gray{background:#f3f4f6;color:#374151}
.status-legend .item.gray .sq{background:#6b7280}
.status-legend .item.red{background:#fef2f2;color:#991b1b}
.status-legend .item.red .sq{background:#dc2626}

.pay-pill-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.pay-pill-row h4{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;white-space:nowrap}
.pay-pill-row h4::before{content:'';display:inline-block;width:4px;height:20px;background:var(--primary);border-radius:9999px}
.pay-pill{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:9999px;font-size:13px}
.pay-pill .material-symbols-outlined{font-size:18px;color:var(--outline)}
.pay-pill.wechat .material-symbols-outlined{color:#10b981}
.pay-pill strong{color:var(--primary);margin:0 4px}

.trend-echart{height:400px;width:100%}

/* ============ 通用组件：ds-panel / ds-btn / ds-modal / ds-toast / 表格 ============ */
.ds-panel{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden}
.ds-panel-head{padding:14px 24px;border-bottom:1px solid var(--outline-variant);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface-container-low)}
.ds-panel-head h3{margin:0;font-size:16px;font-weight:600;color:var(--on-surface)}
.ds-panel-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ds-panel-body{padding:16px 24px 20px}
.ds-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border:1px solid var(--outline-variant);border-radius:8px;font-size:13px;color:var(--on-surface);cursor:pointer;transition:.12s;font:inherit}
.ds-btn:hover{background:var(--surface-container-low);border-color:var(--primary);color:var(--primary)}
.ds-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.ds-btn.primary:hover{background:#003ea8;color:#fff}
.ds-btn.ghost{background:transparent}
.ds-btn.warn{background:#fff;color:var(--error);border-color:#fecaca}
.ds-btn.warn:hover{background:#fff5f5;color:var(--error);border-color:var(--error)}
.ds-btn.danger{background:var(--error);color:#fff;border-color:var(--error)}
.ds-btn.small{padding:5px 10px;font-size:12px}
.unified-filter-actions{display:flex!important;align-items:flex-end!important;gap:12px!important}
.unified-filter-btn{width:68px!important;height:34px!important;min-width:68px!important;padding:0!important;border-radius:7px!important;font-size:13px!important;line-height:20px!important;font-weight:500!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:0!important;box-shadow:none!important;transition:background .16s ease,border-color .16s ease,color .16s ease!important}
.unified-filter-btn .material-symbols-outlined{display:none!important}
.unified-filter-reset{background:#fff!important;border:1px solid #737686!important;color:#0b1c30!important}
.unified-filter-reset:hover{background:#f8f9ff!important;border-color:#434655!important;color:#0b1c30!important}
.unified-filter-query{background:#004ac6!important;border:1px solid #004ac6!important;color:#fff!important}
.unified-filter-query:hover{background:#003ea8!important;border-color:#003ea8!important;color:#fff!important}
.unified-filter-query:disabled,.unified-filter-reset:disabled{opacity:.5!important;cursor:not-allowed!important}
.route-batch-delete-btn{width:68px!important;height:34px!important;min-width:68px!important;padding:0!important;border-radius:7px!important;font-size:13px!important;line-height:20px!important;font-weight:500!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:0!important;box-shadow:none!important;transition:background .16s ease,border-color .16s ease,color .16s ease!important;background:#004ac6!important;border:1px solid #004ac6!important;color:#fff!important;opacity:1!important}
.route-batch-delete-btn:not(:disabled):hover{background:#003ea8!important;border-color:#003ea8!important;color:#fff!important}
.route-batch-delete-btn:disabled{background:#9fc0ff!important;border-color:#9fc0ff!important;color:#fff!important;opacity:1!important;cursor:not-allowed!important}
.route-overview{margin-bottom:16px}
.route-hero{background:linear-gradient(135deg,#fff 0%,#f7fbff 100%);border:1px solid #d8e0ef;border-radius:14px;padding:18px 20px;box-shadow:0 1px 2px rgba(15,23,42,.04);display:flex;flex-direction:column;gap:16px}
.route-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.route-kicker{display:block;color:#004ac6;font-size:12px;font-weight:800;line-height:18px;margin-bottom:4px}
.route-hero h3{margin:0;color:#0b1c30;font-size:22px;line-height:30px;font-weight:800}
.route-hero p{margin:4px 0 0;color:#5c647a;font-size:13px;line-height:20px}
.route-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.route-badge{height:26px;display:inline-flex;align-items:center;border:1px solid #cfd6e6;background:#fff;color:#475569;border-radius:999px;padding:0 10px;font-size:12px;font-weight:700}
.route-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.route-metric{background:#fff;border:1px solid #e5eaf3;border-radius:12px;padding:12px 14px;min-height:86px}
.route-metric span{display:block;color:#5c647a;font-size:12px;font-weight:700;line-height:18px}
.route-metric strong{display:block;color:#0b1c30;font-family:var(--font-mono);font-size:26px;line-height:34px;font-weight:800;margin-top:4px}
.route-metric em{display:block;color:#94a3b8;font-size:11px;font-style:normal;line-height:16px;margin-top:2px}
.route-ops{display:flex;align-items:stretch;justify-content:space-between;gap:14px}
.route-focus{min-width:260px;display:flex;align-items:center;gap:12px;background:#eff6ff;border:1px solid #dbeafe;border-radius:12px;padding:12px 14px;color:#1d4ed8}
.route-focus .material-symbols-outlined{font-size:28px}
.route-focus b{display:block;color:#0f172a;font-size:14px;line-height:20px}
.route-focus small{display:block;color:#64748b;font-size:12px;line-height:18px}
.route-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.route-flow span{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #e5eaf3;border-radius:999px;padding:7px 10px;color:#475569;font-size:12px;font-weight:700}
.route-flow span i{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#eaf1ff;color:#004ac6;font-style:normal;font-size:11px}
.route-flow span b{font-family:var(--font-mono);color:#0f172a}
.route-flow span.ok{border-color:#bbf7d0;color:#15803d}
.route-flow span.warn{border-color:#fde68a;color:#b45309}
.route-flow span.active{border-color:#bfdbfe;color:#1d4ed8}
.design-aux-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.aux-card{background:#fff;border:1px solid #d8e0ef;border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.aux-card.aux-wide{grid-column:1/-1}
.aux-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.aux-head span{font-size:14px;font-weight:800;color:#0b1c30}
.aux-head b{font-family:var(--font-mono);font-size:13px;color:#004ac6}
.aux-card p{margin:0;color:#5c647a;font-size:13px;line-height:21px}
.aux-bars{display:flex;flex-direction:column;gap:10px}
.aux-bar-row{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:10px;font-size:12px;color:#5c647a}
.aux-bar-row i{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden}
.aux-bar-row i b{display:block;height:100%;background:linear-gradient(90deg,#004ac6,#24a3ff);border-radius:inherit}
.aux-bar-row strong{font-family:var(--font-mono);color:#0b1c30}
.contract-resource-page #tableFilters,.contract-resource-page #tableSearch{display:none!important}
.contract-resource-page .resource-list-body{padding-top:0}
.contract-resource-page .resource-list-panel{margin-top:16px}
.contract-simple-page{padding-top:0!important}
.design-template-page[data-route="contracts"] main{margin-top:0!important;height:100vh!important;padding-top:0!important}
.design-template-page[data-route="contracts"] main,.design-template-page[data-route="contracts"] main>div[class*="bg-background"],.design-template-page[data-route="drivers"] main,.design-template-page[data-route="drivers"] main>div[class*="bg-background"]{background:#fff!important}
.contract-simple-page .contract-simple-topbar{height:64px;background:#fff;border-bottom:1px solid #cfd6e6;display:flex!important;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:45;box-shadow:none}
.contract-simple-page .contract-simple-topbar + .grid{margin-top:32px!important}
.contract-simple-page .replica-top-actions{display:none!important}
.contract-simple-left{display:flex;align-items:center;gap:18px;min-width:0}
.contract-simple-left h2{margin:0;color:#004ac6;font-size:20px;line-height:28px;font-weight:800;white-space:nowrap}
.contract-simple-search{width:380px;height:40px;display:flex;align-items:center;gap:8px;background:#f3f6fd;border:1px solid #d8e0ef;border-radius:8px;padding:0 8px 0 12px}
.contract-simple-search>.material-symbols-outlined{font-size:18px;color:#6b7280}
.contract-simple-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#0f172a;font-size:14px}
.contract-simple-search input::placeholder{color:#a5afc3}
.contract-simple-search button{height:32px;min-width:66px;border:0;border-radius:7px;background:#004ac6;color:#fff;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.contract-simple-search button .material-symbols-outlined{font-size:16px;color:#fff}
.contract-simple-actions{display:flex;align-items:center;gap:16px;color:#0f172a}
.contract-simple-actions button{border:0;background:transparent;color:#0f172a;font-size:14px;line-height:22px;padding:3px 0;cursor:pointer}
.contract-simple-actions button:hover{color:#004ac6}
.contract-simple-actions .bell{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%}
.contract-simple-actions .bell .material-symbols-outlined{font-size:20px;color:#0f172a}
.contract-simple-actions .logout{height:34px;min-width:88px;border-radius:8px;background:#004ac6;color:#fff;font-weight:700;padding:0 16px}
.contract-simple-actions .logout:hover{color:#fff;background:#003ea8}
.contract-style-page{padding-top:0!important}
.contract-style-page main{margin-top:0!important;min-height:100vh!important;padding-top:0!important}
.contract-style-page .contract-style-topbar{height:64px;background:#fff;border-bottom:1px solid #cfd6e6;display:flex!important;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:45;box-shadow:none}
.contract-style-left{display:flex;align-items:center;min-width:0}.contract-style-left h2{margin:0;color:#004ac6;font-size:20px;line-height:28px;font-weight:800;white-space:nowrap}
.contract-style-actions{display:flex;align-items:center;gap:16px;color:#0f172a}.contract-style-actions button{border:0;background:transparent;color:#0f172a;font-size:14px;line-height:22px;padding:3px 0;cursor:pointer}.contract-style-actions button:hover{color:#004ac6}
.contract-style-actions .bell{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%}.contract-style-actions .bell .material-symbols-outlined{font-size:20px;color:#0f172a}
.contract-style-actions .logout{height:34px;min-width:88px;border-radius:8px;background:#004ac6;color:#fff;font-weight:700;padding:0 16px}.contract-style-actions .logout:hover{color:#fff;background:#003ea8}
.contract-style-page main>.grid{width:100%!important;margin:32px 0 0!important}.contract-style-page main>.grid:first-of-type{margin-top:32px!important}
.contract-style-page main>.grid:not(.order-live-summary){grid-template-columns:repeat(4,minmax(0,1fr))!important}
.design-template-page[data-route="farms"].contract-style-page main>div.p-6{padding:32px 0 24px!important}
.design-template-page[data-route="members"].contract-style-page main>section{width:100%!important;max-width:none!important;padding:32px 0 24px!important}
.design-template-page[data-route="dispatches"].contract-style-page main>div.flex-1.p-6{padding:32px 0 24px!important}
.dispatch-live-workspace{padding:24px 16px 32px;background:#f5f7fb;min-height:calc(100vh - 64px)}
.dispatch-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.dispatch-live-stat{position:relative;min-height:96px;padding:18px 20px;border:1px solid #dbe3f0;border-radius:8px;background:#fff;overflow:hidden;cursor:default;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.dispatch-live-stat:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(15,23,42,.12)}.dispatch-live-stat span{display:block;color:#55657d;font-size:13px}.dispatch-live-stat strong{display:block;margin-top:8px;font-size:28px;line-height:1;color:#12213c}.dispatch-live-stat i{position:absolute;right:18px;top:26px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:20px;transition:transform .18s ease}.dispatch-live-stat:hover i{transform:scale(1.1)}.dispatch-live-stat.blue strong,.dispatch-live-stat.blue i{color:#1557d6}.dispatch-live-stat.orange strong,.dispatch-live-stat.orange i{color:#c86a00}.dispatch-live-stat.green strong,.dispatch-live-stat.green i{color:#07816f}.dispatch-live-stat.red strong,.dispatch-live-stat.red i{color:#d11a21}.dispatch-live-stat.blue i{background:#e8f0ff}.dispatch-live-stat.orange i{background:#fff2de}.dispatch-live-stat.green i{background:#e5f5f2}.dispatch-live-stat.red i{background:#fde8e9}.dispatch-live-stat.blue:hover{border-color:#7da9ff}.dispatch-live-stat.orange:hover{border-color:#e6b26c}.dispatch-live-stat.green:hover{border-color:#75c9a6}.dispatch-live-stat.red:hover{border-color:#ef9a9a}
.dispatch-live-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px}.dispatch-live-left,.dispatch-live-right{min-width:0}.dispatch-live-filters,.dispatch-live-table,.dispatch-route-card,.dispatch-assign-card{border:1px solid #dbe3f0;border-radius:8px;background:#fff}.dispatch-live-filters{display:flex;align-items:end;gap:10px;padding:14px 16px;margin-bottom:16px}.dispatch-live-filters label{display:grid;gap:6px;color:#53627b;font-size:12px}.dispatch-live-filters input,.dispatch-live-filters select{height:34px;border:1px solid #cbd5e1;border-radius:5px;padding:0 10px;color:#17233a;background:#fff}.dispatch-live-filters>span{padding-bottom:8px;color:#697892}.dispatch-live-filters button{height:34px;border:1px solid #b7c4d8;border-radius:5px;background:#fff;padding:0 16px;color:#29415f}.dispatch-live-filters button[data-dispatch-action="query"]{border-color:#1457d6;background:#1457d6;color:#fff}.dispatch-live-table-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid #e2e8f0}.dispatch-live-table-head h3{margin:0;font-size:16px;color:#14213a}.dispatch-live-table-head small{color:#6b7890}.dispatch-live-table table{width:100%;border-collapse:collapse}.dispatch-live-table th{padding:12px 14px;background:#f0f5ff;color:#172e58;font-size:12px;text-align:left;border-bottom:1px solid #ced9ec}.dispatch-live-table td{padding:14px;border-bottom:1px solid #e4ebf5;color:#243552;font-size:13px}.dispatch-live-table tr{cursor:pointer}.dispatch-live-table tr:hover,.dispatch-live-table tr.is-current{background:#f4f8ff}.dispatch-live-table td small{display:block;color:#71809a;margin-top:4px}.dispatch-task-tag{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px}.dispatch-task-tag.is-pending{background:#fff6dc;color:#b45e00}.dispatch-task-tag.is-dispatched{background:#e8f0ff;color:#1557d6}.dispatch-route-card{overflow:hidden;margin-bottom:16px}.dispatch-route-card>div:first-child{padding:14px 16px;border-bottom:1px solid #e2e8f0}.dispatch-route-card h3{margin:0;color:#14213a;font-size:16px}.dispatch-route-card p{margin:6px 0 0;color:#60708b;font-size:12px}.dispatch-route-map{height:250px;background:#eaf1ff}.dispatch-assign-card{padding-bottom:16px}.dispatch-vehicle-list{padding:12px 16px;display:grid;gap:10px}.dispatch-vehicle-option{display:grid;grid-template-columns:20px 28px 1fr auto;align-items:center;gap:8px;padding:10px;border:1px solid #d7e0ed;border-radius:6px;cursor:pointer}.dispatch-vehicle-option.is-selected{border-color:#1457d6;background:#f2f6ff}.dispatch-vehicle-option .material-symbols-outlined{color:#1457d6}.dispatch-vehicle-option b{font-size:13px;color:#17233a}.dispatch-vehicle-option small{color:#697892}.dispatch-vehicle-option em{grid-column:3/5;color:#697892;font-style:normal;font-size:12px}.dispatch-selected-driver{margin:0 16px 14px;padding:10px 12px;border-radius:6px;background:#f4f7fb;color:#40526e;font-size:13px}.dispatch-confirm-btn{margin:0 16px;width:calc(100% - 32px);height:42px;border:0;border-radius:6px;background:#1457d6;color:#fff;font-weight:700}.dispatch-confirm-btn .material-symbols-outlined{font-size:16px;vertical-align:-3px;margin-right:6px}.dispatch-empty{padding:10px 0;color:#71809a;font-size:13px}@media(max-width:1100px){.dispatch-live-grid{grid-template-columns:1fr}.dispatch-live-right{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dispatch-route-card{margin-bottom:0}}@media(max-width:760px){.dispatch-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-live-grid,.dispatch-live-right{grid-template-columns:1fr}.dispatch-live-filters{align-items:stretch;flex-wrap:wrap}.dispatch-live-filters label{flex:1 1 140px}}
.design-template-page[data-route="weighing"].contract-style-page main>div.p-gutter{padding:32px 0 24px!important}
.design-template-page[data-route="weighing"].contract-style-page main>.contract-style-topbar+div.p-gutter>div.flex.justify-between.items-end{display:none!important}
.design-template-page[data-route="detection"].contract-style-page main>div.p-stack_lg{padding:32px 0 24px!important}
.design-template-page[data-route="driverperf"].contract-style-page main>div.flex-1.overflow-y-auto.bg-background.p-margin_desktop{padding:32px 0 24px!important}
.design-template-page[data-route="materials-slurry"].contract-style-page main>div.p-6.space-y-6{width:100%!important;max-width:none!important;padding:32px 0 24px!important}
.design-template-page[data-route="materials-fertilizer"].contract-style-page main>div[class*="mt-[56px]"][class*="p-stack_lg"]{margin-top:0!important;padding:32px 0 24px!important}
.design-template-page[data-route="materials-mixing"].contract-style-page main>div.flex-1.overflow-y-auto.p-margin_desktop{padding:32px 0 24px!important}
.design-template-page[data-route="materials-mixing"].contract-style-page main>.contract-style-topbar+div.flex-1.overflow-y-auto.p-margin_desktop>div.flex.justify-between.items-end.mb-8{display:none!important}
.design-template-page[data-route="drivers"].contract-style-page main>.contract-style-topbar+div.flex.justify-between.items-end.mb-stack_lg{display:none!important}
.design-template-page[data-route="drivers"].contract-style-page main>.contract-style-topbar+div.flex.justify-between.items-end.mb-stack_lg+section{margin-top:32px!important}
@media(max-width:900px){.contract-style-page main>.grid:not(.order-live-summary){grid-template-columns:repeat(2,minmax(0,1fr))!important}.contract-style-actions{gap:10px}.contract-style-actions button:not(.bell):not(.logout){display:none}}
.order-simple-page{padding-top:0!important}
.design-template-page[data-route="orders"] main{margin-top:0!important;height:100vh!important;padding-top:0!important}
.order-simple-page .order-simple-topbar{height:64px;background:#fff;border-bottom:1px solid #cfd6e6;display:flex!important;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:45;box-shadow:none}
.order-simple-left{display:flex;align-items:center;gap:18px;min-width:0}
.order-simple-left h2{margin:0;color:#004ac6;font-size:20px;line-height:28px;font-weight:800;white-space:nowrap}
.order-simple-actions{display:flex;align-items:center;gap:16px;color:#0f172a}
.order-simple-actions button{border:0;background:transparent;color:#0f172a;font-size:14px;line-height:22px;padding:3px 0;cursor:pointer}
.order-simple-actions button:hover{color:#004ac6}
.order-simple-actions .bell{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%}
.order-simple-actions .bell .material-symbols-outlined{font-size:20px;color:#0f172a}
.order-simple-actions .logout{height:34px;min-width:88px;border-radius:8px;background:#004ac6;color:#fff;font-weight:700;padding:0 16px}
.order-simple-actions .logout:hover{color:#fff;background:#003ea8}
.order-live-workspace{padding:24px 0;overflow:auto}
.order-live-filters{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr)) auto;gap:14px;align-items:end;padding:18px;border:1px solid #cfd6e6;border-radius:8px;background:#fff}
.order-live-filters label{display:flex;flex-direction:column;gap:6px;color:#5c647a;font-size:12px;font-weight:700}
.order-live-filters input,.order-live-filters select{height:36px;padding:0 10px;border:1px solid #cfd6e6;border-radius:6px;background:#fff;color:#0b1c30;font-size:14px;outline:0}
.order-live-filters input:focus,.order-live-filters select:focus{border-color:#004ac6;box-shadow:0 0 0 2px rgba(0,74,198,.12)}
.order-live-filter-actions{display:flex;gap:8px}
.order-live-filter-actions button{height:36px;min-width:64px;padding:0 14px;border:1px solid #cfd6e6;border-radius:6px;background:#fff;color:#0b1c30;font-size:13px;font-weight:700;cursor:pointer}
.order-live-filter-actions button:first-child{border-color:#004ac6;background:#004ac6;color:#fff}
.work-record-live-workspace .order-live-filters{grid-template-columns:minmax(300px,1.55fr) repeat(3,minmax(150px,1fr)) auto}
.work-record-date-range{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:6px}.work-record-date-range i{color:#7b879a;font-size:12px;font-style:normal;text-align:center}.work-record-date-range input{min-width:0!important;width:100%;padding:0 8px!important}
.order-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.order-live-stat-card{min-height:120px;padding:18px;border:1px solid #cfd6e6;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow:hidden;cursor:default;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.order-live-stat-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(15,23,42,.12)}
.order-live-stat-card>div{min-width:0;display:flex;flex-direction:column;gap:5px}
.order-live-stat-card span{font-size:13px;color:#5c647a;font-weight:600}
.order-live-stat-card strong{font-family:var(--font-mono);font-size:26px;line-height:32px;color:#0b1c30;white-space:nowrap}
.order-live-stat-card strong em{font-family:inherit;font-size:13px;font-style:normal;font-weight:600;color:#5c647a}
.order-live-stat-card small{font-size:12px;line-height:18px;color:#737686;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-live-stat-card>i{width:48px;height:48px;flex:0 0 48px;border-radius:8px;display:grid;place-items:center;font-style:normal;transition:transform .18s ease}
.order-live-stat-card:hover>i{transform:scale(1.1)}
.order-live-stat-card>i .material-symbols-outlined{font-size:26px}
.order-live-stat-card.tone-blue>i{background:#eaf1ff;color:#004ac6}.order-live-stat-card.tone-blue:hover{border-color:#7da9ff}
.order-live-stat-card.tone-orange>i{background:#fff3e0;color:#c66a00}.order-live-stat-card.tone-orange:hover{border-color:#edb76a}
.order-live-stat-card.tone-green>i{background:#e8f7ef;color:#138a5c}.order-live-stat-card.tone-green:hover{border-color:#75c9a6}
.order-live-stat-card.tone-purple>i{background:#f2edff;color:#7251b5}.order-live-stat-card.tone-purple:hover{border-color:#b5a0df}
.order-live-stat-card.tone-blue span,.order-live-stat-card.tone-blue strong,.order-live-stat-card.tone-blue small{color:#004ac6}.order-live-stat-card.tone-blue strong em{color:#4f79c8}
.order-live-stat-card.tone-orange span,.order-live-stat-card.tone-orange strong,.order-live-stat-card.tone-orange small{color:#a75500}.order-live-stat-card.tone-orange strong em{color:#b8732a}
.order-live-stat-card.tone-green span,.order-live-stat-card.tone-green strong,.order-live-stat-card.tone-green small{color:#138a5c}.order-live-stat-card.tone-green strong em{color:#3c9472}
.order-live-stat-card.tone-purple span,.order-live-stat-card.tone-purple strong,.order-live-stat-card.tone-purple small{color:#7251b5}.order-live-stat-card.tone-purple strong em{color:#8e76c4}
.replica-stat-card{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;cursor:default}
.replica-stat-card:hover{transform:translateY(-4px);border-color:#9ab9f5;box-shadow:0 14px 28px rgba(15,23,42,.12)}
.replica-stat-card .material-symbols-outlined{transition:transform .18s ease}.replica-stat-card:hover .material-symbols-outlined{transform:scale(1.1)}
.replica-stat-card.tone-primary:hover{border-color:#7da9ff}.replica-stat-card.tone-success:hover{border-color:#75c9a6}.replica-stat-card.tone-danger:hover{border-color:#ef9a9a}.replica-stat-card.tone-neutral:hover{border-color:#b5a0df}
.unified-stat-card{cursor:default;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.unified-stat-card:hover{transform:translateY(-4px);border-color:#9ab9f5;box-shadow:0 14px 28px rgba(15,23,42,.12)}
.unified-stat-card .material-symbols-outlined{transition:transform .18s ease}.unified-stat-card:hover .material-symbols-outlined{transform:scale(1.1)}
.order-live-table{margin-top:18px;border:1px solid #cfd6e6;border-radius:8px;overflow:hidden;background:#fff}
.order-live-table .table-action-wrap{flex-wrap:nowrap!important;white-space:nowrap}
.vehicle-status-workspace{padding:16px 0 24px}
.vehicle-status-controls{display:flex;align-items:end;gap:16px;min-height:72px;margin-bottom:18px;padding:14px 16px;border:1px solid #d8dfeb;border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.vehicle-status-filter-field{display:flex;align-items:center;gap:8px;min-width:0}.vehicle-status-filter-field label{flex:0 0 auto;color:#24334b;font-size:14px;font-weight:700}.vehicle-status-filter-field input{width:210px;height:36px;padding:0 10px;border:1px solid #b8c7dc;border-radius:7px;background:#f7f9fd;color:#24334b;font-size:13px;outline:none}.vehicle-status-filter-field input:focus{border-color:#286bd6;box-shadow:0 0 0 3px rgba(40,107,214,.12)}
.vehicle-status-filter-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.vehicle-status-filter-actions button{height:36px;padding:0 14px;border:1px solid #c8d3e3;border-radius:7px;background:#fff;color:#43526b;font-size:13px;font-weight:700}.vehicle-status-filter-actions .vehicle-status-query{border-color:#0b5ed7;background:#0b5ed7;color:#fff;display:inline-flex;align-items:center;gap:5px}.vehicle-status-filter-actions .material-symbols-outlined{font-size:17px}
.vehicle-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vehicle-status-card{min-height:260px;padding:18px;border:1px solid #d8dfeb;border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04);display:flex;flex-direction:column;gap:16px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.vehicle-status-card:hover{transform:translateY(-4px);border-color:#8fb4f3;box-shadow:0 14px 28px rgba(15,23,42,.12)}
.vehicle-status-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.vehicle-status-card header>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.vehicle-status-plate{color:#0b1c30;font-size:18px;line-height:24px;font-weight:800}
.vehicle-status-card header small{font-size:12px;line-height:18px;color:#69758c}
.vehicle-task-pill{flex:0 0 auto;padding:5px 10px;border-radius:999px;font-size:12px;line-height:16px;font-weight:700}
.is-busy .vehicle-task-pill{color:#107343;background:#e9f8ef}.is-idle .vehicle-task-pill{color:#4e617b;background:#edf1f7}
.vehicle-status-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border-radius:6px;background:#f7f9fd}
.vehicle-status-details>div{min-width:0;display:flex;align-items:flex-start;gap:8px}
.vehicle-status-details .material-symbols-outlined{flex:0 0 auto;color:#286bd6;font-size:18px;line-height:20px}
.vehicle-status-details p{min-width:0;margin:0;display:flex;flex-direction:column;gap:2px}
.vehicle-status-details small{color:#758198;font-size:11px;line-height:15px}.vehicle-status-details strong{overflow:hidden;color:#24334b;font-size:13px;line-height:19px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.vehicle-mileage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #e4e9f2;border-radius:6px;overflow:hidden}.vehicle-mileage>div{min-width:0;padding:9px 10px;background:#fff}.vehicle-mileage>div+div{border-left:1px solid #e4e9f2}.vehicle-mileage small{display:block;color:#758198;font-size:11px;line-height:15px}.vehicle-mileage strong{display:block;overflow:hidden;color:#1e3a68;font-family:var(--font-mono);font-size:14px;line-height:20px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.vehicle-mileage em{color:#758198;font-family:var(--font-body);font-size:10px;font-style:normal;font-weight:600}
.vehicle-status-card footer{margin-top:auto;padding-top:14px;border-top:1px solid #e4e9f2;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.vehicle-status-card footer .material-symbols-outlined{font-size:18px}.vehicle-status-card footer.is-gps-online{color:#12804a}.vehicle-status-card footer.is-gps-online .material-symbols-outlined{font-variation-settings:'FILL' 1}.vehicle-status-card footer.is-gps-offline{color:#b54708}.vehicle-status-card footer.is-gps-offline .material-symbols-outlined{color:#d97706}
.vehicle-status-empty{padding:42px 20px;border:1px solid #d8dfeb;border-radius:8px;background:#fff;color:#758198;text-align:center}
.vehicle-create-card{min-height:260px;padding:18px;border:2px dashed #0b5ed7;border-radius:8px;background:#f6f9ff;color:#0b5ed7;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;transition:background .18s ease,transform .18s ease}.vehicle-create-card:hover{transform:translateY(-3px);background:#eaf2ff}.vehicle-create-card .material-symbols-outlined{width:48px;height:48px;border-radius:50%;background:#0b5ed7;color:#fff;display:grid;place-items:center;font-size:28px}.vehicle-create-card strong{font-size:15px}.vehicle-create-card small{color:#52647d;font-size:12px}
.vehicle-status-pager{min-height:52px;margin-top:18px;padding:10px 14px;border:1px solid #d8dfeb;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:space-between;color:#758198;font-size:13px}.vehicle-status-pager b{color:#24334b}.vehicle-status-pager>div{display:flex;align-items:center;gap:5px}.vehicle-status-pager button{width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:#43526b;font-size:13px;font-weight:700;display:grid;place-items:center}.vehicle-status-pager button:hover:not(:disabled){background:#edf3fe;color:#0b5ed7}.vehicle-status-pager button.is-current{background:#0b5ed7;color:#fff}.vehicle-status-pager button:disabled{color:#b6c0ce;cursor:not-allowed}.vehicle-status-pager .material-symbols-outlined{font-size:20px}.vehicle-status-pager-gap{padding:0 4px}
.dashboard-map-legend-card{min-width:172px;padding:12px;border:1px solid rgba(211,220,235,.92);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(15,23,42,.14);backdrop-filter:blur(7px)}.dashboard-map-legend-card h4{margin:0 0 9px;color:#52647d;font-size:11px;font-weight:800;letter-spacing:.04em}.dashboard-map-legend-card>div{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px 8px}.map-legend-symbol{width:20px;height:20px;border:2px solid #fff;border-radius:6px;color:#fff;display:grid;place-items:center;font-family:'Material Symbols Outlined';font-size:13px;line-height:1;box-shadow:0 2px 6px rgba(15,23,42,.18)}.dashboard-map-legend-card small{color:#34445d;font-size:11px;font-weight:700}.dashboard-map-legend-card b{min-width:18px;color:#1f2e46;font-family:var(--font-mono);font-size:12px;font-weight:800;text-align:right}.map-legend-symbol.farm-live{border-radius:50%;background:#22a35a;font-variation-settings:'FILL' 1}.map-legend-symbol.farm-alert{border-radius:50%;background:#ef4444;animation:map-icon-pulse 2.1s infinite;font-variation-settings:'FILL' 1}.map-legend-symbol.farm-off{border-radius:50%;background:#94a3b8;font-variation-settings:'FILL' 1}.map-legend-symbol.vehicle-live{background:#2563eb;animation:map-icon-pulse 2.1s infinite;font-variation-settings:'FILL' 1}.map-legend-symbol.factory-live{background:#2563eb;animation:map-icon-pulse 2.1s infinite;font-variation-settings:'FILL' 1}@keyframes map-icon-pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.35),0 2px 6px rgba(15,23,42,.18)}70%{box-shadow:0 0 0 8px rgba(37,99,235,0),0 2px 6px rgba(15,23,42,.18)}}
@media(max-width:1180px){.vehicle-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-status-controls{flex-wrap:wrap}.vehicle-status-filter-actions{margin-left:0}}@media(max-width:640px){.vehicle-status-workspace{padding:16px 0}.vehicle-status-controls{align-items:stretch;flex-direction:column;gap:10px;padding:14px}.vehicle-status-filter-field{justify-content:space-between}.vehicle-status-filter-field input{width:calc(100% - 54px)}.vehicle-status-filter-actions{justify-content:flex-end}.vehicle-status-grid{grid-template-columns:1fr;gap:12px}.vehicle-status-card,.vehicle-create-card{min-height:0;padding:16px}.vehicle-status-details{grid-template-columns:1fr}.vehicle-mileage>div{padding:9px 8px}.vehicle-status-pager{align-items:flex-start;gap:10px;flex-direction:column}}
@media(max-width:1100px){.order-live-filters,.work-record-live-workspace .order-live-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.order-live-filter-actions{justify-content:flex-end}}@media(max-width:900px){.order-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.order-live-workspace{padding:16px 0}.order-live-filters,.work-record-live-workspace .order-live-filters{grid-template-columns:1fr}.order-live-filter-actions{justify-content:stretch}.order-live-filter-actions button{flex:1}.order-live-stat-card{min-height:108px;padding:16px}.order-live-stat-card strong{font-size:23px}}
.design-template-page[data-route="contracts"] .contract-filter-row{display:grid!important;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(230px,1fr) 150px minmax(390px,430px) max-content!important;gap:14px!important;align-items:end!important;flex-wrap:nowrap!important;width:100%!important}
.design-template-page[data-route="contracts"] .contract-filter-row>div{min-width:0!important;width:auto!important;flex:initial!important}
.design-template-page[data-route="contracts"] .contract-filter-code,.design-template-page[data-route="contracts"] .contract-filter-farm,.design-template-page[data-route="contracts"] .contract-filter-member{min-width:0!important}
.design-template-page[data-route="contracts"] .contract-filter-status{width:150px!important;min-width:150px!important}
.design-template-page[data-route="contracts"] .contract-filter-date{width:auto!important;min-width:390px!important}
.design-template-page[data-route="contracts"] .contract-filter-date>div{height:36px!important}
.design-template-page[data-route="contracts"] .contract-filter-actions{align-self:end!important;justify-content:flex-end!important;white-space:nowrap!important;margin-left:0!important}
.design-template-page[data-route="contracts"] .contract-filter-row input,.design-template-page[data-route="contracts"] .contract-filter-row select{height:36px!important;min-height:36px!important}
.design-template-page[data-route="contracts"] .contract-filter-row label{white-space:nowrap!important}
@media (max-width:1600px){
  .design-template-page[data-route="contracts"] .contract-filter-row{grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(200px,1fr) 138px minmax(350px,390px) max-content!important;gap:10px!important}
  .design-template-page[data-route="contracts"] .contract-filter-status{width:138px!important;min-width:138px!important}
  .design-template-page[data-route="contracts"] .contract-filter-date{min-width:350px!important}
}
.resource-list-panel{border-color:#cfd6e6;border-radius:14px}
.resource-list-head{background:#fff;padding:16px 20px}
.resource-list-actions .material-symbols-outlined{font-size:18px}
.resource-list-body{padding:16px 20px}
.filter-bar{background:#fbfcff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:14px;padding:14px}
.filter-bar.hidden{display:none}
.filter-bar-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.filter-bar-head strong{font-size:14px;line-height:22px;font-weight:700;color:#0b1c30}
.filter-tip{margin-left:8px;font-size:12px;color:#737686}
.filter-tip.hidden{display:none}
.filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}
.filter-item{display:flex;flex-direction:column;gap:6px;min-width:0}
.filter-item label{font-size:12px;line-height:16px;font-weight:600;color:#434655}
.filter-item input,.filter-item select{height:36px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;padding:0 10px;font-size:13px;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;outline:none}
.filter-item input:focus,.filter-item select:focus{border-color:#004ac6;box-shadow:0 0 0 2px rgba(0,74,198,.10)}
.resource-table-wrap{border:1px solid #e5e7eb;border-radius:12px;background:#fff}
@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:640px){.filter-grid{grid-template-columns:1fr}.resource-list-head{align-items:flex-start}.resource-list-actions{width:100%}}

.table-wrap{width:100%;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{padding:10px 14px;text-align:left;background:var(--surface-container-low);color:var(--on-surface-variant);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--outline-variant);white-space:nowrap}
td{padding:12px 14px;color:var(--on-surface);border-bottom:1px solid rgba(195,198,215,.4);vertical-align:middle}
tbody tr:hover{background:var(--surface-container-low)}

.ds-pager{margin-top:18px;display:flex;justify-content:flex-end;align-items:center;gap:12px;font-size:14px;color:var(--on-surface-variant)}
.ds-pager button{min-width:36px;height:36px;padding:0 12px;border:1px solid var(--outline-variant);background:#fff;border-radius:8px;cursor:pointer;color:var(--on-surface-variant);font-size:14px;font-weight:600}
.ds-pager button.active,.ds-pager button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.ds-pager .disabled{opacity:.4;pointer-events:none}

/* Modal */
.ds-modal{position:fixed;inset:0;background:rgba(11,28,48,.42);display:flex;align-items:center;justify-content:center;padding:24px;z-index:200;animation:fadeIn .15s ease-out}
.ds-modal.hidden{display:none}
.ds-modal .box{width:min(560px,calc(100vw - 48px));background:#fff;border-radius:14px;box-shadow:0 24px 64px rgba(11,28,48,.28);display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden}
.ds-modal .box.wide{width:min(820px,calc(100vw - 48px))}
.ds-modal .head{padding:16px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--outline-variant)}
.ds-modal .head h3{margin:0;font-size:16px;font-weight:600;color:var(--on-surface)}
.ds-modal .close{background:none;border:0;padding:6px;cursor:pointer;color:var(--on-surface-variant);border-radius:6px}
.ds-modal .close:hover{background:var(--surface-container-high)}
.ds-modal .body{padding:20px 24px;overflow-y:auto}
.ds-modal .foot{padding:14px 24px;border-top:1px solid var(--outline-variant);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-container-low)}

/* Toast */
.ds-toast{position:fixed;top:24px;left:50%;right:auto;transform:translateX(-50%);width:max-content;min-width:160px;max-width:min(360px,calc(100vw - 48px));background:#2563eb;color:#fff;padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;line-height:20px;text-align:center;white-space:normal;z-index:10050;animation:toastIn .18s ease-out;box-shadow:0 14px 32px rgba(37,99,235,.28)}
.ds-toast.hidden{display:none}
.ds-toast.error,.ds-toast.ok{background:#2563eb}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translateX(-50%)}}

/* 表单：兼容 admin.js 动态输出 */
.resource-form{display:flex;flex-direction:column;gap:12px}
.resource-form label{display:block;font-size:13px;color:var(--on-surface-variant);margin-bottom:6px}
.resource-form input,.resource-form select,.resource-form textarea{width:100%;padding:8px 12px;font-size:13px;border:1px solid var(--outline-variant);border-radius:8px;background:#fff;outline:none;font:inherit;color:var(--on-surface)}
.resource-form input:focus,.resource-form select:focus,.resource-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.resource-form textarea{min-height:80px;resize:vertical}
.resource-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.resource-form .form-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.resource-form .form-section{border-top:1px solid var(--outline-variant);padding-top:12px}
.resource-form .form-section.accent{border-top-color:var(--primary)}
.resource-form .form-section-title{font-size:12px;font-weight:700;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.resource-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.picker-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.picker-toolbar input{flex:1;padding:8px 12px;border:1px solid #c3c6d7;border-radius:8px;font:inherit;font-size:13px;color:#0b1c30;background:#fff}
.picker-toolbar input:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.10)}
.picker-count{color:#434655;font-size:12px;white-space:nowrap}
.picker-list{max-height:400px;overflow-y:auto;border:1px solid #c3c6d7;border-radius:8px;background:#f8f9ff;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px;padding:12px}
.picker-list::-webkit-scrollbar{width:6px}
.picker-list::-webkit-scrollbar-track{background:transparent}
.picker-list::-webkit-scrollbar-thumb{background:#c3c6d7;border-radius:999px}
.picker-list .picker-item{display:flex;align-items:center;min-width:0;gap:10px;min-height:34px;padding:8px;border:0;border-radius:8px;cursor:pointer;font-size:12px;line-height:18px;background:transparent;transition:background .16s ease}
.picker-list .picker-item:hover,.picker-list .picker-item.is-active{background:#fff}
.picker-list .picker-item input{width:14px;height:14px;margin:0;border-color:#9ca3af}
.picker-list .picker-label{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;color:#434655}
.picker-list .picker-no{font-family:var(--font-mono);color:#434655;white-space:nowrap}
.picker-list .picker-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0b1c30;font-weight:500}
.picker-list .picker-town{color:#737686;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.picker-empty-row{grid-column:1 / -1;padding:32px;text-align:center;color:#737686;font-size:13px}
.picker-list .pk-item{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--outline-variant);cursor:pointer;font-size:13px}
.picker-list .pk-item:hover{background:var(--surface-container-low)}
.picker-list .pk-item.selected{background:rgba(37,99,235,.06);color:var(--primary)}
.picker-bulk{display:flex;gap:12px;align-items:center;font-size:12px;color:#434655;margin-bottom:6px}
.picker-bulk a{color:#2563eb;cursor:pointer;font-weight:500}
.picker-selected strong{color:#2563eb}
#farmPickerModal{z-index:360}
#farmPickerModal .box{width:min(896px,calc(100vw - 40px));border-radius:12px}
#farmPickerModal .head{padding:16px 20px}
#farmPickerModal .body{padding:18px 20px}
#farmPickerModal .foot{padding:14px 20px;background:#eff4ff}
#farmPickerModal .picker-toolbar{margin-bottom:10px}
#farmPickerModal .picker-toolbar input{height:36px;border-radius:8px}
#farmPickerModal .picker-list{height:400px;max-height:calc(100vh - 260px)}
#farmPickerModal .picker-bulk{margin-bottom:10px}

/* 兼容旧 nfjg 类名 */
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1200px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.metric-card{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;padding:16px;box-shadow:var(--shadow-sm)}
.metric-card .lb{font-size:11px;color:var(--outline);letter-spacing:.06em}
.metric-card .v{font-family:var(--font-mono);font-size:26px;font-weight:700;color:var(--on-surface)}
.panel{background:#fff;border:1px solid var(--outline-variant);border-radius:12px;box-shadow:var(--shadow-sm);margin-bottom:16px;overflow:hidden}
.panel-head{padding:14px 24px;border-bottom:1px solid var(--outline-variant);display:flex;justify-content:space-between;align-items:center;background:var(--surface-container-low)}
.panel-head h3{margin:0;font-size:16px;font-weight:600}
.panel-head span{color:var(--on-surface-variant);font-size:12px;font-family:var(--font-mono);letter-spacing:.1em}
.panel-body{padding:16px 24px}
.primary-btn{padding:8px 14px;background:var(--primary);color:#fff;border:0;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}
.primary-btn:hover{background:#003ea8}
.ghost-btn{padding:8px 14px;background:#fff;border:1px solid var(--outline-variant);border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--on-surface)}
.ghost-btn:hover{background:var(--surface-container-low);border-color:var(--primary);color:var(--primary)}

/* 排苗录入：按用户提供源码复刻 */
.ds-modal.seedling-entry-modal{background:rgba(0,0,0,.4);backdrop-filter:blur(4px);padding:24px}
.ds-modal.seedling-entry-modal .box.wide{width:min(640px,calc(100vw - 48px));border-radius:12px;border:1px solid #c3c6d7;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.30);max-height:calc(100vh - 48px)}
.ds-modal.seedling-entry-modal .head{padding:16px 24px;border-bottom:1px solid #c3c6d7;background:#fff}
.ds-modal.seedling-entry-modal .head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.seedling-entry-modal .head h3 .material-symbols-outlined{font-size:24px;color:#004ac6}
.ds-modal.seedling-entry-modal .close{width:36px;height:36px;border-radius:999px;color:#737686}
.ds-modal.seedling-entry-modal .close:hover{background:#dce9ff;color:#0b1c30}
.ds-modal.seedling-entry-modal .body{padding:0;background:#fff}
.ds-modal.seedling-entry-modal .foot,#modal.seedling-entry-modal>.box>.foot,#modal.seedling-entry-modal .foot{display:none!important}
.resource-form.seedling-entry-form{display:flex;flex-direction:column;gap:0;width:100%}
.seedling-entry-body{padding:24px;display:flex;flex-direction:column;gap:24px;background:#fff}
.seedling-farm-card{background:#eff4ff;border:1px solid rgba(195,198,215,.55);border-radius:8px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.seedling-farm-card span{display:block;font-size:12px;line-height:16px;font-weight:500;color:#434655;margin-bottom:4px}
.seedling-farm-card strong{display:block;font-size:16px;line-height:24px;font-weight:700;color:#0b1c30}
.seedling-farm-card em{font-style:normal;background:rgba(37,99,235,.10);color:#2563eb;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:700;white-space:nowrap}
.seedling-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.seedling-grid.single{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:-8px}
.seedling-field{display:flex;flex-direction:column;gap:8px;margin:0;position:relative}
.seedling-field span{font-size:14px;line-height:22px;font-weight:700;color:#0b1c30}
.seedling-field span b{color:#ba1a1a}
.seedling-field input,.seedling-field select,.seedling-field textarea{width:100%;height:44px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;padding:0 12px;font-size:14px;line-height:22px;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;outline:none}
.seedling-field input[type=date],.seedling-field input[type=number]{font-family:"JetBrains Mono","Microsoft YaHei",Arial,sans-serif;font-size:13px;line-height:16px;font-weight:500}
.seedling-field input[type=date]::-webkit-calendar-picker-indicator{width:24px;height:24px;padding:4px;border-radius:6px;cursor:pointer}
.seedling-field input[type=date]::-webkit-calendar-picker-indicator:hover{background:#dce9ff}
.seedling-field input:focus,.seedling-field select:focus,.seedling-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.10)}
.seedling-field.readonly div{height:44px;display:flex;align-items:center;padding:0 12px;border:1px dashed #c3c6d7;border-radius:8px;background:#eff4ff;color:#434655;font-family:"JetBrains Mono","Microsoft YaHei",Arial,sans-serif;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seedling-field.readonly input[readonly]{border-style:dashed;background:#eff4ff;color:#434655;cursor:not-allowed;font-family:"JetBrains Mono","Microsoft YaHei",Arial,sans-serif;font-size:13px;font-weight:500}
.seedling-qty input{padding-right:34px}
.seedling-qty i{position:absolute;right:12px;top:42px;font-style:normal;font-size:13px;line-height:20px;font-weight:700;color:#737686;pointer-events:none}
.seedling-field.note textarea{height:auto;min-height:82px;padding:8px 12px;resize:none}
.seedling-tip{display:flex;align-items:flex-start;gap:8px;color:#004ac6;background:rgba(0,74,198,.05);border-radius:8px;padding:12px}
.seedling-tip .material-symbols-outlined{font-size:18px;line-height:18px}
.seedling-tip p{margin:0;font-size:12px;line-height:18px}
.seedling-entry-actions{padding:16px 24px;border-top:1px solid #c3c6d7;background:#f8f9ff;display:flex;justify-content:flex-end;align-items:center;gap:16px}
.seedling-cancel,.seedling-save{height:40px;border-radius:8px;font-size:16px;line-height:24px;font-weight:600;cursor:pointer;transition:filter .16s ease,background .16s ease,opacity .16s ease}
.seedling-cancel{padding:0 24px;border:1px solid #c3c6d7;background:#fff;color:#434655}
.seedling-cancel:hover{background:#dce9ff}
.seedling-save{padding:0 32px;border:1px solid #2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;gap:8px;box-shadow:0 1px 2px rgba(37,99,235,.18)}
.seedling-save:hover{filter:brightness(1.1)}
.seedling-save .material-symbols-outlined{font-size:20px;font-variation-settings:'FILL' 1}

/* 猪场管理 · 编辑表单：按用户提供源码复刻 */
.ds-modal.farm-edit-modal{background:rgba(0,0,0,.4);padding:16px}
.ds-modal.farm-edit-modal .box.wide{width:min(900px,calc(100vw - 32px));height:min(90vh,860px);max-height:90vh;border-radius:12px;background:#f8f9ff;border:0;box-shadow:0 24px 70px rgba(15,23,42,.30);overflow:hidden}
.ds-modal.farm-edit-modal .head{padding:12px 32px;border-bottom:1px solid #c3c6d7;background:#fff;min-height:54px}
.ds-modal.farm-edit-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.farm-edit-modal .head h3 .material-symbols-outlined{font-size:28px;color:#004ac6}
.ds-modal.farm-edit-modal .close{width:36px;height:36px;border-radius:999px;color:#434655}
.ds-modal.farm-edit-modal .close:hover{background:#e5eeff;color:#0b1c30}
.ds-modal.farm-edit-modal .body{padding:0;background:#f8f9ff;display:flex;flex:1;overflow:hidden}
.ds-modal.farm-edit-modal .foot{display:none}
.resource-form.farm-form{display:flex;flex-direction:column;gap:0;width:100%;height:100%;min-height:0}
.farm-edit-body{flex:1;overflow-y:auto;padding:24px 32px;background:#f8f9ff;display:flex;flex-direction:column;gap:16px}
.farm-edit-body::-webkit-scrollbar{width:6px}
.farm-edit-body::-webkit-scrollbar-track{background:transparent}
.farm-edit-body::-webkit-scrollbar-thumb{background:#c3c6d7;border-radius:10px}
.farm-edit-section{background:#fff;border:1px solid #c3c6d7;border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.05);padding:8px}
.farm-edit-section-title{display:flex;align-items:center;gap:8px;margin-bottom:4px;border-left:4px solid #004ac6;padding-left:12px}
.farm-edit-section-title span{font-size:16px;line-height:24px;font-weight:600;color:#0b1c30}
.farm-edit-grid{display:grid;gap:8px 16px}
.farm-edit-grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.farm-edit-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.farm-edit-field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.farm-edit-field span{font-size:12px;line-height:16px;font-weight:500;color:#434655}
.farm-edit-field:focus-within span{color:#004ac6}
.farm-edit-field input,.farm-edit-field select,.farm-edit-field textarea,.farm-edit-location-row input{width:100%;height:32px;padding:0 12px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:14px;line-height:22px;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;outline:none}
.farm-edit-field input[type=number],.farm-edit-field input[name=farm_no],.farm-edit-location-row input{font-family:"JetBrains Mono","Microsoft YaHei",Arial,sans-serif;font-size:13px;line-height:16px;font-weight:500}
.farm-edit-field select{appearance:none;padding-right:28px;background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,#434655 50%),linear-gradient(135deg,#434655 50%,transparent 50%);background-position:calc(100% - 14px) 15px,calc(100% - 9px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.farm-edit-field textarea{height:auto;min-height:64px;padding:8px 12px;resize:none}
.farm-edit-field input:focus,.farm-edit-field select:focus,.farm-edit-field textarea:focus,.farm-edit-location-row input:focus{border-color:#004ac6;box-shadow:0 0 0 2px rgba(0,74,198,.10)}
.farm-edit-field.readonly input,.farm-edit-field input[readonly],.farm-edit-location-row input[readonly]{background:#e5eeff;cursor:not-allowed}
.farm-edit-location-grid{display:block}
.farm-edit-location-fields{position:absolute;top:16px;left:16px;width:288px;display:flex;flex-direction:column;gap:8px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid #c3c6d7;border-radius:12px;box-shadow:0 10px 24px rgba(15,23,42,.14);padding:12px;z-index:4}
.farm-edit-location-row{display:flex;gap:8px}
.farm-edit-location-row input{flex:1}
.farm-edit-location-row button{width:32px;height:32px;padding:0;border:0;border-radius:8px;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}
.farm-edit-location-row button:hover{background:#004ac6}
.farm-edit-location-row .material-symbols-outlined{font-size:18px}
.farm-edit-map-preview{height:450px;border:1px solid #c3c6d7;border-radius:12px;overflow:hidden;position:relative;background:#eff4ff}
.farm-edit-map-real{position:absolute;inset:0;background:#eff4ff}
.farm-edit-map-real canvas{outline:none}
.farm-edit-map-status{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:12px;text-align:center;font-size:12px;line-height:18px;color:#434655;background:linear-gradient(135deg,#dbeafe,#f8fafc 45%,#bbf7d0);z-index:2}
.farm-edit-map-status.empty,.farm-edit-map-status.error{display:flex}
.farm-edit-map-status.error{color:#ba1a1a;background:#fff5f5}
.farm-edit-map-controls{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:4}
.farm-edit-zoom{display:flex;flex-direction:column;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid #c3c6d7;border-radius:8px;box-shadow:0 8px 20px rgba(15,23,42,.14);overflow:hidden}
.farm-edit-zoom button{width:40px;height:40px;border:0;background:transparent;color:#434655;display:flex;align-items:center;justify-content:center;cursor:pointer}
.farm-edit-zoom button+button{border-top:1px solid #c3c6d7}
.farm-edit-zoom button:hover{background:#e5eeff;color:#0b1c30}
.farm-edit-map-pick{height:40px;padding:0 16px;border:0;border-radius:999px;background:#2563eb;color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.24);display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:22px;font-weight:600;cursor:pointer}
.farm-edit-map-pick:hover{background:#004ac6}
.farm-edit-map-preview .material-symbols-outlined{font-size:18px}
.farm-edit-actions{padding:12px 32px;border-top:1px solid #c3c6d7;background:#fff;display:flex;justify-content:flex-end;align-items:center;gap:16px;box-shadow:0 -4px 12px rgba(0,0,0,.03)}
.farm-edit-cancel,.farm-edit-save{height:42px;border-radius:8px;font-size:16px;line-height:24px;font-weight:600;cursor:pointer;transition:background .16s ease,box-shadow .16s ease,transform .08s ease}
.farm-edit-cancel{padding:0 32px;border:1px solid #737686;background:#fff;color:#434655}
.farm-edit-cancel:hover{background:#e5eeff}
.farm-edit-save{padding:0 40px;border:1px solid #2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(37,99,235,.22)}
.farm-edit-save:hover{background:#004ac6;box-shadow:0 8px 18px rgba(37,99,235,.24)}
.farm-edit-save:active,.farm-edit-cancel:active{transform:scale(.98)}
.farm-edit-save .material-symbols-outlined{font-size:20px}

/* 猪场管理 · 详情：按用户提供源码复刻 */
.ds-modal.farm-detail-modal{background:rgba(17,28,45,.32);backdrop-filter:blur(4px)}
.ds-modal.farm-detail-modal .box.wide{width:min(960px,calc(100vw - 48px));border-radius:12px;border:1px solid rgba(195,198,215,.55);box-shadow:0 20px 25px -5px rgba(0,0,0,.10),0 10px 10px -5px rgba(37,99,235,.04);background:#fff;max-height:90vh}
.ds-modal.farm-detail-modal .head{position:relative;padding:20px 24px;border-bottom:1px solid rgba(195,198,215,.45);background:#fff}
.ds-modal.farm-detail-modal .head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2563eb}
.ds-modal.farm-detail-modal .head h3{font-size:18px;line-height:28px;font-weight:600;color:#111c2d}
.ds-modal.farm-detail-modal .close{width:32px;height:32px;padding:0;border-radius:4px;color:#5c5f61}
.ds-modal.farm-detail-modal .close:hover{background:#e7eeff;color:#111c2d}
.ds-modal.farm-detail-modal .body{padding:0;background:#fff;overflow-y:auto}

/* 会员管理：按新版弹窗与紧凑列表单独修正 */
.ds-modal.member-edit-modal{background:rgba(11,28,48,.45);backdrop-filter:none}
.ds-modal.member-edit-modal .box{width:min(560px,calc(100vw - 48px));border-radius:12px;border:1px solid #c3c6d7;background:#fff;box-shadow:0 24px 70px rgba(11,28,48,.28);overflow:hidden}
.ds-modal.member-edit-modal .head{padding:20px 24px;border-bottom:1px solid #c3c6d7;background:#fff}
.ds-modal.member-edit-modal .head h3{font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.member-edit-modal .close{width:36px;height:36px;border-radius:999px;color:#737686}
.ds-modal.member-edit-modal .body{padding:24px;background:#fff}
.ds-modal.member-edit-modal .resource-form{display:flex;flex-direction:column;gap:24px}
.member-modal-field{display:flex;flex-direction:column;gap:8px}
.member-modal-field label{display:block;margin:0;font-size:14px;line-height:20px;font-weight:600;color:#0b1c30}
.member-modal-field label span{color:#ba1a1a}
.member-modal-field input,.member-modal-field select{width:100%;height:40px;padding:0 12px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:14px;line-height:20px;outline:none}
.member-modal-field input:focus,.member-modal-field select:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.10)}
.member-modal-field input:disabled{background:#eff4ff;color:#737686}
.member-password-toggle{min-height:58px;padding:11px 14px;border:1px solid #c3c6d7;border-radius:8px;background:#f8fafc;display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.member-password-toggle>input{position:absolute;opacity:0;pointer-events:none}
.member-password-toggle>i{width:22px;height:22px;flex:0 0 22px;border:1px solid #c3c6d7;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.member-password-toggle>i .material-symbols-outlined{display:none;color:#fff;font-size:16px;font-variation-settings:'FILL' 0,'wght' 700,'GRAD' 0,'opsz' 20}
.member-password-toggle>input:checked+i{border-color:#2563eb;background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.member-password-toggle>input:checked+i .material-symbols-outlined{display:block}
.member-password-toggle>span{display:flex;flex-direction:column;gap:1px}
.member-password-toggle strong{color:#0b1c30;font-size:14px;line-height:20px;font-weight:700}
.member-password-toggle small,.member-modal-field label small{color:#737686;font-size:12px;line-height:18px;font-weight:400}
.member-select-wrap{position:relative}
.member-select-wrap select{appearance:none;padding-right:40px}
.member-select-wrap .material-symbols-outlined{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:20px;color:#737686;pointer-events:none}
.member-modal-farms p{margin:0;font-size:13px;line-height:18px;color:#737686}
.member-farm-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding:16px;border:1px dashed #737686;border-radius:8px;background:#eff4ff}
.member-farm-picker .chip-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:24px;color:#434655;font-size:14px}
.member-farm-picker .chip-empty{display:flex;align-items:center;gap:6px;color:#434655}
.member-farm-picker .chip-empty::before{content:"info";font-family:"Material Symbols Outlined";font-size:20px;color:#737686}
.member-farm-picker .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #c3c6d7;color:#0b1c30;font-size:12px}
.member-farm-picker .chip i{font-style:normal;cursor:pointer;color:#737686}
.member-farm-picker .ghost-btn{height:36px;padding:0 16px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:14px;font-weight:600;white-space:nowrap}
.member-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:-4px}
.member-modal-actions .ghost-btn,.member-modal-actions .primary-btn{height:40px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}
.member-modal-actions .ghost-btn{padding:0 24px;border:1px solid #c3c6d7;background:#fff;color:#434655}
.member-modal-actions .primary-btn{padding:0 32px;border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.18)}
.design-template-page[data-route="members"] .members-compact-page,.design-template-page[data-route="members"]{min-height:0!important}
.design-template-page[data-route="drivers"] .drivers-compact-page,.design-template-page[data-route="drivers"]{min-height:0!important}
.design-template-page[data-route="members"] main{min-height:0!important;height:auto!important}
.design-template-page[data-route="drivers"] main{min-height:0!important;height:auto!important}
.design-template-page[data-route="members"] main>div{padding-bottom:0!important}
.design-template-page[data-route="drivers"] main>div{padding-bottom:0!important}
.design-template-page[data-route="members"] section,.design-template-page[data-route="members"] .bg-surface{min-height:0!important}
.design-template-page[data-route="drivers"] section,.design-template-page[data-route="drivers"] .bg-surface{min-height:0!important;background:#fff!important}
.design-template-page[data-route="members"] .overflow-x-auto{min-height:0!important}
.design-template-page[data-route="drivers"] .overflow-x-auto{min-height:0!important;background:#fff!important}
.design-template-page[data-route="members"] table tbody tr:last-child td{border-bottom:0}
.design-template-page[data-route="drivers"] table tbody tr:last-child td{border-bottom:0}
.design-template-page[data-route="members"] .member-page-title-blue{color:#004ac6!important}
.design-template-page[data-route="drivers"] .member-page-title-blue{color:#004ac6!important}
.design-template-page[data-route="members"] .member-create-entry-btn{height:36px;padding:0 14px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;box-shadow:0 6px 14px rgba(37,99,235,.18);transition:background .16s ease,border-color .16s ease}
.design-template-page[data-route="drivers"] .member-create-entry-btn{height:36px;padding:0 14px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;box-shadow:0 6px 14px rgba(37,99,235,.18);transition:background .16s ease,border-color .16s ease}
.design-template-page[data-route="dispatches"] .member-create-entry-btn{height:36px;padding:0 14px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;box-shadow:0 6px 14px rgba(37,99,235,.18);transition:background .16s ease,border-color .16s ease}
.design-template-page[data-route="members"] .member-create-entry-btn:hover{background:#004ac6;border-color:#004ac6}
.design-template-page[data-route="drivers"] .member-create-entry-btn:hover{background:#004ac6;border-color:#004ac6}
.design-template-page[data-route="dispatches"] .member-create-entry-btn:hover{background:#004ac6;border-color:#004ac6}
.design-template-page[data-route="members"] .member-create-entry-btn .material-symbols-outlined{font-size:18px;line-height:18px}
.design-template-page[data-route="drivers"] .member-create-entry-btn .material-symbols-outlined{font-size:18px;line-height:18px}
.design-template-page[data-route="dispatches"] .member-create-entry-btn .material-symbols-outlined{font-size:18px;line-height:18px}
.ds-modal.manual-dispatch-modal{background:rgba(11,28,48,.38);backdrop-filter:blur(8px);padding:24px}.ds-modal.manual-dispatch-modal .box{width:min(520px,calc(100vw - 32px));border-radius:8px;border:1px solid #dbe3f0;background:#fff;box-shadow:0 24px 60px rgba(15,23,42,.28)}.manual-dispatch-modal .head{height:60px;padding:0 20px;border-bottom:1px solid #e2e8f0}.manual-dispatch-modal .head h3{display:flex;align-items:center;gap:9px;margin:0;color:#12213c;font-size:18px}.manual-dispatch-modal .head h3 .material-symbols-outlined{color:#1457d6;font-size:21px}.manual-dispatch-modal .body{padding:20px;background:#fff}.manual-dispatch-form{display:grid;gap:17px}.manual-dispatch-field{display:grid;gap:7px;color:#40526e;font-size:13px;font-weight:600}.manual-dispatch-field select,.manual-dispatch-field input{width:100%;height:40px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#17233a;padding:0 11px;font:inherit;font-weight:400}.manual-dispatch-field select:focus,.manual-dispatch-field input:focus{outline:2px solid rgba(20,87,214,.20);border-color:#1457d6}.manual-dispatch-field input[type="number"]{font-variant-numeric:tabular-nums}.manual-dispatch-error{min-height:18px;margin:0;color:#c62828;font-size:12px;line-height:18px}.manual-dispatch-modal .foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e2e8f0}.manual-dispatch-modal .foot .ds-btn{min-width:78px;height:36px;border-radius:6px}.manual-dispatch-modal .foot .ds-btn.primary{background:#1457d6}.manual-dispatch-modal .foot .ds-btn.primary:disabled{opacity:.62;cursor:wait}@media(max-width:560px){.ds-modal.manual-dispatch-modal{padding:16px}.manual-dispatch-modal .body{padding:18px}.manual-dispatch-modal .head,.manual-dispatch-modal .foot{padding-left:16px;padding-right:16px}}
.design-template-page[data-route="members"] .member-floating-create-btn{display:none!important}
.design-template-page[data-route="members"] .member-floating-create-btn:hover{background:#004ac6;transform:translateY(-1px);box-shadow:0 18px 38px rgba(37,99,235,.36)}
.design-template-page[data-route="members"] .member-floating-create-btn .material-symbols-outlined{font-size:26px;line-height:26px}
.design-template-page[data-route="members"] .member-top-delete-btn{height:34px!important;min-width:68px!important;width:68px!important;padding:0!important;border:1px solid #004ac6;border-radius:7px;background:#004ac6;color:#fff;font-size:13px;font-weight:500;box-shadow:none;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}
.design-template-page[data-route="members"] .member-top-delete-btn:not(:disabled):hover{background:#004ac6;border-color:#004ac6}
.design-template-page[data-route="members"] .member-top-delete-btn:disabled{background:#9fc0ff!important;border-color:#9fc0ff!important;color:#fff!important;opacity:1!important;cursor:not-allowed}
.design-template-page[data-route="members"] tbody .farm-action-btn + .farm-action-btn{margin-left:6px}
.design-template-page[data-route="drivers"] tbody .farm-action-btn + .farm-action-btn{margin-left:6px}
.design-template-page[data-route="drivers"] table{background:#fff!important}
.design-template-page[data-route="drivers"] thead tr{background:#eef4ff!important}
.design-template-page[data-route="drivers"] tbody tr{background:#fff!important}
.design-template-page[data-route="drivers"] tbody tr:hover{background:#f8fbff!important}
.design-template-page[data-route="drivers"] input,
.design-template-page[data-route="drivers"] select{height:34px!important;border:1px solid #b8c7dc!important;border-radius:7px!important;background:#eef4ff!important;color:#0b1c30!important;font-size:13px!important;box-shadow:none!important}
.design-template-page[data-route="drivers"] input:focus,
.design-template-page[data-route="drivers"] select:focus{border-color:#2563eb!important;outline:none!important;box-shadow:0 0 0 2px rgba(37,99,235,.12)!important}
.design-template-page[data-route="drivers"] label{font-size:14px!important;font-weight:700!important;color:#0b1c30!important}
.design-template-page[data-route="drivers"] .driver-compact-select,
.design-template-page[data-route="drivers"] select{width:132px!important;min-width:132px!important;max-width:132px!important}
.design-template-page[data-route="drivers"] input[type="date"]{width:132px!important;min-width:132px!important}
.design-template-page[data-route="drivers"] input[type="text"],
.design-template-page[data-route="drivers"] input:not([type]){width:160px!important;min-width:160px!important;max-width:180px!important}
.design-template-page[data-route="drivers"] .unified-filter-actions{margin-left:auto!important;align-items:center!important}
.design-template-page[data-route="drivers"] .route-batch-delete-btn{margin-left:auto!important}
.design-template-page[data-route="drivers"] .driver-filter-bar{
  display:grid!important;
  grid-template-columns:minmax(278px,330px) minmax(278px,330px) minmax(164px,188px) auto!important;
  align-items:center!important;
  column-gap:14px!important;
  row-gap:12px!important;
  min-height:62px!important;
  padding:12px 16px!important;
}
.design-template-page[data-route="drivers"] .driver-filter-field{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
}
.design-template-page[data-route="drivers"] .driver-filter-field label,
.design-template-page[data-route="drivers"] .driver-filter-field span{
  flex:0 0 auto!important;
  margin:0!important;
  white-space:nowrap!important;
}
.design-template-page[data-route="drivers"] .driver-filter-field input{
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
}
.design-template-page[data-route="drivers"] .driver-filter-field select{
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
}
.design-template-page[data-route="drivers"] .driver-filter-actions{
  grid-column:4!important;
  justify-self:end!important;
  margin-left:0!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding-top:0!important;
}
.design-template-page[data-route="drivers"] .driver-filter-actions .route-batch-delete-btn{margin-left:0!important}
.design-template-page[data-route="drivers"] > main{
  margin-top:0!important;
  padding-top:0!important;
  min-height:100vh!important;
  height:auto!important;
}
.design-template-page[data-route="drivers"] .replica-topbar-normalized{
  min-height:64px!important;
  margin:0 -16px 16px!important;
  padding:0 24px!important;
  border-bottom:1px solid #c3c6d7!important;
  background:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  box-shadow:none!important;
}
.design-template-page[data-route="drivers"] .replica-topbar-normalized h1,
.design-template-page[data-route="drivers"] .replica-topbar-normalized h2,
.design-template-page[data-route="drivers"] .replica-topbar-normalized h3{
  margin:0!important;
  color:#004ac6!important;
  font-size:20px!important;
  line-height:28px!important;
  font-weight:700!important;
}
.design-template-page[data-route="drivers"] .replica-topbar-normalized .replica-top-actions{margin-left:auto!important}
.design-template-page[data-route="drivers"] .driver-list-table{
  table-layout:fixed;
  min-width:980px;
  background:#fff!important;
}
.design-template-page[data-route="drivers"] .driver-list-table th{
  height:34px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
  line-height:18px!important;
}
.design-template-page[data-route="drivers"] .driver-list-table td{
  height:38px!important;
  min-height:38px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
  line-height:18px!important;
}
.design-template-page[data-route="drivers"] .driver-list-table th:first-child,
.design-template-page[data-route="drivers"] .driver-list-table td:first-child{width:48px!important;text-align:center!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(2),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(2){width:132px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(3),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(3){width:116px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(4),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(4){width:150px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(5),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(5){width:190px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(6),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(6){width:96px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:nth-child(7),
.design-template-page[data-route="drivers"] .driver-list-table td:nth-child(7){width:86px!important}
.design-template-page[data-route="drivers"] .driver-list-table th:last-child,
.design-template-page[data-route="drivers"] .driver-list-table td:last-child{width:144px!important;min-width:144px!important}
.design-template-page[data-route="drivers"] .driver-list-table td{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.design-template-page[data-route="drivers"] .driver-list-table td:last-child{overflow:visible}
.design-template-page[data-route="drivers"] .table-action-cell{width:144px!important;min-width:144px!important}
.design-template-page[data-route="drivers"] .table-action-wrap{
  display:flex!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
  gap:8px!important;
  min-width:112px!important;
}
.design-template-page[data-route="drivers"] .farm-action-btn{flex:0 0 auto}
.design-template-page[data-route="drivers"] .farm-row-check{width:15px;height:15px}
.design-template-page[data-route="drivers"] .template-dynamic-pager{
  min-height:46px!important;
  padding-top:6px!important;
  padding-bottom:6px!important;
}
.design-template-page[data-route="drivers"] .template-page-size{
  height:32px!important;
  min-height:32px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
}
.design-template-page[data-route="drivers"] .template-page-btn{
  width:30px!important;
  height:30px!important;
}
.ds-modal.member-detail-modal{z-index:340;background:rgba(11,28,48,.42)}
.ds-modal.member-detail-modal .box{width:min(640px,calc(100vw - 48px));border-radius:12px;border:1px solid #c3c6d7;background:#fff;box-shadow:0 24px 70px rgba(11,28,48,.28);overflow:hidden}
.ds-modal.member-detail-modal .head{padding:18px 24px;border-bottom:1px solid #c3c6d7;background:#fff}
.ds-modal.member-detail-modal .head h3{font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.member-detail-modal .body{padding:24px;background:#fff}
.member-detail-grid{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px 18px;align-items:start}
.member-detail-grid label{color:#737686;font-size:14px;text-align:right;line-height:28px}
.member-detail-grid b{color:#0b1c30;font-size:15px;line-height:28px;font-weight:600}
.member-detail-farms{display:flex;flex-wrap:wrap;gap:8px}
.member-detail-farm{display:inline-flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #c3c6d7;border-radius:8px;background:#eff4ff;color:#0b1c30;font-size:13px;font-weight:600}
.member-detail-farm small{font-size:12px;font-weight:400;color:#737686}
.member-detail-empty{color:#737686;font-size:14px;line-height:28px}

/* 司机管理：详情 / 编辑 */
.ds-modal.driver-detail-modal{z-index:340;background:rgba(11,28,48,.42)}
.ds-modal.driver-detail-modal .box{width:min(680px,calc(100vw - 48px));border-radius:12px;border:1px solid #c3c6d7;background:#fff;box-shadow:0 24px 70px rgba(11,28,48,.28);overflow:hidden}
.ds-modal.driver-detail-modal .head{height:64px;padding:0 24px;border-bottom:1px solid #c3c6d7;background:#fff}
.ds-modal.driver-detail-modal .head h3{display:flex;align-items:center;gap:10px;margin:0;font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.driver-detail-modal .body{padding:0;background:#eff4ff}
.driver-detail-content{padding:18px;background:#eff4ff}
.driver-detail-section{border:1px solid #d8e0ef;border-radius:10px;background:#fff;overflow:hidden}
.driver-detail-section-title{height:48px;padding:0 16px;border-bottom:1px solid #d8e0ef;background:#f8f9ff;color:#0b1c30;font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px}
.driver-detail-section-title .material-symbols-outlined{font-size:20px;color:#2563eb}
.driver-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.driver-detail-item{min-height:58px;padding:10px 16px;border-top:1px solid rgba(216,224,239,.65);display:flex;flex-direction:column;gap:4px}
.driver-detail-item:nth-child(1),.driver-detail-item:nth-child(2){border-top:0}
.driver-detail-item.span-2{grid-column:span 2}
.driver-detail-item span{color:#737686;font-size:12px;line-height:18px}
.driver-detail-item strong{color:#0b1c30;font-size:15px;line-height:22px;font-weight:700;word-break:break-word}
.driver-status-pill{display:inline-flex;width:max-content;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-style:normal;font-size:12px;font-weight:700;border:1px solid transparent}
.driver-status-pill.ok{background:#f0fdf4;color:#16a34a;border-color:rgba(22,163,74,.2)}
.driver-status-pill.busy{background:#eff6ff;color:#2563eb;border-color:rgba(37,99,235,.22)}
.driver-status-pill.warn{background:#fef3c7;color:#d97706;border-color:rgba(217,119,6,.22)}
.driver-status-pill.off{background:#eff4ff;color:#737686;border-color:#c3c6d7}
.driver-detail-footer{height:64px;padding:12px 24px;border-top:1px solid rgba(195,198,215,.45);background:#fff;display:flex;justify-content:flex-end;align-items:center;gap:12px}
.driver-detail-footer button{height:40px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}
.driver-detail-close{min-width:88px;border:1px solid #c3c6d7;background:#fff;color:#434655}
.driver-detail-edit{min-width:116px;border:1px solid #2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.driver-detail-edit .material-symbols-outlined{font-size:18px}
.ds-modal.driver-edit-modal{background:rgba(11,28,48,.38);backdrop-filter:blur(8px) saturate(145%);padding:24px}
.ds-modal.driver-edit-modal .box.wide{width:min(620px,calc(100vw - 48px));border-radius:12px;border:1px solid rgba(211,228,254,.7);background:#fff;box-shadow:0 28px 72px rgba(15,23,42,.30);overflow:hidden}
.ds-modal.driver-edit-modal .head{height:64px;padding:0 24px;border-bottom:1px solid rgba(195,198,215,.65);background:#fff}
.ds-modal.driver-edit-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.driver-edit-modal .head h3 .material-symbols-outlined{width:32px;height:32px;border-radius:8px;background:rgba(37,99,235,.10);color:#004ac6;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.ds-modal.driver-edit-modal .body{padding:18px;background:#eff4ff}
.ds-modal.driver-edit-modal .foot{display:none!important}
.resource-form.driver-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:#fff;border:1px solid #d8e0ef;border-radius:10px;padding:18px}
.resource-form.driver-edit-form label{display:flex;flex-direction:column;gap:6px;margin:0;color:#434655;font-size:13px;line-height:20px;font-weight:700}
.resource-form.driver-edit-form input,
.resource-form.driver-edit-form select{width:100%;height:40px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:14px;line-height:20px;padding:0 12px;outline:0;box-shadow:none}
.resource-form.driver-edit-form input:focus,
.resource-form.driver-edit-form select:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.resource-form.driver-edit-form .form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;padding-top:14px;border-top:1px solid rgba(216,224,239,.8)}
.resource-form.driver-edit-form .ghost-btn,
.resource-form.driver-edit-form .primary-btn{height:40px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}
.resource-form.driver-edit-form .ghost-btn{min-width:88px;border:1px solid #c3c6d7;background:#fff;color:#434655}
.resource-form.driver-edit-form .primary-btn{min-width:96px;border:1px solid #2563eb;background:#2563eb;color:#fff}

/* 车辆管理：真实数据列表 / 编辑 */
.design-template-page[data-route="vehicles"]{min-height:0!important}
.design-template-page[data-route="vehicles"] > main{
  margin-top:0!important;
  padding-top:0!important;
  min-height:100vh!important;
  height:auto!important;
}
.design-template-page[data-route="vehicles"] .replica-topbar-normalized{
  min-height:64px!important;
  margin:0 -16px 16px!important;
  padding:0 24px!important;
  border-bottom:1px solid #c3c6d7!important;
  background:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  box-shadow:none!important;
}
.design-template-page[data-route="vehicles"] .replica-topbar-normalized h1,
.design-template-page[data-route="vehicles"] .replica-topbar-normalized h2,
.design-template-page[data-route="vehicles"] .replica-topbar-normalized h3{
  margin:0!important;
  color:#004ac6!important;
  font-size:20px!important;
  line-height:28px!important;
  font-weight:700!important;
}
.design-template-page[data-route="vehicles"] .member-create-entry-btn{height:36px;padding:0 14px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;box-shadow:0 6px 14px rgba(37,99,235,.18)}
.design-template-page[data-route="vehicles"] .member-create-entry-btn .material-symbols-outlined{font-size:18px;line-height:18px}
.design-template-page[data-route="vehicles"] .vehicle-filter-bar{
  display:grid!important;
  grid-template-columns:minmax(180px,220px) minmax(160px,190px) minmax(160px,190px) minmax(160px,190px) minmax(16px,1fr) auto!important;
  align-items:center!important;
  column-gap:18px!important;
  row-gap:10px!important;
  min-height:62px!important;
  padding:12px 16px!important;
  background:#fff!important;
}
.design-template-page[data-route="vehicles"] .vehicle-filter-field{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important}
.design-template-page[data-route="vehicles"] .vehicle-filter-field label,
.design-template-page[data-route="vehicles"] .vehicle-filter-field span{flex:0 0 auto!important;margin:0!important;white-space:nowrap!important;font-size:14px!important;font-weight:700!important;color:#0b1c30!important}
.design-template-page[data-route="vehicles"] input,
.design-template-page[data-route="vehicles"] select{height:34px!important;border:1px solid #b8c7dc!important;border-radius:7px!important;background:#eef4ff!important;color:#0b1c30!important;font-size:13px!important;box-shadow:none!important}
.design-template-page[data-route="vehicles"] .vehicle-filter-field input{width:132px!important;min-width:132px!important;max-width:150px!important}
.design-template-page[data-route="vehicles"] .vehicle-filter-field select{width:118px!important;min-width:118px!important;max-width:132px!important}
.design-template-page[data-route="vehicles"] .vehicle-filter-actions{grid-column:6!important;justify-self:end!important;margin-left:0!important;display:flex!important;align-items:center!important;gap:10px!important;padding-top:0!important}
.design-template-page[data-route="vehicles"] .vehicle-list-panel{margin-top:16px;background:#fff!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table{table-layout:fixed;min-width:1060px;background:#fff!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th{height:38px!important;padding-top:7px!important;padding-bottom:7px!important;background:#eef4ff!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table td{height:44px!important;min-height:44px!important;padding-top:7px!important;padding-bottom:7px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.design-template-page[data-route="vehicles"] .vehicle-list-table td:last-child{overflow:visible}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(1),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(1){width:148px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(2),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(2){width:126px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(3),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(3){width:110px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(4),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(4){width:90px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(5),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(5){width:136px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(6),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(6){width:160px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:nth-child(7),
.design-template-page[data-route="vehicles"] .vehicle-list-table td:nth-child(7){width:88px!important}
.design-template-page[data-route="vehicles"] .vehicle-list-table th:last-child,
.design-template-page[data-route="vehicles"] .vehicle-list-table td:last-child{width:150px!important;min-width:150px!important;text-align:center!important}
.design-template-page[data-route="vehicles"] .table-action-wrap{display:flex!important;flex-wrap:nowrap!important;white-space:nowrap!important;gap:8px!important;justify-content:center!important}
.design-template-page[data-route="vehicles"] .template-dynamic-pager{min-height:48px!important;padding-top:6px!important;padding-bottom:6px!important}
.ds-modal.vehicle-edit-modal{background:rgba(0,0,0,.20);backdrop-filter:blur(4px);padding:16px}
.ds-modal.vehicle-edit-modal .box.wide{width:min(700px,calc(100vw - 32px));max-height:calc(100vh - 32px);border-radius:8px;border:0;background:#fff;box-shadow:0 25px 50px -12px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column}
.ds-modal.vehicle-edit-modal .head{height:65px;padding:16px 24px;border-bottom:1px solid #f3f4f6;background:#fff;flex:0 0 auto}
.ds-modal.vehicle-edit-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;font-size:18px;line-height:18px;font-weight:700;color:#1f2937}
.ds-modal.vehicle-edit-modal .head h3 .material-symbols-outlined{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}
.ds-modal.vehicle-edit-modal .close{width:28px;height:28px;color:#9ca3af;background:transparent;border:0}
.ds-modal.vehicle-edit-modal .close:hover{color:#4b5563;background:transparent}
.ds-modal.vehicle-edit-modal .close .material-symbols-outlined{font-size:24px}
.ds-modal.vehicle-edit-modal .body{padding:0;background:#fff;overflow-y:auto;max-height:calc(100vh - 160px)}
.ds-modal.vehicle-edit-modal .foot{display:none!important}
.resource-form.vehicle-edit-form{display:block;background:#fff;border:0;border-radius:0;padding:0}
.vehicle-edit-body{padding:24px;display:flex;flex-direction:column;gap:20px}
.vehicle-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.vehicle-edit-field{display:flex;flex-direction:column;gap:6px;margin:0;color:#374151;font-size:14px;line-height:20px;font-weight:500}
.vehicle-edit-field label{display:block;margin:0;color:#374151;font-size:14px;line-height:20px;font-weight:500}
.vehicle-edit-field .req{color:#ef4444;margin-left:2px}
.vehicle-edit-field input,
.vehicle-edit-field select{width:100%;height:42px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:14px;line-height:20px;padding:8px 12px;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:border-color .15s,box-shadow .15s}
.vehicle-edit-field input:focus,
.vehicle-edit-field select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.vehicle-driver-row{display:flex;gap:8px}
.vehicle-driver-display{flex:1;min-height:42px;padding:8px 12px;border:1px dashed #2563eb;border-radius:8px;background:rgba(239,246,255,.3);color:#374151;font-size:14px;line-height:24px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-driver-display.is-placeholder{color:#6b7280}
.vehicle-driver-row button{height:42px;padding:0 16px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}
.vehicle-driver-row button:hover{background:#f9fafb}
.vehicle-township-section{display:flex;flex-direction:column;gap:8px}
.vehicle-township-head label{display:block;margin:0;color:#374151;font-size:14px;font-weight:500;line-height:20px}
.vehicle-township-head small{color:#9ca3af;font-size:12px;font-weight:400}
.vehicle-township-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:rgba(249,250,251,.3)}
.vehicle-township-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:16px;min-height:24px}
.vehicle-township-row>span{min-width:0;color:#4b5563;font-size:14px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-township-check{display:block;width:24px;height:24px;flex:0 0 24px;margin:0;cursor:pointer}
.vehicle-township-check input{position:absolute;opacity:0;pointer-events:none}
.vehicle-township-check i{width:24px;height:24px;border:1px solid #d1d5db;border-radius:4px;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .18s ease}
.vehicle-township-check i .material-symbols-outlined{display:none;color:#fff;font-size:16px;font-variation-settings:'FILL' 0,'wght' 700,'GRAD' 0,'opsz' 20}
.vehicle-township-check input:checked+i{background:#2563eb;border-color:#2563eb}
.vehicle-township-check input:checked+i .material-symbols-outlined{display:block}
.vehicle-edit-actions{height:65px;padding:16px 24px;background:#f9fafb;display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid #f3f4f6}
.vehicle-cancel,.vehicle-save{height:40px;padding:0 32px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s}
.vehicle-cancel{border:1px solid #d1d5db;background:#fff;color:#374151}
.vehicle-cancel:hover{background:#f3f4f6}
.vehicle-save{border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 4px 8px rgba(147,197,253,.75)}
.vehicle-save:hover{background:#1d4ed8;border-color:#1d4ed8}

/* 账户权限：员工编辑弹窗，同步车辆管理弹窗风格 */
.ds-modal.staff-acl-modal{background:rgba(0,0,0,.20);backdrop-filter:blur(4px);padding:16px}
.ds-modal.staff-acl-modal .box{width:min(700px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);border-radius:8px;border:0;background:#fff;box-shadow:0 25px 50px -12px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column}
.ds-modal.staff-acl-modal .head{height:65px;padding:16px 24px;border-bottom:1px solid #f3f4f6;background:#fff;flex:0 0 auto}
.ds-modal.staff-acl-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;font-size:18px;line-height:18px;font-weight:700;color:#1f2937}
.ds-modal.staff-acl-modal .head h3 .material-symbols-outlined{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}
.ds-modal.staff-acl-modal .close{width:28px;height:28px;color:#9ca3af;background:transparent;border:0}
.ds-modal.staff-acl-modal .close:hover{color:#4b5563;background:transparent}
.ds-modal.staff-acl-modal .close .material-symbols-outlined{font-size:24px}
.ds-modal.staff-acl-modal .body{padding:0;background:#fff;overflow-y:auto;max-height:calc(100vh - 160px)}
#staffModalBody.resource-form{display:block;background:#fff;border:0;border-radius:0;padding:0}
.staff-acl-form{padding:24px;display:flex;flex-direction:column;gap:20px}
.staff-acl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.staff-acl-field{display:flex;flex-direction:column;gap:6px;margin:0;color:#374151;font-size:14px;line-height:20px;font-weight:500}
.staff-acl-field.full{grid-column:1/-1}
.staff-acl-field span{display:flex;align-items:center;gap:4px;color:#374151;font-size:14px;line-height:20px;font-weight:500}
.staff-acl-field b{color:#ef4444;font-weight:700}
.staff-acl-field small{color:#9ca3af;font-size:12px;font-weight:400}
.staff-acl-field input,.staff-acl-field select{width:100%;height:42px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:14px;line-height:20px;padding:8px 12px;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:border-color .15s,box-shadow .15s}
.staff-acl-field input:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}
.staff-acl-field input:focus,.staff-acl-field select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.staff-password-toggle{grid-column:1/-1;min-height:58px;padding:11px 14px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.staff-password-toggle>input{position:absolute;opacity:0;pointer-events:none}
.staff-password-toggle>i{width:22px;height:22px;flex:0 0 22px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.staff-password-toggle>i .material-symbols-outlined{display:none;color:#fff;font-size:16px;font-variation-settings:'FILL' 0,'wght' 700,'GRAD' 0,'opsz' 20}
.staff-password-toggle>input:checked+i{border-color:#2563eb;background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.staff-password-toggle>input:checked+i .material-symbols-outlined{display:block}
.staff-password-toggle>span{display:flex;flex-direction:column;gap:1px}
.staff-password-toggle strong{color:#374151;font-size:14px;line-height:20px;font-weight:700}
.staff-password-toggle small{color:#9ca3af;font-size:12px;line-height:18px;font-weight:400}
.staff-acl-section{display:flex;flex-direction:column;gap:8px}
.staff-acl-section-title{display:flex;align-items:baseline;gap:8px;color:#374151;font-size:14px;line-height:20px;font-weight:500}
.staff-acl-section-title small{color:#9ca3af;font-size:12px;font-weight:400}
.staff-acl-modal .check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:rgba(249,250,251,.3)}
.staff-acl-modal .check-item{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:24px;margin:0;color:#4b5563;font-size:14px;line-height:20px;font-weight:400;cursor:default;user-select:none}
.staff-acl-modal .check-item span{min-width:72px;flex:0 0 auto}
.staff-acl-modal .check-item input{appearance:none;-webkit-appearance:none;order:2;width:22px;height:22px;flex:0 0 22px;margin:0;border:1px solid #d1d5db;border-radius:4px;background:#fff;display:grid;place-items:center;cursor:pointer;transition:all .18s ease}
.staff-acl-modal .check-item input:checked{background:#2563eb;border-color:#2563eb}
.staff-acl-modal .check-item input:checked::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px)}
.staff-acl-actions{height:65px;padding:16px 24px;background:#f9fafb;display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid #f3f4f6}
.staff-acl-cancel,.staff-acl-save{height:40px;padding:0 32px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s}
.staff-acl-cancel{border:1px solid #d1d5db;background:#fff;color:#374151}
.staff-acl-cancel:hover{background:#f3f4f6}
.staff-acl-save{border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 4px 8px rgba(147,197,253,.75)}
.staff-acl-save:hover{background:#1d4ed8;border-color:#1d4ed8}
.foster-company-panel .ds-panel-head{align-items:center}
.foster-company-name{display:inline-flex;align-items:center;min-height:24px;color:#0f172a;font-size:14px;font-weight:700}
#fosterCompanyTable td:last-child{white-space:nowrap}
#fosterCompanyTable .link-btn{height:28px;border:0;background:transparent;color:#2563eb;font-size:13px;font-weight:700;cursor:pointer;margin-right:10px}
#fosterCompanyTable .link-btn:hover{text-decoration:underline}
#fosterCompanyTable .link-btn.danger{color:#2563eb}
#fosterCompanyTable .status-pill.ok{background:#e8f7ef;color:#138a45}
#fosterCompanyTable .status-pill.muted{background:#eef2f7;color:#64748b}

/* 系统设置：按 Governance Modern 参考稿重构，仅作用于内容区 */
#staffView.settings-reference-view{margin:0;background:#f7f9fc;min-height:calc(100vh - 104px);padding:32px 22px 48px}
#staffView .settings-reference-shell{width:min(1280px,100%);margin:0 auto;display:flex;flex-direction:column;gap:48px}
#staffView .settings-reference-section{min-width:0}
#staffView .settings-reference-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
#staffView .settings-reference-heading h2{margin:0;color:#172033;font-size:24px;line-height:32px;font-weight:800;letter-spacing:0}
#staffView .settings-reference-heading p{display:flex;align-items:center;gap:10px;margin:5px 0 0;color:#8790a1;font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700;letter-spacing:0}
#staffView .settings-reference-heading p i{display:block;width:32px;height:2px;border-radius:99px;background:rgba(63,133,255,.32)}
#staffView .settings-primary-action{height:42px;padding:0 20px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--ui-color-brand-light),#2563eb);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.18);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
#staffView .settings-primary-action:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(37,99,235,.24);filter:brightness(1.03)}
#staffView .settings-primary-action .material-symbols-outlined{font-size:19px}
#staffView .settings-staff-list{display:grid;gap:14px}
#staffView .settings-staff-card{min-height:116px;padding:22px 24px;border:1px solid #edf0f5;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 5px 22px rgba(30,41,59,.045);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
#staffView .settings-staff-card:hover{border-color:rgba(63,133,255,.28);box-shadow:0 12px 30px rgba(30,41,59,.075);transform:translateY(-1px)}
#staffView .settings-staff-main{display:flex;align-items:center;gap:20px;min-width:0;flex:1}
#staffView .settings-avatar{width:50px;height:50px;flex:0 0 50px;border-radius:12px;background:#edf5ff;color:#2769d8;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800}
#staffView .settings-staff-card:nth-child(3n+2) .settings-avatar{background:#eef0ff;color:#5d5fef}
#staffView .settings-staff-card:nth-child(3n) .settings-avatar{background:#eaf9f2;color:#07834a}
#staffView .settings-staff-grid{min-width:0;flex:1;display:grid;grid-template-columns:minmax(180px,1.15fr) minmax(220px,1.6fr) minmax(190px,1.1fr) minmax(160px,.9fr);gap:18px 28px;align-items:center}
#staffView .settings-staff-field{min-width:0;display:flex;flex-direction:column;gap:3px}
#staffView .settings-staff-field label{color:#939baa;font-family:var(--font-mono);font-size:10px;line-height:16px;font-weight:700;letter-spacing:0;text-transform:uppercase}
#staffView .settings-staff-field strong{color:#172033;font-size:14px;line-height:20px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#staffView .settings-staff-field small{color:#768092;font-size:12px;line-height:18px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#staffView .settings-staff-field code{padding:0;background:transparent;color:#8c95a5;font-family:var(--font-mono);font-size:12px;line-height:20px;white-space:nowrap}
#staffView .settings-module-list{display:flex;align-items:center;flex-wrap:wrap;gap:5px;max-height:48px;overflow:hidden;color:#172033}
#staffView .settings-module-list span{padding:2px 7px;border-radius:999px;background:#f0f4fb;color:#536071;font-size:11px;line-height:17px;font-weight:650;white-space:nowrap}
#staffView .settings-module-list strong{font-size:13px}
#staffView .settings-module-list em{color:#9aa2b1;font-size:12px;font-style:normal}
#staffView .settings-scope-row{display:flex;align-items:center;gap:10px;min-width:0}
#staffView .settings-scope-row>span:first-child{max-width:120px;color:#536071;font-size:13px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#staffView .settings-status,.settings-company-status{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:3px 9px;border-radius:999px;font-size:10px;line-height:16px;font-weight:800;white-space:nowrap}
#staffView .settings-status i,.settings-company-status i{display:block;width:6px;height:6px;border-radius:50%}
#staffView .settings-status.active,#staffView .settings-company-status.active{background:#ebf9f1;color:#13864a;border:1px solid #d4f1df}
#staffView .settings-status.active i,#staffView .settings-company-status.active i{background:#20b866;box-shadow:0 0 0 3px rgba(32,184,102,.10)}
#staffView .settings-status.disabled,#staffView .settings-company-status.disabled{background:#f1f3f6;color:#7c8594;border:1px solid #e4e7ec}
#staffView .settings-status.disabled i,#staffView .settings-company-status.disabled i{background:#9aa2b1}
#staffView .settings-staff-actions{flex:0 0 auto;display:flex;justify-content:flex-end}
#staffView .settings-row-actions{display:flex;align-items:center;gap:4px}
#staffView .settings-row-actions button{height:34px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:#56709b;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}
#staffView .settings-row-actions button:hover{background:#edf4ff;color:#2563eb}
#staffView .settings-row-actions button.danger{color:#b15b62}
#staffView .settings-row-actions button.danger:hover{background:#fff0f1;color:#dc2626}
#staffView .settings-row-actions .material-symbols-outlined{font-size:16px}
#staffView .settings-readonly{color:#c0c5ce;font-family:var(--font-mono);font-size:10px;font-weight:800;letter-spacing:0}
#staffView .settings-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
#staffView .settings-company-card{min-height:210px;padding:22px;border:1px solid #edf0f5;border-radius:14px;background:#fff;box-shadow:0 5px 22px rgba(30,41,59,.045);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
#staffView .settings-company-card:hover{transform:translateY(-4px);border-color:rgba(63,133,255,.25);box-shadow:0 16px 32px rgba(30,41,59,.08)}
#staffView .settings-company-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}
#staffView .settings-company-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:background .18s ease,color .18s ease}
#staffView .settings-company-icon .material-symbols-outlined{font-size:27px}
#staffView .settings-company-icon.blue{background:#edf5ff;color:#2563eb}#staffView .settings-company-icon.indigo{background:#eff0ff;color:#5d5fef}#staffView .settings-company-icon.emerald{background:#eaf9f2;color:#07834a}#staffView .settings-company-icon.amber{background:#fff7e5;color:#c47708}#staffView .settings-company-icon.rose{background:#fff0f2;color:#d14c68}#staffView .settings-company-icon.cyan{background:#e9f9fb;color:#07899b}
#staffView .settings-company-card:hover .settings-company-icon{background:var(--ui-color-brand-light);color:#fff}
#staffView .settings-company-card h3{margin:0;color:#263143;font-size:19px;line-height:27px;font-weight:800;letter-spacing:0}
#staffView .settings-company-card>p{margin:3px 0 0;color:#a0a7b4;font-family:var(--font-mono);font-size:10px;line-height:16px;font-weight:700;letter-spacing:0}
#staffView .settings-company-actions{min-height:42px;margin-top:24px;padding-top:16px;border-top:1px solid #f0f2f6;display:flex;align-items:center;justify-content:space-between;gap:12px;opacity:0;transition:opacity .18s ease}
#staffView .settings-company-card:hover .settings-company-actions{opacity:1}
#staffView .settings-company-actions>div{display:flex;align-items:center;gap:9px}
#staffView .settings-company-actions span{width:1px;height:13px;background:#e3e6eb}
#staffView .settings-company-actions button{padding:2px 0;border:0;background:transparent;color:#356fd0;font-size:11px;font-weight:800;cursor:pointer}
#staffView .settings-company-actions button:hover{text-decoration:underline}
#staffView .settings-company-actions button.danger{color:#d05764}
#staffView .settings-reference-pager{min-height:42px;margin-top:20px;padding:0 4px;display:flex;align-items:center;justify-content:space-between;gap:16px}
#staffView .settings-reference-pager p{margin:0;color:#99a1af;font-family:var(--font-mono);font-size:10px;line-height:16px;font-weight:800;letter-spacing:0}
#staffView .settings-reference-pager p span{display:inline-block;width:1px;height:10px;margin:0 9px;background:#d9dde5;vertical-align:-1px}
#staffView .settings-reference-pager>div{display:flex;align-items:center;gap:7px}
#staffView .settings-reference-pager button{width:36px;height:36px;padding:0;border:1px solid #e8ebf0;border-radius:9px;background:#fff;color:#8c95a5;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}
#staffView .settings-reference-pager button.current{border-color:var(--ui-color-brand-light);background:var(--ui-color-brand-light);color:#fff;box-shadow:0 5px 12px rgba(63,133,255,.18)}
#staffView .settings-reference-pager button:disabled{opacity:.45}
#staffView .settings-reference-pager .material-symbols-outlined{font-size:18px}
#staffView .settings-empty-state{grid-column:1/-1;min-height:180px;border:1px dashed #dfe4ec;border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8c95a5}
#staffView .settings-empty-state .material-symbols-outlined{font-size:34px;color:#b4bdca;margin-bottom:8px}
#staffView .settings-empty-state strong{color:#536071;font-size:14px}#staffView .settings-empty-state small{margin-top:3px;font-size:12px}
@media(max-width:1180px){#staffView .settings-staff-card{align-items:flex-start}#staffView .settings-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#staffView .settings-staff-actions{align-self:center}#staffView .settings-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#staffView.settings-reference-view{margin:0;padding:22px 16px 36px}#staffView .settings-reference-shell{gap:38px}#staffView .settings-reference-heading{align-items:flex-start}#staffView .settings-reference-heading h2{font-size:21px}#staffView .settings-primary-action{padding:0 14px}#staffView .settings-staff-card{padding:18px;display:block}#staffView .settings-staff-main{align-items:flex-start}#staffView .settings-staff-grid{grid-template-columns:1fr;gap:14px}#staffView .settings-staff-actions{margin:16px 0 0 70px;justify-content:flex-start}#staffView .settings-row-actions{flex-wrap:wrap}#staffView .settings-company-grid{grid-template-columns:1fr}#staffView .settings-company-actions{opacity:1}#staffView .settings-reference-pager{align-items:flex-start;flex-direction:column}}

/* System settings respond to the available content column, not the browser width. */
#staffView .settings-reference-shell{container-type:inline-size}
@container (max-width:1100px){
  #staffView .settings-staff-card{align-items:flex-start}
  #staffView .settings-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #staffView .settings-staff-actions{align-self:center}
}
@container (max-width:780px){
  #staffView.settings-reference-view{padding-left:16px;padding-right:16px}
  #staffView .settings-reference-heading{align-items:flex-start;flex-wrap:wrap;gap:14px}
  #staffView .settings-staff-card{padding:18px;display:block}
  #staffView .settings-staff-grid{grid-template-columns:1fr;gap:14px}
  #staffView .settings-staff-actions{margin:16px 0 0 70px;justify-content:flex-start}
  #staffView .settings-row-actions{flex-wrap:wrap}
  #staffView .settings-company-grid{grid-template-columns:1fr}
  #staffView .settings-company-actions{opacity:1}
  #staffView .settings-reference-pager{align-items:flex-start;flex-direction:column}
}

/* 合同管理：编辑 / 详情 */
.ds-modal.contract-edit-modal{background:rgba(11,28,48,.38);backdrop-filter:blur(10px) saturate(150%);padding:24px}
.ds-modal.contract-edit-modal .box.wide{width:min(800px,calc(100vw - 48px));border-radius:12px;border:1px solid rgba(211,228,254,.7);background:#fff;box-shadow:0 28px 72px rgba(15,23,42,.30);overflow:hidden}
.ds-modal.contract-edit-modal .head{height:64px;padding:0 24px;border-bottom:1px solid rgba(195,198,215,.45);background:#fff}
.ds-modal.contract-edit-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;font-size:20px;line-height:28px;font-weight:600;color:#0b1c30;letter-spacing:0}
.ds-modal.contract-edit-modal .head h3 .material-symbols-outlined{width:32px;height:32px;border-radius:8px;background:rgba(37,99,235,.10);color:#004ac6;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.ds-modal.contract-edit-modal .close{width:36px;height:36px;border-radius:999px;color:#737686;transition:background .16s ease,color .16s ease,transform .16s ease}
.ds-modal.contract-edit-modal .close:hover{background:#dce9ff;color:#0b1c30}
.ds-modal.contract-edit-modal .close:hover .material-symbols-outlined{transform:rotate(90deg)}
.ds-modal.contract-edit-modal .body{padding:0;background:rgba(239,244,255,.72);overflow-y:auto}
.ds-modal.contract-edit-modal .foot{display:none!important}
.resource-form.contract-edit-form{display:flex;flex-direction:column;min-height:0}
.contract-edit-body{padding:16px;display:flex;flex-direction:column;gap:16px;background:rgba(239,244,255,.72)}
.contract-edit-grid{display:grid;gap:16px}
.contract-edit-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.contract-edit-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.contract-edit-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.contract-edit-field.span-2{grid-column:span 2}
.contract-edit-field label{margin:0 0 0 4px;color:rgba(67,70,85,.86);font-size:13px;line-height:20px;font-weight:600}
.contract-input-wrap,.contract-select-wrap,.contract-lookup-row{position:relative;display:flex;align-items:center;gap:8px;min-width:0}
.contract-input-wrap input,.contract-select-wrap select,.contract-lookup-display{width:100%;height:40px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:14px;line-height:20px;outline:0;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.contract-input-wrap input{padding:0 36px 0 12px}
.contract-select-wrap select{padding:0 36px 0 12px;appearance:none}
.contract-lookup-display{flex:1;display:flex;align-items:center;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-lookup-display.is-placeholder{color:#a5afc3}
.contract-lookup-display.primary{border-color:rgba(37,99,235,.30);color:#004ac6}
.contract-lookup-row button{height:40px;min-width:64px;padding:0 16px;border:1px solid #c3c6d7;border-radius:8px;background:#fff;color:#0b1c30;font-size:13px;line-height:20px;font-weight:600;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}
.contract-lookup-row button:hover{background:#e5eeff;border-color:#b4c5ff;color:#004ac6}
.contract-lookup-display.primary + button{border-color:rgba(37,99,235,.30);color:#004ac6}
.contract-input-wrap input:focus,.contract-select-wrap select:focus,.contract-lookup-display:focus-within{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.contract-input-wrap .material-symbols-outlined,.contract-select-wrap .material-symbols-outlined{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:18px;color:#737686;pointer-events:none}
.contract-photo-section{padding-top:16px;border-top:1px solid rgba(195,198,215,.35);display:flex;flex-direction:column;gap:16px}
.contract-photo-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.contract-photo-head>div{display:flex;align-items:center;gap:8px}
.contract-photo-head i{display:block;width:4px;height:20px;border-radius:999px;background:#2563eb}
.contract-photo-head strong{font-size:18px;line-height:28px;font-weight:800;color:#0b1c30}
.contract-photo-head p{margin:0;color:rgba(67,70,85,.68);font-size:13px;line-height:20px}
.contract-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.contract-edit-modal .contract-upload-list{display:contents}
.contract-edit-modal .contract-thumb{position:relative;aspect-ratio:4/3;border-radius:8px;overflow:hidden;border:1px solid rgba(195,198,215,.45);background:#fff;box-shadow:0 12px 24px rgba(15,23,42,.12)}
.contract-edit-modal .contract-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.contract-edit-modal .contract-thumb button{position:absolute;right:8px;top:8px;width:24px;height:24px;border:0;border-radius:999px;background:rgba(11,28,48,.78);color:#fff;font-size:18px;line-height:24px;cursor:pointer}
.contract-edit-modal .contract-upload-empty{min-height:126px;border:1px dashed #c3c6d7;border-radius:8px;background:rgba(255,255,255,.7);color:#737686;display:flex;align-items:center;justify-content:center;font-size:13px}
.contract-upload-card{aspect-ratio:4/3;border:2px dashed rgba(37,99,235,.30);border-radius:8px;background:rgba(37,99,235,.05);color:#2563eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .16s ease,border-color .16s ease}
.contract-upload-card:hover{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.55)}
.contract-upload-card .material-symbols-outlined{width:48px;height:48px;border-radius:999px;background:rgba(37,99,235,.10);display:flex;align-items:center;justify-content:center;font-size:30px}
.contract-upload-card b{font-size:14px;line-height:20px;font-weight:700}
.contract-edit-actions{height:68px;padding:12px 24px;border-top:1px solid rgba(195,198,215,.45);background:#fff;display:flex;align-items:center;justify-content:flex-end;gap:12px}
.contract-edit-actions button{height:44px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.contract-edit-actions .contract-cancel{min-width:96px;padding:0 28px;border:1px solid #737686;background:#fff;color:#434655}
.contract-edit-actions .contract-save{min-width:104px;padding:0 32px;border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 10px 22px rgba(37,99,235,.22)}
.contract-edit-actions .contract-save:hover{background:#004ac6;border-color:#004ac6;box-shadow:0 14px 28px rgba(37,99,235,.26);transform:translateY(-1px)}
.ds-modal.contract-detail-modal{background:rgba(11,28,48,.38);backdrop-filter:blur(4px)}
.ds-modal.contract-detail-modal .box.wide{width:min(820px,calc(100vw - 48px));border-radius:12px;border:1px solid rgba(195,198,215,.55);background:#fff;box-shadow:0 24px 70px rgba(11,28,48,.28)}
.ds-modal.contract-detail-modal .head{padding:18px 24px;border-bottom:1px solid rgba(195,198,215,.45);background:#fff}
.ds-modal.contract-detail-modal .head h3{font-size:20px;line-height:28px;font-weight:600;color:#0b1c30}
.ds-modal.contract-detail-modal .body{padding:0;background:#fff}
.contract-detail-content{padding:20px 24px;display:flex;flex-direction:column;gap:18px}
.contract-detail-section{border:1px solid #d8e0ef;border-radius:10px;background:#fff;overflow:hidden}
.contract-detail-section-title{height:48px;padding:0 16px;border-bottom:1px solid #d8e0ef;background:#f8f9ff;color:#0b1c30;font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px}
.contract-detail-section-title .material-symbols-outlined{font-size:20px;color:#2563eb}
.contract-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:0}
.contract-detail-item{min-height:58px;padding:10px 16px;border-top:1px solid rgba(216,224,239,.65);display:flex;flex-direction:column;gap:4px}
.contract-detail-item:nth-child(1),.contract-detail-item:nth-child(2){border-top:0}
.contract-detail-item.span-2{grid-column:span 2}
.contract-detail-item span{color:#737686;font-size:12px;line-height:18px}
.contract-detail-item strong{color:#0b1c30;font-size:15px;line-height:22px;font-weight:700;word-break:break-word}
.contract-status-pill{display:inline-flex;width:max-content;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-style:normal;font-size:12px;font-weight:700;border:1px solid transparent}
.contract-status-pill.ok{background:#f0fdf4;color:#16a34a;border-color:rgba(22,163,74,.2)}
.contract-status-pill.warn{background:#fef3c7;color:#d97706;border-color:rgba(217,119,6,.22)}
.contract-status-pill.off{background:#eff4ff;color:#737686;border-color:#c3c6d7}
.contract-detail-modal .contract-gallery,.contract-detail-modal .contract-gallery-empty{margin:16px}
.contract-detail-modal .contract-gallery{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px;background:#fff}
.contract-detail-modal .gallery-main-img{display:block;width:100%;max-height:560px;object-fit:contain;border-radius:8px;background:#fff}
.contract-detail-modal .gallery-btn{position:absolute;top:calc(50% - 28px);z-index:2;width:32px;height:48px;border:0;border-radius:8px;background:rgba(255,255,255,.86);color:#0b1c30;font-size:24px;line-height:48px;box-shadow:0 8px 20px rgba(11,28,48,.16);cursor:pointer}
.contract-detail-modal .gallery-btn.prev{left:14px}
.contract-detail-modal .gallery-btn.next{right:14px}
.contract-detail-modal .gallery-count{align-self:flex-start;color:#004ac6;font-size:13px;line-height:18px;font-weight:700}
.contract-detail-modal .gallery-strip{width:100%;display:flex;align-items:center;gap:8px;overflow-x:auto;padding:2px 0 4px}
.contract-detail-modal .gallery-dot{width:56px;height:42px;flex:0 0 56px;padding:2px;border:1px solid #d8e0ef;border-radius:6px;background:#fff;overflow:hidden;cursor:pointer}
.contract-detail-modal .gallery-dot.active{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.contract-detail-modal .gallery-thumb-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:4px}
.contract-detail-modal .gallery-strip:has(.gallery-dot:only-child){display:none}
.contract-detail-footer{height:64px;padding:12px 24px;border-top:1px solid rgba(195,198,215,.45);background:#fff;display:flex;justify-content:flex-end;align-items:center;gap:12px}
.contract-detail-footer button{height:40px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}
.contract-detail-close{min-width:88px;border:1px solid #c3c6d7;background:#fff;color:#434655}
.contract-detail-edit{min-width:116px;border:1px solid #2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.contract-detail-edit .material-symbols-outlined{font-size:18px}
.design-template-page[data-route="contracts"] [data-route-batch-delete="contracts"]{height:34px!important;min-width:68px!important;width:68px!important;padding:0!important;border:1px solid #004ac6!important;border-radius:7px!important;background:#004ac6!important;color:#fff!important;font-size:13px!important;font-weight:500!important;box-shadow:none!important;display:inline-flex;align-items:center;justify-content:center;gap:0}
.design-template-page[data-route="contracts"] [data-route-batch-delete="contracts"]:not(:disabled):hover{background:#004ac6!important;border-color:#004ac6!important}
.design-template-page[data-route="contracts"] [data-route-batch-delete="contracts"]:disabled{background:#9fc0ff!important;border-color:#9fc0ff!important;color:#fff!important;opacity:1!important;cursor:not-allowed}
.farm-detail-content{padding:32px;display:flex;flex-direction:column;gap:24px;font-size:16px}
.farm-detail-group{position:relative;padding-left:16px}
.farm-detail-group-line{position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:999px;background:#dbe1ff}
.farm-detail-group h4{margin:0 0 16px;display:flex;align-items:center;gap:8px;font-size:16px;line-height:20px;font-weight:500;color:#5c5f61;letter-spacing:.04em}
.farm-detail-group h4 .material-symbols-outlined{font-size:18px;line-height:18px}
.farm-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px;row-gap:16px}
.farm-detail-item{display:flex;align-items:baseline;gap:8px;min-width:0}
.farm-detail-item.span-2{grid-column:1 / -1}
.farm-detail-label{width:140px;flex:0 0 140px;text-align:right;color:#5c5f61;font-size:16px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.farm-detail-value{flex:1;min-width:0;color:#111c2d;font-family:"JetBrains Mono","Microsoft YaHei",Arial,sans-serif;font-size:16px;line-height:20px;font-weight:600;word-break:break-word}
.farm-detail-value.muted{color:#5c5f61}
.farm-detail-value.primary{color:#2563eb}
.farm-detail-status{display:inline-flex;align-items:center;gap:6px;color:#111c2d}
.farm-detail-status i{width:8px;height:8px;border-radius:999px;background:#22c55e;display:inline-block}
.farm-detail-status.off i{background:#94a3b8}
.farm-detail-inline-icon{font-size:14px;line-height:14px;color:#5c5f61;margin-left:4px;vertical-align:-2px}
.farm-detail-divider{height:1px;background:rgba(195,198,215,.35);margin-left:16px}
.farm-detail-footer{padding:16px 24px;border-top:1px solid rgba(195,198,215,.45);background:var(--ui-color-surface-subtle);display:flex;justify-content:flex-end;align-items:center;gap:12px}
.farm-detail-close-btn,.farm-detail-edit-btn{height:38px;border-radius:4px;font-size:14px;line-height:20px;font-weight:500;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease,box-shadow .16s ease}
.farm-detail-close-btn{padding:0 16px;border:1px solid #e0e3e5;background:#fff;color:#5c5f61}
.farm-detail-close-btn:hover{background:var(--ui-color-canvas)}
.farm-detail-edit-btn{padding:0 24px;border:1px solid #2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;gap:8px;box-shadow:0 1px 2px rgba(37,99,235,.18)}
.farm-detail-edit-btn:hover{opacity:.9}
.farm-detail-edit-btn .material-symbols-outlined{font-size:18px;line-height:18px}
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700}
.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.detail-body{padding:0}
.ds-modal.order-detail-modal{background:rgba(11,28,48,.38);backdrop-filter:blur(4px);padding:16px}
.ds-modal.order-detail-modal .box.wide{width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 32px);border:1px solid var(--ui-color-line);border-radius:12px;box-shadow:0 24px 64px rgba(11,28,48,.24)}
.ds-modal.order-detail-modal .head{min-height:78px;padding:14px 24px;border-bottom:1px solid var(--ui-color-line);background:var(--ui-color-surface-subtle)}.ds-modal.order-detail-modal .head h3{display:flex;align-items:center;gap:12px;color:var(--ui-color-ink)}.ds-modal.order-detail-modal .head h3>.material-symbols-outlined{color:var(--ui-color-brand);font-size:24px}.order-detail-title-text{display:flex;min-width:0;flex-direction:column;gap:2px}.order-detail-title-text b{font-size:18px;line-height:24px}.order-detail-title-text small{overflow:hidden;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:12px;line-height:18px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.ds-modal.order-detail-modal .close{width:36px;height:36px;padding:0;border-radius:999px}.ds-modal.order-detail-modal .body{padding:0;background:#fff}.ds-modal.order-detail-modal .detail-body{max-height:calc(100vh - 142px);overflow-y:auto;padding:0}
.order-detail-content{display:flex;flex-direction:column;gap:24px;padding:24px}.order-detail-content section{display:flex;flex-direction:column;gap:10px}.order-detail-content h4{margin:0;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700;letter-spacing:0;text-transform:uppercase}.order-detail-dual{display:grid;grid-template-columns:1fr 1fr;gap:24px}.order-detail-info-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:8px;background:var(--ui-color-canvas)}.order-detail-info-card>div{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.order-detail-info-card span{flex:0 0 auto;color:var(--ui-color-text);font-size:13px;line-height:20px}.order-detail-info-card strong{color:var(--ui-color-ink);font-size:14px;line-height:20px;font-weight:700;text-align:right}.order-detail-info-card strong.is-primary{color:var(--ui-color-brand)}
.order-detail-address{flex-direction:row!important;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--ui-color-line-soft);border-radius:8px;background:var(--ui-color-canvas)}.order-detail-address>.material-symbols-outlined{flex:0 0 auto;color:#1652ce;font-size:22px;font-variation-settings:'FILL' 1}.order-detail-address div{display:flex;min-width:0;flex-direction:column;gap:2px}.order-detail-address small{color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700}.order-detail-address strong{color:var(--ui-color-ink);font-size:14px;line-height:20px;font-weight:600}
.order-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.order-detail-metric{min-width:0;padding:12px;border:1px solid var(--ui-color-line-soft);border-radius:8px;background:#fff}.order-detail-metric span{display:block;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700}.order-detail-metric strong{display:block;overflow:hidden;margin-top:5px;color:var(--ui-color-ink);font-family:var(--font-mono);font-size:18px;line-height:24px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.order-detail-metric em{color:var(--ui-color-muted);font-family:var(--font-body);font-size:11px;font-style:normal;font-weight:500}.order-detail-metric.is-amount{border-color:rgba(0,135,58,.25);background:rgba(0,135,58,.05)}.order-detail-metric.is-amount span,.order-detail-metric.is-amount strong{color:#00873a}
.order-detail-timeline{position:relative;display:flex;flex-direction:column;gap:18px;padding-left:28px}.order-detail-timeline::before{position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--ui-color-line);content:""}.order-detail-event{position:relative;display:flex;gap:12px}.order-detail-event-dot{position:absolute;left:-28px;top:1px;width:16px;height:16px;border:4px solid #fff;border-radius:50%;background:var(--ui-color-brand);box-shadow:0 0 0 1px rgba(0,87,193,.18);display:flex;align-items:center;justify-content:center}.order-detail-event-dot .material-symbols-outlined{color:#fff;font-size:10px;font-variation-settings:'FILL' 1}.order-detail-event>div{min-width:0}.order-detail-event strong{display:block;color:var(--ui-color-ink);font-size:14px;line-height:20px}.order-detail-event time{display:flex;align-items:center;gap:4px;margin-top:2px;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:12px;line-height:18px}.order-detail-event time .material-symbols-outlined{font-size:15px}.order-detail-event p{margin:7px 0 0;padding:9px 10px;border-left:2px solid var(--ui-color-brand);border-radius:0 6px 6px 0;background:var(--ui-color-canvas);color:var(--ui-color-text);font-size:13px;line-height:20px}.order-detail-actions{display:flex;justify-content:flex-end;margin:0 -24px -24px;padding:14px 24px;border-top:1px solid var(--ui-color-line);background:var(--ui-color-surface-subtle)}.order-detail-actions button{height:38px;min-width:88px;border:0;border-radius:8px;background:var(--ui-color-brand);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.order-detail-actions button:hover{background:#004397}
@media(max-width:640px){.ds-modal.order-detail-modal{padding:8px}.ds-modal.order-detail-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.order-detail-modal .head{padding:14px 16px}.order-detail-content{gap:20px;padding:18px 16px}.order-detail-dual,.order-detail-metrics{grid-template-columns:1fr}.order-detail-actions{margin:0 -16px -18px;padding:12px 16px}}
.stmt-orderlist{padding:12px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-container-low);min-height:120px;font-size:13px}

/* 地图小工具 */
.map-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.map-tools input{padding:6px 10px;border:1px solid var(--outline-variant);border-radius:6px;font-size:13px}
.map-tools .mono-tag{margin-left:auto}
.map-results{max-height:160px;overflow-y:auto;background:var(--surface-container-low);border-radius:8px;margin-bottom:8px;padding:6px;font-size:13px}
.map-fallback{margin-top:8px;padding:12px;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;font-size:13px}
.map-fallback input{margin:0 6px;padding:4px 8px;border:1px solid var(--outline-variant);border-radius:6px}

/* 通用工具 */
.chip-row{display:flex;flex-wrap:wrap;gap:6px}
.chip-row .chip{padding:3px 8px;border-radius:9999px;background:var(--surface-container);color:var(--on-surface-variant);font-size:11px}


/* === app-nav-sublist === */
.app-nav-sublist{display:flex;flex-direction:column;gap:2px;margin:2px 12px 8px 30px;padding:6px 0 6px;border-left:1px dashed rgba(255,255,255,.14)}
.app-nav-child{display:flex;align-items:center;gap:10px;padding:8px 14px;margin-left:10px;border-radius:8px;color:rgba(255,255,255,.6);cursor:pointer;font-size:13px;transition:.12s}
.app-nav-child .material-symbols-outlined{font-size:16px;color:rgba(255,255,255,.5)}
.app-nav-child:hover{background:rgba(255,255,255,.05);color:#fff}
.app-nav-child.active{background:rgba(37,99,235,.16);color:#fff}
.app-nav-child.active .material-symbols-outlined{color:#fff}

/* clickable dash-card reset button look */
.dash-card.clickable-card{cursor:pointer;border:0;background-clip:padding-box;text-align:left;width:100%;font:inherit;color:#fff}
.dash-card.clickable-card:focus{outline:2px solid rgba(255,255,255,.4);outline-offset:2px}

/* dash map canvas should span all */
.dash-map-canvas{width:100%;height:100%}

/* ===== 20260706 all pages redesign replica layer ===== */
.app-content{background:#f5f7fb;padding:20px 24px 32px}.app-view{max-width:1920px}.app-view>*+*{margin-top:18px}.app-main,.app-topbar{min-width:0}.app-topbar{background:rgba(248,249,255,.96);backdrop-filter:blur(10px)}
.dr-overview{margin-bottom:18px}.dr-hero{background:#fff;border:1px solid #cfd6e6;border-radius:14px;padding:20px;display:grid;grid-template-columns:minmax(280px,1.05fr) auto;gap:18px;box-shadow:0 1px 2px rgba(15,23,42,.04);position:relative;overflow:hidden}.dr-hero:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#004ac6,#4cd7f6)}.dr-hero-main{display:flex;align-items:center;gap:16px;min-width:0}.dr-icon{width:48px;height:48px;border-radius:12px;background:#eff6ff;color:#004ac6;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(37,99,235,.12)}.dr-icon .material-symbols-outlined{font-size:26px}.dr-kicker{font-size:12px;color:#737686;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.dr-hero h3{margin:2px 0 4px;font-size:20px;line-height:28px;font-weight:700;color:#0b1c30}.dr-hero p{margin:0;color:#5c647a;font-size:13px;line-height:20px}.dr-hero-side{display:flex;align-items:flex-start;gap:8px;justify-content:flex-end;flex-wrap:wrap}.dr-hero-side span{border:1px solid #dbe4ef;background:#f8fafc;color:#475569;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.dr-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dr-metric{border:1px solid #e5e7eb;background:#f9fbff;border-radius:12px;padding:14px 16px}.dr-metric span{display:block;font-size:12px;color:#737686}.dr-metric strong{display:block;margin-top:8px;font-family:var(--font-mono);font-size:26px;line-height:32px;color:#0b1c30;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dr-metric em{display:block;margin-top:6px;font-style:normal;font-size:11px;color:#94a3b8}.dr-flow{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dr-flow span{display:flex;align-items:center;gap:8px;border-radius:10px;background:#f8fafc;border:1px solid #e5e7eb;padding:10px 12px;color:#475569;font-size:13px}.dr-flow i{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#e2e8f0;color:#334155;font-style:normal;font-family:var(--font-mono);font-size:11px}.dr-flow b{margin-left:auto;font-family:var(--font-mono);color:#0b1c30}.dr-flow .active i{background:#dbeafe;color:#2563eb}.dr-flow .ok i{background:#dcfce7;color:#16a34a}
.dr-design-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:16px;margin-bottom:18px}.dr-panel{background:#fff;border:1px solid #cfd6e6;border-radius:14px;padding:18px;box-shadow:0 1px 2px rgba(15,23,42,.04);min-width:0}.dr-wide{grid-column:1/-1}.dr-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dr-panel-head h4{margin:0;font-size:16px;font-weight:700;color:#0b1c30;display:flex;align-items:center;gap:8px}.dr-panel-head h4 i{display:inline-block;width:4px;height:20px;background:#0053db;border-radius:99px}.dr-panel-head span,.dr-panel-head button{border:0;background:transparent;color:#737686;font-size:12px;font-weight:600}.dr-mini-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dr-mini-card{text-align:left;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:14px;min-height:126px;display:flex;flex-direction:column;gap:8px;color:#0b1c30;cursor:pointer}.dr-mini-card:hover{border-color:#2563eb;background:#f5f9ff}.dr-mini-card .material-symbols-outlined{width:34px;height:34px;border-radius:10px;background:#eff6ff;color:#2563eb;display:grid;place-items:center}.dr-mini-card b{font-size:14px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dr-mini-card small{color:#64748b;font-size:12px;line-height:18px}.dr-mini-card em{margin-top:auto;color:#2563eb;font-style:normal;font-size:11px;font-weight:700}.dr-bars{display:flex;flex-direction:column;gap:14px}.dr-bar-top{display:flex;align-items:center;justify-content:space-between;color:#64748b;font-size:13px;gap:10px}.dr-bar-top b{font-family:var(--font-mono);color:#0b1c30}.dr-bar i{display:block;height:12px;background:#edf2ff;border-radius:999px;overflow:hidden;margin-top:7px}.dr-bar em{display:block;height:100%;background:linear-gradient(90deg,#0053db,#4cd7f6);border-radius:999px}.dr-ring-wrap{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center}.dr-ring{position:relative;width:150px;height:150px}.dr-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.dr-ring circle{fill:none;stroke:#eef2f7;stroke-width:16}.dr-ring path{fill:none;stroke-width:16;stroke-linecap:round}.dr-ring path:nth-child(2){stroke:#e58a00}.dr-ring path:nth-child(3){stroke:#2563eb}.dr-ring div{position:absolute;inset:0;display:grid;place-items:center;text-align:center;align-content:center}.dr-ring b{font-family:var(--font-mono);font-size:22px;color:#0b1c30}.dr-ring span{font-size:12px;color:#737686}.dr-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:14px 18px}.dr-strip div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:999px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.dr-strip span{font-size:13px;color:#64748b}.dr-strip b{font-family:var(--font-mono);font-size:15px;color:#0b1c30}
.ds-panel{border:1px solid #cfd6e6;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04);overflow:hidden;background:#fff}.ds-panel-head{padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#fff}.ds-panel-head h3{font-size:16px;font-weight:700}.ds-panel-body{padding:16px 20px}.table-wrap{border:1px solid #e5e7eb;border-radius:12px;overflow:auto;background:#fff}.table-wrap table{width:100%;border-collapse:separate;border-spacing:0}.table-wrap th{background:#f9fafb;color:#5c647a;font-size:12px;font-weight:700;padding:12px;text-align:left;white-space:nowrap}.table-wrap td{padding:12px;border-top:1px solid #eef2f7;font-size:13px;color:#0b1c30}.table-wrap tr:hover td{background:#f8fbff}.ds-btn,.primary-btn,.ghost-btn{border-radius:8px}.route-overview+.ds-panel,.dr-design-grid+.ds-panel{margin-top:16px}
.stats-filter-bar,.data-card,.stats-panel{border-color:#cfd6e6;border-radius:14px}.stats-filter-bar{padding:20px 22px}.stats-metric-grid{gap:14px}.stats-charts-grid{gap:16px}.trend-echart{height:440px}.pay-pill-row{min-height:42px}.dash-card{min-height:164px;border-radius:14px}.dash-map-panel,.dash-timeline-panel,.dash-driver-panel{border-color:#cfd6e6;border-radius:14px}.dash-map-body{height:552px}.dashboard-farm-map{width:100%;height:100%}.dash-bottom-grid{grid-template-columns:2fr .98fr;gap:16px}.timeline-card{background:#eef4ff;border-color:#dbe4ef}.driver-table th{background:#eaf1ff}
.material-shell,.materials-shell{background:transparent}.material-layout,.material-main,.material-board{border-color:#cfd6e6;border-radius:14px}.material-card,.material-stat,.material-panel{border-color:#cfd6e6;border-radius:14px;background:#fff}

@media(max-width:1280px){.dr-design-grid{grid-template-columns:1fr}.dr-wide,.dr-strip{grid-column:auto}.dr-mini-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dr-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dr-flow{grid-template-columns:1fr}.dr-ring-wrap{grid-template-columns:1fr}.dr-strip{grid-template-columns:1fr}}@media(max-width:720px){.dr-hero{grid-template-columns:1fr}.dr-mini-row,.dr-metrics{grid-template-columns:1fr}.app-content{padding:16px}.dr-strip div{border-radius:12px}}
.material-tab{border:1px solid #dbe4ef;background:#fff;color:#475569;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer}.material-tab:hover,.material-tab.active{background:#eff6ff;border-color:#2563eb;color:#004ac6}.dr-material-shell .ds-panel-actions{gap:8px;flex-wrap:wrap}.dr-material-shell #materialActions{display:inline-flex;gap:8px}

/* Keep the live-map canvas aligned with the tracking template's top content bar. */
.design-template-page[data-route="tracking"]>main>.absolute.inset-0.top-16{left:1rem!important;right:1rem!important}


/* Template-level rebuild from redesign code.html pages. */
#appView.replica-mode .app-topbar { display: none; }
#appView.replica-mode .app-content { padding: 0; height: 100%; overflow: auto; background: #f5f7fb; }
#appView.replica-mode .app-main {
  min-width: 0;
  margin-left: 0 !important;
  padding-left: 0 !important;
  width: calc(100vw - var(--sidebar-w, 256px)) !important;
}
.design-template-page { min-height: 100%; background: #f5f7fb; }
.design-template-page > main {
  width: 100% !important;
  max-width: none !important;
  min-height: calc(100vh);
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  transform: none !important;
}
.design-template-page > main[class*="ml-"],
.design-template-page > main[class*="pl-"],
.design-template-page > main[class*="left-"],
.design-template-page [class*="ml-[256px]"],
.design-template-page [class*="ml-64"],
.design-template-page [class*="pl-64"] {
  margin-left: 0 !important;
  padding-left: 16px !important;
  left: 0 !important;
}
.design-template-page > main > .container,
.design-template-page > main > [class*="max-w-"],
.design-template-page > main > [class*="w-[calc"] {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.design-template-page table { border-collapse: separate; border-spacing: 0; }
.design-template-page table th,
.design-template-page .table-wrap th,
#dataTable th {
  height: 44px !important;
  padding: 12px 16px !important;
  font-size: 12px !important;
  line-height: 20px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  color: #0b1c30 !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}
.design-template-page table td,
.design-template-page .table-wrap td,
#dataTable td {
  min-height: 48px !important;
  padding: 13px 16px !important;
  font-size: 14px !important;
  line-height: 20px !important;
  vertical-align: middle !important;
}
.design-template-page table th:last-child,
.design-template-page table td:last-child,
.design-template-page .table-action-head,
.design-template-page .table-action-cell,
#dataTable th:last-child,
#dataTable td:last-child {
  width: 132px !important;
  min-width: 132px !important;
  text-align: center !important;
}
.design-template-page .table-action-wrap {
  width: 100%;
  align-items: center;
  justify-content: center !important;
}
.design-template-page button, .design-template-page a { cursor: pointer; }
.design-template-page .farm-row-check {
  display: block;
  width: 14px;
  height: 14px;
  margin: 0 auto;
  accent-color: #2563eb;
  cursor: pointer;
  vertical-align: middle;
}
.design-template-page .farm-list-table {
  table-layout: fixed;
  min-width: 1040px;
}
.design-template-page .farm-list-table th,
.design-template-page .farm-list-table td {
  padding-top: 13px !important;
  padding-bottom: 13px !important;
}
.design-template-page .farm-list-table th:nth-child(1),
.design-template-page .farm-list-table td:nth-child(1) { width: 48px; }
.design-template-page .farm-list-table th:nth-child(2),
.design-template-page .farm-list-table td:nth-child(2) { width: 104px; }
.design-template-page .farm-list-table th:nth-child(3),
.design-template-page .farm-list-table td:nth-child(3) { width: 180px; }
.design-template-page .farm-list-table th:nth-child(4),
.design-template-page .farm-list-table td:nth-child(4) { width: 190px; }
.design-template-page .farm-list-table th:nth-child(5),
.design-template-page .farm-list-table td:nth-child(5) { width: 92px; }
.design-template-page .farm-list-table th:nth-child(6),
.design-template-page .farm-list-table td:nth-child(6) { width: 132px; }
.design-template-page .farm-list-table th:nth-child(7),
.design-template-page .farm-list-table td:nth-child(7) { width: 124px; }
.design-template-page .farm-list-table th:nth-child(8),
.design-template-page .farm-list-table td:nth-child(8) { width: 104px; }
.design-template-page .farm-list-table th:nth-child(9),
.design-template-page .farm-list-table td:nth-child(9) { width: 82px; }
.design-template-page .farm-list-table th:nth-child(10),
.design-template-page .farm-list-table td:nth-child(10) { width: 132px; }
.design-template-page .farm-list-table td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.design-template-page .farm-list-table td:last-child {
  overflow: visible;
}
.design-template-page .farm-list-table th:first-child,
.design-template-page .farm-list-table td:first-child {
  text-align: center !important;
  vertical-align: middle !important;
}
.design-template-page .farm-list-table td:nth-child(6) {
  overflow: visible;
}
.design-template-page .farm-seedling-cell {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-width: 62px;
  vertical-align: middle;
  line-height: 1;
}
.design-template-page .farm-seedling-number {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 18px;
  height: 20px;
  line-height: 20px;
}
.design-template-page[data-route="farms"] div:has(> .overflow-x-auto > .farm-list-table),
.design-template-page[data-route="farms"] section:has(.farm-list-table) {
  min-height: 0 !important;
  height: auto !important;
  flex: 0 0 auto !important;
}
.design-template-page[data-route="farms"] .farm-list-table,
.design-template-page[data-route="farms"] .farm-list-table tbody {
  height: auto !important;
}
.design-template-page[data-route="farms"] .data-table-container {
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}
.design-template-page[data-route="farms"] div:has(> .data-table-container) {
  height: auto !important;
  max-height: none !important;
}
.design-template-page .farm-mini-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  min-width: 38px;
  padding: 0 8px;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  background: #eff6ff;
  color: #0052d9;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .04);
  transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.design-template-page .farm-mini-btn:hover {
  background: #dbeafe;
  border-color: #93c5fd;
  color: #003ea8;
  box-shadow: 0 2px 6px rgba(37, 99, 235, .12);
}
.design-template-page .farm-mini-btn-primary {
  background: #0052d9;
  border-color: #0052d9;
  color: #fff;
}
.design-template-page .farm-mini-btn-primary:hover {
  background: #0047bd;
  border-color: #0047bd;
  color: #fff;
}
.farm-action-btn,
.design-template-page .farm-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;
  min-width: 42px;
  padding: 0 10px;
  border: 1px solid #d7e2f0;
  border-radius: 4px;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .02);
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.farm-action-detail,
.design-template-page .farm-action-detail {
  color: #0052d9;
}
.farm-action-edit,
.design-template-page .farm-action-edit {
  color: #111827;
}
.farm-action-btn:hover,
.design-template-page .farm-action-btn:hover {
  border-color: #b8c7dc;
  background: #f8fbff;
}
.design-template-page .farm-warning-card {
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.design-template-page .farm-warning-card:hover {
  border-color: #f3b4ad;
  box-shadow: 0 8px 18px rgba(186, 26, 26, .10);
  transform: translateY(-1px);
}
.farm-warning-modal {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.farm-warning-summary {
  padding: 10px 12px;
  border: 1px solid #fee2e2;
  border-radius: 8px;
  background: #fef2f2;
  color: #7f1d1d;
  font-size: 13px;
}
.farm-warning-summary strong {
  font-family: var(--font-mono);
  font-size: 18px;
}
.farm-warning-modal table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}
.farm-warning-modal th,
.farm-warning-modal td {
  padding: 10px 12px;
  border-bottom: 1px solid #eef2f7;
  text-align: left;
  font-size: 13px;
}
.farm-warning-modal th {
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
}
.farm-warning-modal tbody tr:last-child td {
  border-bottom: 0;
}
.farm-warning-modal .warn-rate {
  color: #ba1a1a;
  font-weight: 800;
}
.farm-warning-empty {
  text-align: center !important;
  color: #64748b;
  padding: 24px 12px !important;
}
.detail-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e5e7eb;
}
.detail-actions .farm-detail-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.detail-actions .farm-detail-edit .material-symbols-outlined {
  font-size: 18px;
}
.design-template-page th:has(.farm-row-check),
.design-template-page td:has(.farm-row-check) {
  width: 48px;
  min-width: 48px;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  vertical-align: middle !important;
}
.design-template-page .replica-action-active {
  outline: 2px solid rgba(37, 99, 235, .28) !important;
  background: rgba(37, 99, 235, .08) !important;
  color: #004ac6 !important;
}
.design-template-page .material-symbols-outlined { font-family: 'Material Symbols Outlined'; font-weight: normal; font-style: normal; font-size: inherit; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; }

/* Driver management card replica */
.driver-card-workspace { box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 24px; background: #f6f8fc; min-height: calc(100vh - 64px); }
.driver-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.driver-summary-card { min-height: 112px; display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid; border-radius: 8px; background: #fff; transition: transform .18s ease, box-shadow .18s ease; }
.driver-summary-card:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(33, 53, 85, .10); }
.driver-summary-card > .material-symbols-outlined { width: 44px; height: 44px; border-radius: 8px; font-size: 23px; }
.driver-summary-card small { display: block; color: #64748b; font-size: 13px; margin-bottom: 8px; }
.driver-summary-card strong { color: #18233a; font-size: 28px; line-height: 1; font-family: var(--font-mono); }
.driver-summary-card em { margin-left: 4px; color: #64748b; font-size: 12px; font-style: normal; }
.driver-summary-card.primary { border-color: #cbdcff; }.driver-summary-card.primary > span { color: #165dff; background: #e9f0ff; }
.driver-summary-card.success { border-color: #bde8d0; }.driver-summary-card.success > span { color: #168052; background: #e7f8ee; }
.driver-summary-card.warning { border-color: #f6d7aa; }.driver-summary-card.warning > span { color: #c96b12; background: #fff3df; }
.driver-summary-card.violet { border-color: #dacdfd; }.driver-summary-card.violet > span { color: #7756d7; background: #f1edff; }
.driver-card-filter { display: grid; grid-template-columns: 1fr 1fr 180px auto; gap: 14px; align-items: end; padding: 18px 20px; margin-bottom: 20px; border: 1px solid #e2e8f0; border-radius: 8px; background: #fff; }
.driver-card-filter label { display: grid; gap: 7px; color: #64748b; font-size: 12px; font-weight: 700; }
.driver-card-filter input, .driver-card-filter select { width: 100%; height: 36px; border: 1px solid #d8e0eb; border-radius: 5px; padding: 0 10px; background: #fff; color: #1e293b; font-size: 13px; outline: none; }
.driver-card-filter input:focus, .driver-card-filter select:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .10); }
.driver-filter-buttons { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.driver-filter-buttons button { height: 36px; padding: 0 13px; border: 1px solid #d8e0eb; border-radius: 5px; background: #fff; color: #334155; font-size: 13px; font-weight: 700; cursor: pointer; }
.driver-filter-buttons button:first-child { display: inline-flex; align-items: center; gap: 5px; border-color: #1768e5; background: #1768e5; color: #fff; }.driver-filter-buttons button:first-child span { font-size: 17px; }
.driver-filter-buttons .driver-new-button { display: inline-flex; align-items: center; gap: 5px; border-color: #1768e5; color: #1768e5; }.driver-filter-buttons .driver-new-button span { font-size: 17px; }
.driver-profile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.driver-profile-card { min-height: 264px; padding: 20px; border: 1px solid #e1e7f0; border-radius: 8px; background: #fff; box-shadow: 0 2px 10px rgba(32, 53, 82, .04); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.driver-profile-card:hover { transform: translateY(-3px); border-color: #bcd2f6; box-shadow: 0 12px 26px rgba(32, 53, 82, .12); }
.driver-profile-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.driver-profile-person { display: flex; min-width: 0; gap: 13px; }
.driver-profile-avatar { display: grid; width: 58px; height: 58px; flex: 0 0 58px; overflow: hidden; place-items: center; border: 2px solid #e7edf6; border-radius: 50%; background: #e9f0ff; color: #1768e5; font-size: 22px; font-weight: 800; }.driver-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.driver-profile-person h3 { overflow: hidden; margin: 2px 0 4px; color: #1e293b; font-size: 17px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }.driver-profile-person p { margin: 0 0 7px; color: #94a3b8; font-size: 11px; font-family: var(--font-mono); }
.driver-license-tag { display: inline-block; max-width: 182px; overflow: hidden; padding: 3px 7px; border-radius: 4px; background: #edf3ff; color: #3d68bf; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.driver-work-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid; border-radius: 999px; font-size: 12px; font-weight: 700; }.driver-work-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.driver-work-status.idle { border-color: #bae4cb; background: #effbf3; color: #168052; }.driver-work-status.busy { border-color: #c7dafa; background: #eff5ff; color: #2868c7; }.driver-work-status.rest { border-color: #f2d7a5; background: #fff8e7; color: #b76b10; }.driver-work-status.disabled { border-color: #d8dde5; background: #f5f7fa; color: #7a8698; }
.driver-profile-info { display: grid; gap: 13px; margin: 24px 0 18px; color: #56677e; font-size: 13px; }.driver-profile-info > div { display: flex; align-items: center; gap: 9px; }.driver-profile-info > div > span { color: #8da0b8; font-size: 18px; }.driver-profile-info b { color: #35445a; font-size: 13px; }.driver-profile-info small { margin-left: 2px; color: #94a3b8; font-size: 11px; }.driver-profile-info .driver-star { color: #e7a126; font-variation-settings: 'FILL' 1; }
.driver-profile-actions { display: grid; grid-template-columns: 1fr 1fr 36px; gap: 8px; padding-top: 16px; border-top: 1px solid #edf1f6; }.driver-profile-actions button { display: inline-flex; height: 33px; align-items: center; justify-content: center; gap: 5px; border: 0; border-radius: 5px; background: #edf4ff; color: #2563ba; font-size: 12px; font-weight: 700; cursor: pointer; }.driver-profile-actions button:nth-child(2) { background: #edf1f6; color: #4c5b6f; }.driver-profile-actions button.danger { background: #fff1f2; color: #dd5260; }.driver-profile-actions button:hover { filter: brightness(.96); }.driver-profile-actions .material-symbols-outlined { font-size: 16px; }
.driver-card-empty { grid-column: 1 / -1; display: grid; min-height: 240px; place-content: center; justify-items: center; gap: 8px; border: 1px dashed #cbd5e1; border-radius: 8px; background: #fff; color: #64748b; }.driver-card-empty > span { color: #90a4c1; font-size: 42px; }.driver-card-empty strong { color: #475569; }.driver-card-empty small { font-size: 12px; }
.driver-card-pager { display: flex; align-items: center; justify-content: space-between; padding: 18px 0 4px; color: #64748b; font-size: 13px; }.driver-card-pager > div { display: flex; align-items: center; gap: 10px; }.driver-card-pager button { display: inline-grid; width: 31px; height: 31px; place-items: center; border: 1px solid #d8e0eb; border-radius: 5px; background: #fff; color: #475569; cursor: pointer; }.driver-card-pager button:disabled { cursor: not-allowed; opacity: .45; }.driver-card-pager button span { font-size: 19px; }
.driver-avatar-upload { display: flex; align-items: center; gap: 14px; }.driver-avatar-preview { display: grid; width: 68px; height: 68px; overflow: hidden; place-items: center; border: 2px solid #d9e5f7; border-radius: 50%; background: #edf4ff; color: #3776c8; }.driver-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }.driver-avatar-preview .material-symbols-outlined { font-size: 30px; }.driver-avatar-upload > div:last-of-type { display: grid; gap: 7px; }.driver-avatar-upload small { color: #94a3b8; font-size: 12px; }.driver-avatar-select { display: inline-flex; width: fit-content; align-items: center; gap: 6px; height: 32px; padding: 0 11px; border: 1px solid #bcd1f5; border-radius: 5px; background: #fff; color: #2466bd; font-size: 12px; font-weight: 700; cursor: pointer; }.driver-avatar-select .material-symbols-outlined { font-size: 16px; }
.design-template-page[data-route="drivers"] .contract-style-topbar .driver-create-entry-btn,
.design-template-page[data-route="drivers"] .driver-card-filter .route-batch-delete-btn { display: none !important; }

/* Match member management: no gray canvas behind the page content. */
.design-template-page[data-route="drivers"].contract-style-page,
.design-template-page[data-route="contracts"].contract-style-page,
.design-template-page[data-route="vehicles"].contract-style-page,
.design-template-page[data-route="drivers"],
.design-template-page[data-route="contracts"],
.design-template-page[data-route="vehicles"],
.design-template-page[data-route="drivers"].contract-style-page main,
.design-template-page[data-route="contracts"].contract-style-page main,
.design-template-page[data-route="vehicles"].contract-style-page main,
.design-template-page[data-route="drivers"] main,
.design-template-page[data-route="contracts"] main,
.design-template-page[data-route="vehicles"] main,
.design-template-page[data-route="contracts"].contract-style-page main > :not(.contract-style-topbar),
.design-template-page[data-route="vehicles"].contract-style-page main > :not(.contract-style-topbar) { background: #fff !important; }
.app-content:has(.design-template-page[data-route="drivers"]),
.app-content:has(.design-template-page[data-route="contracts"]),
.app-content:has(.design-template-page[data-route="vehicles"]) { background: #fff !important; }

/* Driver cards use the complete content width and a larger working scale. */
.design-template-page[data-route="drivers"] .driver-card-workspace { padding: 30px 22px 36px; background: #fff; }
.design-template-page[data-route="drivers"] .driver-summary-grid { gap: 20px; margin-bottom: 24px; }
.design-template-page[data-route="drivers"] .driver-summary-card { min-height: 132px; padding: 24px; gap: 18px; }
.design-template-page[data-route="drivers"] .driver-summary-card > .material-symbols-outlined { width: 50px; height: 50px; font-size: 26px; }
.design-template-page[data-route="drivers"] .driver-summary-card small { font-size: 14px; margin-bottom: 10px; }
.design-template-page[data-route="drivers"] .driver-summary-card strong { font-size: 32px; }
.design-template-page[data-route="drivers"] .driver-card-filter { grid-template-columns: 1.1fr 1.1fr 220px auto; gap: 18px; padding: 22px 24px; margin-bottom: 24px; }
.design-template-page[data-route="drivers"] .driver-card-filter label { gap: 8px; font-size: 13px; }
.design-template-page[data-route="drivers"] .driver-card-filter input,
.design-template-page[data-route="drivers"] .driver-card-filter select,
.design-template-page[data-route="drivers"] .driver-filter-buttons button { height: 42px; font-size: 14px; }
.design-template-page[data-route="drivers"] .driver-filter-buttons { gap: 10px; }
.design-template-page[data-route="drivers"] .driver-profile-grid { gap: 20px; }
.design-template-page[data-route="drivers"] .driver-profile-card { min-height: 294px; padding: 24px; }
.design-template-page[data-route="drivers"] .driver-profile-avatar { width: 64px; height: 64px; flex-basis: 64px; font-size: 24px; }
.design-template-page[data-route="drivers"] .driver-profile-person h3 { font-size: 18px; }
.design-template-page[data-route="drivers"] .driver-profile-info { gap: 15px; margin: 28px 0 22px; font-size: 14px; }
.design-template-page[data-route="drivers"] .driver-profile-info b { font-size: 14px; }
.design-template-page[data-route="drivers"] .driver-profile-actions { grid-template-columns: 1fr 1fr 40px; gap: 10px; padding-top: 18px; }
.design-template-page[data-route="drivers"] .driver-profile-actions button { height: 38px; font-size: 13px; }
.design-template-page[data-route="drivers"] .driver-card-pager { padding-top: 22px; font-size: 14px; }

/* Match the farm management light gray-blue working canvas. */
#appView.replica-mode .app-content:has(.design-template-page[data-route="drivers"]),
#appView.replica-mode .app-content:has(.design-template-page[data-route="contracts"]),
#appView.replica-mode .app-content:has(.design-template-page[data-route="vehicles"]),
#appView.replica-mode .app-content:has(.design-template-page[data-route="drivers"]) .design-template-page,
#appView.replica-mode .app-content:has(.design-template-page[data-route="contracts"]) .design-template-page,
#appView.replica-mode .app-content:has(.design-template-page[data-route="vehicles"]) .design-template-page,
.design-template-page[data-route="drivers"] main,
.design-template-page[data-route="contracts"] main,
.design-template-page[data-route="vehicles"] main,
.design-template-page[data-route="drivers"] .driver-card-workspace {
  background: #f5f7fb !important;
}
.design-template-page[data-route="drivers"].contract-style-page main,
.design-template-page[data-route="vehicles"].contract-style-page main {
  background: #f5f7fb !important;
}

/* The driver workspace now matches the larger visual scale of the management header. */
.design-template-page[data-route="drivers"] main,
.design-template-page[data-route="vehicles"] main { padding-left: 0 !important; padding-right: 0 !important; }
.design-template-page[data-route="drivers"] .driver-card-workspace { padding-left: 0; padding-right: 0; }
.design-template-page[data-route="drivers"] .driver-summary-card { min-height: 144px; padding: 26px; }
.design-template-page[data-route="drivers"] .driver-summary-card > .material-symbols-outlined { width: 54px; height: 54px; font-size: 28px; }
.design-template-page[data-route="drivers"] .driver-summary-card strong { font-size: 34px; }
.design-template-page[data-route="drivers"] .driver-profile-card { min-height: 316px; padding: 26px; }
.design-template-page[data-route="drivers"] .driver-profile-avatar { width: 68px; height: 68px; flex-basis: 68px; font-size: 25px; }
.design-template-page[data-route="drivers"] .driver-profile-person h3 { font-size: 19px; }
.design-template-page[data-route="drivers"] .driver-profile-info { gap: 16px; margin: 30px 0 24px; font-size: 15px; }
.design-template-page[data-route="drivers"] .driver-profile-info b { font-size: 15px; }
.design-template-page[data-route="drivers"] .driver-profile-actions button { height: 40px; font-size: 14px; }
@media (max-width: 1080px) { .driver-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.driver-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.driver-card-filter { grid-template-columns: 1fr 1fr; }.driver-filter-buttons { justify-content: flex-start; } }
@media (max-width: 680px) { .driver-card-workspace { padding: 14px; }.driver-summary-grid, .driver-profile-grid, .driver-card-filter { grid-template-columns: 1fr; }.driver-filter-buttons { flex-wrap: wrap; }.driver-card-pager { align-items: flex-start; gap: 12px; flex-direction: column; } }

/* 检测记录详情：按检测详情参考稿的指标卡与信息层级呈现。 */
.ds-modal.detection-detail-modal{z-index:340;padding:16px;background:rgba(23,28,37,.40);backdrop-filter:blur(4px)}
.ds-modal.detection-detail-modal .box.wide{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden;border:1px solid var(--ui-color-line);border-radius:12px;background:#fff;box-shadow:0 24px 64px rgba(23,28,37,.24)}
.ds-modal.detection-detail-modal .head{min-height:82px;padding:14px 24px;border-bottom:1px solid var(--ui-color-line-soft);background:var(--ui-color-surface-subtle)}
.ds-modal.detection-detail-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;color:var(--ui-color-ink)}
.ds-modal.detection-detail-modal .head h3>.material-symbols-outlined{color:var(--ui-color-brand);font-size:24px;font-variation-settings:'FILL' 1}
.detection-detail-title-text{display:flex;min-width:0;flex-direction:column;gap:3px}.detection-detail-title-text b{font-size:18px;line-height:24px;font-weight:700}.detection-detail-title-text small{overflow:hidden;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:12px;line-height:18px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.ds-modal.detection-detail-modal .close{width:36px;height:36px;padding:0;border-radius:999px;color:var(--ui-color-muted)}.ds-modal.detection-detail-modal .close:hover{background:var(--ui-color-line-soft);color:#ff4d4f}
.ds-modal.detection-detail-modal .body{padding:0;background:#fff}.ds-modal.detection-detail-modal .detail-body{max-height:calc(100vh - 114px);overflow-y:auto;padding:0}
.detection-detail-content{display:flex;flex-direction:column;gap:16px;padding:24px}.detection-metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detection-metric{position:relative;min-width:0;padding:16px;border:1px solid rgba(0,87,193,.06);border-radius:8px;background:var(--ui-color-canvas)}.detection-metric>span{display:block;overflow:hidden;padding-right:28px;color:var(--ui-color-muted);font-size:13px;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.detection-metric>i{position:absolute;top:16px;right:16px;color:rgba(0,87,193,.60);font-size:20px}.detection-metric strong{display:inline-block;overflow:hidden;max-width:calc(100% - 26px);margin-top:8px;color:var(--ui-color-brand);font-family:var(--font-mono);font-size:26px;line-height:32px;font-weight:800;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap}.detection-metric em{margin-left:4px;color:var(--ui-color-muted);font-size:13px;font-style:normal;font-weight:500}
.detection-detail-panel{padding:16px;border:1px solid var(--ui-color-line-soft);border-radius:8px;background:var(--ui-color-surface-subtle)}.detection-detail-rows{display:flex;flex-direction:column}.detection-detail-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 0 11px;margin-bottom:11px;border-bottom:1px solid rgba(239,240,241,.9)}.detection-detail-row:last-child{margin-bottom:0}.detection-detail-row span,.detection-remark>span{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ui-color-muted);font-size:13px;line-height:20px}.detection-detail-row span i,.detection-remark>span i{flex:0 0 auto;color:var(--ui-color-muted);font-size:18px}.detection-detail-row strong{overflow:hidden;color:var(--ui-color-ink);font-family:var(--font-mono);font-size:13px;line-height:20px;font-weight:600;text-align:right;text-overflow:ellipsis;white-space:nowrap}.detection-remark{display:flex;flex-direction:column;gap:8px;margin-top:16px}.detection-remark p{min-height:46px;margin:0;padding:11px 12px;border:1px solid rgba(216,218,222,.65);border-radius:8px;background:var(--ui-color-hover);color:var(--ui-color-text);font-size:14px;line-height:22px;white-space:pre-wrap;word-break:break-word}
@media (max-width:640px){.ds-modal.detection-detail-modal{padding:8px}.ds-modal.detection-detail-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.detection-detail-modal .head{min-height:72px;padding:12px 16px}.detection-detail-content{padding:18px 16px}.detection-metrics-grid{grid-template-columns:1fr;gap:10px}.detection-metric{padding:14px}.detection-metric>i{top:14px;right:14px}.detection-detail-row{align-items:flex-start;flex-direction:column;gap:4px}.detection-detail-row strong{text-align:left;white-space:normal}}

/* 检测记录录入：按检测数据录入参考稿重构，保留原有表单字段与提交逻辑。 */
.ds-modal.detection-entry-modal{z-index:340;padding:16px;background:rgba(23,28,37,.40);backdrop-filter:blur(4px)}
.ds-modal.detection-entry-modal .box.wide{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);border:1px solid var(--ui-color-line);border-radius:16px;background:#fff;box-shadow:0 24px 64px rgba(23,28,37,.24)}
.ds-modal.detection-entry-modal .head{position:relative;min-height:88px;padding:18px 32px;border-bottom:1px solid rgba(239,240,241,.75);background:#fff}.ds-modal.detection-entry-modal .head::before{position:absolute;top:0;right:0;left:0;height:4px;background:var(--ui-color-brand-light);content:""}
.ds-modal.detection-entry-modal .head h3{margin:0;color:var(--ui-color-ink)}.detection-entry-title-text{display:flex;flex-direction:column;gap:2px}.detection-entry-title-text b{font-size:20px;line-height:28px;font-weight:700}.detection-entry-title-text small{color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:600;letter-spacing:.08em}.ds-modal.detection-entry-modal .close{width:40px;height:40px;padding:0;border-radius:999px;color:var(--ui-color-muted)}.ds-modal.detection-entry-modal .close:hover{background:var(--ui-color-hover);color:var(--ui-color-ink)}
.ds-modal.detection-entry-modal .body{padding:0;background:#fff}.ds-modal.detection-entry-modal .foot{display:none!important}.resource-form.detection-entry-form{display:flex;flex-direction:column;gap:0;width:100%}.detection-entry-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;max-height:calc(100vh - 212px);overflow-y:auto;padding:32px;background:#fff}.detection-entry-number,.detection-entry-full{grid-column:1 / -1}.detection-entry-number{padding:18px 20px;border:1px solid rgba(114,119,133,.16);border-radius:12px;background:rgba(240,243,255,.68)}.detection-entry-number span{display:block;margin-bottom:7px;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700;letter-spacing:.10em}.detection-entry-number strong{display:block;color:var(--ui-color-brand);font-family:var(--font-mono);font-size:18px;line-height:26px;font-weight:800}
.detection-entry-meta-grid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px}.detection-entry-meta-grid .detection-entry-field input[readonly]{background:var(--ui-color-canvas)!important;color:var(--ui-color-text)!important;cursor:not-allowed}
.detection-entry-grid{display:contents}.detection-entry-field{display:flex!important;min-width:0;flex-direction:column;gap:8px;margin:0!important}.detection-entry-field>span{display:flex;align-items:center;gap:6px;color:var(--ui-color-text);font-size:13px;line-height:20px;font-weight:700}.detection-entry-field>span i{color:rgba(0,87,193,.70);font-size:18px}.detection-entry-field>span b{color:#ba1a1a;font-size:14px}.detection-entry-field input,.detection-entry-field textarea{width:100%;border:1px solid rgba(216,218,222,.85)!important;border-radius:12px!important;background:#fff!important;color:var(--ui-color-ink)!important;font-size:14px!important;font-weight:600!important}.detection-entry-field input{height:48px;padding:0 14px!important}.detection-entry-field textarea{min-height:94px;padding:13px 14px!important;resize:vertical}.detection-entry-field input:focus,.detection-entry-field textarea:focus{border-color:var(--ui-color-brand-light)!important;box-shadow:0 0 0 3px rgba(63,133,255,.12)!important}.detection-entry-field input[readonly]{background:var(--ui-color-canvas)!important;color:var(--ui-color-text)!important;cursor:not-allowed}.detection-date-wrap{position:relative}.detection-date-wrap input{padding-right:48px!important}.detection-date-wrap>i{position:absolute;top:50%;right:15px;transform:translateY(-50%);color:var(--ui-color-muted);font-size:20px;pointer-events:none}
.detection-entry-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:20px 32px;border-top:1px solid rgba(239,240,241,.75);background:rgba(240,243,255,.30)}.detection-entry-actions button{height:42px;border:0;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.detection-entry-cancel{min-width:84px;background:transparent;color:var(--ui-color-text)}.detection-entry-cancel:hover{background:var(--ui-color-hover)}.detection-entry-save{display:inline-flex;align-items:center;gap:8px;min-width:156px;padding:0 22px;background:#1e6fe9;color:#fff;box-shadow:0 4px 14px rgba(63,133,255,.39)}.detection-entry-save:hover{filter:brightness(1.08)}.detection-entry-save:disabled{cursor:wait;opacity:.7}.detection-entry-save .material-symbols-outlined{font-size:18px;font-variation-settings:'FILL' 1}
@media(max-width:640px){.ds-modal.detection-entry-modal{padding:8px}.ds-modal.detection-entry-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.detection-entry-modal .head{min-height:76px;padding:16px 20px}.detection-entry-title-text b{font-size:18px}.detection-entry-body{grid-template-columns:1fr;gap:18px;max-height:calc(100vh - 190px);padding:22px 20px}.detection-entry-number,.detection-entry-full{grid-column:auto}.detection-entry-meta-grid{grid-template-columns:1fr;gap:18px}.detection-entry-actions{padding:16px 20px;gap:10px}.detection-entry-actions button{flex:1}.detection-entry-save{min-width:0;justify-content:center;padding:0 12px}}

/* 称重记录详情：按称重详情参考稿的重量指标与佐证信息布局呈现。 */
.ds-modal.weighing-detail-modal{z-index:340;padding:16px;background:rgba(23,28,37,.40);backdrop-filter:blur(4px)}
.ds-modal.weighing-detail-modal .box.wide{width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden;border:1px solid var(--ui-color-line);border-radius:12px;background:#fff;box-shadow:0 24px 64px rgba(23,28,37,.24)}
.ds-modal.weighing-detail-modal .head{position:relative;min-height:82px;padding:14px 32px;border-bottom:1px solid var(--ui-color-line-soft);background:#fff}.ds-modal.weighing-detail-modal .head::before{position:absolute;top:0;right:0;left:0;height:4px;background:var(--ui-color-brand);content:""}.ds-modal.weighing-detail-modal .head h3{display:flex;align-items:center;gap:12px;margin:0;color:var(--ui-color-ink)}.ds-modal.weighing-detail-modal .head h3>.material-symbols-outlined{color:var(--ui-color-brand);font-size:24px;font-variation-settings:'FILL' 1}.weighing-detail-title-text{display:flex;flex-direction:column;gap:2px}.weighing-detail-title-text b{font-size:20px;line-height:28px;font-weight:700}.weighing-detail-title-text small{color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:600;letter-spacing:.08em}.ds-modal.weighing-detail-modal .close{width:40px;height:40px;padding:0;border-radius:999px;color:var(--ui-color-muted)}.ds-modal.weighing-detail-modal .close:hover{background:var(--ui-color-hover);color:var(--ui-color-ink)}
.ds-modal.weighing-detail-modal .body{padding:0;background:#fff}.ds-modal.weighing-detail-modal .detail-body{max-height:calc(100vh - 114px);overflow-y:auto;padding:0}.weighing-detail-content{display:flex;flex-direction:column;gap:28px;padding:32px}.weighing-detail-number{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--ui-color-line-soft);border-radius:8px;background:var(--ui-color-canvas)}.weighing-detail-number span{display:block;margin-bottom:4px;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700;letter-spacing:.08em}.weighing-detail-number strong{display:block;color:var(--ui-color-brand);font-family:var(--font-mono);font-size:17px;line-height:24px;font-weight:800}
.weighing-metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.weighing-metric{display:flex;align-items:center;gap:14px;min-width:0;padding:20px;border:1px solid var(--ui-color-line-soft);border-radius:12px;background:#fff;box-shadow:0 2px 6px rgba(23,28,37,.04)}.weighing-metric>i{display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center;border-radius:8px;font-size:25px}.weighing-metric.gross>i{background:#eff6ff;color:var(--ui-color-brand)}.weighing-metric.tare>i{background:#fff7ed;color:#d97706}.weighing-metric.net>i{background:#f0fdf4;color:#00873a}.weighing-metric div{min-width:0}.weighing-metric span{display:block;color:var(--ui-color-muted);font-size:13px;line-height:20px}.weighing-metric strong{display:block;overflow:hidden;margin-top:3px;color:var(--ui-color-ink);font-family:var(--font-mono);font-size:25px;line-height:32px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.weighing-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--ui-color-line-soft);padding-top:26px}.weighing-detail-info>div{display:flex;flex-direction:column;gap:18px}.weighing-detail-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:8px;border-bottom:1px dashed var(--ui-color-line)}.weighing-detail-row span{color:var(--ui-color-muted);font-size:13px;line-height:20px}.weighing-detail-row strong{overflow:hidden;color:var(--ui-color-ink);font-size:14px;line-height:20px;font-weight:700;text-align:right;text-overflow:ellipsis;white-space:nowrap}.weighing-detail-row strong.is-plate{padding:2px 8px;border-radius:4px;background:var(--ui-color-hover);font-family:var(--font-mono);font-size:13px}.weighing-detail-row strong.is-time{font-family:var(--font-mono);font-size:13px}.weighing-detail-row strong.is-muted{color:var(--ui-color-muted);font-weight:500;font-style:italic}
.weighing-evidence-section{display:flex;flex-direction:column;gap:14px}.weighing-evidence-section>div:first-child{display:flex;align-items:center;gap:8px}.weighing-evidence-section>div:first-child .material-symbols-outlined{color:var(--ui-color-brand);font-size:20px}.weighing-evidence-section h4{margin:0;color:var(--ui-color-ink);font-size:16px;line-height:24px;font-weight:700}.weighing-evidence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.weighing-evidence-item,.weighing-evidence-empty{display:grid;min-height:118px;place-items:center;overflow:hidden;border-radius:8px;background:var(--ui-color-canvas)}.weighing-evidence-item{border:1px solid var(--ui-color-line-soft)}.weighing-evidence-item:hover{border-color:var(--ui-color-brand);box-shadow:0 0 0 2px rgba(0,87,193,.12)}.weighing-evidence-item img{width:100%;height:100%;object-fit:cover}.weighing-evidence-empty{grid-column:1 / -1;border:2px dashed #c2c6d6;color:var(--ui-color-muted)}.weighing-evidence-empty .material-symbols-outlined{font-size:30px}.weighing-evidence-empty small{font-size:13px}.weighing-detail-actions{display:flex;justify-content:flex-end;padding:18px 32px;border-top:1px solid var(--ui-color-line-soft);background:#fff}.weighing-detail-actions button{display:inline-flex;align-items:center;gap:8px;height:42px;border:0;border-radius:8px;padding:0 22px;background:var(--ui-color-brand);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(0,87,193,.24)}.weighing-detail-actions button:hover{background:#004397}.weighing-detail-actions .material-symbols-outlined{font-size:18px}
@media(max-width:680px){.ds-modal.weighing-detail-modal{padding:8px}.ds-modal.weighing-detail-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.weighing-detail-modal .head{min-height:74px;padding:14px 20px}.weighing-detail-title-text b{font-size:18px}.weighing-detail-content{gap:22px;padding:22px 20px}.weighing-metrics-grid,.weighing-detail-info{grid-template-columns:1fr;gap:12px}.weighing-detail-info{gap:14px;padding-top:20px}.weighing-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weighing-detail-actions{padding:14px 20px}.weighing-detail-actions button{width:100%;justify-content:center}}

.dashboard-template-map{z-index:0!important}.dashboard-map-legend-card{z-index:50!important;min-width:196px;pointer-events:auto}.dashboard-map-legend-card>div{grid-template-columns:22px minmax(0,1fr) auto 24px}.map-legend-toggle{display:grid;width:24px;height:24px;padding:0;place-items:center;border:0;border-radius:5px;background:transparent;color:#53708f;cursor:pointer;pointer-events:auto;transition:background .16s ease,color .16s ease}.map-legend-toggle:hover{background:#eaf1fb;color:#1e65be}.map-legend-toggle.is-hidden{color:#9ba9b8}.map-legend-toggle .material-symbols-outlined{font-size:17px;line-height:1}.dashboard-map-fullscreen-open{overflow:hidden}.is-dashboard-map-fullscreen{position:fixed!important;inset:0!important;z-index:10000!important;display:flex!important;width:100vw!important;height:100vh!important;flex-direction:column!important;margin:0!important;border:0!important;border-radius:0!important;background:#fff!important}.is-dashboard-map-fullscreen [data-dashboard-map-body]{display:block!important;height:calc(100vh - 65px)!important;min-height:0!important;flex:1!important}.is-dashboard-map-fullscreen #trendChart,.is-dashboard-map-fullscreen #dashboardFarmMap{height:100%!important}[data-dashboard-map-panel]:fullscreen{display:flex;width:100vw;height:100vh;flex-direction:column;border:0!important;border-radius:0!important;background:#fff}[data-dashboard-map-panel]:fullscreen [data-dashboard-map-body]{display:block!important;height:calc(100vh - 65px)!important;min-height:0;flex:1}[data-dashboard-map-panel]:fullscreen #trendChart,[data-dashboard-map-panel]:fullscreen #dashboardFarmMap{height:100%!important}

.dashboard-map-top-info{display:inline-flex;min-width:0;align-items:center;overflow:hidden;margin-left:8px;padding-left:12px;border-left:1px solid #cfd8e6;color:#5a6a80;font-family:var(--font-mono);font-size:12px;line-height:20px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.dashboard-map-top-info.is-selected{color:#1e4d8d}

/* 全部业务页与猪场/会员管理共用同一条侧栏右侧内容线。 */
.dispatch-live-workspace .template-dynamic-pager{display:none!important}
#appView.replica-mode .design-template-page>main{padding-left:16px!important;padding-right:16px!important}
#appView.replica-mode .design-template-page>main>div[class*="p-"],#appView.replica-mode .design-template-page>main>section[class*="p-"]{padding-left:0!important;padding-right:0!important}
#staffView.settings-reference-view{padding-left:16px!important;padding-right:16px!important}

/* Seedling history dialog reference update */
.seedling-history-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(11,28,48,.20);backdrop-filter:blur(4px);animation:seedlingHistoryFade .16s ease-out}.seedling-history-dialog{width:min(900px,100%);max-height:min(720px,calc(100vh - 40px));display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(194,198,214,.72);border-radius:8px;background:#fff;box-shadow:0 24px 64px rgba(15,23,42,.22);animation:seedlingHistoryEnter .18s ease-out}.seedling-history-stripe{height:4px;flex:0 0 4px;background:var(--ui-color-brand)}.seedling-history-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 24px 14px;border-bottom:1px solid #e3e7ef;background:#fff}.seedling-history-dialog h3{margin:0;color:#0b1c30;font-size:20px;line-height:28px;font-weight:700}.seedling-history-dialog header p{margin:4px 0 0;color:#687386;font-size:13px;line-height:20px}.seedling-history-dialog header button{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:0;border-radius:50%;background:transparent;color:#5a6473;cursor:pointer}.seedling-history-dialog header button:hover{background:#e5eeff;color:var(--ui-color-brand)}.seedling-history-dialog header button:focus-visible,.seedling-history-operation button:focus-visible,.seedling-history-dialog footer button:focus-visible{outline:2px solid var(--ui-color-brand);outline-offset:2px}.seedling-history-dialog header .material-symbols-outlined{font-size:20px}.seedling-history-body{min-height:0;overflow:auto;padding:22px 24px 20px;background:#fff}.seedling-history-table-wrap{overflow-x:auto;border:1px solid rgba(194,198,214,.7);border-radius:8px;box-shadow:0 2px 5px rgba(15,23,42,.06)}.seedling-history-dialog table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}.seedling-history-dialog th{padding:13px 16px;background:#eff4ff;color:var(--ui-color-text);font-size:13px;line-height:20px;font-weight:700;white-space:nowrap}.seedling-history-dialog td{padding:14px 16px;border-top:1px solid rgba(194,198,214,.38);color:#25354a;font-size:14px;line-height:20px;vertical-align:middle}.seedling-history-dialog tbody tr{transition:background .16s ease}.seedling-history-dialog tbody tr:hover{background:rgba(0,87,193,.045)}.seedling-history-date,.seedling-history-batch{font-family:var(--font-mono);font-size:13px!important}.seedling-history-batch{color:#40526e!important}.seedling-history-quantity{font-family:var(--font-mono);color:#0b1c30!important;font-weight:600}.seedling-history-operation{text-align:right}.seedling-history-operation button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;border:0;border-radius:4px;background:var(--ui-color-brand);padding:0 10px;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:background .16s ease,transform .16s ease}.seedling-history-operation button:hover{background:#1e6fe9;transform:translateY(-1px)}.seedling-history-operation .material-symbols-outlined{font-size:16px}.seedling-history-summary{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.seedling-history-summary span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(194,198,214,.68);border-radius:999px;background:#e5eeff;padding:7px 12px;color:#4d5e81;font-size:13px;line-height:20px}.seedling-history-summary i{color:var(--ui-color-brand);font-size:18px;font-style:normal}.seedling-history-summary span+span i,.seedling-history-summary span+span b{color:#00855b}.seedling-history-summary b{color:var(--ui-color-brand);font-weight:800}.seedling-history-dialog footer{display:flex;justify-content:flex-end;gap:12px;padding:14px 24px;border-top:1px solid #e3e7ef;background:#eff4ff}.seedling-history-dialog footer button{height:38px;border-radius:8px;padding:0 20px;font-size:14px;font-weight:700;cursor:pointer}.seedling-history-export{display:inline-flex;align-items:center;gap:6px;border:1px solid #727785;background:#fff;color:#293a52}.seedling-history-export:hover{background:#dce9ff}.seedling-history-export .material-symbols-outlined{font-size:17px}.seedling-history-complete{min-width:100px;border:0;background:var(--ui-color-brand);color:#fff;box-shadow:0 3px 10px rgba(0,87,193,.20)}.seedling-history-complete:hover{background:#004397}@keyframes seedlingHistoryFade{from{opacity:0}to{opacity:1}}@keyframes seedlingHistoryEnter{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:680px){.seedling-history-modal{padding:10px}.seedling-history-dialog{max-height:calc(100vh - 20px)}.seedling-history-dialog header{padding:14px 18px 12px}.seedling-history-dialog h3{font-size:18px;line-height:26px}.seedling-history-body{padding:16px}.seedling-history-summary{gap:8px;margin-top:14px}.seedling-history-summary span{font-size:12px}.seedling-history-dialog footer{padding:12px 18px}.seedling-history-dialog footer button{flex:1;padding:0 10px}}

/* Keep the reference dialog stable while legacy seedling rules remain below. */
.seedling-history-modal{z-index:1200!important;padding:20px!important;background:rgba(11,28,48,.20)!important;backdrop-filter:blur(4px)!important}.seedling-history-dialog{width:min(900px,100%)!important;max-height:min(720px,calc(100vh - 40px))!important;display:flex!important;flex-direction:column!important;border-color:rgba(194,198,214,.72)!important}.seedling-history-dialog h3{color:#0b1c30!important;font-size:20px!important;line-height:28px!important}.seedling-history-dialog header{align-items:flex-start!important;padding:16px 24px 14px!important;border-bottom-color:#e3e7ef!important}.seedling-history-dialog header p{margin-top:4px!important;color:#687386!important;font-size:13px!important;line-height:20px!important}.seedling-history-dialog header button{width:36px!important;height:36px!important;flex-basis:36px!important;color:#5a6473!important}.seedling-history-body{min-height:0!important;max-height:none!important;overflow:auto!important;padding:22px 24px 20px!important}.seedling-history-body table{min-width:720px!important}.seedling-history-dialog th{padding:13px 16px!important;background:#eff4ff!important;color:var(--ui-color-text)!important;font-size:13px!important;line-height:20px!important}.seedling-history-dialog td{padding:14px 16px!important;border-top-color:rgba(194,198,214,.38)!important;color:#25354a!important;font-size:14px!important;line-height:20px!important}@media(max-width:680px){.seedling-history-modal{padding:10px!important}.seedling-history-dialog{max-height:calc(100vh - 20px)!important}.seedling-history-dialog header{padding:14px 18px 12px!important}.seedling-history-dialog h3{font-size:18px!important;line-height:26px!important}.seedling-history-body{padding:16px!important}.seedling-history-dialog footer{padding:12px 18px!important}.seedling-history-dialog footer button{flex:1!important;padding:0 10px!important}}

/* Seedling management */
#seedlingsView{min-height:100%;background:#f5f7fb}.seedling-loading{min-height:320px;display:grid;place-items:center;color:#62718a;font-size:14px}.seedling-loading.is-error{color:#c62828}.seedling-management-page{min-height:100vh;background:#f5f7fb}.seedling-page-topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #cfd6e6;background:#fff}.seedling-page-topbar h2{margin:0;color:#004ac6;font-size:20px;line-height:28px;font-weight:800}.seedling-page-topbar button{height:34px;display:inline-flex;align-items:center;gap:5px;border:0;border-radius:7px;background:#004ac6;color:#fff;padding:0 14px;font-size:13px;font-weight:700;cursor:pointer}.seedling-page-topbar button:hover{background:#003eaa}.seedling-page-topbar .material-symbols-outlined{font-size:17px}.seedling-workspace{padding:24px 16px 32px}.seedling-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.seedling-metric{position:relative;min-height:112px;overflow:hidden;border:1px solid #dbe3f0;border-radius:8px;background:#fff;padding:18px 20px;cursor:default;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.seedling-metric:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(15,23,42,.12)}.seedling-metric span{display:block;color:#55657d;font-size:13px}.seedling-metric strong{display:block;margin-top:7px;color:#12213c;font-family:var(--font-mono);font-size:27px;line-height:32px}.seedling-metric strong em{margin-left:4px;color:#64748b;font-family:inherit;font-size:12px;font-style:normal;font-weight:600}.seedling-metric small{display:block;margin-top:7px;color:#7a879b;font-size:11px}.seedling-metric>i{position:absolute;top:24px;right:18px;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;font-size:20px;transition:transform .18s ease}.seedling-metric:hover>i{transform:scale(1.1)}.seedling-metric.blue>i{background:#e8f0ff;color:#1557d6}.seedling-metric.orange>i{background:#fff2de;color:#c86a00}.seedling-metric.green>i{background:#e5f5f2;color:#07816f}.seedling-metric.purple>i{background:#f1ebff;color:#7251b5}.seedling-metric.blue:hover{border-color:#7da9ff}.seedling-metric.orange:hover{border-color:#e6b26c}.seedling-metric.green:hover{border-color:#75c9a6}.seedling-metric.purple:hover{border-color:#b5a0df}.seedling-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,1fr);gap:16px;align-items:start}.seedling-list-column{min-width:0}.seedling-filters,.seedling-table-card,.seedling-map-card{border:1px solid #dbe3f0;border-radius:8px;background:#fff}.seedling-filters{display:grid;grid-template-columns:1.6fr repeat(3,minmax(130px,1fr)) auto;gap:12px;align-items:end;padding:16px;margin-bottom:16px}.seedling-filters label{display:grid;gap:6px;color:#53627b;font-size:12px;font-weight:700}.seedling-filters input,.seedling-filters select{width:100%;height:36px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:0 10px;color:#17233a;font-size:13px;outline:none}.seedling-filters input:focus,.seedling-filters select:focus{border-color:#1457d6;box-shadow:0 0 0 2px rgba(20,87,214,.10)}.seedling-filter-actions{display:flex;gap:8px}.seedling-filter-actions button{height:36px;border:1px solid #c5d0e1;border-radius:6px;background:#fff;padding:0 14px;color:#40526e;font-size:13px;font-weight:700;cursor:pointer}.seedling-filter-actions button:last-child{border-color:#1457d6;background:#1457d6;color:#fff}.seedling-table-card{overflow:hidden}.seedling-table-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e2e8f0;background:#f7f9fd}.seedling-table-head h3{display:flex;align-items:center;gap:7px;margin:0;color:#14213a;font-size:16px}.seedling-table-head h3 .material-symbols-outlined{color:#1457d6;font-size:19px}.seedling-table-head button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:#1457d6;font-size:13px;font-weight:700;cursor:pointer}.seedling-table-head button .material-symbols-outlined{font-size:16px}.seedling-table-scroll{overflow-x:auto}.seedling-table-card table{width:100%;min-width:940px;border-collapse:collapse}.seedling-table-card th{padding:12px 14px;border-bottom:1px solid #d9e2ef;background:#f0f5ff;color:#29415f;font-size:12px;text-align:left}.seedling-table-card td{padding:13px 14px;border-bottom:1px solid #e7edf5;color:#33445f;font-size:13px;vertical-align:middle}.seedling-table-card tr:last-child td{border-bottom:0}.seedling-table-card tbody tr:hover{background:#f6f9ff}.seedling-table-card td strong{display:block;color:#17233a;font-size:13px}.seedling-table-card td small{display:block;margin-top:3px;color:#8090a7;font-size:11px}.seedling-code{color:#1457d6!important;font-family:var(--font-mono);font-weight:800}.seedling-quantity{color:#1457d6!important;font-family:var(--font-mono);font-size:14px!important;font-weight:800}.align-right{text-align:right!important}.seedling-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.seedling-status.active{background:#e8f0ff;color:#1557d6}.seedling-status.recorded{background:#e5f5f2;color:#07816f}.seedling-status.pending{background:#eff2f7;color:#66758d}.seedling-status.paused{background:#f1f3f5;color:#7b8798}.seedling-entry-btn,.seedling-history-btn{height:28px;border-radius:5px;padding:0 9px;font-size:12px;font-weight:700;cursor:pointer}.seedling-entry-btn{margin-left:7px;border:0;background:#1457d6;color:#fff}.seedling-entry-btn:hover{background:#0e45ac}.seedling-history-btn{border:1px solid #bfcce0;background:#fff;color:#40526e}.seedling-history-btn:hover{border-color:#1457d6;color:#1457d6}.seedling-empty{padding:38px!important;color:#8290a4!important;text-align:center}.seedling-pager{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid #e2e8f0;background:#f8fafc;color:#71809a;font-size:12px}.seedling-pager>div{display:flex;align-items:center;gap:8px}.seedling-pager button{display:inline-grid;width:28px;height:28px;place-items:center;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#43526b;cursor:pointer}.seedling-pager button:disabled{cursor:not-allowed;opacity:.42}.seedling-pager .material-symbols-outlined{font-size:17px}.seedling-pager b{color:#40526e;font-family:var(--font-mono);font-size:12px}.seedling-map-card{position:relative;display:flex;min-height:590px;overflow:hidden;flex-direction:column}.seedling-map-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e2e8f0}.seedling-map-head h3{display:flex;align-items:center;gap:7px;margin:0;color:#14213a;font-size:16px}.seedling-map-head h3 .material-symbols-outlined{color:#1457d6;font-size:19px}.seedling-map-head>span{display:flex;align-items:center;gap:5px;color:#07816f;font-size:11px;font-weight:700}.seedling-map-head>span i{width:7px;height:7px;border-radius:50%;background:#138a5c}.seedling-operation-map{min-height:426px;flex:1;background:#eaf1ff}.seedling-map-legend{position:absolute;top:66px;right:14px;z-index:5;display:grid;gap:7px;padding:10px;border:1px solid rgba(207,217,234,.9);border-radius:7px;background:rgba(255,255,255,.93);box-shadow:0 3px 10px rgba(15,23,42,.10)}.seedling-map-legend span{display:flex;align-items:center;gap:6px;color:#40526e;font-size:11px;font-weight:700}.seedling-map-legend i{width:8px;height:8px;border-radius:50%}.seedling-map-legend i.active{background:#2563eb}.seedling-map-legend i.recorded{background:#138a5c}.seedling-map-legend i.pending{background:#71809a}.seedling-map-card>p{min-height:18px;margin:0;padding:11px 16px;border-top:1px solid #e2e8f0;color:#71809a;font-size:12px;line-height:18px}.seedling-map-expand{height:38px;margin:0 16px 16px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#1457d6;font-size:12px;font-weight:700;cursor:pointer}.seedling-map-expand .material-symbols-outlined{margin-right:4px;font-size:16px;vertical-align:-3px}.seedling-map-card.is-expanded{position:fixed;z-index:180;inset:22px;min-height:0}.seedling-map-card.is-expanded .seedling-operation-map{min-height:0}.seedling-history-modal{position:fixed;z-index:360;inset:0;display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.42);backdrop-filter:blur(3px)}.seedling-history-dialog{width:min(820px,calc(100vw - 48px));overflow:hidden;border:1px solid #d5deec;border-radius:8px;background:#fff;box-shadow:0 24px 64px rgba(15,23,42,.24)}.seedling-history-dialog header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.seedling-history-dialog h3{margin:0;color:#14213a;font-size:17px}.seedling-history-dialog p{margin:4px 0 0;color:#71809a;font-size:12px}.seedling-history-dialog header button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:50%;background:transparent;color:#71809a;cursor:pointer}.seedling-history-dialog header button:hover{background:#eaf1ff;color:#1457d6}.seedling-history-dialog header .material-symbols-outlined{font-size:19px}.seedling-history-body{max-height:52vh;overflow:auto}.seedling-history-body table{width:100%;min-width:650px;border-collapse:collapse}.seedling-history-body th{padding:11px 16px;background:#f0f5ff;color:#40526e;font-size:12px;text-align:left}.seedling-history-body td{padding:13px 16px;border-top:1px solid #e7edf5;color:#40526e;font-size:13px}
@media(max-width:1180px){.seedling-layout{grid-template-columns:1fr}.seedling-map-card{min-height:470px}.seedling-operation-map{min-height:330px}.seedling-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.seedling-filter-actions{justify-content:flex-end}}@media(max-width:760px){.seedling-workspace{padding:16px}.seedling-page-topbar{padding:0 16px}.seedling-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.seedling-filters{grid-template-columns:1fr}.seedling-filter-actions{justify-content:stretch}.seedling-filter-actions button{flex:1}.seedling-map-card.is-expanded{inset:8px}.seedling-pager{gap:10px;align-items:flex-start;flex-direction:column}.seedling-history-modal{padding:8px}.seedling-history-dialog{width:calc(100vw - 16px)}}

/* 应收对账单详情：按财务对账参考稿重构，只覆盖详情弹窗。 */
.ds-modal.stmt-detail-modal{z-index:340;padding:16px;background:rgba(23,28,37,.40);backdrop-filter:blur(4px)}
.ds-modal.stmt-detail-modal .box.wide{display:flex;width:min(1024px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden;flex-direction:column;border:1px solid var(--ui-color-line);border-radius:12px;background:#fff;box-shadow:0 24px 64px rgba(23,28,37,.24)}
.ds-modal.stmt-detail-modal .head{position:relative;display:flex;min-height:68px;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--ui-color-line-soft);background:var(--ui-color-surface-subtle)}.ds-modal.stmt-detail-modal .head::before{position:absolute;top:0;right:0;left:0;height:4px;background:var(--ui-color-brand);content:""}.ds-modal.stmt-detail-modal .head h3{display:flex;align-items:center;gap:10px;margin:0;color:var(--ui-color-ink);font-size:18px;line-height:24px;font-weight:700}.ds-modal.stmt-detail-modal .head h3 .material-symbols-outlined{color:var(--ui-color-brand);font-size:22px;font-variation-settings:'FILL' 1}.ds-modal.stmt-detail-modal .close{width:36px;height:36px;padding:0;border-radius:999px;color:var(--ui-color-muted)}.ds-modal.stmt-detail-modal .close:hover{background:var(--ui-color-hover);color:#ff4d4f}
.ds-modal.stmt-detail-modal .stmt-detail-modal-body{min-height:0;padding:0;overflow-y:auto;background:#fff}.stmt-detail-shell{display:flex;min-width:0;flex-direction:column;gap:28px}.stmt-detail-section{padding:24px 24px 0}.stmt-detail-section-title{display:flex;align-items:center;gap:9px;min-height:22px}.stmt-detail-section-title i{display:block;width:4px;height:16px;border-radius:99px;background:var(--ui-color-brand)}.stmt-detail-section-title h4{margin:0;color:var(--ui-color-ink);font-size:14px;line-height:22px;font-weight:800}.stmt-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 16px;margin-top:12px;padding:22px;border:1px solid rgba(30,111,233,.16);border-radius:12px;background:var(--ui-color-canvas)}.stmt-detail-summary>div{min-width:0}.stmt-detail-summary span{display:block;margin-bottom:5px;color:var(--ui-color-muted);font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700;letter-spacing:.05em}.stmt-detail-summary b{display:block;overflow:hidden;color:var(--ui-color-ink);font-size:14px;line-height:22px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stmt-detail-summary .stmt-detail-mono,.stmt-detail-mono{font-family:var(--font-mono)}.stmt-detail-farm,.stmt-detail-period{display:flex!important;align-items:center;gap:6px}.stmt-detail-farm em{color:#00873a}.stmt-detail-period em{color:var(--ui-color-muted)}.stmt-detail-summary em{font-size:17px;font-style:normal}.stmt-detail-status{display:inline-flex;padding:3px 10px;border:0;border-radius:999px;font-size:12px;line-height:18px;font-weight:700}.stmt-detail-status.pending{background:#fff3d4;color:#a85e00}.stmt-detail-status.pushed{background:#e8f0ff;color:var(--ui-color-brand)}.stmt-detail-status.settled{background:#e7f7ec;color:#00873a}.stmt-detail-ton{color:var(--ui-color-brand)!important;font-family:var(--font-mono)}.stmt-detail-ton small{display:inline;margin:0 0 0 4px;color:var(--ui-color-muted);font-family:inherit;font-size:11px;font-weight:600;letter-spacing:0}.stmt-detail-receivable{color:#1e6fe9!important;font-family:var(--font-mono);font-size:25px!important;line-height:28px!important}.stmt-detail-received{color:#ff4d4f!important;font-family:var(--font-mono)}
.stmt-detail-orders{padding-top:0}.stmt-detail-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.stmt-detail-section-heading>span{padding:5px 10px;border-radius:7px;background:var(--ui-color-hover);color:#727785;font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:700}.stmt-detail-table-wrap{margin-top:12px;overflow-x:auto;border:1px solid var(--ui-color-line);border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(23,28,37,.04)}.stmt-detail-table{width:100%;min-width:880px;border-collapse:collapse;background:#fff}.stmt-detail-table thead{background:var(--ui-color-canvas)}.stmt-detail-table th{padding:12px 16px;border-bottom:1px solid var(--ui-color-line);color:#727785;font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:800;letter-spacing:.04em;text-align:left}.stmt-detail-table th:nth-child(2){text-align:right}.stmt-detail-table th:last-child{text-align:center}.stmt-detail-table td{padding:14px 16px;border-bottom:1px solid var(--ui-color-line-soft);color:var(--ui-color-text);font-size:13px;line-height:20px;vertical-align:middle}.stmt-detail-table tbody tr:last-child td{border-bottom:0}.stmt-detail-table tbody tr:hover{background:rgba(240,243,255,.56)}.stmt-detail-order-no{color:var(--ui-color-ink);font-family:var(--font-mono);font-size:13px;line-height:20px;font-weight:800}.stmt-detail-sub{margin-top:3px;color:var(--ui-color-muted);font-size:11px;line-height:16px}.stmt-detail-price{text-align:right}.stmt-detail-price strong{display:block;color:var(--ui-color-brand);font-family:var(--font-mono);font-size:14px;line-height:20px}.stmt-detail-price small{display:block;margin-top:3px;color:var(--ui-color-muted);font-size:11px;line-height:16px}.stmt-detail-weight-chips{display:flex;flex-wrap:wrap;gap:5px}.stmt-detail-weight-chips span{padding:2px 6px;border-radius:4px;background:var(--ui-color-hover);color:var(--ui-color-text);font-family:var(--font-mono);font-size:11px;line-height:16px}.stmt-detail-state-cell{text-align:center}.stmt-detail-state{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;line-height:16px;font-weight:700;white-space:nowrap}.stmt-detail-state.complete{border:1px solid rgba(0,135,58,.18);background:#e7f7ec;color:#00873a}.stmt-detail-state.pending{border:1px solid rgba(0,87,193,.16);background:#e8f0ff;color:var(--ui-color-brand)}.stmt-detail-state.empty{background:var(--ui-color-line-soft);color:#727785}
.stmt-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-top:1px solid var(--ui-color-line);background:var(--ui-color-surface-subtle);color:var(--ui-color-muted);font-size:12px;line-height:18px}.stmt-detail-footer>div{display:flex;align-items:center;gap:8px}.stmt-detail-footer>div:first-child{min-width:0;overflow:hidden;white-space:nowrap}.stmt-detail-footer .material-symbols-outlined{font-size:16px}.stmt-detail-footer-sep{width:1px;height:14px;margin:0 4px;background:var(--ui-color-line)}.stmt-detail-footer button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer}.stmt-detail-footer .ghost-btn{min-width:76px;border:1px solid var(--ui-color-line);background:#fff;color:var(--ui-color-text)}.stmt-detail-footer .ghost-btn:hover{background:var(--ui-color-hover)}.stmt-detail-footer .primary-btn{min-width:116px;border:0;background:var(--ui-color-brand);color:#fff;box-shadow:0 4px 12px rgba(0,87,193,.22)}.stmt-detail-footer .primary-btn:hover{background:#004397}.stmt-detail-footer .primary-btn .material-symbols-outlined{font-size:18px}
@media(max-width:800px){.stmt-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stmt-detail-receivable{font-size:22px!important}.stmt-detail-footer{align-items:flex-start;flex-direction:column}.stmt-detail-footer>div:last-child{width:100%;justify-content:flex-end}}
@media(max-width:560px){.ds-modal.stmt-detail-modal{padding:8px}.ds-modal.stmt-detail-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.stmt-detail-modal .head{min-height:60px;padding:0 16px}.ds-modal.stmt-detail-modal .head h3{font-size:16px}.stmt-detail-section{padding:18px 16px 0}.stmt-detail-summary{grid-template-columns:1fr;gap:15px;padding:16px}.stmt-detail-section-heading{align-items:flex-start;flex-direction:column;gap:8px}.stmt-detail-footer{padding:14px 16px}.stmt-detail-footer>div:first-child{width:100%;white-space:normal}.stmt-detail-footer>div:last-child{gap:8px}.stmt-detail-footer button{flex:1}.stmt-detail-table th,.stmt-detail-table td{padding-right:12px;padding-left:12px}}

/* 称重记录录入：按称重数据录入参考稿布局，保留自动计算与本地 OCR 上传。 */
.ds-modal.weighing-entry-modal{z-index:340;padding:16px;background:rgba(23,28,37,.40);backdrop-filter:blur(4px)}
.ds-modal.weighing-entry-modal .box.wide{width:min(840px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden;border:1px solid var(--ui-color-line-soft);border-radius:12px;background:#fff;box-shadow:0 24px 64px rgba(23,28,37,.24)}
.ds-modal.weighing-entry-modal .head{position:relative;min-height:66px;padding:12px 24px;border-bottom:1px solid var(--ui-color-line-soft);background:#fff}.ds-modal.weighing-entry-modal .head::before{position:absolute;top:0;right:0;left:0;height:4px;background:var(--ui-color-brand-light);content:""}.ds-modal.weighing-entry-modal .head h3{display:flex;align-items:center;gap:10px;margin:0;color:var(--ui-color-ink)}.ds-modal.weighing-entry-modal .head h3>.material-symbols-outlined{color:var(--ui-color-brand-light);font-size:22px;font-variation-settings:'FILL' 1}.weighing-entry-title-text{display:flex;flex-direction:column;gap:1px}.weighing-entry-title-text b{font-size:18px;line-height:24px;font-weight:700}.weighing-entry-title-text small{color:var(--ui-color-muted);font-family:var(--font-mono);font-size:10px;line-height:14px;font-weight:600;letter-spacing:.08em}.ds-modal.weighing-entry-modal .close{width:36px;height:36px;padding:0;border-radius:999px;color:var(--ui-color-muted)}.ds-modal.weighing-entry-modal .close:hover{background:var(--ui-color-canvas);color:var(--ui-color-ink)}
.ds-modal.weighing-entry-modal .body{padding:0;background:#fff}.ds-modal.weighing-entry-modal .foot{display:none!important}.resource-form.weighing-entry-form{display:flex;flex-direction:column;gap:0;width:100%}.weighing-entry-body{display:flex;flex-direction:column;gap:22px;max-height:calc(100vh - 152px);overflow-y:auto;padding:24px}.weighing-entry-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.weighing-entry-section{display:flex;min-width:0;flex-direction:column;gap:10px}.weighing-entry-section-title{display:flex;align-items:center;gap:8px;height:24px;color:var(--ui-color-ink);font-size:13px;line-height:20px;font-weight:800}.weighing-entry-section-title::before{display:block;width:4px;height:16px;border-radius:99px;background:var(--ui-color-brand-light);content:""}.weighing-entry-field{display:flex!important;min-width:0;flex-direction:column;gap:5px;margin:0!important}.weighing-entry-field>span{color:var(--ui-color-text);font-family:var(--font-mono);font-size:10px;line-height:16px;font-weight:700;letter-spacing:.05em}.weighing-entry-field>span b{margin-left:3px;color:#ba1a1a;font-size:13px}.weighing-entry-input-wrap{position:relative}.weighing-entry-input-wrap>i{position:absolute;top:50%;left:10px;z-index:1;transform:translateY(-50%);color:var(--ui-color-muted);font-size:19px;pointer-events:none}.weighing-entry-field input{width:100%;height:40px;padding:0 10px;border:1px solid var(--ui-color-line)!important;border-radius:6px!important;background:#fff!important;color:var(--ui-color-ink)!important;font-size:13px!important;font-weight:600!important}.weighing-entry-input-wrap:has(>i) input{padding-left:36px}.weighing-entry-field input:focus{border-color:var(--ui-color-brand-light)!important;box-shadow:0 0 0 2px rgba(63,133,255,.12)!important}.weighing-vehicle-value{display:flex;align-items:center;gap:10px;height:48px;padding:0 12px;border:1px solid rgba(63,133,255,.20);border-radius:8px;background:rgba(63,133,255,.05)}.weighing-vehicle-value>.material-symbols-outlined{color:var(--ui-color-brand-light);font-size:21px}.weighing-vehicle-value input{height:auto!important;padding:0!important;border:0!important;background:transparent!important;color:var(--ui-color-brand)!important;font-family:var(--font-mono)!important;font-weight:800!important;box-shadow:none!important}.weighing-entry-operation-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}.weighing-entry-data-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;border:1px solid var(--ui-color-line-soft);border-radius:12px;background:rgba(240,243,255,.50)}.weighing-entry-field.span-2{grid-column:span 2}.weighing-entry-field.is-net>span{color:var(--ui-color-brand)}.weighing-entry-field.is-net input{border-color:rgba(63,133,255,.20)!important;background:rgba(63,133,255,.06)!important;color:var(--ui-color-brand)!important;font-family:var(--font-mono)!important;font-size:14px!important;font-weight:800!important;cursor:not-allowed}.weighing-entry-field.is-net .material-symbols-outlined{color:var(--ui-color-brand-light)}

/* 统一弹窗骨架：所有记录录入、详情与选择窗保持居中和一致的操作层级。 */
.ds-modal:not(.hidden){align-items:center!important;justify-content:center!important;padding:clamp(24px,5vh,56px) clamp(16px,3vw,40px)!important}
.ds-modal:not(.hidden) .box{max-height:min(calc(100dvh - 80px),920px)!important;border-color:var(--ui-color-line)!important;border-radius:12px!important;box-shadow:inset 0 4px 0 var(--ui-color-brand-light),0 24px 64px rgba(23,28,37,.24)!important}
.ds-modal:not(.hidden) .head{min-height:64px!important;border-bottom-color:var(--ui-color-line-soft)!important;background:#fff!important}
.ds-modal:not(.hidden) .close{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;padding:0!important;border-radius:999px!important;color:#727785!important}
.ds-modal:not(.hidden) .close:hover{background:var(--ui-color-hover)!important;color:var(--ui-color-ink)!important}
.ds-modal:not(.hidden) .foot{min-height:64px;border-top-color:var(--ui-color-line-soft)!important;background:#f4f6fa!important}
@media(max-width:640px){.ds-modal:not(.hidden){padding:12px!important}.ds-modal:not(.hidden) .box{max-height:calc(100dvh - 24px)!important}.ds-modal:not(.hidden) .head{min-height:60px!important}}

/* 顶部提示改为居中信息卡，视觉与操作确认弹窗保持一致。 */
.ds-toast{top:50%!important;left:50%!important;right:auto!important;min-width:min(390px,calc(100vw - 32px));max-width:min(460px,calc(100vw - 32px));padding:20px 24px!important;transform:translate(-50%,-50%)!important;display:flex!important;align-items:center;gap:12px;border:1px solid var(--ui-color-line);border-radius:10px!important;background:#fff!important;color:var(--ui-color-ink)!important;box-shadow:inset 0 4px 0 var(--ui-color-brand),0 12px 32px -4px rgba(0,0,0,.16),0 4px 12px -2px rgba(0,0,0,.08)!important;animation:toastDialogIn .18s ease-out!important}
.ds-toast .toast-icon{display:inline-flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:rgba(0,87,193,.10);color:var(--ui-color-brand);font-size:21px;font-variation-settings:'FILL' 1}
.ds-toast .toast-content{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}
.ds-toast .toast-message{color:var(--ui-color-ink);font-size:17px;line-height:24px;font-weight:600;word-break:break-word}
.ds-toast .toast-prefix{color:var(--ui-color-ink)}
.ds-toast .toast-highlight{color:var(--ui-color-brand);font-weight:800}
@keyframes toastDialogIn{from{opacity:0;transform:translate(-50%,-46%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:480px){.ds-toast{min-width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:18px!important}.ds-toast .toast-icon{flex-basis:36px;width:36px;height:36px}}

/* 全局操作确认：统一替代浏览器原生 confirm 弹窗。 */
.confirm-action-modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(11,28,48,.40);backdrop-filter:blur(4px);animation:fadeIn .15s ease-out}.confirm-action-modal.hidden{display:none}.confirm-action-box{width:min(400px,calc(100vw - 48px));overflow:hidden;border:1px solid var(--ui-color-line);border-radius:10px;background:#fff;box-shadow:0 12px 32px -4px rgba(0,0,0,.16),0 4px 12px -2px rgba(0,0,0,.08)}.confirm-action-accent{height:4px;background:var(--ui-color-brand)}.confirm-action-head{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 10px}.confirm-action-head h2{margin:0;color:var(--ui-color-ink);font-size:18px;line-height:24px;font-weight:700}.confirm-action-close{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:#727785;cursor:pointer}.confirm-action-close:hover{background:var(--ui-color-hover);color:var(--ui-color-ink)}.confirm-action-close .material-symbols-outlined{font-size:20px}.confirm-action-body{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:10px 24px 24px}.confirm-action-icon{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:999px;background:rgba(0,87,193,.10);color:var(--ui-color-brand);font-size:21px;font-variation-settings:'FILL' 1}.confirm-action-message{margin:5px 0 0;color:var(--ui-color-ink);font-size:15px;line-height:23px;font-weight:600}.confirm-action-hint{margin:5px 0 0;color:#727785;font-size:12px;line-height:18px}.confirm-action-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 24px;background:#f4f6fa}.confirm-action-foot button{height:38px;padding:0 20px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.confirm-action-cancel{border:0;background:transparent;color:#58677d}.confirm-action-cancel:hover{background:#e4e9f1}.confirm-action-confirm{min-width:84px;border:0;background:var(--ui-color-brand);color:#fff;box-shadow:0 3px 10px rgba(0,87,193,.22)}.confirm-action-confirm:hover{background:#004397}.confirm-action-confirm:focus-visible,.confirm-action-cancel:focus-visible,.confirm-action-close:focus-visible{outline:2px solid var(--ui-color-brand);outline-offset:2px}@media(max-width:480px){.confirm-action-modal{padding:12px}.confirm-action-box{width:calc(100vw - 24px)}.confirm-action-head{padding:14px 18px 8px}.confirm-action-body{padding:10px 18px 20px}.confirm-action-foot{padding:12px 18px}.confirm-action-foot button{flex:1;padding:0 12px}}
.weighing-entry-upload{display:flex;align-items:stretch;gap:14px;min-height:130px;padding:14px;border:1px dashed #c2c6d6;border-radius:12px;background:rgba(240,243,255,.28)}.weighing-entry-upload .contract-upload-list{display:flex;flex:1;min-width:0;gap:10px;align-items:center}.weighing-entry-upload .contract-upload-empty{display:flex;flex:1;align-items:center;justify-content:center;min-height:96px;color:var(--ui-color-muted);font-size:12px}.weighing-entry-upload .contract-thumb{position:relative;width:110px;height:92px;flex:0 0 110px;overflow:hidden;border:1px solid var(--ui-color-line);border-radius:8px;background:#fff}.weighing-entry-upload .contract-thumb img{width:100%;height:100%;object-fit:cover}.weighing-entry-upload .contract-thumb button{position:absolute;top:5px;right:5px;width:22px;height:22px;border:0;border-radius:999px;background:rgba(23,28,37,.72);color:#fff;cursor:pointer}.weighing-upload-action{display:flex;flex:0 0 280px;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.weighing-upload-action button{display:inline-flex;align-items:center;gap:6px;height:34px;border:0;border-radius:7px;padding:0 14px;background:var(--ui-color-brand-light);color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px rgba(63,133,255,.24)}.weighing-upload-action button:hover{filter:brightness(1.06)}.weighing-upload-action button .material-symbols-outlined{font-size:17px}.weighing-upload-action p{max-width:250px;margin:0;color:var(--ui-color-muted);font-size:11px;line-height:16px}.weighing-entry-upload .ocr-status{align-self:flex-end;margin-left:auto;padding:4px 8px;border-radius:6px;font-size:11px;line-height:16px}.weighing-entry-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--ui-color-line-soft);background:#fff}.weighing-entry-actions>span{display:flex;align-items:center;gap:4px;color:var(--ui-color-muted);font-size:11px;line-height:16px}.weighing-entry-actions>span .material-symbols-outlined{font-size:16px}.weighing-entry-actions>div{display:flex;gap:12px}.weighing-entry-actions button{height:40px;border-radius:8px;font-size:13px;font-weight:800;cursor:pointer}.weighing-entry-cancel{min-width:88px;border:1px solid var(--ui-color-line-soft);background:#fff;color:var(--ui-color-text)}.weighing-entry-cancel:hover{background:var(--ui-color-canvas)}.weighing-entry-save{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:124px;border:0;background:var(--ui-color-brand-light);color:#fff;box-shadow:0 4px 12px rgba(63,133,255,.30)}.weighing-entry-save:hover{filter:brightness(1.06)}.weighing-entry-save:disabled{cursor:wait;opacity:.7}.weighing-entry-save .material-symbols-outlined{font-size:18px;font-variation-settings:'FILL' 1}
.weighing-entry-field input[readonly]{background:var(--ui-color-canvas)!important;color:var(--ui-color-text)!important;cursor:not-allowed}.weighing-entry-upload.invalid{border-color:#dc2626!important;background:#fff5f5}.weighing-entry-upload.invalid .weighing-upload-preview{border-color:#fca5a5}
.weighing-entry-body{gap:16px;padding:20px 24px}.weighing-entry-field>span{font-size:12px}.weighing-entry-upload{flex-direction:column;align-items:stretch;gap:10px;padding:12px}.weighing-upload-preview{display:flex;align-items:center;justify-content:center;min-height:84px;padding:6px;border:1px dashed #c2c6d6;border-radius:8px;background:#fff}.weighing-entry-upload .contract-upload-list{min-width:0;justify-content:center;flex-wrap:wrap}.weighing-entry-upload .contract-upload-empty{flex:0 1 auto}.weighing-entry-upload .contract-thumb{height:72px}.weighing-upload-action{flex:0 0 auto}.weighing-entry-upload .ocr-status{align-self:center;margin:0}.weighing-entry-upload .ocr-status:empty{display:none}.weighing-entry-actions{justify-content:flex-end}

@media(max-width:680px){.ds-modal.weighing-entry-modal{padding:8px}.ds-modal.weighing-entry-modal .box.wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.ds-modal.weighing-entry-modal .head{padding:12px 18px}.weighing-entry-body{gap:18px;max-height:calc(100vh - 140px);padding:18px}.weighing-entry-top-grid,.weighing-entry-data-panel{grid-template-columns:1fr;gap:14px}.weighing-entry-field.span-2{grid-column:auto}.weighing-entry-upload{align-items:center;flex-direction:column}.weighing-entry-upload .contract-upload-list{width:100%;min-height:90px}.weighing-upload-action{flex:0 0 auto}.weighing-entry-upload .ocr-status{align-self:center;margin:0}.weighing-entry-actions{align-items:stretch;flex-direction:column;padding:12px 18px}.weighing-entry-actions>span{justify-content:center}.weighing-entry-actions>div{width:100%}.weighing-entry-actions button{flex:1}}
