:root{font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;color:#253a40;background:#f6f9f8;font-synthesis:none;--bg:#f5f8f7;--surface:#fff;--text:#233b40;--muted:#82979a;--line:#e6eeeb;--green:#167e71;--mint:#def3eb;--teal:#0c776a;--shadow:0 4px 22px rgba(20,66,57,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #68cab1;outline-offset:3px}a{text-decoration:none;color:inherit}
.site-shell{display:flex;min-height:100vh}.sidebar{width:255px;flex:0 0 255px;background:#fff;border-right:1px solid var(--line);min-height:100vh;position:sticky;top:0;align-self:flex-start;display:flex;flex-direction:column;padding:32px 17px 24px}
.brand{display:flex;align-items:center;gap:12px;margin:0 4px 48px}.brand-mark{height:41px;width:41px;border-radius:13px;background:linear-gradient(135deg,#38ab8b,#0c6a61);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:850;box-shadow:0 6px 15px #2ca3812b}.brand strong{display:block;font-size:15px;letter-spacing:.04em}.brand small{display:block;letter-spacing:.12em;font-size:8px;color:#92a5a4;margin-top:4px;font-weight:800}
.nav-section{color:#a5b3b1;font-size:11px;padding:0 16px;margin-bottom:14px;font-weight:800;letter-spacing:.12em}.desktop-nav{display:flex;flex-direction:column;gap:4px}.nav-entry{border-radius:11px;display:flex;align-items:center;gap:13px;padding:13px 16px;color:#6c8585;font-weight:650;font-size:13px;transition:background .2s,color .2s}.nav-entry svg{width:19px;height:19px;stroke-width:1.8}.nav-entry:hover{background:#eef9f4;color:#107b70}.nav-entry.active{color:#0e7e6e;background:#e7f7f1;font-weight:800}.nav-entry.active::after{content:"";height:6px;width:6px;background:#158f78;border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:21px 8px 0;font-size:12px;color:#799091}.connection-state{display:flex;gap:7px;align-items:center;color:#a07232;font-weight:750}.sidebar-bottom p{line-height:1.75;font-size:11px;color:#9bacab}
.status-dot{height:7px;width:7px;display:inline-block;flex:0 0 7px;border-radius:50%;background:#d9a441;box-shadow:0 0 0 3px #fff5d9}
.content-shell{min-width:0;flex:1}.topbar{height:70px;background:#ffffffeb;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:0 clamp(20px,4vw,64px)}.topbar-left{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:800;color:#506b6c}.factory-symbol{font-size:21px;color:#138773}.breadcrumb{font-weight:500;color:#acbcba}.topbar-badge{background:#f6eddf;color:#aa7a2e;border:1px solid #f3e4c8;border-radius:100px;padding:7px 13px;font-size:11px;font-weight:800}
.main{padding:28px clamp(20px,4vw,64px) 35px;max-width:1530px;margin:0 auto}.page-hero{position:relative;overflow:hidden;min-height:218px;background:linear-gradient(115deg,#e6f6f0 0%,#f1fbf7 52%,#fff 100%);border:1px solid #e2f2e9;border-radius:22px;display:flex;align-items:center;padding:31px 38px}.hero-text{position:relative;z-index:1;max-width:660px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.1em;color:#398b7b}.eyebrow-dot{height:7px;width:7px;background:#309b83;display:inline-block;border-radius:50%;margin-right:6px}.page-hero h1{font-size:clamp(27px,3vw,38px);line-height:1.28;margin:13px 0 9px;letter-spacing:.02em;color:#174c46;font-weight:900}.page-hero h1 span{color:#1b8e7c;margin-left:9px}.page-hero p{font-size:13px;color:#688a82;line-height:1.8;max-width:540px;margin:0}.hero-meta{display:flex;align-items:center;gap:11px;margin-top:17px;color:#3d8373;font-weight:750;font-size:11px}.meta-divider{color:#b4c9c0}.hero-watermark{position:absolute;right:32px;bottom:-48px;font-size:160px;font-weight:900;letter-spacing:-.09em;color:#b5e0d1;opacity:.42;pointer-events:none;line-height:1}.hero-watermark span{font-size:11px;letter-spacing:.18em;display:block;text-align:right;margin-right:8px;color:#3d9b88}
.control-bar{margin-top:20px;display:flex;align-items:end;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 19px;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:8px;min-width:170px;font-size:11px;color:#849a9b;font-weight:750}.field select{background:#fafdfb;border:1px solid #dceae5;border-radius:10px;padding:11px 34px 11px 12px;color:#385b5c;font-size:13px;font-weight:700;min-width:0}.control-status{margin-left:auto;display:flex;align-items:center;gap:12px;padding:8px 10px}.control-status strong{display:block;color:#98702c;font-size:12px}.control-status small{display:block;color:#9caeab;font-size:11px;margin-top:3px}
.disclaimer{display:flex;gap:12px;background:#fff8e8;border:1px solid #f1e4c7;border-radius:13px;padding:14px 17px;margin-top:15px;color:#825f2c}.disclaimer strong{font-size:12px}.disclaimer p{margin:4px 0 0;font-size:11px;line-height:1.7;color:#ab8856}.notice-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#d7a23f;color:white;font-size:13px;font-weight:900}
.page-content{margin-top:26px}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:16px}.section-heading h2{font-weight:900;font-size:20px;color:#244449;margin:0}.section-heading p{color:#95a8a9;font-size:12px;margin:5px 0 0}.section-tag{background:#edf5f1;border:1px solid #dcebe4;color:#568478;font-weight:750;font-size:11px;padding:7px 11px;border-radius:100px;white-space:nowrap}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat{padding:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;min-height:150px}.stat-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.stat-label{color:#637c7c;font-size:12px;font-weight:850}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#128579;background:#e9f7f3}.stat-icon svg{width:18px;height:18px}.stat-value{font-size:30px;font-weight:900;color:#6d9e95;margin:19px 0 2px;line-height:1}.stat-foot{font-size:11px;color:#a0b1b1}
.panel-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:17px}.panel{border:1px solid var(--line);background:#fff;border-radius:17px;padding:23px;box-shadow:var(--shadow);min-width:0;margin-bottom:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.panel-heading h3{margin:0;font-size:15px;font-weight:900;color:#2f4c4f}.panel-heading span{background:#eef8f4;color:#468478;font-size:11px;font-weight:750;padding:6px 9px;border-radius:100px}.panel-description{font-size:12px;line-height:1.8;color:#859b9a;margin:0 0 15px}
.empty-chart{min-height:200px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:repeating-linear-gradient(0deg,#f9fcfb 0px,#f9fcfb 41px,#e6f0ec 42px);border:1px dashed #d7e6df;padding:20px;text-align:center;color:#93aba5}.empty-chart svg{width:33px;height:33px;color:#9abbaf}.empty-chart strong{font-size:13px;color:#6d9289;margin-top:12px}.empty-chart span{font-size:11px;margin-top:4px}.empty-chart.half{min-height:154px}
.empty-data{padding:26px 15px;border:1px dashed #d8e9e1;border-radius:13px;background:#fafdfe;text-align:center;color:#93aaa7;font-size:12px;line-height:1.8}.empty-data strong{display:block;color:#698b84;font-size:13px}
.checklist{padding:0;margin:0;list-style:none}.checklist li{display:flex;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid #eef3f0;font-size:12px;color:#6b8584}.checklist li:last-child{border:0}.step{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#e5f5ee;color:#2c8975;display:grid;place-items:center;font-weight:900;font-size:10px}.checklist strong{display:block;color:#3c6260;font-size:12px;margin-bottom:3px}.checklist span{font-size:11px;color:#9aacab}.metric-list{display:flex;flex-direction:column;gap:10px}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-radius:12px;background:#f8fbf9;border:1px solid #edf2f0;gap:10px}.metric-row strong{font-size:13px;color:#3e6561}.metric-row small{display:block;font-weight:400;color:#97aba7;margin-top:4px}.metric-row .placeholder{font-size:18px;color:#96a8a4;font-weight:900}
.kpi-table{width:100%;border-collapse:collapse;font-size:12px}.kpi-table th{text-align:left;color:#8aa19d;font-weight:750;background:#f9fcfa}.kpi-table th,.kpi-table td{padding:14px 12px;border-bottom:1px solid #eef2f0}.kpi-table td{color:#516b6b}.kpi-table tr:last-child td{border:0}.status-pill{font-size:10px;background:#fbf4e7;color:#a47b38;border-radius:100px;padding:5px 9px;white-space:nowrap;font-weight:800}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.module{border:1px solid #e5eeeb;background:#fff;padding:20px;border-radius:16px;min-height:135px}.module svg{height:22px;width:22px;color:#248c7b}.module strong{display:block;font-size:13px;color:#406964;margin-top:15px}.module p{font-size:11px;color:#98aaa7;line-height:1.7;margin:7px 0 0}
.badge-subtle{display:inline-flex;gap:7px;align-items:center;padding:7px 10px;background:#eff8f3;color:#458a78;border-radius:100px;font-size:11px;font-weight:800}
.notes-state{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;text-align:center;padding:48px 18px;color:#91a7a2;border:1px dashed #d3e5de;border-radius:15px;background:#fbfefd}.notes-state svg{height:40px;width:40px}.notes-state strong{color:#6c9487;font-size:15px}.notes-state p{font-size:12px;line-height:1.75;max-width:370px;margin:0}
.line-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #eef3f0;font-size:12px;gap:10px}.line-row strong{color:#416b66}.line-row:last-child{border:0}.line-row span{color:#93aaa5}
.card-link{display:inline-block;color:#0e8977;font-size:12px;font-weight:800;margin-top:12px}
.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;color:#a3b4b1;font-size:11px;padding:17px 0;margin-top:20px;border-top:1px solid #e4eeea}
.mobile-nav{display:none}
@media(max-width:1180px){.sidebar{width:220px;flex-basis:220px}.main{padding-left:25px;padding-right:25px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.sidebar{display:none}.topbar{height:57px;padding:0 17px}.main{padding:14px 15px 105px}.page-hero{padding:28px 21px;min-height:215px;border-radius:17px}.hero-watermark{font-size:125px;right:23px;bottom:-37px}.page-hero h1{font-size:27px}.page-hero h1 span{display:block;margin-left:0}.control-bar{padding:14px;align-items:stretch;gap:9px}.field{flex:1;min-width:calc(50% - 9px)}.field select{width:100%;font-size:12px}.control-status{margin-left:0;padding:9px 3px 0;width:100%;border-top:1px solid #f0f4f1;margin-top:4px}.panel-grid{grid-template-columns:1fr}.panel{padding:18px}.stats-grid{gap:10px}.stat{padding:15px;min-height:137px}.stat-value{font-size:27px}.section-heading h2{font-size:19px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module{padding:16px;min-height:120px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;background:#fffc;border-top:1px solid #e2ece8;padding:8px 4px calc(7px + env(safe-area-inset-bottom));z-index:20;backdrop-filter:blur(12px);box-shadow:0 -7px 25px #14392e0e}.mobile-nav a{flex:1;min-width:0;text-align:center;color:#8fa19e;padding:6px 2px;font-size:10px;font-weight:800;border-radius:10px}.mobile-nav a.active{background:#e7f8f1;color:#087e6c}.mobile-nav svg{height:19px;width:19px;display:block;margin:0 auto 3px}.footer{font-size:10px}}
@media(max-width:370px){.stat{padding:12px}.page-hero{padding:20px 16px}.module-grid{grid-template-columns:1fr}.field{min-width:100%}.stat-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav-entry{transition:none}}
