@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap");:root{--color-bg:#fff5f7;--color-bg-subtle:#fff0f3;--color-primary:#e8599a;--color-secondary:#f0e4ff;--color-text:#2d2235;--color-text-light:#8e8599;--color-accent:#d946a8;--color-white:#fff;--color-card-shadow:0 2px 12px rgba(180,60,120,.08);--color-card-shadow-hover:0 6px 20px rgba(180,60,120,.12);--color-success:#10b981;--color-danger:#ef4444;--color-border-light:#ede4ee;--color-border-section:#f5eff6;--color-overlay:rgba(45,34,53,.4);--gradient-primary:linear-gradient(135deg,#e8599a,#d946a8);--gradient-card:linear-gradient(180deg,#fff,#fffafc);--radius-card:16px;--radius-chip:24px;--radius-button:12px;--touch-target:44px;--max-width:480px;--ease:cubic-bezier(0.4,0,0.2,1);--transition-fast:0.15s var(--ease);--transition-smooth:0.2s var(--ease)}[data-theme=dark]{--color-bg:#151018;--color-bg-subtle:#1c1520;--color-primary:#f9a8d4;--color-secondary:#2e1f3a;--color-text:#f0e6f0;--color-text-light:#9b8da3;--color-accent:#fb7bb8;--color-white:#1e1724;--color-card-shadow:0 2px 12px rgba(0,0,0,.3);--color-card-shadow-hover:0 6px 20px rgba(0,0,0,.4);--color-success:#34d399;--color-danger:#f87171;--color-border-light:#2e2436;--color-border-section:#251d2e;--color-overlay:rgba(0,0,0,.65);--gradient-primary:linear-gradient(135deg,#f9a8d4,#fb7bb8);--gradient-card:linear-gradient(180deg,#1e1724,#1a1420)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Nunito,sans-serif;background-color:var(--color-bg);color:var(--color-text);min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none;transition:opacity var(--transition-fast)}a:hover{opacity:.8}button{cursor:pointer}button,input,select,textarea{font-family:inherit;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:1rem}::selection{background:var(--color-primary);color:#fff}