:root{--blue: #1D4ED8;--blue-dark: #1E40AF;--sun: #FACC15;--navy: #0F1F4B;--tint: #E8EEFD;--bg: #F8FAFF;--ink: #111827;--muted: #4B5563;--line: #D8DEEC;--card: #FFFFFF;--red: #B91C1C;--green: #15803D;--amber: #92400E}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}h1,h2{font-family:Sora,Inter,sans-serif;color:var(--navy);margin:0 0 8px}h1{font-size:28px}h2{font-size:18px}a{color:var(--blue)}a:hover{color:var(--blue-dark)}p{margin:0 0 12px}.muted{color:var(--muted);font-size:14px}.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.logo-word{font-family:Sora,sans-serif;font-weight:700;color:var(--blue);letter-spacing:-.02em}.btn{min-height:44px;padding:0 20px;border-radius:10px;border:2px solid transparent;font:inherit;font-weight:600;cursor:pointer}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-dark)}.btn.ghost{background:transparent;border-color:var(--blue);color:var(--blue)}.btn.ghost:hover{background:var(--tint)}.btn.danger{background:var(--red);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.linkish{background:none;border:0;padding:4px 0;color:var(--blue);font:inherit;text-decoration:underline;cursor:pointer}.icon{min-width:36px;min-height:36px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--navy);font:inherit;font-size:14px;cursor:pointer;padding:0 8px}.icon:disabled{opacity:.35;cursor:default}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}input[type=text],input[type=email],input[type=password],input:not([type]){width:100%;min-height:44px;padding:8px 12px;border:1px solid #9AA5BD;border-radius:10px;font:inherit;background:#fff;color:var(--ink)}.form{display:flex;flex-direction:column;gap:14px}.form label,.stack{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:14px}.stack{margin-bottom:12px;max-width:320px}.form label.check,.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.check input{width:20px;height:20px;margin-top:2px;flex:none}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.push-left{margin-right:auto}.center{display:flex;justify-content:center;margin:8px 0 24px}.notice{padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:12px}.notice-info{background:var(--tint);color:var(--navy)}.notice-error{background:#fee2e2;color:#7f1d1d}.notice-ok{background:#dcfce7;color:#14532d}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:32px 16px 0}.auth-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px;margin:auto 0}.tagline{font-size:18px;color:var(--navy);margin:0}.tabs,.switcher{display:flex;gap:6px;background:var(--tint);padding:4px;border-radius:12px;flex-wrap:wrap}.tab{flex:1;min-height:40px;border:0;border-radius:9px;background:transparent;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;padding:0 14px}.tab.on{background:#fff;color:var(--blue);box-shadow:0 1px 2px #0f1f4b26}.or{text-align:center;color:var(--muted);font-size:14px}.fineprint{font-size:13px;color:var(--muted);margin:0}.app{min-height:100vh;display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line)}.navs{display:flex;gap:4px;flex-wrap:wrap}.nav{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:8px;border:0;background:none;font:inherit;font-weight:600;font-size:15px;color:var(--navy);text-decoration:none;cursor:pointer}.nav:hover{background:var(--tint);color:var(--navy)}.nav.on{background:var(--tint);color:var(--blue)}.badge{background:var(--sun);color:var(--navy);border-radius:999px;font-size:12px;padding:1px 7px}.banner{background:var(--tint);color:var(--navy);font-size:14px;padding:8px 20px;text-align:center}.banner.warn{background:#fef3c7;color:#78350f}main{flex:1}.switcher{max-width:760px;margin:20px auto 0;width:calc(100% - 32px)}.page{max-width:760px;margin:0 auto;padding:20px 16px 32px;display:flex;flex-direction:column;gap:14px}.page.wide{max-width:1040px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}.profile,.salary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-name{font-family:Sora,sans-serif;font-weight:700;font-size:20px;color:var(--navy)}.salary{background:#dcfce7;border-color:#bbf7d0;font-weight:600}.salary strong{font-size:20px;color:var(--green)}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sum{border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;min-width:0}.sum span{font-size:13px;font-weight:600}.sum strong{font-size:20px;font-family:Sora,sans-serif;overflow-wrap:anywhere}.sum-blue{background:var(--tint);color:var(--blue-dark)}.sum-amber{background:#fef3c7;color:var(--amber)}.sum-green{background:#dcfce7;color:var(--green)}.cat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.cat-head h2{margin:0;display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.items,.rows{list-style:none;margin:0;padding:0}.item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.item-main{flex:1;min-width:120px}.item-name{font-weight:500}.item.done .item-name,.item.done .item-amount{text-decoration:line-through;color:var(--muted)}.item-amount{font-variant-numeric:tabular-nums;font-weight:600}.item-actions{display:flex;gap:4px}.tick input{width:22px;height:22px}.tick{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:36px}.cat-total{display:flex;justify-content:space-between;padding-top:10px;font-weight:600}.pos{color:var(--green)}.neg{color:var(--red)}.rows li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.rows li:last-child,.item:last-child{border-bottom:0}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1f4b73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal{background:#fff;border-radius:16px;padding:22px;width:100%;max-width:420px;max-height:90vh;overflow:auto}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:600}.pill{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill.on{background:#dcfce7;color:#14532d}.pill.off{background:#fee2e2;color:#7f1d1d}.footer{padding:20px 16px;text-align:center;font-size:13px;color:var(--muted)}.legal-wrap{min-height:100vh;display:flex;flex-direction:column}.legal-head{padding:12px 20px;background:#fff;border-bottom:1px solid var(--line)}.legal{max-width:720px;margin:0 auto;padding:24px 16px;flex:1}.legal h2{margin-top:22px}@media (max-width: 560px){.summary{grid-template-columns:1fr}.top{padding:10px 12px}.nav{padding:0 8px;font-size:14px}}.cat-head input{width:auto;min-width:220px;flex:1}
