:root{font-family:system-ui,sans-serif;color:#111827;background:#f3f6fa;--blue:#262a63;--green:#118a57}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#12385f,#262a63)}.panel{width:min(100%,430px);background:#fff;border-radius:22px;padding:24px;box-shadow:0 18px 50px #0005}h1{color:var(--blue);font-size:32px;line-height:1.05}h1 span{color:var(--green)}.tabs,nav{display:flex;gap:8px;overflow:auto}.tabs button,nav button{border:0;border-radius:12px;padding:11px 14px;background:#e9edf4;white-space:nowrap}.tabs .active,nav .active{background:var(--blue);color:#fff}.auth-form{display:grid;gap:14px;margin-top:20px}.auth-form label{display:grid;gap:6px;font-weight:700}.auth-form input,.monthbar select,dialog input{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:13px;background:#fff}.auth-form button,dialog button,.monthbar button{border:0;border-radius:12px;padding:13px;background:var(--blue);color:#fff;font-weight:700}.status{min-height:22px;color:#526176;padding:0 16px}.status.error{color:#b42318}#app{max-width:760px;margin:auto;min-height:100dvh;background:#fff}header{background:var(--blue);color:#fff;padding:18px;display:flex;justify-content:space-between;align-items:center}header small{display:block;color:#c9ccef;margin-top:3px}.link{border:0;background:transparent;color:#fff;text-decoration:underline}nav{padding:12px;border-bottom:1px solid #e5e7eb}.monthbar{display:flex;gap:10px;padding:12px}.monthbar select{flex:1}.category{margin:12px;border:1px solid #e0e7ef;border-radius:16px;overflow:hidden}.category h2{margin:0;padding:13px 15px;background:var(--blue);color:#fff;font-size:17px}.row{width:100%;display:flex;justify-content:space-between;gap:15px;padding:14px 15px;border:0;border-bottom:1px solid #edf0f4;background:#fff;text-align:left}.row:last-child{border-bottom:0}.row strong{white-space:nowrap}.overview{margin:12px;background:var(--blue);color:#fff;border-radius:18px;padding:20px;display:grid;gap:18px}.overview div{display:flex;justify-content:space-between}.overview strong{font-size:20px}dialog{width:min(calc(100% - 32px),430px);border:0;border-radius:20px;padding:24px}dialog::backdrop{background:#111827aa}dialog form{display:grid;gap:18px}dialog form div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary{background:#e5e7eb!important;color:#111827!important}output{display:block;padding:16px;border-radius:12px;background:#eef2ff;font-size:22px;font-weight:800;text-align:center;color:var(--blue)}
