:root{--ink: #111111;--paper: #f3f1ea;--accent: #ff5a1f;--muted: #767676;--surface: #ffffff;--surface-alt: #eceae2;--line: #d9d6cc;--line-strong: #b9b5a8;--ok: #1f7a3d;--warn: #a86a00;--error: #b3261e;--radius: 4px;--gap: 12px;--pad: 16px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;flex:1;max-width:720px;width:100%;margin:0 auto}.app__main{flex:1;padding:var(--pad);padding-bottom:88px}.stack{display:flex;flex-direction:column;gap:var(--gap)}.row{display:flex;align-items:center;gap:var(--gap)}.row--between{justify-content:space-between}.grow{flex:1}.wordmark{font-weight:800;letter-spacing:-.02em;font-size:20px;text-transform:uppercase}.wordmark__slash{color:var(--accent);padding:0 1px}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--pad);border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}.header__back{background:none;border:none;color:var(--ink);font-size:15px;cursor:pointer;padding:6px 0;font-family:inherit}.tagline{color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad)}.card--flat{background:var(--surface-alt)}.card__title{font-weight:700;font-size:16px;margin:0 0 4px}.card__body{color:var(--muted);font-size:14px}.tile{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad);cursor:pointer;font-family:inherit;font-size:16px;color:var(--ink)}.tile:hover:not(:disabled){border-color:var(--line-strong)}.tile:disabled{cursor:not-allowed;opacity:.62}.tile__title{font-weight:700}.tile__hint{color:var(--muted);font-size:13px}.tile__lock{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:11px 18px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn--danger{background:transparent;color:var(--error);border-color:var(--error)}.btn--block{width:100%}.btn--small{padding:7px 12px;min-height:36px;font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:13px;font-weight:600;color:var(--muted)}.field__error{color:var(--error);font-size:13px}.field__hint{color:var(--muted);font-size:12px}.input,.select,.textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);padding:11px 12px;font-size:16px;font-family:inherit;background:var(--surface);color:var(--ink);min-height:44px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.input[aria-invalid=true]{border-color:var(--error)}.choice{display:flex;gap:8px;flex-wrap:wrap}.choice__option{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);padding:9px 14px;font-size:14px;font-family:inherit;cursor:pointer;color:var(--ink);min-height:40px}.choice__option[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper);font-weight:600}.choice__option:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--muted)}.badge--running{border-color:var(--accent);color:var(--accent)}.badge--ok{border-color:var(--ok);color:var(--ok)}.badge--error{border-color:var(--error);color:var(--error)}.progress{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}.progress__bar{height:100%;background:var(--accent);transition:width .3s linear}.notice{border:1px solid var(--line-strong);border-left:3px solid var(--muted);border-radius:var(--radius);padding:12px 14px;font-size:14px;background:var(--surface)}.notice--error{border-left-color:var(--error);color:var(--error)}.notice--warn{border-left-color:var(--warn)}.notice--ok{border-left-color:var(--ok)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.spinner{width:18px;height:18px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}.progress__bar{transition:none}}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.list__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px;width:100%;text-align:left;font-family:inherit;font-size:15px;color:var(--ink);cursor:pointer}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.kv:last-child{border-bottom:none}.kv__key{color:var(--muted)}.kv__value{font-weight:600;text-align:right}.mono{font-family:var(--mono);font-size:13px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar__item{flex:1;background:none;border:none;padding:12px 4px;font-size:12px;font-family:inherit;color:var(--muted);cursor:pointer;min-height:52px;font-weight:600}.tabbar__item[aria-current=page]{color:var(--ink);box-shadow:inset 0 2px 0 var(--accent)}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:4px 0}.legal{font-size:12px;color:var(--muted);line-height:1.5}.price{font-size:20px;font-weight:800}.price__stars{font-size:14px;color:var(--muted);font-weight:600}.banner-preview{position:relative;aspect-ratio:16 / 9;background:var(--surface-alt);border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.banner-preview__box{position:absolute;background:var(--accent);border:1px solid rgba(0,0,0,.25)}
