:root{--color-primary: #2f6bff;--color-primary-dark: #1e4fd6;--color-primary-soft: #eaf0ff;--color-navy: #0e1e38;--color-bg: #f7f8fa;--color-surface: #ffffff;--color-text: #0f1722;--color-text-secondary: #5b6675;--color-border: #e4e8ee;--color-success: #1fa97c;--color-warning: #e8a13c;--color-danger: #d95c5c;--color-info: #4a90d9;--radius-card: 16px;--radius-button: 12px;--radius-chip: 999px;--shadow-card: 0 2px 8px rgba(15, 23, 34, .06);--screen-padding: 16px;--content-max: 640px;--font-family: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: 700 28px/34px var(--font-family);--font-h2: 600 20px/26px var(--font-family);--font-body: 400 16px/24px var(--font-family);--font-body-medium: 500 16px/24px var(--font-family);--font-caption: 400 13px/18px var(--font-family);--font-number: 700 24px/30px var(--font-family);--ease: cubic-bezier(.2, 0, 0, 1);--dur-press: .15s;--dur-screen: .25s}:root[data-theme=dark]{--color-bg: #0f1418;--color-surface: #1a2026;--color-text: #f2f5f8;--color-text-secondary: #93a1b0;--color-border: #2a323b;--color-primary: #4a80ff;--color-primary-soft: #1c2a45;--shadow-card: 0 2px 8px rgba(0, 0, 0, .35)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.screen{display:flex;flex-direction:column;min-height:100%;max-width:var(--content-max);margin:0 auto;padding:var(--screen-padding);padding-bottom:calc(var(--screen-padding) + env(safe-area-inset-bottom))}.screen__content{flex:1;display:flex;flex-direction:column;gap:12px}.screen__footer{padding-top:16px;display:flex;flex-direction:column;gap:8px}.display{font:var(--font-display)}.h2{font:var(--font-h2)}.caption{font:var(--font-caption);color:var(--color-text-secondary)}.secondary{color:var(--color-text-secondary)}.btn{display:flex;align-items:center;justify-content:center;height:52px;width:100%;border:none;border-radius:var(--radius-button);font:var(--font-body-medium);cursor:pointer;transition:transform var(--dur-press) var(--ease),background var(--dur-press) var(--ease),opacity var(--dur-press)}.btn:active{transform:scale(.98)}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:active{background:var(--color-primary-dark)}.btn--primary:disabled{opacity:.5;cursor:default}.btn--secondary{background:var(--color-primary-soft);color:var(--color-primary)}.btn--text{background:none;color:var(--color-primary);height:44px}.btn--danger-text{background:none;color:var(--color-danger);height:44px}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:16px}.card--select{border:2px solid var(--color-border);box-shadow:none;cursor:pointer;transition:border-color var(--dur-press) var(--ease),background var(--dur-press) var(--ease)}.card--select.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.disclaimer{font:var(--font-caption);color:var(--color-text-secondary);background:var(--color-bg);border-left:3px solid var(--color-info);border-radius:4px;padding:8px 12px}.input{height:52px;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-text);font:var(--font-body);padding:0 16px;outline:none;transition:border-color var(--dur-press) var(--ease)}.input:focus{border:2px solid var(--color-primary);padding:0 15px}.input--number{font:var(--font-number);font-size:20px}.progress{height:6px;border-radius:999px;background:var(--color-border);overflow:hidden}.progress span{display:block;height:100%;background:var(--color-primary);border-radius:999px;transition:width var(--dur-screen) var(--ease)}.save-status{font:var(--font-caption);min-height:18px}.save-status--saved{color:var(--color-success)}.save-status--saving{color:var(--color-text-secondary)}.save-status--error{color:var(--color-danger)}.soft-warning{font:var(--font-caption);color:#8a6116;background:#e8a13c1f;border-left:3px solid var(--color-warning);border-radius:4px;padding:8px 12px}.check-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer}.check-row input{width:24px;height:24px;flex:none;accent-color:var(--color-primary)}.sheet-backdrop{position:fixed;inset:0;background:#0f172273;display:flex;align-items:flex-end;z-index:50}.sheet{background:var(--color-surface);border-radius:20px 20px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));width:100%;max-width:var(--content-max);margin:0 auto;animation:sheet-up var(--dur-screen) var(--ease)}.sheet:before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--color-border);margin:0 auto 12px}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.center-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}.dots{display:flex;gap:8px;justify-content:center}.dots span{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:background var(--dur-press)}.dots span.is-active{background:var(--color-primary)}.screen-enter{animation:rise var(--dur-screen) var(--ease)}@keyframes rise{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.bubble{max-width:80%;border-radius:16px;padding:10px 12px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:2px}.scan-doc{position:relative;font-size:64px;width:96px;height:96px;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.scan-line{position:absolute;left:8px;right:8px;height:2px;background:var(--color-primary);border-radius:2px;opacity:.7;animation:scan 2.2s var(--ease) infinite}@keyframes scan{0%,to{top:12%}50%{top:84%}}.stepper{display:flex;flex-direction:column;gap:0}.stepper__node{display:flex;gap:12px;align-items:flex-start}.stepper__dot{width:12px;height:12px;border-radius:50%;flex:none;margin-top:5px;background:var(--color-border)}.stepper__dot.is-done{background:var(--color-success)}.stepper__dot.is-active{background:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.stepper__line{width:2px;height:20px;background:var(--color-border);margin-left:5px}.stepper__line.is-done{background:var(--color-success)}
