:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f5f7fa;background:#0c1017;font-synthesis:none}*{box-sizing:border-box}html{background:#0c1017}body{margin:0;min-width:320px;min-height:100vh;background:#0c1017}button,input,select{font:inherit}button{cursor:pointer}svg{width:20px;height:20px}.app-shell{width:min(100%,760px);min-height:100vh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 2px 20px}h1,h2,p{margin:0}header h1{margin-top:4px;font-size:21px;letter-spacing:0}.eyebrow{color:#7c8a9d;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.header-actions,.status,.section-title,.pending,.pending>div,.expense-value>div{display:flex;align-items:center}.header-actions{gap:8px}.status{gap:5px;padding:8px 10px;border-radius:20px;font-size:11px;font-weight:700;background:#151b24;color:#9da9b8}.status svg{width:14px;height:14px}.status.online{color:#b9ff5f}.status.offline{color:#ffbf69}.icon-button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #273141;border-radius:12px;color:#d8e0eb;background:#151b24}.icon-button:active{transform:scale(.96)}.icon-button.install{border-color:#2bd9f755;color:#2bd9f7}.entry-panel,.recent-panel{border:1px solid #202936;background:#111720;box-shadow:0 18px 50px #0005}.entry-panel{padding:18px;border-radius:20px}.section-title{justify-content:space-between;gap:12px;margin-bottom:18px}.section-title h2{margin-top:4px;font-size:20px}form{display:grid;gap:14px}label{display:grid;gap:7px;color:#9da9b8;font-size:12px;font-weight:650}input,select{width:100%;min-height:48px;border:1px solid #293445;border-radius:13px;outline:0;color:#f7f9fc;background:#0d1219;padding:0 13px}input:focus,select:focus{border-color:#2bd9f7;box-shadow:0 0 0 3px #2bd9f715}.amount{position:relative;display:block}.amount span{position:absolute;z-index:1;left:16px;top:50%;transform:translateY(-50%);color:#2bd9f7;font-weight:800}.amount input{height:82px;padding-left:58px;border-color:#2bd9f744;border-radius:17px;font-size:38px;font-weight:750;letter-spacing:0;color:#fff;background:#0b1118}.select-wrap>div{position:relative}.select-wrap select{appearance:none;padding-right:40px}.select-wrap svg{position:absolute;right:12px;top:14px;width:18px;pointer-events:none;color:#718096}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.primary{display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;border:0;border-radius:14px;background:#2bd9f7;color:#061017;font-weight:850;box-shadow:0 10px 30px #2bd9f72b}.primary:disabled{opacity:.55;cursor:wait}.primary.save{margin-top:2px}.message{position:relative;display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid #2bd9f744;border-radius:13px;color:#bdeff8;background:#12303a;text-align:left}.message.error{border-color:#ff657755;color:#ffc4cb;background:#35161d}.message svg{flex:0 0 auto;width:16px}.pending{justify-content:space-between;gap:12px;margin:12px 0;padding:13px 14px;border:1px solid #ffbf6944;border-radius:14px;background:#2c2114;color:#ffdaa3}.pending>div{flex-wrap:wrap;gap:7px}.pending strong{font-size:13px}.pending span{width:100%;padding-left:27px;color:#bb9b72;font-size:11px}.update-banner,.version-panel{display:flex;align-items:center;gap:12px;margin:12px 0;padding:14px;border-radius:14px}.update-banner{border:1px solid #2bd9f766;background:#102d36;color:#c8f7ff}.update-banner>svg,.version-panel>svg{flex:0 0 auto}.update-banner>div,.version-panel>div{min-width:0;flex:1}.update-banner strong,.update-banner span,.version-panel strong,.version-panel span{display:block}.update-banner span,.version-panel span{margin-top:3px;color:#91a0b3;font-size:11px}.update-banner button,.version-panel button{flex:0 0 auto;min-height:38px;padding:0 12px;border:0;border-radius:11px;font-size:12px;font-weight:800}.update-banner button{color:#061017;background:#2bd9f7}.version-panel{border:1px solid #202936;background:#111720;color:#dce5ef}.version-panel button{color:#bdeff8;background:#1b3440}.update-banner button:disabled,.version-panel button:disabled{opacity:.55;cursor:wait}.recent-panel{margin-top:14px;padding:18px;border-radius:20px}.expense-list{display:grid;gap:2px}article{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 2px;border-bottom:1px solid #202936}article:last-child{border-bottom:0}.category-dot{width:7px;height:36px;border-radius:5px;box-shadow:0 0 12px currentColor}.expense-main{min-width:0}.expense-main strong,.expense-main span,.expense-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-main strong{font-size:14px}.expense-main span{margin-top:3px;color:#8996a8;font-size:11px}.expense-main small{margin-top:3px;color:#617084;font-size:10px}.expense-value{min-width:100px;text-align:right}.expense-value>strong{font-size:14px;color:#fff}.expense-value>div{justify-content:flex-end;gap:3px;margin-top:6px}.expense-value button{display:grid;place-items:center;width:29px;height:29px;padding:0;border:0;border-radius:9px;color:#8da0b7;background:#1a222e}.expense-value button.danger{color:#ff8492}.expense-value svg{width:14px;height:14px}.empty{display:grid;place-items:center;gap:9px;min-height:150px;color:#718096;text-align:center}.empty svg{width:34px;height:34px}.modal-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:end center;padding:16px;background:#05080dc9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{width:min(100%,480px);padding:23px;border:1px solid #293445;border-radius:22px;background:#151b24;box-shadow:0 24px 80px #000a;text-align:center}.modal-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 13px;border-radius:15px;color:#ff8492;background:#ff657719}.modal h2{font-size:20px}.modal p{margin-top:8px;color:#91a0b3;font-size:13px}.modal>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}.modal button{min-height:46px;border:0;border-radius:13px;font-weight:750}.secondary{color:#d7dee8;background:#252e3b}.delete{color:#fff;background:#d94355}.login-shell{display:grid;min-height:100vh;background:#0c1017}.brand-panel{display:none}.login-panel{align-self:center;width:min(calc(100% - 32px),420px);margin:auto;padding:25px;border:1px solid #202936;border-radius:22px;background:#111720;box-shadow:0 24px 70px #0007}.login-panel h2{margin:5px 0 20px;font-size:27px}.center{display:grid;min-height:100vh;place-items:center;padding:20px}.panel{max-width:440px;padding:24px;border-radius:20px;background:#151b24}.app-mark{display:grid;width:72px;height:72px;overflow:hidden;place-items:center;border-radius:22px;box-shadow:0 18px 44px #0008,0 0 28px #74f2d02e}.app-mark img{display:block;width:100%;height:100%}.install-panel{align-self:center}.install-copy{color:var(--muted);line-height:1.65}.install-steps{display:grid;gap:10px;margin:0;padding-left:22px;color:var(--muted);line-height:1.55}.install-help{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.install-manual{display:grid;gap:10px;border:1px solid rgba(116,242,208,.2);border-radius:16px;background:#74f2d00f;padding:14px;color:var(--text);font-size:.88rem}.install-login-link{width:100%;margin-top:4px}.app-mark svg{width:34px;height:34px}@media(min-width:850px){.login-shell{grid-template-columns:1.1fr .9fr}.brand-panel{display:flex;flex-direction:column;justify-content:center;padding:8vw;background:#111720}.brand-panel h1{max-width:570px;margin-top:20px;font-size:54px;line-height:1.05}.brand-panel>p:last-child{max-width:500px;margin-top:18px;color:#91a0b3;font-size:18px}}@media(max-width:480px){.app-shell{padding-left:12px;padding-right:12px}.status{width:38px;height:38px;justify-content:center;padding:0}.status:not(.offline){font-size:0}.status.offline{font-size:0}.form-grid{grid-template-columns:1fr}.entry-panel,.recent-panel{padding:15px;border-radius:18px}.amount input{height:76px;font-size:34px}article{grid-template-columns:7px minmax(0,1fr) auto;gap:9px}.expense-value{min-width:86px}.update-banner{align-items:flex-start;flex-wrap:wrap}.update-banner>div{width:calc(100% - 36px)}.update-banner button,.version-panel button{width:100%}.version-panel{flex-wrap:wrap}}
