@import "https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600&display=swap";
:root{--paper:#ede7de;--surface:#f8f4ed;--ink:#342f2b;--muted:#6f6259;--line:#d5c9bd;--rust:#923f1f;--rust-soft:#ead8cb;--taupe:#af9c8b;--brass:#885e45;--danger:#923f1f;--shadow:0 12px 34px #342f2b14}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Sora,Montserrat,Arial,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#fffcf6eb;align-items:center;height:72px;padding:0 clamp(18px,4vw,52px);display:flex;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:12px;min-width:210px;text-decoration:none;display:flex}.brand>span:last-child,.user-block div{display:grid}.brand b{color:var(--rust);letter-spacing:.12em;font-size:15px;font-weight:500}.brand small,.user-block small{color:var(--muted);font-size:11px}.source-note{border:1px solid var(--taupe);background:var(--paper);color:var(--brass);letter-spacing:.04em;text-transform:uppercase;margin:auto;padding:8px 12px;font-size:11px;font-weight:500}.source-note span{background:var(--brass);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block;box-shadow:0 0 0 3px #885e4521}.user-block{text-align:right;justify-content:flex-end;align-items:center;gap:12px;min-width:210px;display:flex}.user-block b{font-size:12px;font-weight:600}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;place-items:center;display:grid}.icon-button:hover{border-color:var(--rust);color:var(--rust)}.dashboard{width:min(1500px,100%);margin:0 auto;padding:clamp(28px,5vw,62px) clamp(18px,4vw,52px) 28px}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;display:flex}.eyebrow{color:var(--rust);letter-spacing:.15em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:600}.page-heading h1{letter-spacing:-.035em;text-transform:uppercase;margin:0;font-size:clamp(32px,4vw,48px);font-weight:400}.page-heading>div>p:last-child{color:var(--muted);margin:10px 0 0;font-size:14px}.refresh-button,.primary-button{border:1px solid var(--rust);background:var(--rust);color:#fff;cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.refresh-button:hover,.primary-button:hover{background:#7e351a}.refresh-button:disabled{opacity:.55;cursor:wait}.detail-summary small,.bill-card small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.workspace{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);animation:.45s cubic-bezier(.2,.8,.2,1) both surface-in}.toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.search-box{border:1px solid var(--line);width:min(490px,52%);height:42px;color:var(--muted);background:#fff;align-items:center;gap:9px;padding:0 12px;display:flex}.search-box:focus-within{border-color:var(--rust)}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:13px}.search-box button{color:var(--muted);cursor:pointer;background:0 0;border:0}.date-control{border:1px solid var(--line);min-height:42px;color:var(--muted);align-items:center;gap:9px;padding:0 12px;display:flex}.date-control input,.date-control select{width:122px;color:var(--ink);background:0 0;border:0;outline:0;font-size:11px}.date-control select{width:112px}.date-divider{background:var(--line);width:1px;height:20px}.date-control span{font-size:11px}.filter-tabs{border-bottom:1px solid var(--line);gap:4px;padding:10px 18px;display:flex}.filter-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:8px 15px;font-size:11px;font-weight:600}.filter-tabs button.active{background:var(--rust-soft);color:var(--rust)}.vendor-layout{grid-template-columns:minmax(0,1fr);min-height:420px;display:grid}.vendor-layout.has-detail{grid-template-columns:minmax(560px,1.55fr) minmax(380px,.9fr)}.vendor-list{min-width:0}.table-head,.vendor-row{grid-template-columns:minmax(240px,1.6fr) 70px 150px 150px 26px;align-items:center;column-gap:12px;display:grid}.table-head{border-bottom:1px solid var(--line);height:42px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:0 18px;font-size:9px;font-weight:600}.vendor-row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:76px;color:var(--ink);text-align:right;cursor:pointer;background:0 0;padding:10px 18px;transition:background-color .18s,box-shadow .18s,transform .18s;animation:.36s both row-in}.vendor-row:nth-child(3){animation-delay:35ms}.vendor-row:nth-child(4){animation-delay:70ms}.vendor-row:nth-child(5){animation-delay:.105s}.vendor-row:nth-child(6){animation-delay:.14s}.vendor-row:nth-child(7){animation-delay:.175s}.vendor-row:hover,.vendor-row.selected{background:#f2eae0}.vendor-row:hover{transform:translate(2px)}.vendor-row.selected{box-shadow:inset 3px 0 var(--rust)}.vendor-row>:first-child{text-align:left}.vendor-row>svg{color:#aaa095}.vendor-name{align-items:center;gap:12px;min-width:0;display:flex}.vendor-name i{width:34px;height:34px;color:var(--rust);background:#e2d7cc;flex:none;place-items:center;font-size:14px;font-style:normal;font-weight:500;display:grid}.vendor-name>span{gap:3px;min-width:0;display:grid}.vendor-name b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.vendor-name small{color:var(--muted);font-size:10px}.vendor-row>span:not(.vendor-name){font-variant-numeric:tabular-nums;font-size:12px}.amount-due{color:var(--danger);font-weight:600}.detail-panel{border-left:1px solid var(--line);transform-origin:100%;background:#f6efe7;animation:.42s cubic-bezier(.2,.8,.2,1) both detail-in}.back-button{display:none}.detail-title{border-bottom:1px solid var(--line);grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:24px;display:grid}.detail-title>span{background:var(--rust);color:#fff;place-items:center;width:42px;height:42px;font-size:17px;font-weight:500;display:grid}.detail-title h2{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:400}.detail-title .eyebrow{margin-bottom:4px}.detail-summary{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.detail-summary div{gap:4px;padding:18px 24px;display:grid}.detail-summary div+div{border-left:1px solid var(--line)}.detail-summary strong{font-size:18px;font-weight:600}.activity-card{border-bottom:1px solid var(--line);background:#f8f4ed8c;padding:18px 20px 16px}.activity-heading,.activity-footer{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.activity-heading h3{margin:0;font-size:14px;font-weight:600}.activity-heading>div>p:last-child{color:var(--muted);margin:5px 0 0;font-size:10px}.activity-range{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;display:grid}.activity-range select{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink);font:inherit;text-transform:none;border-radius:0;padding:0 24px 0 8px;font-size:10px}.activity-date-readout{min-height:16px;color:var(--muted);font-variant-numeric:tabular-nums;margin:10px 0 -5px;font-size:9px}.activity-date-readout.active{color:var(--ink);font-weight:600}.activity-scroll{scrollbar-width:thin;margin-top:15px;overflow-x:auto}.activity-calendar{--activity-cell:12px;--activity-gap:3px;width:max-content;min-width:100%}.activity-months,.activity-body{grid-template-columns:28px auto;gap:6px;display:grid}.activity-months{color:var(--muted);grid-template-columns:28px repeat(var(--week-count), var(--activity-cell));column-gap:var(--activity-gap);margin-bottom:5px;font-size:8px}.activity-months>span{white-space:nowrap;display:block}.weekday-labels,.activity-week{grid-template-rows:repeat(7, var(--activity-cell));gap:var(--activity-gap);display:grid}.weekday-labels{color:var(--muted);font-size:7px;line-height:var(--activity-cell)}.activity-grid{grid-auto-flow:column;grid-auto-columns:var(--activity-cell);gap:var(--activity-gap);display:grid}.activity-day{width:var(--activity-cell);height:var(--activity-cell);background:#e8dfd5;border:1px solid #6f62591f;padding:0;display:block}button.activity-day{cursor:pointer}button.activity-day:hover,.activity-day.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--surface), 0 0 0 2px var(--ink)}.activity-day.level-1{background:#d9b7a4}.activity-day.level-2{background:#be795b}.activity-day.level-3{background:#923f1f}.activity-day.level-4{background:#5f2917}.activity-day.outside-range{background:0 0;border-color:#0000}.activity-footer{color:var(--muted);align-items:center;margin-top:12px;font-size:8px}.activity-footer>button{color:var(--rust);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:9px;display:inline-flex}.activity-legend{align-items:center;gap:4px;display:flex}.activity-legend .activity-day{--activity-cell:9px}.bill-list{max-height:520px;padding:16px;overflow:auto}.bill-card{border:1px solid var(--line);background:var(--surface);margin-bottom:12px;padding:16px}.bill-card-top,.bill-amount{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.bill-card-top>div,.bill-amount span{gap:3px;display:grid}.bill-card-top b{font-size:13px}.status{letter-spacing:.05em;text-transform:uppercase;padding:5px 8px;font-size:9px;font-weight:600}.status.paid{color:#5f4b3f;background:#ded3c9}.status.open{color:var(--brass);background:#e7d9cd}.status.overdue{color:var(--rust);background:#e2c9be}.status.partially_paid{color:#714a37;background:#d9cdc2}.status.void{color:var(--muted);background:#e2ddd6}.bill-card dl{grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;display:grid}.bill-card dl div{gap:3px;display:grid}.bill-card dt{color:var(--muted);text-transform:uppercase;font-size:9px}.bill-card dd{margin:0;font-size:11px}.bill-amount{border-top:1px solid var(--line);padding-top:13px}.bill-amount b{font-size:13px}.bill-amount a{border:1px solid var(--line);width:32px;height:32px;color:var(--rust);place-items:center;display:grid}.bill-amount a:hover{border-color:var(--rust);background:var(--rust-soft)}.day-empty-state{min-height:150px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.day-empty-state p{margin:0;font-size:11px}.day-empty-state button{color:var(--rust);cursor:pointer;background:0 0;border:0;padding:0;font-size:10px;font-weight:600}.loading-state,.empty-state{min-height:330px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.loading-state p,.empty-state p{margin:0;font-size:12px}.empty-state h2{color:var(--ink);margin:4px 0 0;font-size:17px}.error-banner{color:var(--danger);background:#faeae7;border:1px solid #e1b4ae;align-items:center;gap:10px;margin:16px;padding:12px 14px;font-size:12px;display:flex}.error-banner span{flex:1}.error-banner button{color:inherit;cursor:pointer;background:0 0;border:0;font-weight:600}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes surface-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes row-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes detail-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}footer{color:var(--muted);justify-content:space-between;padding:18px 0 0;font-size:10px;display:flex}.login-page{background:radial-gradient(circle at 25% 20%, #ecd9ca, transparent 40%), var(--paper);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);border-top:4px solid var(--rust);background:var(--surface);width:min(440px,100%);box-shadow:var(--shadow);padding:48px}.login-card h1{letter-spacing:-.04em;text-transform:uppercase;margin:0 0 14px;font-size:38px;font-weight:400}.login-card>p:not(.eyebrow){color:var(--muted);margin:0 0 28px;line-height:1.6}.login-error{font-size:12px;color:var(--danger)!important;margin-top:16px!important}@media (max-width:1050px){.vendor-layout.has-detail{grid-template-columns:1fr}.vendor-layout.has-detail .vendor-list{display:none}.detail-panel{border-left:0}.back-button{color:var(--rust);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:16px 16px 0;padding:0;font-size:11px;font-weight:600;display:inline-flex}.close-detail{display:none}}@media (max-width:720px){.topbar{height:64px}.source-note,.user-block div{display:none}.brand{min-width:0}.user-block{min-width:0;margin-left:auto}.dashboard{padding-top:30px}.page-heading{align-items:flex-start}.page-heading>div>p:last-child{max-width:260px}.refresh-button{width:42px;padding:0;font-size:0}.toolbar{flex-direction:column;align-items:stretch}.search-box{width:100%}.date-control{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding-block:9px;display:grid}.date-control>svg,.date-divider{display:none}.date-control .date-preset{border-bottom:1px solid var(--line);grid-column:1/-1;width:100%;padding-bottom:7px}.date-control input{width:100%}.table-head{display:none}.vendor-row{grid-template-columns:minmax(0,1fr) auto 18px}.vendor-row>span:nth-child(2),.vendor-row>span:nth-child(3){display:none}.vendor-row>span:nth-child(4):before{content:"Due ";color:var(--muted);font-weight:400}.filter-tabs{overflow-x:auto}footer{flex-direction:column;gap:6px}}@media (max-width:430px){.bill-card dl{grid-template-columns:1fr 1fr}.activity-card{padding-inline:16px}.activity-heading{align-items:end}.activity-calendar{--activity-cell:11px;--activity-gap:3px}.login-card{padding:34px 28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
