:root{--bg:#FBF8F7;--card:#fff;--line:#EDE6E4;--ink:#1F2330;--muted:#565B6E;--field:#fff;--fieldline:#7585a7;--accent:#374151;--accent-soft:#E9ECF1;--accent-ink:#1F2937;--ok:#0b7a53;--ok-bg:#e2f5ec;--warn:#8a5300;--warn-bg:#fff3d9;--warn-line:#e8c77e;--bad:#c2253f;--bad-bg:#fde7ea;--info:#0b6cc6;--info-bg:#e3f0fc}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:15px;line-height:22px;-webkit-text-size-adjust:100%}a{color:inherit}.wrap{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:84px}.pad{padding:0 20px}h1{margin:4px 0 0;font-size:26px;line-height:34px}h1,h2{font-weight:600}h2{margin:0;font-size:18px;line-height:26px}.eyebrow{margin:0;font-size:12px;line-height:16px;letter-spacing:.24em;font-weight:500;text-transform:uppercase}.eyebrow,.muted{color:var(--muted)}.muted{font-size:13px;line-height:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}.card,.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}label{font-size:13px;font-weight:500;display:block;margin-bottom:6px}input,select,textarea{width:100%;min-height:48px;border:1px solid var(--fieldline);border-radius:10px;background:var(--field);color:var(--ink);padding:0 12px;font:inherit;font-size:16px}textarea{padding:10px 12px;min-height:96px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{min-height:48px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:600;font-size:15px;padding:0 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn.block{width:100%}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--fieldline)}.btn.danger{background:var(--bad);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;line-height:16px;font-weight:500}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.info{background:var(--info-bg);color:var(--info)}.alert{border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:21px}.alert.warn{background:var(--warn-bg);border:1px solid var(--warn-line)}.alert.bad{background:var(--bad-bg);border:1px solid var(--bad)}.alert.err{background:var(--bad-bg);color:var(--bad)}.alert.err,.alert.okmsg{padding:10px 12px;border-radius:10px;font-size:14px}.alert.okmsg{background:var(--ok-bg);color:var(--ok)}.item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;align-items:center;gap:12px}.swatch{width:28px;height:28px;border-radius:999px;flex:none;border:1px solid rgba(0,0,0,.15)}nav.tabs{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}nav.tabs div{max-width:480px;width:100%;display:grid;grid-template-columns:repeat(5,1fr)}nav.tabs a{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;text-decoration:none;color:var(--muted)}nav.tabs a[aria-current=page]{color:var(--accent);font-weight:600}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.opt{min-height:76px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-size:13px}.opt[aria-pressed=true]{border:2px solid var(--ink);font-weight:600}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}