:root{--bg:#10201a;--bg-grid:#14261f;--surface:#17291f;--surface-raised:#1d3226;--paper:#efe9d8;--paper-dim:#9cab9e;--gold:#c9a227;--gold-soft:#8d7a38;--mint:#8fbf9f;--coral:#e2725b;--line:#efe9d824;--shadow:0 12px 30px #00000059}*{box-sizing:border-box}body{background:repeating-linear-gradient(0deg, transparent, transparent 27px, var(--bg-grid) 28px), var(--bg);color:var(--paper);min-height:100vh;margin:0;padding:28px 16px 70px;font-family:Inter,sans-serif}.wrap{max-width:760px;margin:0 auto}header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:22px;padding-bottom:20px;display:flex}h1{letter-spacing:-.01em;margin:0 0 4px;font-family:Fraunces,serif;font-size:clamp(24px,5vw,34px);font-weight:600}.sub{color:var(--paper-dim);margin:0;font-size:13px}.countdown{text-align:right;cursor:pointer;font-family:IBM Plex Mono,monospace}.countdown .num{color:var(--gold);font-size:28px;font-weight:700;line-height:1}.countdown .lbl{text-transform:uppercase;letter-spacing:.08em;color:var(--paper-dim);font-size:10px}.countdown-edit{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.countdown-edit input{background:var(--surface-raised);border:1px solid var(--line);color:var(--paper);border-radius:4px;width:170px;padding:6px 8px;font-family:Inter,sans-serif;font-size:12px}.countdown-edit input[type=date]{font-family:IBM Plex Mono,monospace}.countdown-edit-actions{gap:4px;display:flex}.countdown-edit-actions button{background:var(--gold);color:var(--bg);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:5px 10px;font-size:11px;font-weight:700}.countdown-edit-actions button:last-child:not(:only-child){border:1px solid var(--line);color:var(--paper-dim);background:0 0}.header-right{align-items:flex-end;gap:18px;display:flex}.logout-btn{border:1px solid var(--line);color:var(--paper-dim);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:4px;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:11px}.logout-btn:hover{border-color:var(--coral);color:var(--coral)}.telegram-link-btn{border:1px solid var(--line);color:var(--paper-dim);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:4px;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:11px}.telegram-link-btn:hover{border-color:var(--mint);color:var(--mint)}.telegram-link-btn:disabled{opacity:.6;cursor:default}.telegram-link-btn.linked{border-color:var(--mint);color:var(--mint)}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:6px;gap:2px;margin-bottom:24px;padding:3px;display:flex}.tab{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--paper-dim);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;flex:1;padding:10px;font-family:IBM Plex Mono,monospace;font-size:12px}.tab.active{background:var(--surface-raised);color:var(--gold)}.view{display:none}.view.active{display:block}.summary-bar{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;margin-bottom:20px;padding:16px 18px}.summary-row{justify-content:space-between;margin-bottom:8px;font-family:IBM Plex Mono,monospace;font-size:13px;display:flex}.summary-row .lbl{color:var(--paper-dim)}.progress-track{background:var(--surface-raised);border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--gold-soft), var(--gold));border-radius:4px;height:100%;transition:width .3s,box-shadow .25s}.progress-pct{text-align:right;color:var(--gold);margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px;display:grid}.envelope{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;padding:16px;transition:transform .25s cubic-bezier(.16,.8,.3,1),box-shadow .25s,border-color .25s;position:relative}.envelope:hover{border-color:var(--gold-soft);transform:translateY(-4px);box-shadow:0 18px 34px #00000080}.envelope:hover .progress-fill{box-shadow:0 0 10px #c9a22799}.envelope.completed{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint), var(--shadow)}.envelope.completed:hover{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint), 0 18px 34px #00000080}.envelope.completed:hover .progress-fill{box-shadow:0 0 10px #8fbf9f99}@media (prefers-reduced-motion:reduce){.envelope{transition:none}.envelope:hover{transform:none}}.env-badge{background:var(--mint);color:var(--bg);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;margin-bottom:10px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;display:inline-flex}.env-name{margin-bottom:10px;font-family:Fraunces,serif;font-size:16px;font-weight:600}.env-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.env-header .env-name{margin-bottom:0}.env-header input.edit-name-input{background:var(--surface-raised);border:1px solid var(--gold);min-width:0;color:var(--paper);border-radius:4px;flex:1;padding:4px 8px}.env-actions{flex-shrink:0;gap:4px;display:flex}.env-icon-btn{border:1px solid var(--line);color:var(--paper-dim);cursor:pointer;background:0 0;border-radius:4px;width:22px;height:22px;padding:0;font-size:11px;line-height:1}.env-icon-btn.edit{border-color:var(--mint);color:var(--mint)}.env-icon-btn.del{border-color:var(--coral);color:var(--coral)}.env-target-edit{gap:6px;margin-bottom:6px;display:flex}.env-target-edit input{background:var(--surface-raised);border:1px solid var(--gold);color:var(--paper);border-radius:4px;flex:1;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:13px}.env-target-edit button{background:var(--gold);color:var(--bg);cursor:pointer;border:none;border-radius:4px;padding:0 10px;font-size:12px;font-weight:700}.env-nums{justify-content:space-between;align-items:baseline;margin-bottom:6px;font-family:IBM Plex Mono,monospace;display:flex}.env-saved{color:var(--mint);font-size:18px;font-weight:700}.env-target{color:var(--paper-dim);font-size:12px}.env-pct{text-align:right;color:var(--paper-dim);margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:11px}.envelope.completed .env-pct{color:var(--mint)}.env-add{gap:6px;margin-top:12px;display:flex}.env-add input{background:var(--surface-raised);border:1px solid var(--line);min-width:0;color:var(--paper);border-radius:4px;flex:1;padding:8px;font-family:IBM Plex Mono,monospace;font-size:13px}.env-add button{background:var(--gold);color:var(--bg);cursor:pointer;border:none;border-radius:4px;padding:8px 12px;font-size:13px;font-weight:700}.env-add button:active{opacity:.8}.add-envelope{background:var(--surface);border:1px dashed var(--line);border-radius:6px;flex-wrap:wrap;gap:8px;padding:14px 16px;display:flex}.add-envelope input{background:var(--surface-raised);border:1px solid var(--line);color:var(--paper);border-radius:4px;padding:9px 10px;font-family:Inter,sans-serif;font-size:13px}.add-envelope input.name{flex:2;min-width:120px}.add-envelope input.num{flex:1;min-width:90px;font-family:IBM Plex Mono,monospace}.add-envelope button{background:var(--mint);color:var(--bg);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:9px 14px;font-size:13px;font-weight:700}.stat-row{justify-content:space-between;padding:6px 0;font-family:IBM Plex Mono,monospace;font-size:13px;display:flex}.stat-row .lbl{color:var(--paper-dim)}.stat-row.total{border-top:1px solid var(--line);color:var(--coral);margin-top:6px;padding-top:10px;font-size:16px;font-weight:700}.form{background:var(--surface);border:1px solid var(--line);border-radius:6px;margin:18px 0;padding:16px}.form-row{gap:8px;margin-bottom:8px;display:flex}.form input,.form select{border:1px solid var(--line);background:var(--surface-raised);color:var(--paper);border-radius:4px;width:100%;padding:10px 12px;font-family:Inter,sans-serif;font-size:14px}.form input[type=number]{font-family:IBM Plex Mono,monospace;font-weight:600}.form button{letter-spacing:.05em;background:var(--gold);width:100%;color:var(--bg);cursor:pointer;text-transform:uppercase;border:none;border-radius:4px;padding:11px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:700}.form button:disabled{opacity:.5;cursor:default}.month-filter{margin:18px 0 10px}.month-filter select{border:1px solid var(--line);background:var(--surface-raised);color:var(--paper);border-radius:4px;width:100%;padding:9px 12px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.entries{margin-top:4px}.entry{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:8px;padding:9px 0;font-size:13px;display:flex}.entry-left{flex-direction:column;min-width:0;display:flex}.entry-cat{font-size:12px;font-weight:600}.entry-note{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.entry-date{color:var(--paper-dim);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:10px}.day-divider{text-transform:uppercase;letter-spacing:.06em;color:var(--gold);border-top:1px solid var(--line);margin-top:6px;padding:14px 0 4px;font-family:IBM Plex Mono,monospace;font-size:10px}.entries>.day-divider:first-child{border-top:none;margin-top:0}.entry-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.more-entries{margin-top:4px}.more-entries-toggle{cursor:pointer;color:var(--mint);text-align:center;border-top:1px solid var(--line);padding:10px 0;font-family:IBM Plex Mono,monospace;font-size:11px;list-style:none}.more-entries-toggle::-webkit-details-marker{display:none}.more-entries-toggle:hover{color:var(--gold)}.more-entries[open] .more-entries-toggle{border-bottom:1px dashed var(--line);margin-bottom:2px}.entry-amount{font-family:IBM Plex Mono,monospace;font-weight:700}.edit-btn{color:var(--mint);border:1px solid var(--mint);cursor:pointer;background:0 0;border-radius:4px;padding:2px 7px;font-size:13px}.edit-input{border:1px solid var(--gold);background:var(--surface-raised);width:80px;color:var(--paper);border-radius:4px;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:700}.edit-cat{border:1px solid var(--gold);background:var(--surface-raised);color:var(--paper);border-radius:4px;max-width:140px;padding:4px 6px;font-family:Inter,sans-serif;font-size:12px}.edit-note{border:1px solid var(--gold);background:var(--surface-raised);color:var(--paper);border-radius:4px;width:140px;margin-top:4px;padding:4px 6px;font-family:Inter,sans-serif;font-size:11px}.save-btn{background:var(--gold);color:var(--bg);cursor:pointer;border:none;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:700}.del-btn{color:var(--coral);border:1px solid var(--coral);cursor:pointer;background:0 0;border-radius:4px;padding:2px 7px;font-size:13px}.breakdown{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.bd-title{text-transform:uppercase;color:var(--paper-dim);margin-bottom:8px;font-family:IBM Plex Mono,monospace;font-size:11px}.bd-row{justify-content:space-between;padding:4px 0;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.cat-manager{background:var(--surface);border:1px solid var(--line);border-radius:6px;margin-bottom:18px;padding:14px 16px}.cat-chips{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.cat-chip{background:var(--surface-raised);border:1px solid var(--line);border-radius:4px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.chip-icon{color:var(--paper-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;line-height:1}.chip-icon.edit{color:var(--mint)}.chip-icon.del,.chip-icon.cancel{color:var(--coral)}.chip-icon.save{color:var(--gold)}.cat-edit-input{border:1px solid var(--gold);background:var(--bg);width:110px;color:var(--paper);border-radius:4px;padding:3px 6px;font-family:Inter,sans-serif;font-size:12px}.cat-add{gap:8px;display:flex}.cat-add input{background:var(--surface-raised);border:1px solid var(--line);min-width:0;color:var(--paper);border-radius:4px;flex:1;padding:8px 10px;font-family:Inter,sans-serif;font-size:13px}.cat-add button{background:var(--mint);color:var(--bg);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:8px 14px;font-size:13px;font-weight:700}.empty{text-align:center;color:var(--paper-dim);padding:20px 0;font-size:12px;font-style:italic}.status{text-align:center;color:var(--paper-dim);margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:11px}.chart-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;margin-bottom:16px;padding:18px}.chart-title{text-transform:uppercase;letter-spacing:.06em;color:var(--paper-dim);margin-bottom:14px;font-family:IBM Plex Mono,monospace;font-size:11px}.chart-canvas-wrap{width:100%;position:relative}.chart-canvas-wrap.donut{height:260px}.chart-canvas-wrap.bar{height:220px}.auth-wrap{max-width:360px;margin:14vh auto 0;padding:0 16px}.auth-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;padding:26px 22px}.auth-title{margin:0 0 4px;font-family:Fraunces,serif;font-size:24px;font-weight:600}.auth-sub{color:var(--paper-dim);margin:0 0 20px;font-size:13px}.auth-card .form-row{margin-bottom:10px}.auth-toggle{text-align:center;color:var(--paper-dim);margin-top:14px;font-size:12px}.auth-toggle button{color:var(--gold);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.auth-error{color:var(--coral);margin:0 0 12px;font-family:IBM Plex Mono,monospace;font-size:12px}.auth-notice-success{color:var(--mint);margin:0 0 12px;font-family:IBM Plex Mono,monospace;font-size:12px}.auth-email-row{position:relative}.auth-forget-btn{color:var(--paper-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-forget-btn:hover{color:var(--coral)}.auth-remember-row{justify-content:space-between;align-items:center;margin:-2px 0 14px;font-size:12.5px;display:flex}.auth-remember-label{color:var(--paper-dim);cursor:pointer;align-items:center;gap:7px;display:flex}.auth-remember-label input[type=checkbox]{accent-color:var(--gold);cursor:pointer;width:14px;height:14px}.auth-link-btn{color:var(--gold);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px}.auth-link-btn:hover{text-decoration:underline}
