:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#213f3c;background:#f4f6f3;font-size:16px;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:12px;background:#246b5b;color:white;padding:12px 22px;min-height:46px}button:disabled{opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d19b42;outline-offset:3px}.secondary{background:#e9eeea;color:#294b43}a{color:#246b5b}.brand{font-weight:800;font-size:25px;text-decoration:none;letter-spacing:2px}h1{font-size:clamp(30px,4vw,49px);line-height:1.35;letter-spacing:1px}h2{font-size:27px}p{max-width:65ch}.muted,small{color:#687c74}header{display:flex;align-items:center;gap:24px;padding:20px max(24px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid #e2e8e2}#account{margin-left:auto}.portal{max-width:1120px;margin:30px auto;padding:0 24px 100px}.hero{border-radius:24px;background:#dcebe2;padding:36px 42px}.eyebrow{color:#4a7764}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:25px 0}.grid button{background:white;color:#264d43;padding:24px 15px;text-align:left;border:1px solid #dce5dc;font-weight:bold}.grid small{font-weight:normal}nav{position:fixed;bottom:0;background:#fff;border-top:1px solid #dce5dc;width:100%;display:flex;justify-content:center;gap:35px;padding:10px}nav button{background:white;color:#264d43}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;max-width:1200px;align-items:center;margin:auto;gap:70px;padding:40px}.login aside{padding:30px}.panel{background:white;border:1px solid #dce5dc;border-radius:20px;padding:32px;max-width:500px}label{display:block;margin:16px 0}input,textarea,select{display:block;width:100%;padding:12px;border:1px solid #bdcbc1;border-radius:9px;background:#fff;color:#213f3c}form button{width:100%}#switch{margin:18px 0;width:100%}#error,#password-error{color:#a23a2d}#notice{color:#8a402b;text-align:center}details{font-size:14px;color:#687c74}table{border-collapse:collapse;width:100%}td,th{padding:12px;border-bottom:1px solid #ddd;text-align:left}[hidden]{display:none!important}@media(max-width:650px){.login{display:block;padding:22px}.login aside{padding:16px 8px}.login aside h1{font-size:30px}.login aside p:last-child{display:none}.panel{padding:23px}.hero{padding:28px 23px}.grid{grid-template-columns:repeat(2,1fr);gap:12px}header{gap:12px;padding:16px;font-size:13px}.brand{font-size:21px}.portal{padding:0 16px 100px;margin-top:18px}nav{gap:10px}nav button{padding:10px 18px}}
:root { color-scheme: light; }
.brand { flex-shrink: 0; white-space: nowrap; }
#logout { flex-shrink: 0; white-space: nowrap; }
#account { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 650px) {
  header .brand { font-size: 19px; letter-spacing: 1px; }
  #account { font-size: 11px; line-height: 1.5; }
  #logout { padding: 10px 14px; }
  nav { gap: 0; }
  nav button { flex: 1; padding: 10px 8px; }
}
/* Shared A service portal surface across checklists, services, policy and AI. */
.portal > section, .portal article { min-width: 0; }
.portal .panel { max-width: none; margin: 20px 0; }
.portal > section > button, .portal #content > button { margin: 6px 8px 6px 0; }
#content { overflow-wrap: anywhere; }
#content > h1 { margin: 12px 0; }
#content > p:first-of-type { color: #687c74; }
#content h3 { margin-top: 24px; }
#content input, #content textarea, #content select { max-width: 100%; min-width: 0; }
#content textarea { min-height: 100px; resize: vertical; }
#content article + article { margin-top: 16px; }
.home-search { display:grid; grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr) auto; gap:14px; align-items:end; margin:20px 0 12px; }
.home-search label { margin:0; }
.home-search button { width:auto; }
.home-dashboard { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.home-dashboard .panel { margin:0; }
nav button[aria-current="page"] { background: #e0eee5; font-weight: 700; }
nav { padding-bottom: max(10px, env(safe-area-inset-bottom)); z-index: 10; }
button, a { touch-action: manipulation; }
@media(max-width:650px) {
  .portal .panel { padding: 20px; border-radius: 16px; }
  h2 { font-size: 24px; } h3 { font-size: 20px; }
  #content button { max-width: 100%; white-space: normal; }
  table { display: block; overflow-x: auto; }
  .home-search,.home-dashboard { grid-template-columns:1fr; }
  .home-search button { width:100%; }
}
