:root{--bg:#eef3ee;--surface:#ffffff;--surface-muted:#f7faf7;--ink:#1e2a24;--muted:#64746a;--line:#d8e1da;--green:#2d6f4f;--green-dark:#1f513a;--teal:#2f7d7a;--red:#a64035;--gold:#9a7227;--shadow:0 14px 35px rgba(38,58,45,0.11)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:linear-gradient(90deg,rgba(45,111,79,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(45,111,79,.06) 1px,transparent 1px),var(--bg);background-size:36px 36px;color:var(--ink);font-family:Noto Sans TC,Microsoft JhengHei,PingFang TC,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:22px 18px}.brand{display:grid;grid-gap:4px;gap:4px;margin-bottom:28px}.brand strong{font-size:18px}.brand span,.small-text{color:var(--muted);font-size:13px}.nav{display:grid;grid-gap:6px;gap:6px}.icon-button,.nav a,.nav button,.primary-button,.secondary-button{align-items:center;border:0;cursor:pointer;display:inline-flex;gap:9px}.nav a,.nav button{background:transparent;border-radius:8px;color:var(--muted);padding:10px 11px;text-align:left;width:100%}.nav a:hover,.nav button:hover{background:var(--surface-muted);color:var(--ink)}.main{padding:24px clamp(18px,3vw,42px) 48px}.section-heading,.toolbar,.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between}.topbar{margin-bottom:28px}.eyebrow{color:var(--green);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,4vw,44px);line-height:1.05;max-width:820px}h2{font-size:20px}h3{font-size:16px}.grid{display:grid;grid-gap:16px;gap:16px}.overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.work-grid{align-items:start;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.card{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px}.plain-section{margin-top:28px}.metric{display:grid;grid-gap:10px;gap:10px}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:28px}.service-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.list-item,.service-link{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;padding:14px}.service-link:hover{border-color:rgba(45,111,79,.5)}.list{display:grid;grid-gap:10px;gap:10px}.list-item p{color:var(--muted);line-height:1.55}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.badge{background:#eaf3ed;border:1px solid #c8dccd;border-radius:999px;color:var(--green-dark);font-size:12px;padding:3px 8px}.badge.warning{background:#fff4dc;border-color:#ecd49a;color:var(--gold)}.badge.danger{background:#fff0ed;border-color:#efc5bd;color:var(--red)}.icon-button,.primary-button,.secondary-button{border-radius:8px;min-height:40px;padding:10px 13px}.primary-button{background:var(--green);color:#fff}.icon-button,.secondary-button{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.form-grid,.two-col{display:grid;grid-gap:12px;gap:12px}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:40px;padding:10px 11px;width:100%}textarea{min-height:110px;resize:vertical}.check-row{align-items:center;display:flex;gap:8px}.check-row input{min-height:auto;width:auto}.table{border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid var(--line);padding:11px 8px;text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:12px;font-weight:700}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.overview-grid,.service-grid,.two-col,.work-grid{grid-template-columns:1fr}.section-heading,.toolbar,.topbar{align-items:flex-start;flex-direction:column}}