:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#17263d;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f4f7fb}button,input,select{font:inherit}button{border:0;border-radius:.7rem;padding:.72rem 1.05rem;background:#1755e8;color:#fff;font-weight:700;cursor:pointer}button:hover:not(:disabled){background:#1044bf}button:disabled{opacity:.55;cursor:wait}.secondary{background:#fff;color:#1755e8;border:1px solid #b9cce8}.secondary:hover:not(:disabled){background:#edf4ff}.shell{display:flex;flex-direction:column;width:min(1600px,calc(100% - 2rem));margin:0 auto;padding:1.35rem 0 3rem}.shell>.topbar{order:0}.shell>.summary{order:1}.shell>.receipt-card{order:2}.shell>.filter-card{order:3}.shell>.history-card{order:4}.shell>#export{order:5}.shell>.transaction-form{order:6}.shell>.category-form{order:7}.narrow{max-width:520px}.topbar{display:flex;align-items:center;gap:2rem;min-height:58px;padding:.2rem 0 1rem;border-bottom:1px solid #e1e8f1;background:#fff}.brand{display:flex;align-items:center;min-width:148px;color:#1653dd}.brand img{display:block;width:148px;height:40px;object-fit:contain;object-position:left center}.brand-mark{display:grid;place-items:center;width:42px;height:36px;border-radius:.65rem;background:linear-gradient(135deg,#1648df,#18c7db);color:#fff;font-size:.78rem;font-weight:900;transform:skew(-8deg)}.main-nav{display:flex;flex:1;flex-wrap:wrap;gap:.25rem;align-items:center}.main-nav a{padding:.6rem .82rem;border-radius:999px;color:#506078;font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap}.main-nav a:hover,.main-nav a.active{color:#fff;background:linear-gradient(90deg,#1856e5,#149bdc)}.topbar-actions{display:flex;align-items:center;gap:.6rem}.package-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;border:1px solid #e1e9f3;border-radius:999px;color:#718096;font-size:.68rem;font-weight:700;white-space:nowrap}.package-pill i{width:.45rem;height:.45rem;border-radius:50%;background:#1dc997}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}h1{margin:.2rem 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);line-height:.95;letter-spacing:-.055em}h2{margin:0;font-size:1.3rem;letter-spacing:-.025em}h3{margin:-.65rem 0 0;font-size:1.05rem}.eyebrow{margin:0;color:#0754da;font:800 .68rem/1.2 Trebuchet MS,sans-serif;letter-spacing:.18em;text-transform:uppercase}.muted{color:#64748b}.card{margin-top:1.1rem;padding:1.25rem;border:1px solid #dfe7f1;border-radius:1rem;background:#fff;box-shadow:0 8px 22px #203d670f}.summary{margin-top:1.35rem;padding:1.5rem;border:1px solid #cfe3fb;border-radius:1.35rem;background:linear-gradient(135deg,#f5f9ff,#dceeff);box-shadow:0 10px 25px #1859a81f}.summary-heading{margin-bottom:1.4rem}.summary-heading h1{margin:.45rem 0 .25rem;font-size:clamp(1.7rem,4vw,2.2rem)}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.summary-cards>div{padding:1rem 1.15rem;border:1px solid #d5e3f3;border-left:4px solid #2578ff;border-radius:.9rem;background:#fff}.summary-cards>div:nth-child(2){border-left-color:#12c4d2}.summary-cards>div:nth-child(3){border-left-color:#0e9be8}.summary span,.summary strong{display:block}.summary span{color:#53667e;font-size:.75rem}.summary strong{margin-top:.45rem;font-size:1.25rem}.form{display:grid;gap:1rem}.form h2{margin-bottom:.1rem}label{display:grid;gap:.35rem;color:#1c3556;font-size:.76rem;font-weight:800}input,select{width:100%;padding:.72rem .8rem;border:1px solid #c8d6e8;border-radius:.65rem;background:#fff;color:#17263d}input:focus,select:focus{outline:3px solid #cfe1ff;border-color:#2873e8}.grid,.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.filter-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;margin-top:1rem}.filter-actions,.pagination{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.filter-actions{justify-content:flex-start}.table-wrap{overflow-x:auto;margin:1rem -1.25rem 0;border-top:1px solid #dfe7f1}table{width:100%;min-width:900px;border-collapse:collapse;font-size:.76rem}th,td{padding:.72rem .55rem;border-bottom:1px solid #dfe7f1;text-align:left}th{color:#213650;background:#eff4fa;font-size:.66rem}tbody tr:nth-child(2n){background:#f3fbfd}tbody tr:hover{background:#e7f4ff}td.income{color:#07834c;font-weight:800}td.expense{color:#ed1552;font-weight:800}.table-action{margin:.1rem;padding:.2rem .35rem;background:transparent;color:#0b86d9;border:0;font-size:.73rem}.table-action.danger{color:#e9104e}.receipt-draft{display:grid;gap:.45rem;margin-top:.8rem;padding:1rem;border:1px solid #cfe1ff;border-radius:.8rem;background:#f4f8ff}.notice{margin:0;padding:.75rem 1rem;border-radius:.7rem;background:#f1f6fd;color:#324866;font-weight:700}.receipt-cell{text-align:center;color:#64748b}.category-page{gap:.55rem}.category-create{margin-top:.7rem;align-items:end}.category-table{margin-top:.5rem;border:1px solid #dfe7f1;border-radius:.75rem}.category-table table{min-width:560px}.category-table th,.category-table td{padding:.72rem 1rem}.number-cell{width:3.5rem;text-align:center}.category-name{color:#101f35;font-weight:800}.category-name span{display:inline-block;width:1.8rem;margin-right:.35rem;text-align:center;font-size:1rem}.category-badge{display:inline-flex;border-radius:999px;padding:.25rem .7rem;font-size:.66rem;font-weight:800}.category-badge.income{background:#d3f6e6;color:#087c4b}.category-badge.expense{background:#ffe0e8;color:#df1550}.category-empty{margin:0;padding:1rem;text-align:center}.file-label input{padding:.58rem}.badge{display:inline-flex;border-radius:999px;padding:.25rem .55rem;font-size:.65rem;font-weight:800}.badge.income{background:#d7f7e8;color:#087c4b}.badge.expense{background:#ffe0e8;color:#df1550}.code{color:#0085c9;font-weight:800;white-space:nowrap}.manual-form{margin-top:1.1rem}details summary{cursor:pointer;color:#1755e8;font-weight:800}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:1rem;background:#0a1c398c}.modal{width:min(100%,520px);margin:0}.receipt-preview{width:min(100%,760px);max-height:90vh;overflow:auto}.receipt-preview img{display:block;width:auto;max-width:100%;max-height:70vh;margin:1rem auto 0;border-radius:.8rem;object-fit:contain;background:#f1f5f9}.close-button{min-width:2.5rem;padding:.35rem .7rem;font-size:1.3rem;line-height:1}.danger-button{background:#df1550}.danger-button:hover:not(:disabled){background:#b90f42}.status-ok{color:#07834c}.status-grid,.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.status-grid strong,.guide-grid article{padding:1rem;border:1px solid #dfe7f1;border-radius:.8rem;background:#f8fbff}.guide-grid{grid-template-columns:repeat(3,1fr)}.guide-grid article img{display:block;width:100%;max-height:150px;object-fit:contain;object-position:center;margin-bottom:.8rem;border-radius:.55rem;background:#f5f8fc}.bar-row{display:grid;grid-template-columns:10rem 1fr auto;align-items:center;gap:.7rem;font-size:.8rem}.bar-row b{display:block;height:.65rem;border-radius:999px;background:linear-gradient(90deg,#1755e8,#16c5d2)}.analysis-page{display:grid;gap:1rem}.analysis-filter h2{margin:.3rem 0 1rem;font-size:1.4rem}.analysis-filter-row{display:flex;align-items:end;gap:.7rem}.analysis-filter-row label{flex:1;max-width:100%}.analysis-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.analysis-heading h1{margin:.35rem 0 .2rem;font-size:clamp(2rem,4vw,2.6rem)}.count-pill{padding:.55rem .8rem;border:1px solid #e1e9f3;border-radius:999px;background:#fff;color:#536174;font-size:.72rem;font-weight:800;white-space:nowrap}.analysis-top-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,3fr);gap:1rem}.expense-ranking,.cashflow-card,.donut-card,.detail-card{margin-top:0}.expense-ranking h2,.cashflow-card h2,.donut-card h2,.detail-card h2{margin:0 0 .2rem;font-size:1rem}.ranking-row{margin-top:1rem}.ranking-row>div{display:flex;justify-content:space-between;gap:.6rem;font-size:.72rem}.ranking-row strong{white-space:nowrap}.ranking-row i{display:block;height:.45rem;margin-top:.45rem;border-radius:999px;background:#7db4ed}.ranking-row:nth-child(4n) i{background:#86d6c6}.ranking-row:nth-child(5n) i{background:#f0bed0}.chart-legend{display:flex;align-items:center;gap:.35rem;margin-top:1rem;color:#64748b;font-size:.68rem}.income-dot,.expense-dot{width:.55rem;height:.55rem;margin-left:.45rem;border-radius:50%;background:#58ddb1}.expense-dot{background:#ff9bab}.cashflow-scroll{overflow-x:auto;margin-top:1rem;padding-bottom:.2rem}.cashflow-bars{display:grid;grid-template-columns:repeat(30,minmax(2.2rem,1fr));align-items:end;gap:.2rem;min-width:680px;height:190px;padding:0 .5rem;border-bottom:1px solid #dce5ee;background:repeating-linear-gradient(to bottom,transparent 0,transparent 24%,#e7edf4 25%,transparent 26%)}.cashflow-day{display:grid;grid-template-rows:1fr 1fr auto;min-width:0;height:100%;text-align:center}.cashflow-column{display:flex;align-items:end;justify-content:center;min-height:0}.cashflow-column i{display:block;width:80%;min-height:0;border-radius:.18rem .18rem 0 0}.income-bar i{background:#58ddb1}.expense-bar{align-items:start}.expense-bar i{background:#ff9bab;border-radius:0 0 .18rem .18rem}.cashflow-day small{overflow:hidden;color:#7b8ba1;font-size:.55rem;white-space:nowrap;text-overflow:ellipsis}.analysis-donuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.donut-title{margin:1rem 0 .2rem;font-weight:800;font-size:.8rem}.income-title{color:#1d6fe8}.expense-title{color:#0b9ed7}.donut{display:grid;place-items:center;width:min(100%,260px);aspect-ratio:1;margin:1rem auto;border-radius:50%;background:#e5ecf4}.donut>div{display:grid;place-items:center;width:46%;aspect-ratio:1;border-radius:50%;background:#fff;text-align:center;box-shadow:0 2px 7px #223d601a}.donut span,.donut strong{display:block}.donut span{color:#64748b;font-size:.65rem}.donut strong{margin-top:.25rem;font-size:.8rem}.donut-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem .75rem;color:#536174;font-size:.64rem}.donut-legend span{display:inline-flex;align-items:center;gap:.28rem}.donut-legend i{width:.55rem;height:.55rem;border-radius:.15rem;background:#79afe5}.detail-card{display:grid;gap:.7rem}.detail-section h3{margin:1rem 0 .55rem;font-size:.9rem}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.detail-item{display:grid;gap:.3rem;padding:.85rem;border:1px solid #cfe2ff;border-radius:.7rem;background:#f3f8ff}.detail-item strong{font-size:.78rem}.detail-item b{color:#164ec4;font-size:1rem}.detail-item span{color:#64748b;font-size:.68rem;font-weight:700}.detail-item.expense b{color:#075eac}.pagination{margin:1rem 0 0;color:#64748b;font-size:.8rem}.pagination>div{display:flex;gap:.4rem}@media(max-width:900px){.topbar{align-items:flex-start;flex-wrap:wrap}.main-nav{order:3;flex-basis:100%}.topbar-actions{margin-left:auto}.filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{width:min(100% - 1rem,1480px);padding-top:.7rem}.summary-cards,.grid,.filter-grid{grid-template-columns:1fr}.summary{padding:.9rem}.package-pill{display:none}.main-nav{overflow-x:auto;flex-wrap:nowrap}.main-nav a{font-size:.7rem}.filter-actions,.pagination{align-items:flex-start;flex-direction:column}}@media(max-width:700px){.status-grid,.guide-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:7rem 1fr auto}}@media(max-width:800px){.analysis-top-grid,.analysis-donuts{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.analysis-filter-row{align-items:stretch;flex-direction:column}.analysis-heading{align-items:flex-start;flex-direction:column}.detail-grid{grid-template-columns:1fr}}
