:root{--c-bg: #13131f;--c-card: #1c1c2e;--c-border: #28283e;--c-text: #eaeaf4;--c-sec: #8888aa;--c-inp: #16162a;--c-inpb: #32324e;--c-nav: #18181e;--c-muted: #56567a;--c-sub: #20203a;--c-dim: #44446a;--c-navi: #46467a;--c-sub2: #1e1e38;--c-dim2: #66668a;--c-ghost: #c8c8dc;--c-acc-bg: #0e2f48;--c-acc-bd: #1e6288;--c-acc-txt: #38bdf8;--c-suc-bg: #0c2416;--c-suc-bg2: #123e22;--c-suc-bd: #1a6e38;--c-suc-btn: #165830;--c-suc-txt: #4ade80;--c-err-bg: #4a0e0e;--c-err-bg2: #1e0e0e;--c-err-bd: #8a2020;--c-err-bd2: #3e1e1e;--c-err-txt: #f87171;--c-wrn-bg: #2e1e10;--c-wrn-bg2: #1e1610;--c-wrn-bd: #844e22;--c-wrn-bd2: #72601e;--c-wrn-txt: #fb923c;--c-heat-today-e: #1a2a3e;--c-heat-low: #0e2f48;--c-heat-med: #143076;--c-heat-hi: #3e1e08;--c-sky: #38bdf8;--c-cyan: #22d3ee;--c-amber: #fbbf24}html.light{--c-bg: #f5f7fa;--c-card: #ffffff;--c-border: #e2e8f0;--c-text: #1a1a2a;--c-sec: #64748b;--c-inp: #f8fafc;--c-inpb: #cbd5e1;--c-nav: #ffffff;--c-muted: #94a3b8;--c-sub: #f1f5f9;--c-dim: #94a3b8;--c-navi: #94a3b8;--c-sub2: #f8fafc;--c-dim2: #94a3b8;--c-ghost: #475569;--c-acc-bg: #eff6ff;--c-acc-bd: #93c5fd;--c-acc-txt: #1d4ed8;--c-suc-bg: #f0fdf4;--c-suc-bg2: #dcfce7;--c-suc-bd: #86efac;--c-suc-btn: #15803d;--c-suc-txt: #15803d;--c-err-bg: #fff1f2;--c-err-bg2: #fff1f2;--c-err-bd: #fecaca;--c-err-bd2: #fecaca;--c-err-txt: #b91c1c;--c-wrn-bg: #fffbeb;--c-wrn-bg2: #fefce8;--c-wrn-bd: #fde68a;--c-wrn-bd2: #fcd34d;--c-wrn-txt: #b45309;--c-heat-today-e: #e0f2fe;--c-heat-low: #bfdbfe;--c-heat-med: #93c5fd;--c-heat-hi: #fdba74;--c-sky: #0369a1;--c-cyan: #0891b2;--c-amber: #b45309;--c-card-shadow: 0 2px 12px rgba(15,23,42,.07);--c-nav-shadow: 0 1px 6px rgba(15,23,42,.07);--c-bottom-shadow: 0 -3px 12px rgba(15,23,42,.08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--c-bg);color:var(--c-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}input,select,textarea,button{font-family:inherit}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}select option{background:var(--c-inp);color:var(--c-text)}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}html.light input[type=date]::-webkit-calendar-picker-indicator,html.light input[type=time]::-webkit-calendar-picker-indicator,html.light input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.3)}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-thumb{background:var(--c-inpb);border-radius:2px}::-webkit-scrollbar-track{background:transparent}.fa{animation:fa .18s ease}@keyframes fa{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast{position:fixed;top:68px;left:50%;transform:translate(-50%);background:#14532d;border:1px solid #166534;color:#4ade80;padding:9px 18px;border-radius:12px;font-size:13px;font-weight:600;z-index:9999;white-space:nowrap;pointer-events:none;animation:fa .2s ease;max-width:calc(100vw - 32px);text-align:center}.toast.err{background:#450a0a;border-color:#7f1d1d;color:#f87171}.toast.warn{background:#2a1a0c;border-color:#7c4a1e;color:#fb923c}html.light .toast{background:var(--c-suc-bg2);border-color:var(--c-suc-bd);color:var(--c-suc-txt)}html.light .toast.err{background:var(--c-err-bg);border-color:var(--c-err-bd);color:var(--c-err-txt)}html.light .toast.warn{background:var(--c-wrn-bg);border-color:var(--c-wrn-bd);color:var(--c-wrn-txt)}button:active{opacity:.82;transform:scale(.97)}.splash{display:flex;align-items:center;justify-content:center;height:100vh;flex-direction:column;gap:14px;color:var(--c-sky)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.clients-card{border:1px solid var(--c-inpb);transition:border-color .2s}html.light .clients-card{border-color:#94a3b8;box-shadow:0 1px 4px #0f172a1a}.pulse{animation:pulse 1.8s ease-in-out infinite}@keyframes tabSlide{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}.tab-content{animation:tabSlide .22s cubic-bezier(.25,.46,.45,.94)}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes appIn{0%{opacity:0}to{opacity:1}}.app-fade{animation:appIn .3s ease}
