:root{--ink:#17251c;--muted:#66736b;--line:#d8e0da;--soft:#f2f6f3;--brand:#315b42;--brand2:#4f7a60;--danger:#9b3737;--white:#fff;--shadow:0 14px 38px rgba(24,54,35,.12);font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:#edf2ee;font-size:18px}
  *{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#e8f0ea 0,#f8faf8 260px);-webkit-text-size-adjust:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
  .shell{width:min(100%,720px);min-height:100vh;margin:auto;background:#fbfcfb;box-shadow:0 0 55px rgba(20,45,29,.08);padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:52px 1fr 52px;align-items:center;min-height:68px;padding:8px 12px;background:rgba(251,252,251,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.topbar h1{margin:0;text-align:center;font-size:1.15rem;line-height:1.25}.icon-btn{width:48px;height:48px;border:0;border-radius:15px;background:var(--soft);color:var(--ink)}
  .hero{padding:34px 24px 20px;text-align:center}.hero .seal{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:20px;background:var(--brand);color:#fff;font-size:1.35rem;font-weight:800;box-shadow:var(--shadow)}.hero h1{margin:0;line-height:1.45;font-size:clamp(1.35rem,6vw,1.8rem);letter-spacing:.04em}.hero h1 span{display:block;white-space:nowrap}.hero h1 small{display:block;margin-top:5px;font:800 .9em/1.4 inherit;white-space:nowrap}.hero p{margin:10px 0 0;color:var(--muted);font-size:.92rem}
  .content{padding:16px 18px 30px}.menu{display:grid;gap:14px}.menu-btn{display:flex;align-items:center;gap:16px;width:100%;min-height:82px;padding:17px 18px;border:1px solid #cdd9d0;border-radius:22px;background:#fff;color:var(--ink);text-align:left;box-shadow:0 8px 25px rgba(31,65,42,.07)}.menu-btn .badge{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:16px;background:#e5eee8;color:var(--brand);font-weight:900}.menu-btn strong{display:block;font-size:1.08rem;line-height:1.35}.menu-btn small{display:block;margin-top:4px;color:var(--muted)}.menu-btn.primary{border-color:var(--brand);background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}.menu-btn.primary .badge{background:rgba(255,255,255,.18);color:#fff}.menu-btn.primary small{color:#e9f1eb}
  .footer-actions{display:flex;justify-content:center;gap:14px;margin-top:24px}.link-btn{min-height:48px;border:0;background:transparent;color:var(--brand);font-weight:750}.section-title{margin:8px 2px 14px;font-size:1.05rem}.card{margin-bottom:14px;padding:18px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 7px 24px rgba(30,60,40,.06)}
  .form-grid{display:grid;gap:15px}.field{display:grid;gap:8px}.field>span,.field>legend{font-weight:780;font-size:.98rem}.required::after{content:" *";color:var(--danger)}input,textarea,select{width:100%;min-height:56px;padding:13px 14px;border:1.5px solid #bdc9c0;border-radius:15px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(49,91,66,.12)}textarea{min-height:130px;resize:vertical;line-height:1.6}fieldset.field{margin:0;padding:0;border:0}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.choice{display:flex;align-items:center;justify-content:center;min-height:55px;padding:9px;border:1.5px solid #c7d1c9;border-radius:15px;background:#fff;text-align:center;font-weight:680;line-height:1.3}.choice input{position:absolute;opacity:0;pointer-events:none}.choice:has(input:checked){border-color:var(--brand);background:#e8f1eb;color:#244d35;box-shadow:inset 0 0 0 1px var(--brand)}
  .inline-panel{margin-top:9px;padding:13px;border-radius:16px;background:var(--soft)}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:12px 16px;border:1px solid #bdc9c0;border-radius:16px;background:#fff;color:var(--ink);font-weight:800}.btn.primary{border-color:var(--brand);background:var(--brand);color:#fff}.btn.danger{border-color:#d9b7b7;color:var(--danger)}.btn.wide{width:100%}.btn.small{min-height:46px;padding:8px 12px;font-size:.9rem}.btn-group{display:flex;flex-wrap:wrap;gap:9px}.btn.active{background:var(--brand);border-color:var(--brand);color:#fff}
  .entry{margin:11px 0;padding:14px;border:1px solid var(--line);border-radius:17px;background:#fbfcfb}.entry-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.entry-head strong{line-height:1.35}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.entry-grid label{display:grid;gap:6px;font-size:.9rem}.entry-grid .wide{grid-column:1/-1}.toggle{width:26px;height:26px;min-height:26px;accent-color:var(--brand)}
  .upload-card{padding:15px;border:1px dashed #aab9ae;border-radius:18px;background:#f8faf8}.upload-card+.upload-card{margin-top:12px}.upload-card strong{display:block;margin-bottom:10px}.file-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 12px;border-radius:13px;background:#e8f0ea;overflow-wrap:anywhere}.file-pill button{flex:0 0 auto;border:0;background:transparent;color:var(--danger);font-weight:800}
  .case{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;margin-bottom:12px}.case-summary{display:grid;grid-template-columns:1fr auto;gap:12px;width:100%;padding:16px;border:0;background:#fff;text-align:left;color:var(--ink)}.case-summary strong,.case-summary span{display:block}.case-summary small{display:block;margin-top:5px;color:var(--muted)}.status{align-self:start;padding:6px 10px;border-radius:999px;background:#e8f0ea;color:#2d5b3f;font-size:.78rem;font-weight:800;white-space:nowrap}.case-detail{padding:0 16px 17px;border-top:1px solid var(--line)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:14px 0;background:var(--line);border:1px solid var(--line);border-radius:15px;overflow:hidden}.detail-grid div{padding:11px;background:#fff}.detail-grid span{display:block;color:var(--muted);font-size:.78rem}.detail-grid strong{display:block;margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}
  .review-box{margin:14px 0;padding:15px;border-radius:17px;background:#f0f5f1}.review-box h3{margin:0 0 10px}.signer{padding:14px;border:1px solid var(--line);border-radius:17px;margin-top:12px}.signature-preview{display:grid;place-items:center;min-height:80px;margin-top:9px;border:1px dashed #aaa;border-radius:12px;background:#fff}.signature-preview img{max-width:100%;max-height:90px}
  .export-box{padding:14px;border:1px solid var(--line);border-radius:17px;background:#fafbfa}.export-box>strong{display:block;margin-bottom:10px}.export-line{margin-top:10px}.export-line>span{display:block;margin-bottom:7px;font-size:.85rem;color:var(--muted)}
  .busy{position:fixed;z-index:1000;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;background:rgba(245,248,246,.9);backdrop-filter:blur(5px);text-align:center}.busy[hidden],.toast[hidden]{display:none}.spinner{width:52px;height:52px;border:5px solid #ccd6cf;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.busy strong{font-size:1.15rem}.busy small{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:1100;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(90vw,560px);padding:14px 18px;border-radius:15px;background:#17251c;color:#fff;text-align:center;box-shadow:var(--shadow)}
  .signature-modal{position:fixed;z-index:1200;inset:0;width:100vw;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;overscroll-behavior:none}.signature-modal header{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;text-align:center;border-bottom:1px solid var(--line)}.signature-stage{min-height:0;padding:12px;background:#eef2ef}.signature-stage canvas{display:block;width:100%;height:100%;border:2px solid #78867c;border-radius:16px;background:#fff;touch-action:none}.signature-actions{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
  .login{padding-top:50px}.login .card{max-width:480px;margin:auto}.empty{padding:28px 15px;text-align:center;color:var(--muted)}.hint{color:var(--muted);font-size:.85rem;line-height:1.55}.danger-text{color:var(--danger)}
  @media(max-width:420px){:root{font-size:17px}.content{padding-left:14px;padding-right:14px}.hero{padding-left:14px;padding-right:14px}.choices{grid-template-columns:1fr}.entry-grid,.detail-grid{grid-template-columns:1fr}.action-row{grid-template-columns:1fr}.hero h1 span,.hero h1 small{white-space:normal}.case-summary{padding:14px}.status{font-size:.72rem}}
