:root{--bg: #FAF8FF;--bg-warm: #F5F1FC;--surface: #FFFFFF;--surface-alt: #F3EEFB;--primary: #7C5CFC;--primary-l: #9B83FD;--primary-d: #6344E0;--primary-bg: rgba(124, 92, 252, .07);--primary-glow: rgba(124, 92, 252, .13);--accent: #D8B4FE;--text: #1C1627;--text-2: #584D6E;--text-3: #9C90B0;--success: #22C55E;--success-bg: rgba(34, 197, 94, .08);--danger: #EF4444;--danger-bg: rgba(239, 68, 68, .07);--border: rgba(124, 92, 252, .1);--border-2: rgba(124, 92, 252, .18);--sh-1: 0 1px 2px rgba(0, 0, 0, .04);--sh-2: 0 2px 8px rgba(124, 92, 252, .06), 0 0 0 1px var(--border);--sh-3: 0 8px 24px rgba(124, 92, 252, .09), 0 0 0 1px var(--border);--sh-4: 0 16px 48px rgba(124, 92, 252, .12);--r-s: 10px;--r-m: 14px;--r-l: 20px;--r-xl: 28px;--r-full: 999px;--ease: cubic-bezier(.25, .8, .25, 1);--spring: cubic-bezier(.34, 1.56, .64, 1);--dur: .2s;--font: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 15% 20%,rgba(124,92,252,.04) 0%,transparent 70%),radial-gradient(ellipse 50% 60% at 85% 80%,rgba(216,180,254,.04) 0%,transparent 70%)}#app{position:relative;z-index:1;max-width:460px;margin:0 auto;padding:20px 18px 120px;min-height:100vh}@keyframes enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes barGrow{0%{width:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-enter{animation:enter .4s var(--ease) both}.i{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.i svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.i-14{width:14px;height:14px}.i-16{width:16px;height:16px}.i-18{width:18px;height:18px}.i-20{width:20px;height:20px}.i-24{width:24px;height:24px}.hdr{display:flex;align-items:center;justify-content:space-between;padding:4px 0 20px;animation:fade .5s var(--ease) both}.hdr-left{display:flex;align-items:center;gap:10px}.hdr-mark{width:34px;height:34px;border-radius:var(--r-s);background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #7c5cfc40}.hdr-mark svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hdr h1{font-size:1.05rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}.mpick{display:flex;align-items:center;gap:4px}.mpick-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dur) var(--ease)}.mpick-btn:hover{background:var(--primary-bg);color:var(--primary);border-color:var(--border-2)}.mpick-btn:active{transform:scale(.9)}.mpick-label{font-size:.8rem;font-weight:700;color:var(--text);padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);min-width:110px;text-align:center;letter-spacing:-.01em}.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;animation:enter .4s var(--ease) .08s both}.chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);padding:14px 12px;text-align:center;box-shadow:var(--sh-1);transition:all var(--dur) var(--ease)}.chip:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}.chip-val{font-size:1.1rem;font-weight:800;color:var(--text);letter-spacing:-.02em}.chip-lbl{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-top:3px}.chip.accent .chip-val{color:var(--primary)}.chip.warn .chip-val{color:var(--danger)}.sec{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;animation:fade .3s var(--ease) .15s both}.sec h2{font-size:.82rem;font-weight:700;color:var(--text-2);display:flex;align-items:center;gap:6px}.badge{font-size:.65rem;font-weight:700;background:var(--primary-bg);color:var(--primary);padding:3px 10px;border-radius:var(--r-full);border:1px solid var(--border)}.cards{display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);padding:16px 18px;cursor:pointer;transition:all var(--dur) var(--ease);box-shadow:var(--sh-1);position:relative}.card:hover{box-shadow:var(--sh-3);transform:translateY(-2px);border-color:var(--border-2)}.card:active{transform:translateY(0);box-shadow:var(--sh-2)}.card:after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--primary-l);border-radius:0 3px 3px 0;opacity:.5;transition:opacity var(--dur) var(--ease)}.card:hover:after{opacity:1}.card.done{opacity:.5}.card.done:hover{opacity:.7}.card.done:after{background:var(--success)}.card-row{display:flex;align-items:center;justify-content:space-between}.card-name{font-size:.9rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.rank{width:22px;height:22px;border-radius:6px;background:var(--surface-alt);color:var(--text-2);font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}.card.done .rank{background:var(--success-bg);color:var(--success);border-color:#22c55e26}.card-amt{font-size:1rem;font-weight:800;color:var(--primary);letter-spacing:-.02em}.card.done .card-amt{color:var(--success);font-size:.82rem}.card-sub{display:flex;align-items:center;gap:12px;margin:8px 0;font-size:.72rem;font-weight:500;color:var(--text-3)}.card-sub span{display:flex;align-items:center;gap:4px}.bar{width:100%;height:4px;background:var(--surface-alt);border-radius:var(--r-full);overflow:hidden}.bar-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--primary-l),var(--primary));transition:width .7s var(--ease);animation:barGrow .7s var(--ease) both}.card.done .bar-fill{background:linear-gradient(90deg,#86EFAC,var(--success))}.card-foot{display:flex;justify-content:flex-end;margin-top:10px}.detail{animation:fade .25s var(--ease) both}.back{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--text-2);background:none;border:none;cursor:pointer;padding:6px 0;margin-bottom:12px;transition:all var(--dur) var(--ease)}.back:hover{color:var(--primary);transform:translate(-3px)}.d-head{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);padding:22px;box-shadow:var(--sh-2);margin-bottom:20px;animation:enter .4s var(--ease) both}.d-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.d-title h2{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.d-title .d-actions{display:flex;gap:6px}.d-salary{font-size:.75rem;color:var(--text-3);font-weight:500;margin-bottom:16px;display:flex;align-items:center;gap:5px}.d-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.d-stat{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-s);padding:12px 10px;text-align:center;transition:all var(--dur) var(--ease)}.d-stat:hover{transform:translateY(-1px);box-shadow:var(--sh-1)}.d-stat .i{margin:0 auto 5px;color:var(--text-3)}.d-stat-v{font-size:1.05rem;font-weight:800;color:var(--text);letter-spacing:-.02em}.d-stat-l{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-top:2px}.d-stat.s-paid .d-stat-v{color:var(--primary)}.d-stat.s-due .d-stat-v{color:var(--danger)}.d-stat.s-ok .d-stat-v{color:var(--success)}.ledger{animation:enter .4s var(--ease) .08s both}.ledger-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.ledger-top h3{font-size:.85rem;font-weight:700;display:flex;align-items:center;gap:6px}.entries{display:flex;flex-direction:column;gap:6px}.ent{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s);padding:12px 14px;transition:all var(--dur) var(--ease);animation:enter .35s var(--ease) both}.ent:hover{border-color:var(--border-2);box-shadow:var(--sh-1);transform:translate(3px)}.ent-icon{width:32px;height:32px;border-radius:8px;background:var(--primary-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border)}.ent-body{flex:1;min-width:0}.ent-note{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ent-date{font-size:.68rem;color:var(--text-3);margin-top:1px;font-weight:500}.ent-val{font-weight:800;font-size:.9rem;color:var(--primary);flex-shrink:0;letter-spacing:-.01em}.ent-del{width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:var(--text-3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--dur) var(--ease)}.ent-del:hover{background:var(--danger-bg);color:var(--danger);transform:scale(1.1)}.empty{text-align:center;padding:44px 16px;color:var(--text-3);animation:fade .4s var(--ease) both}.empty-box{width:52px;height:52px;margin:0 auto 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-m);display:flex;align-items:center;justify-content:center;color:var(--text-3)}.empty-box svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.empty p{font-size:.85rem;font-weight:600}.empty .hint{font-size:.72rem;margin-top:4px;opacity:.6;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;border-radius:var(--r-s);font-family:var(--font);font-weight:600;font-size:.8rem;cursor:pointer;transition:all var(--dur) var(--ease);padding:9px 16px}.btn:active{transform:scale(.96)}.btn-p{background:var(--primary);color:#fff;box-shadow:0 2px 8px #7c5cfc33}.btn-p:hover{background:var(--primary-d);box-shadow:0 4px 14px #7c5cfc47;transform:translateY(-1px)}.btn-s{background:var(--surface);color:var(--text-2);border:1px solid var(--border)}.btn-s:hover{background:var(--primary-bg);color:var(--primary);border-color:var(--border-2)}.btn-d{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.1)}.btn-d:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-sm{padding:6px 12px;font-size:.72rem;border-radius:8px}.fab{position:fixed;bottom:28px;right:calc(50% - 220px);width:50px;height:50px;border-radius:var(--r-m);background:var(--primary);color:#fff;border:none;cursor:pointer;box-shadow:var(--sh-4);display:flex;align-items:center;justify-content:center;transition:all var(--dur) var(--spring);z-index:50;animation:scaleUp .35s var(--spring) .4s both}.fab svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur) var(--ease)}.fab:hover{transform:scale(1.08);box-shadow:0 12px 36px #7c5cfc38}.fab:hover svg{transform:rotate(90deg)}.fab:active{transform:scale(.94)}@media(max-width:500px){.fab{right:18px}}.ov{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c162759;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s var(--ease) both}.panel{background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:460px;padding:22px 22px 34px;box-shadow:var(--sh-4);animation:slideUp .32s var(--spring) both;border:1px solid var(--border);border-bottom:none}.panel-bar{width:32px;height:3.5px;background:var(--border-2);border-radius:var(--r-full);margin:0 auto 16px}.panel h3{font-size:1rem;font-weight:800;margin-bottom:18px;letter-spacing:-.02em}.fg{margin-bottom:14px}.fg label{display:flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;color:var(--text-2);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.fg input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r-s);font-family:var(--font);font-size:.88rem;font-weight:500;color:var(--text);background:var(--bg);transition:all var(--dur) var(--ease);outline:none;box-shadow:inset 0 1px 3px #00000008}.fg input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow),inset 0 1px 3px #00000005;background:var(--surface)}.fg input::placeholder{color:var(--text-3);font-weight:400}.f-actions{display:flex;gap:8px;margin-top:20px}.f-actions .btn{flex:1}.confirm{text-align:center;padding:8px 0}.confirm-icon{width:48px;height:48px;margin:0 auto 10px;background:var(--danger-bg);border-radius:var(--r-m);display:flex;align-items:center;justify-content:center;color:var(--danger)}.confirm-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.confirm p{font-size:.88rem;color:var(--text-2)}.confirm strong{color:var(--text);font-weight:700}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--primary-l)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:75vh;animation:fade .5s var(--ease) both}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);padding:36px 30px;width:100%;max-width:380px;box-shadow:var(--sh-3);position:relative;overflow:hidden;animation:enter .5s var(--ease) .1s both}.login-card:before{content:"";position:absolute;top:-40%;left:-20%;width:160%;height:80%;background:radial-gradient(ellipse at center,rgba(124,92,252,.06) 0%,transparent 70%);pointer-events:none}.login-icon{width:50px;height:50px;border-radius:var(--r-m);background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 4px 16px #7c5cfc40}.login-icon svg{stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-card h2{font-size:1.2rem;font-weight:800;text-align:center;letter-spacing:-.03em;margin-bottom:4px}.login-hint{font-size:.75rem;color:var(--text-3);text-align:center;margin-bottom:24px;font-weight:500}.login-err{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--danger);background:var(--danger-bg);border:1px solid rgba(239,68,68,.12);border-radius:var(--r-s);padding:10px 14px;margin-bottom:16px;animation:enter .3s var(--ease) both}.auth-tabs{display:flex;gap:0;margin-bottom:22px;background:var(--surface-alt);border-radius:var(--r-full);padding:3px;border:1px solid var(--border)}.auth-tab{flex:1;padding:9px 0;font-family:var(--font);font-size:.78rem;font-weight:700;border:none;border-radius:var(--r-full);background:transparent;color:var(--text-3);cursor:pointer;transition:all var(--dur) var(--ease)}.auth-tab.active{background:var(--surface);color:var(--primary);box-shadow:var(--sh-1)}.auth-tab:not(.active):hover{color:var(--text-2)}
