@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Noto+Sans+Sinhala:wght@400;500;600;700&display=swap');
:root{font-family:"DM Sans","Noto Sans Sinhala",system-ui,sans-serif;color:#17243b;background:#f5f7fb;font-synthesis:none;font-optical-sizing:auto}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#f8faff 0%,#f3f6fb 100%)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{max-width:1180px;margin:auto;padding:0 28px;min-height:100vh;display:flex;flex-direction:column}
.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8edf5}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-mark{height:43px;width:43px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#14b8a6);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-1px;box-shadow:0 8px 20px #2563eb30}.brand strong{display:block;font-size:16px;letter-spacing:1.5px}.brand small{display:block;color:#8490a4;font-size:11px;margin-top:2px}.top-actions{display:flex;gap:9px}.icon-btn{border:1px solid #e4eaf2;background:#fff;border-radius:12px;padding:10px 13px;color:#334155;font-weight:700}.icon-btn:hover{border-color:#93b4f8}
main{flex:1}.auth-layout{min-height:calc(100vh - 150px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;padding:55px 0}.hero-copy{padding:20px 0}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#2563eb}.hero-copy h1{font-size:clamp(46px,7vw,76px);line-height:1.02;letter-spacing:-3px;margin:18px 0;color:#14213a}.hero-copy h1 span{color:#2563eb}.hero-copy p{font-size:17px;line-height:1.7;color:#718096;max-width:450px}.feature-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.feature-pills span{background:#fff;border:1px solid #e8edf5;padding:9px 13px;border-radius:30px;color:#52627b;font-size:12px;font-weight:600}
.panel,.mini-panel{background:#fff;border:1px solid #e8edf5;border-radius:22px;box-shadow:0 12px 36px #1d35570a}.auth-card{padding:32px;max-width:440px;width:100%;justify-self:end}.panel-heading h2{font-size:27px;margin:9px 0 5px;letter-spacing:-.8px}.panel-heading p,.muted{color:#8490a4;font-size:13px;margin:0 0 25px}
label{display:block;font-size:12px;font-weight:700;color:#52627b;margin:17px 0 7px}input,select{width:100%;border:1px solid #e2e8f0;background:#fbfcfe;border-radius:11px;padding:13px 14px;color:#1e293b;outline:none;margin-top:7px}input:focus,select:focus{border-color:#6b9af4;box-shadow:0 0 0 3px #2563eb12}.primary-btn{width:100%;border:0;border-radius:12px;background:linear-gradient(100deg,#2563eb,#3978eb);color:white;padding:14px 17px;font-weight:700;margin-top:22px;box-shadow:0 8px 18px #2563eb2c}.primary-btn span{float:right;font-size:18px;line-height:15px}.primary-btn:disabled{opacity:.6;cursor:wait}
.auth-divider{display:flex;align-items:center;gap:12px;margin:19px 0 2px;color:#9aa4b3;font-size:9px;font-weight:800;letter-spacing:1.3px}
.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#e8edf5}
.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #dce3ed;border-radius:12px;background:#fff;color:#34445d;padding:13px 16px;margin-top:15px;font-weight:700;transition:border-color .15s,box-shadow .15s}
.google-btn:hover{border-color:#aabbd5;box-shadow:0 5px 15px #1d355710}
.google-btn:disabled{opacity:.6;cursor:wait}
.form-message{font-size:11px;line-height:1.5;color:#8490a4;margin:14px 0 0}.error-text{color:#dc4545!important}
.notice{background:#fff8e7;border:1px solid #f4dfa9;border-radius:14px;padding:15px 18px;margin-top:22px;color:#7c5b12}.notice p{font-size:13px;margin:5px 0 0}
.welcome-row{display:flex;justify-content:space-between;align-items:end;padding:42px 0 24px}.welcome-row h1{font-size:34px;letter-spacing:-1.3px;margin:7px 0}.welcome-row p{margin:0}.space-switch{width:220px}.space-switch label{margin:0 0 5px}.space-switch select{margin:0;background:#fff}
.balance-card{background:linear-gradient(115deg,#173b83,#2563eb 65%,#18a6a2);color:white;border-radius:22px;padding:27px 30px;box-shadow:0 16px 35px #1d4ed82b}.balance-top{display:flex;justify-content:space-between;color:#dbeafe;font-size:12px}.currency-tag{border:1px solid #ffffff50;padding:5px 9px;border-radius:20px}.balance-value{font-size:clamp(32px,5vw,46px);font-weight:800;letter-spacing:-1.8px;margin:12px 0 25px}.balance-grid{display:flex;gap:60px}.balance-grid div{display:grid;gap:5px}.metric-label{font-size:11px;color:#dbeafe}.balance-grid strong{font-size:16px}.positive{color:#0c9b68}.negative{color:#e04b59}.balance-card .positive{color:#b7ffdf}.balance-card .negative{color:#ffd0d3}
.quick-actions,.transaction-panel{margin-top:32px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-title h2{font-size:20px;margin:5px 0 0;letter-spacing:-.5px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.action-tile{border:1px solid #e6ecf5;background:#fff;border-radius:17px;padding:18px;display:grid;grid-template-columns:42px 1fr;column-gap:12px;text-align:left;align-items:center;color:#23324a}.action-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px #1d355710}.action-icon{grid-row:span 2;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:25px}.income-tile .action-icon{background:#e7f8f0;color:#079565}.expense-tile .action-icon{background:#fff0f0;color:#dc5260}.action-tile small{color:#8995a7;font-size:11px;margin-top:3px}
.transaction-panel{padding:23px 25px}.text-btn{border:0;background:transparent;color:#2563eb;font-size:12px;font-weight:700}.transaction-list{display:grid}.transaction-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #f0f2f6}.transaction-symbol{height:38px;width:38px;border-radius:12px;display:grid;place-items:center;font-size:21px;font-weight:700}.symbol-income{background:#e8f8f0;color:#079565}.symbol-expense{background:#fff0f0;color:#dc5260}.transaction-details{display:grid;gap:4px;flex:1;min-width:0}.transaction-details strong{font-size:13px}.transaction-details small{font-size:10px;color:#929daf}.transaction-row>strong{font-size:13px;white-space:nowrap}.empty-state{text-align:center;padding:28px 10px;color:#8490a4;font-size:13px}.empty-state span{font-size:27px;color:#2563eb}.empty-state strong{display:block;color:#34445d;margin-top:7px}.empty-state p{margin:5px 0 0;font-size:11px}
.coming-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:17px 0 35px}.mini-panel{padding:18px}.mini-icon{height:34px;width:34px;display:grid;place-items:center;border-radius:11px;background:#edf4ff;color:#2563eb;font-size:19px}.mini-panel strong{display:block;font-size:13px;margin-top:12px}.mini-panel p{font-size:11px;color:#8995a7;line-height:1.5;margin:5px 0 0}
footer{border-top:1px solid #e8edf5;padding:20px 0;display:flex;justify-content:space-between;color:#98a2b3;font-size:10px}
.modal{border:0;border-radius:20px;padding:0;width:min(92vw,440px);box-shadow:0 24px 80px #10213d40}.modal::backdrop{background:#14213a80;backdrop-filter:blur(3px)}.modal form{padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal h2{margin:5px 0 15px;font-size:24px}.close-btn{border:0;background:#f1f4f8;border-radius:50%;height:32px;width:32px;font-size:22px;color:#52627b}.optional{font-weight:400;color:#9aa4b3}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#17243b;color:white;border-radius:12px;padding:12px 17px;font-size:12px;box-shadow:0 10px 30px #0002;transition:.2s;max-width:90vw;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#a52d3a}
@media(max-width:760px){.app-shell{padding:0 17px}.topbar{height:70px}.auth-layout{grid-template-columns:1fr;gap:18px;padding:38px 0}.hero-copy{padding:0}.hero-copy h1{font-size:52px}.hero-copy p{font-size:14px}.auth-card{justify-self:stretch;max-width:none;padding:24px}.welcome-row{align-items:start;gap:15px;flex-direction:column;padding:30px 0 19px}.welcome-row h1{font-size:29px}.space-switch{width:100%}.balance-card{padding:22px}.balance-grid{gap:35px}.transaction-panel{padding:19px 16px}.coming-grid{grid-template-columns:1fr}.mini-panel{padding:15px}footer{gap:8px;flex-direction:column}.action-tile{padding:14px 12px}.action-tile strong{font-size:12px}}
