:root{--c-bg:#f4f6f5;--c-surface:#fff;--c-border:#dce1de;--c-text:#17211b;--c-muted:#63706a;--c-primary:#1f6b4a;--c-primary-dark:#16513a;--c-primary-soft:#e6f2ec;--c-danger:#b3261e;--c-danger-soft:#fdecea;--c-warn:#8a5a00;--c-warn-soft:#fff4e0;--c-info-soft:#e8f0fe;--radius:12px;--tap:48px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--c-bg);color:var(--c-text);-webkit-text-size-adjust:100%;font-family:IBM Plex Sans Thai,Sarabun,Noto Sans Thai,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.65}.screen{min-height:100%;padding:16px 16px calc(24px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto}.topbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.topbar h1{flex:1;margin:0;font-size:19px}.back{color:var(--c-primary);cursor:pointer;min-height:var(--tap);background:0 0;border:none;padding:8px 4px 8px 0;font-size:16px;font-weight:600}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-bottom:12px;padding:16px}.card h2{color:var(--c-muted);margin:0 0 10px;font-size:15px;font-weight:600}.list-item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:inherit;margin-bottom:10px;padding:14px 16px;text-decoration:none;display:block}.list-item:active{background:var(--c-primary-soft)}.list-title{font-size:17px;font-weight:600}.list-sub{color:var(--c-muted);margin-top:2px;font-size:14px}.row{justify-content:space-between;align-items:center;gap:10px;display:flex}button,.btn{font:inherit;min-height:var(--tap);border-radius:var(--radius);background:var(--c-primary);color:#fff;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}button:active:not(:disabled){background:var(--c-primary-dark)}button:disabled{opacity:.5}button.secondary,.btn.secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)}button.block,.btn.block{width:100%}.btn-row{gap:10px;display:flex}.btn-row>*{flex:1}.field{margin-bottom:14px}.field label{margin-bottom:6px;font-size:14.5px;font-weight:600;display:block}input[type=text],input[type=search],input[type=tel],select,textarea{width:100%;min-height:var(--tap);border:1px solid var(--c-border);border-radius:var(--radius);font:inherit;color:inherit;background:#fff;padding:12px 14px;font-size:16px}input:focus,select:focus,textarea:focus{outline:3px solid var(--c-primary-soft);border-color:var(--c-primary)}.badge{background:var(--c-bg);color:var(--c-muted);border:1px solid var(--c-border);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-block}.badge.green{background:var(--c-primary-soft);color:var(--c-primary-dark);border-color:#bfdcce}.badge.amber{background:var(--c-warn-soft);color:var(--c-warn);border-color:#f0d9a8}.badge.red{background:var(--c-danger-soft);color:var(--c-danger);border-color:#f2c0bc}.badge.blue{background:var(--c-info-soft);color:#17458c;border-color:#c3d5f5}.alert{border-radius:var(--radius);border:1px solid;margin-bottom:12px;padding:13px 15px;font-size:15px}.alert.error{background:var(--c-danger-soft);color:var(--c-danger);border-color:#f2c0bc}.alert.success{background:var(--c-primary-soft);color:var(--c-primary-dark);border-color:#bfdcce}.alert.info{background:var(--c-info-soft);color:#17458c;border-color:#c3d5f5}.alert.warn{background:var(--c-warn-soft);color:var(--c-warn);border-color:#f0d9a8}.center{text-align:center;color:var(--c-muted);padding:44px 16px}.muted{color:var(--c-muted)}.small{font-size:14px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:14px}.detail-list{grid-template-columns:120px 1fr;gap:8px 14px;font-size:15px;display:grid}.detail-list dt{color:var(--c-muted)}.detail-list dd{margin:0}.splash{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100%;padding:32px 24px;display:flex}.row-link{color:inherit;text-decoration:none;display:block}.row-link:active{background:var(--c-bg)}.kv{grid-template-columns:auto 1fr;gap:4px 14px;margin:10px 0 0;font-size:14px;display:grid}.kv dt{color:var(--c-muted)}.kv dd{text-align:right;margin:0}.empty{text-align:center;color:var(--c-muted);padding:32px 16px}.sig-pad canvas{touch-action:none;background:#fff}
