:root{color:#17211b;background:#eff3ea;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--panel: rgba(255, 255, 248, .88);--panel-strong: #fffdf3;--ink: #17211b;--muted: #667066;--line: rgba(32, 43, 35, .12);--green: #168a52;--green-soft: #dff4e9;--red: #ba3b3b;--red-soft: #f8e0dc;--gold: #ba8a19;--shadow: 0 24px 80px rgba(27, 42, 31, .14)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top left,rgba(185,215,169,.7),transparent 34rem),linear-gradient(135deg,#f8f2df,#edf4ea 42%,#e6eef0)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:32px 0 56px}.hero-panel,.toolbar,.metric-card,.calendar-card,.details-panel,.stats-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-panel{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;border-radius:34px;padding:clamp(24px,5vw,52px);background:linear-gradient(125deg,#17211bf5,#1e402deb),var(--panel);color:#fbf7e8}.hero-panel h1{max-width:760px;margin:0;font-size:clamp(3rem,8vw,7.25rem);letter-spacing:-.08em;line-height:.86}.hero-copy{max-width:760px;margin:22px 0 0;color:#fbf7e8c7;font-size:clamp(1rem,2vw,1.24rem)}.hero-meta{min-width:230px;display:grid;gap:8px;justify-items:start;padding:18px;border:1px solid rgba(255,255,255,.16);border-radius:24px;background:#ffffff14}.hero-meta span{font-weight:800}.hero-meta small,.eyebrow,.filter-note,.empty-state,.empty-day,.transaction-row small,.vendor-title span{color:var(--muted)}.hero-meta small,.hero-panel .eyebrow{color:#fbf7e8ad}.eyebrow{margin:0 0 8px;font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.toolbar{position:sticky;top:12px;z-index:10;display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(210px,auto) auto;gap:12px;align-items:center;margin:18px 0;padding:12px;border-radius:24px}.month-controls,.search-box,.select-wrap,.segmented-control{min-height:46px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:16px;background:#ffffff94}.month-controls{padding:6px}.month-controls strong{min-width:160px;text-align:center}.month-controls button,.segmented-control button{display:inline-grid;place-items:center;border:0;border-radius:12px;color:var(--ink);background:transparent}.month-controls button{width:34px;height:34px}.month-controls button:not(:disabled):hover,.segmented-control button.active{background:#17211b;color:#fffdf3}.search-box,.select-wrap{padding:0 14px}.search-box input,.select-wrap select{width:100%;border:0;outline:0;color:var(--ink);background:transparent}.segmented-control{padding:5px}.segmented-control button{min-width:48px;height:34px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{display:grid;gap:8px;border-radius:24px;padding:22px}.metric-card span{color:var(--muted);font-size:.9rem}.metric-card strong{font-size:clamp(1.4rem,3vw,2.3rem);letter-spacing:-.04em}.metric-card.in strong,.cash-in{color:var(--green)}.metric-card.out strong,.cash-out{color:var(--red)}.content-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(320px,.8fr);gap:18px}.calendar-card,.details-panel,.stats-card{border-radius:30px;padding:22px}.card-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.card-header h2{margin:0;letter-spacing:-.04em;font-size:clamp(1.4rem,3vw,2.25rem)}.card-header.compact{align-items:flex-start}.filter-note{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#ffffff9e;font-size:.85rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays span{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.calendar-day{min-height:126px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:#ffffff9e;text-align:left;transition:transform .15s ease,border-color .15s ease,background .15s ease}.calendar-day:hover{transform:translateY(-2px);border-color:#168a5252}.calendar-day.selected{background:#17211b;color:#fffdf3}.calendar-day.selected .empty-day,.calendar-day.selected .cash-in,.calendar-day.selected .cash-out{color:#fffdf3}.calendar-day.muted{opacity:.45}.day-number{font-weight:900;font-size:1.12rem}.day-flow{display:grid;gap:5px;font-size:.92rem;font-weight:800}.empty-day{font-size:.78rem}.details-panel{align-self:start;position:sticky;top:102px}.day-total-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.day-total-grid span{display:grid;gap:4px;padding:14px;border-radius:18px;background:#ffffff9e;border:1px solid var(--line)}.day-total-grid small{color:var(--muted)}.transaction-list,.vendor-list{display:grid;gap:10px}.transaction-row,.vendor-row{border:1px solid var(--line);border-radius:18px;background:#ffffff9e}.transaction-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px}.transaction-row p{margin:5px 0;color:#4f5b52;font-size:.9rem}.transaction-row>span{font-weight:900;white-space:nowrap}.stats-card{margin-top:18px}.vendor-list{grid-template-columns:repeat(3,minmax(0,1fr))}.vendor-row{display:grid;gap:10px;padding:16px}.vendor-title,.vendor-amounts{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.vendor-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendor-bar{overflow:hidden;height:10px;border-radius:999px;background:#ba3b3b1f}.vendor-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ba3b3b,#e59b62)}.vendor-amounts{font-size:.86rem;font-weight:800}.empty-state{margin:0;padding:20px;border:1px dashed var(--line);border-radius:18px}@media (max-width: 1120px){.toolbar,.content-grid,.vendor-list{grid-template-columns:1fr}.details-panel{position:static}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.app-shell{width:min(100% - 20px,1500px);padding-top:10px}.hero-panel,.card-header,.vendor-title,.vendor-amounts{flex-direction:column;align-items:flex-start}.metric-grid,.day-total-grid{grid-template-columns:1fr}.calendar-card,.details-panel,.stats-card{padding:14px;border-radius:22px}.calendar-weekdays{display:none}.calendar-grid{grid-template-columns:1fr}.calendar-day{min-height:auto}.month-controls{justify-content:space-between}.month-controls strong{min-width:auto}}.chat-fab{position:fixed;bottom:28px;right:28px;z-index:100;display:flex;align-items:center;gap:10px;padding:14px 20px;border:none;border-radius:999px;background:#17211b;color:#fffdf3;font-size:.95rem;font-weight:700;box-shadow:0 8px 32px #17211b52;transition:transform .15s ease,background .15s ease}.chat-fab:hover{background:#2a3d32;transform:translateY(-2px)}.chat-fab--open{padding:14px;background:#ba3b3b}.chat-fab--open:hover{background:#c94f4f}.chat-panel{position:fixed;bottom:90px;right:28px;z-index:99;width:min(420px,calc(100vw - 40px));height:min(560px,calc(100vh - 120px));display:flex;flex-direction:column;border:1px solid var(--line);border-radius:28px;background:var(--panel-strong);box-shadow:0 24px 80px #17211b38;overflow:hidden;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.chat-header{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line);background:#17211b;color:#fffdf3;font-weight:700;font-size:.95rem}.chat-header span{flex:1}.chat-header button{display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:8px;background:#ffffff1f;color:#fffdf3;transition:background .15s}.chat-header button:hover{background:#ffffff38}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.chat-bubble{display:flex;gap:8px;align-items:flex-start}.chat-bubble--user{flex-direction:row-reverse}.chat-bubble-icon{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--line);color:var(--muted)}.chat-bubble--assistant .chat-bubble-icon{background:#17211b;color:#fffdf3}.chat-bubble-text{max-width:80%;padding:10px 14px;border-radius:18px;font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;background:#ffffffb8;border:1px solid var(--line)}.chat-bubble--user .chat-bubble-text{background:#17211b;color:#fffdf3;border-color:transparent;border-radius:18px 18px 4px}.chat-bubble--assistant .chat-bubble-text{border-radius:18px 18px 18px 4px}.chat-typing{color:var(--muted);font-style:italic}.chat-input-row{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:#fff9}.chat-input-row input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fffc;color:var(--ink);font-size:.9rem;outline:none;transition:border-color .15s}.chat-input-row input:focus{border-color:#168a5280}.chat-input-row input:disabled{opacity:.6}.chat-input-row button{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border:none;border-radius:14px;background:#17211b;color:#fffdf3;transition:background .15s,transform .15s}.chat-input-row button:hover:not(:disabled){background:#2a3d32;transform:translateY(-1px)}.chat-input-row button:disabled{opacity:.45;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.chat-spin{animation:spin 1s linear infinite}
