:root{--color-primary:#1a2a3a;--color-primary-light:#2d4a5f;--color-primary-bg:#e8f0f5;--color-accent:#e85d4a;--color-accent-bg:#fff0ee;--color-sage:#e8f0e8;--color-warm:#f8f6f3;--color-card:#fff;--color-text:#1a1a1a;--color-muted:#7c8590;--color-border:#e4e2de;--font-serif:"Fraunces", Georgia, serif;--font-sans:"Plus Jakarta Sans", -apple-system, sans-serif;--font-mono:"SF Mono", "Fira Code", "Courier New", monospace;--shadow:0 2px 8px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 8px 30px #00000014, 0 2px 8px #0000000a;--shadow-xl:0 20px 50px #0000001f;--radius:16px;--card-padding:18px;--card-gap:12px;--color-danger:#dc2626}*{box-sizing:border-box;margin:0;padding:0}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);font-family:var(--font-sans);background:var(--color-warm);color:var(--color-text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;font-size:14px;line-height:1.6;overflow-x:hidden}input,textarea,select,p,span,div,h1,h2,h3,h4,h5,h6,a,li{-webkit-user-select:text;user-select:text}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{scrollbar-width:none}input,select{border:1.5px solid var(--color-border);width:100%;font-size:14px;font-family:var(--font-sans);background:#fff;border-radius:12px;outline:none;padding:12px 14px;transition:border .2s}input:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a2a3a14}select{appearance:none}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0a0f1480;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-card);width:100%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-xl);border-radius:24px 24px 0 0;padding:28px 24px 24px;overflow-y:auto}@keyframes ri{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.anim-rise{animation:.5s both ri}.anim-rise-2{animation:.5s .1s both ri}.anim-rise-3{animation:.5s .2s both ri}.anim-rise-4{animation:.5s .3s both ri}@keyframes fi{0%{opacity:0}to{opacity:1}}.anim-fade{animation:.3s both fi}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal-overlay{animation:.2s both overlayIn}.modal-sheet{animation:.25s cubic-bezier(.4,0,.2,1) both modalIn}.label{color:var(--color-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.btn{border-radius:var(--radius);cursor:pointer;width:100%;min-height:48px;font-size:14px;font-weight:700;font-family:var(--font-sans);border:none;padding:16px;transition:transform .15s,box-shadow .15s}.btn:disabled{opacity:.5}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 12px #1a2a3a33}.btn-primary:hover{box-shadow:0 6px 20px #1a2a3a40}.btn-secondary{color:var(--color-muted);background:#f0eeeb}.pill{cursor:pointer;white-space:nowrap;min-height:36px;font-size:13px;font-weight:600;font-family:var(--font-sans);border:none;border-radius:100px;padding:8px 16px;transition:all .15s}.pill-active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #1a2a3a26}.pill-inactive{color:var(--color-muted);background:#f0eeeb}.htab{transition:all .15s}@supports (padding-top:env(safe-area-inset-top)){.safe-bot{padding-bottom:calc(env(safe-area-inset-bottom) + 20px)}}@media (display-mode:standalone){body{-webkit-user-select:none;user-select:none}#root{padding-top:env(safe-area-inset-top)}#root:before{content:"";height:env(safe-area-inset-top);background:var(--color-warm);z-index:9999;display:block;position:fixed;top:0;left:0;right:0}}.toast{top:env(safe-area-inset-top,20px);z-index:9999;font-size:14px;font-weight:600;font-family:var(--font-sans);box-shadow:var(--shadow-lg);pointer-events:none;text-align:center;border-radius:14px;max-width:90vw;padding:14px 24px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;left:50%;transform:translate(-50%)translateY(-100px)}.toast.show{transform:translate(-50%)translateY(20px)}.toast-ok{color:#fff;background:#1a2a3a}.toast-err{color:#fff;background:#dc2626}.toast-info{color:var(--color-text);border:1px solid var(--color-border);background:#fff}.dp-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.dp-cell{aspect-ratio:1;width:100%;font-size:14px;font-family:var(--font-sans);cursor:pointer;color:var(--color-text);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-weight:500;transition:all .15s;display:flex}.dp-cell:hover{background:var(--color-primary-bg)}.dp-cell.sel{background:var(--color-primary);color:#fff;font-weight:700}.dp-cell.today{border:2px solid var(--color-accent);font-weight:700}.dp-cell.other{color:var(--color-border)}.dp-head{color:var(--color-muted);padding:4px 0;font-size:12px;font-weight:700}.qp{border:1.5px solid var(--color-border);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;color:var(--color-text);white-space:nowrap;background:#fff;border-radius:12px;padding:10px 16px;transition:all .15s}.qp:hover,.qp:active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,#e8e4df 25%,#f5f1ec 37%,#e8e4df 63%) 0 0/200% 100%;animation:1.4s infinite shimmer}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stagger-card{animation:.35s cubic-bezier(.4,0,.2,1) both cardSlideIn}.native-app{-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.tab-content{animation:.25s cubic-bezier(.4,0,.2,1) both tabIn}@keyframes tabIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ptr-indicator{top:env(safe-area-inset-top,0px);z-index:999;background:var(--color-primary);color:#fff;font-size:11px;font-weight:700;font-family:var(--font-sans);border-radius:20px;padding:6px 16px;transition:transform .2s;position:fixed;left:50%;transform:translate(-50%)translateY(-40px);box-shadow:0 4px 16px #00000026}.ptr-indicator.visible,.ptr-indicator.refreshing{transform:translate(-50%)translateY(12px)}.native-app .stat-card{transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s}.native-app .stat-card:active{transform:scale(.95);box-shadow:0 1px 4px #00000014}@keyframes sheetUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.native-app .modal-box{animation:.3s cubic-bezier(.16,1,.3,1) both sheetUp}.native-app .modal-backdrop{animation:.15s both overlayIn}.native-app .tab-bar{-webkit-backdrop-filter:saturate(180%)blur(20px);background:#f8f6f3eb!important}.native-app .btn:active{transition:transform 80ms;transform:scale(.96)}@keyframes fabIn{0%{transform:scale(0)rotate(-90deg)}60%{transform:scale(1.15)rotate(5deg)}to{transform:scale(1)rotate(0)}}.native-app .fab-btn{animation:.4s cubic-bezier(.4,0,.2,1) both fabIn}[data-theme=dark]{--color-primary:#e8f0f5;--color-primary-light:#b0c8d8;--color-primary-bg:#1e2d3d;--color-accent:#f07563;--color-accent-bg:#2a1f1e;--color-sage:#1e2d1e;--color-warm:#0f1419;--color-card:#1a2028;--color-text:#e8e6e3;--color-muted:#8b9099;--color-border:#2a3040;--shadow:0 2px 8px #0003, 0 1px 2px #00000026;--shadow-lg:0 8px 30px #0000004d, 0 2px 8px #00000026;--shadow-xl:0 20px 50px #0006;--color-danger:#ef4444;--font-mono:"SF Mono", "Fira Code", "Courier New", monospace}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{color:#e8e6e3;background:#232830;border-color:#2a3040}[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:#b0c8d8}[data-theme=dark] .btn-primary{color:#0f1419;background:#e8f0f5}[data-theme=dark] .pill-inactive,[data-theme=dark] .btn-secondary{color:#8b9099;background:#232830}[data-theme=dark] .skeleton-shimmer{background:linear-gradient(90deg,#232830 25%,#2a3040 37%,#232830 63%) 0 0/200% 100%}[data-theme=dark] .toast-ok{color:#0f1419;background:#e8f0f5}[data-theme=dark] .qp{color:#e8e6e3;background:#232830;border-color:#2a3040}@media (width>=900px){body{justify-content:center;display:flex}#root{width:100%;max-width:600px;position:relative}}
