@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Syne:wght@400;600;700;800&family=Inter:wght@300;400;500&display=swap";:root{--bg: #0d0f12;--bg2: #141720;--bg3: #1c2030;--border: rgba(255,255,255,.07);--border-bright: rgba(255,255,255,.15);--text: #e8eaf0;--text-muted: #6b7280;--text-dim: #9ca3af;--accent: #c8f135;--accent2: #3b82f6;--accent3: #f59e0b;--green: #22c55e;--red: #ef4444;--radius: 6px;--radius-lg: 12px;--font-display: "Syne", sans-serif;--font-mono: "DM Mono", monospace;--font-body: "Inter", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;max-width:1200px;margin:0 auto;width:100%;padding:2rem 1.5rem}.app-header{border-bottom:1px solid var(--border);background:#0d0f12f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100}.header-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:60px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:.75rem}.brand-mark{font-size:1.4rem;color:var(--accent);line-height:1}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:var(--font-display);font-weight:800;font-size:1rem;letter-spacing:.15em;color:var(--text);line-height:1}.brand-sub{font-family:var(--font-mono);font-size:.6rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.main-nav{display:flex;align-items:center;gap:.25rem}.nav-btn{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:.875rem;cursor:pointer;padding:.4rem .75rem;border-radius:var(--radius);transition:all .15s}.nav-btn:hover,.nav-btn.active{color:var(--text);background:var(--bg3)}.nav-cta{background:var(--accent)!important;color:#0d0f12!important;font-weight:500;margin-left:.5rem}.nav-cta:hover{background:#b8e022!important}.app-footer{border-top:1px solid var(--border);padding:1rem 1.5rem;text-align:center;font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted);letter-spacing:.05em}.page-title{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text);line-height:1.1}.page-subtitle{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.05em;margin-top:.25rem}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:var(--text-muted)}.empty-icon{font-size:2.5rem}.spinner{width:28px;height:28px;border:2px solid var(--border-bright);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.period-tabs{display:flex;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.period-tab{background:none;border:none;color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;cursor:pointer;padding:.4rem .75rem;letter-spacing:.03em;transition:all .15s}.period-tab.active{background:var(--bg3);color:var(--text)}.period-tab:hover:not(.active){color:var(--text-dim)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}@media (max-width: 768px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.25rem;position:relative;overflow:hidden;transition:border-color .2s}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.kpi-primary:before{background:var(--accent2)}.kpi-green:before{background:var(--green)}.kpi-muted:before{background:var(--text-muted)}.kpi-accent:before{background:var(--accent3)}.kpi-label{font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.kpi-value{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text);line-height:1}.kpi-meta{font-size:.7rem;color:var(--text-muted);font-family:var(--font-mono)}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.panel-title{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:1.25rem}.empty-note{color:var(--text-muted);font-size:.85rem;text-align:center;padding:2rem 0}.category-list{display:flex;flex-direction:column;gap:.75rem}.category-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.category-row-left{display:flex;align-items:center;gap:.6rem;flex:0 0 auto;min-width:0}.cat-icon{font-size:1rem;flex-shrink:0}.cat-name{font-size:.85rem;color:var(--text);white-space:nowrap}.deductible-badge{font-family:var(--font-mono);font-size:.55rem;color:var(--green);border:1px solid var(--green);border-radius:3px;padding:1px 4px;margin-left:.4rem;letter-spacing:.05em}.category-row-right{display:flex;align-items:center;gap:.75rem;flex:1;justify-content:flex-end}.bar-wrap{width:80px;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;flex-shrink:0}.bar-fill{height:100%;border-radius:2px;min-width:2px;transition:width .5s ease}.cat-amount{font-family:var(--font-mono);font-size:.8rem;color:var(--text);width:60px;text-align:right;flex-shrink:0}.entity-list{display:flex;flex-direction:column;gap:.5rem}.entity-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.entity-name{flex:1;font-size:.85rem;font-family:var(--font-mono);color:var(--text-dim)}.entity-count{font-size:.75rem;color:var(--text-muted)}.entity-total{font-family:var(--font-mono);font-size:.85rem;color:var(--text);width:70px;text-align:right}.recent-list{display:flex;flex-direction:column;gap:.5rem}.recent-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.recent-left{display:flex;align-items:center;gap:.6rem}.recent-icon{font-size:1rem}.recent-store{display:block;font-size:.85rem;color:var(--text)}.recent-date{display:block;font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted)}.recent-total{font-family:var(--font-mono);font-size:.9rem;color:var(--text)}.add-receipt{max-width:860px}.form-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.back-btn{background:none;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;cursor:pointer;padding:.4rem .75rem;border-radius:var(--radius);transition:all .15s}.back-btn:hover{border-color:var(--border-bright);color:var(--text)}.form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1.5rem}.form-grid{display:flex;flex-direction:column;gap:1.5rem}.form-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.section-title{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:1rem}.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.field-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field.half{max-width:300px}.field label{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:.875rem;padding:.5rem .75rem;width:100%;transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent);padding:0}.field textarea{resize:vertical;min-height:60px}.total-field{border-color:var(--accent2)!important;font-weight:500;font-size:1rem!important}.item-row{display:grid;grid-template-columns:2fr .5fr 1fr 1fr .4fr auto;gap:.75rem;align-items:end;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.add-item-btn{background:none;border:1px dashed var(--border-bright);color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:.3rem .75rem;border-radius:var(--radius);transition:all .15s;font-family:var(--font-mono)}.add-item-btn:hover{border-color:var(--accent);color:var(--accent)}.remove-item-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:.5rem .5rem .6rem;transition:color .15s;align-self:flex-end;margin-bottom:0}.remove-item-btn:hover{color:var(--red)}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.list-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.filter-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-bar select{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:.8rem;padding:.4rem .75rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s}.filter-bar select:focus{outline:none;border-color:var(--accent)}.filter-clear{background:none;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;cursor:pointer;padding:.4rem .75rem;border-radius:var(--radius);transition:all .15s;letter-spacing:.05em}.filter-clear:hover{border-color:var(--border-bright);color:var(--text)}.receipt-table-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.receipt-table{width:100%;border-collapse:collapse}.receipt-table thead{background:var(--bg3);border-bottom:1px solid var(--border)}.receipt-table th{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:.75rem 1rem;text-align:left;font-weight:400}.receipt-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.receipt-table tr:last-child td{border-bottom:none}.receipt-table tr:hover td{background:#ffffff05}.row-deleting{opacity:.4}.td-date{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);white-space:nowrap}.td-store .store-name{display:block;font-size:.875rem;color:var(--text)}.td-store .store-note{display:block;font-size:.7rem;color:var(--text-muted);margin-top:2px;font-family:var(--font-mono)}.td-category{display:flex;align-items:center;gap:.4rem}.cat-pill{font-size:.75rem;color:var(--text-dim);border:1px solid;border-radius:3px;padding:1px 6px;font-family:var(--font-mono)}.td-entity{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.td-total{font-family:var(--font-mono);font-size:.9rem;font-weight:500;color:var(--text)}.deductible-yes{color:var(--green);font-size:.9rem}.deductible-no{color:var(--text-muted)}.delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:color .15s}.delete-btn:hover{color:var(--red)}.btn-primary{background:var(--accent);border:none;color:#0d0f12;font-family:var(--font-body);font-weight:500;font-size:.875rem;cursor:pointer;padding:.6rem 1.25rem;border-radius:var(--radius);transition:all .15s}.btn-primary:hover{background:#b8e022}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:none;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-body);font-size:.875rem;cursor:pointer;padding:.6rem 1.25rem;border-radius:var(--radius);transition:all .15s}.btn-ghost:hover{border-color:var(--border-bright);color:var(--text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--bg3);border-radius:3px}
