:root{--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--grad-brand-text:linear-gradient(120deg, #2f6fe0 0%, #3fb6a0 100%);--bg-page:#f6f5f8;--bg-card:#fff;--bg-card-soft:#fbfafd;--bg-section:#f1f0f4;--text-primary:#232327;--text-body:#3a3a40;--text-secondary:#7f8088;--text-muted:#b5b6be;--text-disabled:#c9cad1;--border-subtle:#eceaf0;--divider:#f0eff4;--habit:#8fc4f7;--habit-soft:#eaf4fc;--positive:#8edbc0;--positive-soft:#eaf8f2;--wish:#f4afc5;--wish-soft:#fdeff4;--reward:#f4c49a;--reward-soft:#fff3ea;--data:#a9b8cc;--data-soft:#eef3f8;--danger:#e5676b;--danger-soft:#fde7e7;--focus-ring:0 0 0 3px #8fc4f773;--radius-page-card:24px;--radius-card:20px;--radius-small:16px;--radius-icon:14px;--radius-pill:999px;--radius-nav:28px;--radius-modal:28px;--shadow-card:0 6px 20px #18181c0a;--shadow-floating:0 8px 30px #18181c0f;--dock-height:68px;--dock-bottom-gap:max(10px, env(safe-area-inset-bottom));--dock-bg:#ffffffeb;--text-on-accent:#fff;--accent-on-soft:#8fc4f7;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--text-display:30px;--text-page-title:22px;--text-section:17px;--text-card-title:15px;--text-body-size:14px;--text-meta:12px;--text-caption:11px;--font-display:700;--font-title:650;--font-section:600;--font-card-title:600;--z-base:0;--z-sticky:100;--z-overlay:900;--z-modal:990;--z-toast:999;--dur-fast:.15s;--dur-base:.2s;--ease-default:cubic-bezier(.2, 0, 0, 1);--heat-0:#f1f0f4;--heat-1:#e3eefa;--heat-2:#c9dff6;--heat-3:#a9ccf3;--heat-4:#8fc4f7}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:var(--text-body-size);color:var(--text-primary);border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:var(--radius-small);transition:border-color var(--dur-fast) var(--ease-default), box-shadow var(--dur-fast) var(--ease-default);outline:none;padding:10px 14px}input:focus,textarea:focus,select:focus{border-color:var(--habit);box-shadow:var(--focus-ring)}input:disabled,textarea:disabled,select:disabled{color:var(--text-disabled);background:var(--bg-card-soft);cursor:not-allowed}:focus-visible{outline:2px solid var(--habit);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}::placeholder{color:var(--text-muted)}.app{min-height:100vh;display:flex}.main{min-width:0;padding:var(--space-6) var(--space-8) 80px;flex:1;margin-left:232px}@media (width<=860px){.main{padding:var(--space-4) 14px 96px;margin-left:0}}.badge{font-size:var(--text-meta);border-radius:var(--radius-pill);white-space:nowrap;color:var(--text-body);background:var(--bg-section);align-items:center;gap:5px;padding:3px 10px;font-weight:600;display:inline-flex}.badge-pending{background:var(--reward-soft)}.badge-synced{background:var(--positive-soft)}.badge-failed,.badge-error{background:var(--danger-soft);color:var(--danger)}.toast-wrap{z-index:var(--z-toast);gap:var(--space-2);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{background:var(--bg-card);color:var(--text-primary);border-radius:var(--radius-pill);font-size:var(--text-body-size);box-shadow:var(--shadow-floating);animation:toast-in var(--dur-base) var(--ease-default);max-width:80vw;padding:10px 18px;font-weight:600}.toast.err{color:var(--danger);background:var(--danger-soft)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-subtle);border:2px solid var(--bg-page);border-radius:8px}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
