:root{--app-width:480px;--canvas:#eef3fb;--surface:#f9fbfc;--surface-raised:#fff;--ink:#0b1f2a;--ink-soft:#2a3b54;--muted:#5f6f8a;--border:#d4e0f2;--accent:#2563eb;--accent-deep:#1d4ed8;--accent-soft:#dbeafe;--accent-pale:#bfdbfe;--navigation-deep:#0b1a3a;--navigation-muted:#9db4d6;--coral:var(--accent);--coral-deep:var(--accent-deep);--danger:#b84040;--danger-soft:#fff1f1;--success:#1e6bb8;--radius-control:10px;--radius-surface:16px;--radius-card:16px;--radius-feature:22px;--shadow-low:0 10px 28px #0f313a12;--z-sticky:20;--z-modal:40;--z-toast:60;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#dbe4f0;font-family:Avenir Next,Avenir,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}html{background:#dbe4f0;min-width:320px}body{min-width:320px;min-height:100dvh;margin:0}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb61}img{max-width:100%}.visually-hidden{white-space:nowrap!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}#app{width:min(100%, var(--app-width));background:var(--canvas);min-height:100dvh;margin:0 auto;overflow:hidden;box-shadow:0 0 30px #0000001f}.app-shell{background:var(--canvas);min-height:100dvh}.app-content{min-height:calc(100dvh - 62px)}.app-content.has-bottom-nav{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.page{min-height:calc(100dvh - 62px);padding:18px 16px 30px}.page-card{background:var(--surface);border-radius:var(--radius-surface);box-shadow:var(--shadow-low);overflow:hidden}.page-intro{color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.6}.status-badge{color:#1d4ed8;background:var(--accent-soft);border-radius:999px;align-items:center;min-height:26px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.form-stack{gap:16px;display:grid}.form-field{gap:7px;display:grid}.form-field label,.field-label{color:var(--ink);font-size:14px;font-weight:650}.form-field input,.form-field select,.form-field textarea,.control{width:100%;min-height:48px;color:var(--ink);background:var(--surface-raised);border-radius:var(--radius-control);border:1px solid #cbd9d8;padding:11px 13px}.form-field input::placeholder,.form-field textarea::placeholder{color:#71848b}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);margin:0;font-size:12px}.primary-button,.secondary-button,.danger-button{border-radius:var(--radius-control);border:0;justify-content:center;align-items:center;width:100%;min-height:50px;padding:11px 18px;font-weight:750;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:var(--accent)}.primary-button:active{background:var(--accent-deep)}.secondary-button{color:var(--ink);background:var(--surface-raised);border:1px solid var(--border)}.danger-button{color:var(--danger);background:var(--surface-raised);border:1px solid #efcaca}.text-button{min-width:44px;min-height:44px;color:var(--accent-deep);background:0 0;border:0;padding:8px}.helper{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.55}.section-title{margin:24px 0 12px;font-size:16px}.app-toast{z-index:var(--z-toast);right:20px;bottom:calc(86px + env(safe-area-inset-bottom));color:#fff;text-align:center;border-radius:var(--radius-control);background:#0b1a3af0;max-width:420px;min-height:46px;margin:0 auto;padding:13px 16px;font-size:14px;position:fixed;left:20px;box-shadow:0 8px 24px #0003}.toast-enter-active,.toast-leave-active,.hero-fade-enter-active,.hero-fade-leave-active{transition:opacity .18s}.toast-enter-from,.toast-leave-to,.hero-fade-enter-from,.hero-fade-leave-to{opacity:0}@media (width>=481px){#app{border-inline:1px solid #00000014}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
