:root{--pine:#123b36;--pine-dark:#102f2c;--green:#277e69;--mint:#e5f1eb;--ink:#203a36;--muted:#7d8983;--line:#e4e7df;--paper:#f5f6f0;--white:#fff;--amber:#a16b2b;--sand:#f7ecda;--danger:#b4554b;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next','Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:14px;background:var(--paper)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7fba9f;outline-offset:3px}button{border:none}button svg{width:17px;height:17px}svg{display:block}h1,h2,h3,h4,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400}h3{font-size:15px;font-weight:600}small,.small{font-size:11px;line-height:1.6}.muted{color:var(--muted)}.center{text-align:center}[hidden]{display:none!important}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#b8cfc3}.eyebrow.dark{color:var(--green)}.brand{display:flex;align-items:center;gap:9px;color:white;font-size:29px;letter-spacing:-1px;font-weight:600}.brand-dot{color:#96c8a3;margin-left:-10px}.brand-mark{display:grid;place-items:center;width:32px;height:34px;border:1px solid #4b7163;border-radius:8px;color:#bcdfc2;font:italic 33px var(--serif);padding-bottom:3px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;border-radius:6px;background:var(--pine);color:white;font-size:12px;font-weight:600;line-height:1.4;transition:background .18s,transform .18s}.button:hover{background:#21584d;transform:translateY(-1px)}.button.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.button.secondary:hover,.button.ghost:hover{background:#edf3ed}.button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.button.danger{background:#a84b43}.button.small-btn{padding:8px 11px;font-size:11px}.wide{width:100%}.icon-button{background:transparent;color:var(--muted);width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:inline-grid;place-items:center;font-size:18px}.icon-button:hover{background:var(--mint);color:var(--green)}label{display:block;font-size:11px;font-weight:600;margin:18px 0 7px}input,select,textarea{width:100%;padding:12px 13px;border:1px solid #dce2da;border-radius:6px;background:white;color:var(--ink);font-size:13px}input::placeholder,textarea::placeholder{color:#a2aaa3}textarea{min-height:85px;resize:vertical}.form-error{color:var(--danger);font-size:12px;margin:12px 0;line-height:1.7}.form-help{font-size:11px;line-height:1.7;color:var(--muted);margin-top:7px}.status-dot{display:inline-block;width:6px;height:6px;background:#78ba97;border-radius:50%}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:4px;padding:5px 8px;font-size:10px;white-space:nowrap;background:var(--mint);color:var(--green)}.tag.review{background:var(--sand);color:var(--amber)}.tag.rejected{background:#f7e5e1;color:var(--danger)}.tag.paid{background:#eaf0f6;color:#526d8a}.tag .status-dot{width:5px;height:5px;background:currentColor}
.auth-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-story{position:relative;overflow:hidden;padding:48px 64px;background:var(--pine);color:#fff;display:flex;flex-direction:column}.auth-story:after{content:'';position:absolute;width:580px;height:580px;border:1px solid #386155;border-radius:50%;right:-280px;bottom:-350px;pointer-events:none}.story-copy{margin:auto 0;padding:60px 0 20px}.story-copy h1{font-size:65px;line-height:1.1;letter-spacing:-2px;margin:24px 0}.story-copy p{color:#b9cfc3;line-height:1.85;font-size:14px}.story-visual{position:relative;width:320px;height:220px;margin-top:45px}.mini-document{position:relative;z-index:2;transform:rotate(-7deg);width:242px;padding:23px 24px;background:#f9faf2;color:var(--ink);border-radius:9px;box-shadow:0 20px 45px #0002}.mini-document>span:not(.document-icon){display:block;font-size:7px;letter-spacing:1.1px;color:var(--muted);margin:13px 0 8px}.document-icon{font-size:23px;color:var(--green)}.mini-document strong{font-size:14px}.mini-line{height:5px;background:#e6e9df;width:90%;margin-top:14px;border-radius:2px}.mini-line.short{width:65%;margin-top:7px}.mini-total{display:flex;justify-content:space-between;margin-top:22px;padding-top:13px;border-top:1px dashed #d7ddcc;font-size:10px}.mini-total b{font-size:17px}.mini-approved{margin-top:13px;font-size:8px;color:var(--green)}.mini-tag{position:absolute;bottom:8px;left:125px;z-index:3;background:#d4e9cf;color:var(--pine);font-size:11px;padding:11px 16px;border-radius:6px;transform:rotate(3deg);box-shadow:0 10px 20px #0001}.visual-orbit{position:absolute;right:10px;top:0;width:170px;height:170px;border:1px dashed #648672;border-radius:50%}.story-footer{display:flex;justify-content:space-between;font-size:9px;color:#94b0a1;letter-spacing:1px;margin-top:30px}.auth-panel{background:#fcfcf8;padding:45px 65px;display:flex;flex-direction:column}.auth-top{color:#8e988d;font-size:9px;letter-spacing:1.8px}.auth-content{width:100%;max-width:365px;margin:auto}.lock-symbol{width:45px;height:45px;background:#eaf1e7;color:var(--pine);display:grid;place-items:center;border-radius:12px;font-size:26px;margin-bottom:30px}.auth-content h2{font-size:34px;letter-spacing:-.6px;margin:12px 0}.auth-content>p{font-size:12px;color:var(--muted);line-height:1.8}.auth-content .button{margin-top:23px}.auth-divider{display:flex;align-items:center;gap:16px;margin:32px 0 -5px;font-size:8px;color:#99a18f;letter-spacing:1.5px}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:var(--line);flex:1}.auth-content .small{margin-top:12px}.auth-bottom{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:#8b968a;margin-top:40px}.secret-code{padding:16px;background:var(--mint);border:1px dashed #9bc8ae;font-family:monospace;letter-spacing:1px;word-break:break-all;border-radius:6px;margin-top:18px}.recovery-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.recovery-list code{padding:10px;background:var(--paper);font-size:12px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{background:var(--pine);color:#b5c8bb;position:fixed;inset:0 auto 0 0;width:224px;display:flex;flex-direction:column;z-index:10;padding:30px 19px 0}.sidebar .brand{margin:0 10px 34px;font-size:28px}.workspace{display:flex;align-items:center;gap:9px;border:1px solid #31564c;background:#19413a;padding:12px 10px;border-radius:7px;margin-bottom:28px}.workspace-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:6px;background:#d7e6ce;color:var(--pine);font:19px var(--serif)}.workspace strong{display:block;color:#e6eee3;font-size:11px}.workspace span{display:block;font-size:9px;margin-top:4px;color:#8fb0a0}.nav-group-label{font-size:8px;letter-spacing:1.9px;margin:23px 13px 10px;color:#779b8a}.nav-button{display:flex;align-items:center;width:100%;gap:11px;background:transparent;border-radius:6px;color:#a9c1b3;font-size:11px;text-align:left;padding:11px 13px;margin-bottom:3px}.nav-button svg{width:16px;height:16px;opacity:.8}.nav-button:hover{background:#234c40;color:white}.nav-button.active{background:#31574a;color:#f4f9ed}.nav-count{margin-left:auto;background:#d9e6bb;color:var(--pine);font-size:9px;min-width:19px;text-align:center;padding:2px 5px;border-radius:4px}.sidebar nav{overflow-y:auto;scrollbar-width:thin;flex:1;padding-bottom:12px}.sidebar-bottom{margin-top:auto}.secure-note{display:flex;gap:10px;padding:17px 10px;border-top:1px solid #33574b}.secure-note strong{display:block;font-size:10px;color:#d8e4d5}.secure-note span:not(.shield-icon){display:block;font-size:8px;margin-top:5px;color:#7ea28d}.shield-icon{font-size:24px;color:#a4c6a4}.profile{background:var(--pine-dark);color:#e1ebdd;display:flex;align-items:center;gap:10px;width:calc(100% + 38px);margin-left:-19px;padding:17px 24px;text-align:left}.avatar{display:grid;place-items:center;width:32px;height:32px;background:#dbe7cf;color:var(--pine);border-radius:50%;font-size:10px;font-weight:600}.profile strong{display:block;font-size:10px}.profile small{font-size:8px;color:#81a28d}.logout-icon{margin-left:auto;font-size:20px;color:#8bb097}.main-shell{grid-column:2;min-width:0}.topbar{height:70px;background:#fff9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{display:flex;gap:12px;font-size:10px;color:#8b948a}.breadcrumb span{color:#c3c9bd}.breadcrumb strong{font-weight:500;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:16px}.mode-badge{font-size:9px;letter-spacing:.3px;background:#e9eee1;border:1px solid #dfe5d5;padding:5px 9px;border-radius:4px;color:#758265}.topbar-divider{height:20px;width:1px;background:var(--line)}.top-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6ecdd;color:var(--pine);font-size:9px}.mobile-only{display:none}main{padding:35px 38px;max-width:1700px;margin:auto;min-height:calc(100vh - 122px)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:20px}.page-head h1{font-size:36px;letter-spacing:-1px;line-height:1.3}.page-head p{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.7}.page-head .eyebrow{margin-bottom:8px;font-size:8px;letter-spacing:1.6px}.head-actions{display:flex;align-items:center;gap:10px}.month-input{width:153px;background:white;padding:10px 12px;font-size:11px}.notice{display:flex;gap:12px;align-items:center;border:1px solid #dce5d5;background:#ecf2e5;border-radius:7px;padding:12px 15px;font-size:11px;color:#64755d;margin-bottom:23px;line-height:1.65}.notice.warning{background:var(--sand);border-color:#ead9bc;color:#8d682f}.notice strong{color:var(--pine);font-weight:600}.notice button{margin-left:auto;background:transparent;color:var(--green);white-space:nowrap;font-size:10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:8px;padding:19px 20px;animation:rise .5s both}.metric:nth-child(2){animation-delay:.04s}.metric:nth-child(3){animation-delay:.08s}.metric:nth-child(4){animation-delay:.12s}.metric-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.metric-icon{width:27px;height:27px;display:grid;place-items:center;color:var(--green);background:#edf3e9;border-radius:6px}.metric-icon svg{width:14px;height:14px}.metric strong{display:block;font-family:var(--serif);font-size:31px;font-weight:400;letter-spacing:-.6px;margin:15px 0 9px;font-variant-numeric:tabular-nums}.metric-bottom{font-size:9px;color:#8e988a;display:flex;align-items:center;gap:6px}.metric-bottom b{font-size:9px;font-weight:500;color:var(--green);background:var(--mint);border-radius:3px;padding:3px 5px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;margin-bottom:23px}.card{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;padding:22px 23px 16px;gap:12px}.card-head h3{font-size:12px}.card-head p{font-size:9px;color:var(--muted);margin-top:6px}.card-body{padding:0 23px 23px}.text-link{display:inline-flex;gap:7px;align-items:center;background:transparent;padding:0;color:var(--green);font-size:10px;white-space:nowrap}.legend{display:flex;gap:13px;font-size:8px;color:var(--muted)}.legend i{display:inline-block;width:6px;height:6px;border-radius:2px;margin-right:5px;background:var(--green)}.legend i.light{background:#c4d9c5}.chart{width:100%;height:190px;margin-top:10px}.chart text{font:9px var(--sans);fill:#91a08e}.chart .grid-line{stroke:#eef0e9;stroke-dasharray:3 4}.chart-total{display:flex;align-items:center;justify-content:space-between;padding-top:13px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.chart-total strong{font-size:11px;font-weight:500;color:var(--ink)}.donut-layout{display:flex;align-items:center;justify-content:center;gap:23px;min-height:185px}.donut{width:145px;height:145px;flex:none;transform:rotate(-90deg)}.donut text{transform:rotate(90deg);transform-origin:center;fill:var(--ink);font:24px var(--serif)}.donut .donut-label{font:8px var(--sans);fill:var(--muted)}.category-legend{flex:1;min-width:90px}.category-legend>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:15px 0;font-size:9px}.category-legend i{width:6px;height:6px;display:inline-block;border-radius:50%;margin-right:7px}.category-legend b{font-weight:500}.review-strip{padding:13px 16px;margin:0 23px 23px;background:#f6f4e9;border:1px solid #eee9d6;border-radius:6px;display:flex;align-items:center;gap:10px;font-size:10px;color:#89734f}.review-strip button{margin-left:auto}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}th{background:#f8f9f4;color:#8c9788;font-size:8px;font-weight:500;letter-spacing:1px;padding:13px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:16px 20px;border-bottom:1px solid #eef0e9;white-space:nowrap}tr:last-child td{border-bottom:0}.supplier-cell{display:flex;align-items:center;gap:11px}.supplier-avatar{width:31px;height:31px;border-radius:7px;display:grid;place-items:center;background:#edf1e5;color:#68795a;font-size:9px;flex:none}.supplier-cell strong{font-size:10px;font-weight:600;display:block}.supplier-cell small{color:var(--muted);font-size:8px}.amount{text-align:right;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.table-action{font-size:15px;background:transparent;color:var(--muted);width:24px;height:24px}.table-bottom{padding:13px 23px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted);border-top:1px solid var(--line)}.table-filters{display:flex;gap:12px;padding:0 23px 19px}.table-filters input{max-width:300px}.table-filters select{max-width:180px}.table-filters input,.table-filters select{font-size:11px;padding:10px}.main-footer{display:flex;justify-content:space-between;padding:14px 38px 20px;font-size:8px;letter-spacing:.5px;color:#919a8a}.empty{padding:48px 24px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8}.empty strong{display:block;color:var(--ink);font:23px var(--serif);margin-bottom:8px}.empty .button{margin-top:18px}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.info-tile{padding:25px}.info-tile h3{margin:18px 0 9px}.info-tile p{font-size:11px;line-height:1.8;color:var(--muted)}.tile-icon{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:var(--mint);color:var(--green)}.tile-icon svg{width:19px;height:19px}.budget-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin:24px 0 10px}.budget-track{height:6px;background:#edf0e5;border-radius:9px;overflow:hidden}.budget-fill{height:100%;border-radius:9px;background:var(--green);max-width:100%}.budget-foot{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:10px}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.security-card{padding:26px}.security-card h3{margin:17px 0 8px}.security-card p{color:var(--muted);font-size:11px;line-height:1.8}.security-row{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:11px}.security-row:last-child{border:0}.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:35px 25px;gap:20px}.step{position:relative;background:#f7f9f3;border:1px solid var(--line);border-radius:8px;padding:21px 16px}.step:not(:last-child):after{content:'→';position:absolute;right:-17px;top:41%;color:#90a486}.step-number{font:24px var(--serif);color:#b3c5a9}.step h3{font-size:12px;margin:19px 0 8px}.step p{font-size:10px;color:var(--muted);line-height:1.8}.step-accent{background:var(--pine);color:white;border-color:var(--pine)}.step-accent p{color:#a9c3b2}.flow-line{display:flex;justify-content:center;align-items:center;gap:18px;padding:28px;flex-wrap:wrap}.flow-node{padding:17px 24px;background:var(--mint);border:1px solid #cee0cf;border-radius:7px;text-align:center;font-size:11px}.flow-node small{display:block;color:var(--muted);margin-top:4px}.flow-node.warning{background:var(--sand);border-color:#ead9bc}.flow-node.reject{background:#faece8;border-color:#efd6ce}.activity-list{padding:5px 23px 20px}.activity-item{display:flex;align-items:flex-start;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.activity-item .tile-icon{width:30px;height:30px;font-size:12px}.activity-item strong{font-size:11px;display:block}.activity-item p{font-size:10px;color:var(--muted);margin-top:6px}.activity-item time{margin-left:auto;color:var(--muted);font-size:9px;white-space:nowrap}
dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:min(720px,calc(100% - 32px));max-height:90vh;color:var(--ink);background:#fff;box-shadow:0 30px 80px #102f2c33}dialog::backdrop{background:#112e2966;backdrop-filter:blur(3px)}.dialog-top{padding:26px 28px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.dialog-top h2{font-size:28px;margin-top:7px}.dialog-top .eyebrow{font-size:8px}.dialog-top .icon-button{font-size:24px}#modal-content{padding:22px 28px 28px}.upload-area{border:1px dashed #a9c6ad;border-radius:8px;background:#f5f8ef;padding:34px 20px;text-align:center}.upload-area svg{margin:auto;color:var(--green);width:29px;height:29px}.upload-area h3{font-family:var(--serif);font-size:22px;font-weight:400;margin:17px 0 9px}.upload-area p{font-size:11px;color:var(--muted);line-height:1.7}.upload-area label{display:inline-flex;margin-top:20px;font-size:11px}.upload-area input{max-width:350px;margin:12px auto 0;background:white;font-size:11px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-two{grid-column:1/-1}.field-row{display:grid;grid-template-columns:2fr .5fr .8fr 25px;gap:8px;align-items:center;margin-top:9px}.field-row input{font-size:11px;padding:10px 8px}.field-row .icon-button{width:23px;height:23px}.item-head{font-size:9px;color:var(--muted);margin-top:22px}.preview-image{max-height:300px;max-width:100%;display:block;margin:0 auto 20px;border-radius:6px}.review-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.inline-note{font-size:10px;line-height:1.8;color:var(--muted);margin:16px 0}.loading{display:flex;align-items:center;justify-content:center;padding:35px;gap:12px;color:var(--green);font-size:12px}.spinner{width:21px;height:21px;border:2px solid var(--mint);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}#toast{position:fixed;bottom:25px;right:25px;background:var(--pine);color:white;padding:15px 21px;border-radius:7px;box-shadow:0 10px 30px #0002;z-index:30;font-size:12px;max-width:calc(100% - 50px)}.report-summary{display:flex;align-items:center;justify-content:space-between;background:var(--pine);color:white;border-radius:8px;padding:29px 30px;margin-bottom:22px}.report-summary h2{font-size:28px}.report-summary p{font-size:11px;color:#a9c3b0;margin-top:8px}.report-summary strong{font:37px var(--serif)}.check-list{padding-left:0;list-style:none}.check-list li{font-size:11px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--muted)}.check-list li:before{content:'✓';color:var(--green);margin-right:10px}.mobile-shade{display:none}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){main{padding:45px 55px}.topbar{padding:0 55px}.dashboard-grid{grid-template-columns:1.65fr 1fr}.chart{height:220px}.metric strong{font-size:36px}.donut-layout{min-height:215px}.donut{width:168px;height:168px}}
@media(max-width:1150px){.app-shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{width:195px;padding-left:13px;padding-right:13px}.profile{width:calc(100% + 26px);margin-left:-13px;padding-left:18px}.topbar{padding:0 25px}main{padding:28px 25px}.metrics{gap:10px}.metric{padding:16px 15px}.metric strong{font-size:27px}.dashboard-grid{grid-template-columns:1.5fr 1fr;gap:15px}.donut-layout{gap:10px}.donut{width:113px;height:113px}.card-head,.card-body{padding-left:17px;padding-right:17px}.legend{gap:7px}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{gap:15px;padding:25px 17px}.step{padding:18px 10px}.step h3{font-size:10px}.auth-story{padding:40px}.auth-panel{padding:40px}.story-copy h1{font-size:55px}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.donut-layout{min-height:150px;justify-content:flex-start}.donut{width:140px;height:140px}.category-legend{max-width:300px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head h1{font-size:30px}.page-head{align-items:flex-start}.head-actions{flex-wrap:wrap;justify-content:flex-end}.steps{grid-template-columns:1fr}.step:not(:last-child):after{content:'↓';right:50%;top:auto;bottom:-18px}.step h3{font-size:13px;margin-top:10px}.security-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:.9fr 1.1fr}.auth-story{padding:32px}.auth-panel{padding:32px}.story-copy h1{font-size:43px}.story-copy p{font-size:12px}.story-visual{transform:scale(.8);transform-origin:left center;width:250px}}
@media(max-width:680px){.auth-shell{display:block}.auth-story{display:none}.auth-panel{min-height:100vh;padding:28px}.auth-content{padding:45px 0}.auth-top{text-align:center}.auth-content h2{font-size:32px}.app-shell{display:block}.sidebar{transform:translateX(-100%);width:224px;transition:transform .2s}.app-shell.menu-open .sidebar{transform:translateX(0);box-shadow:20px 0 100px #102f2c55}.main-shell{width:100%}.mobile-only{display:grid}.topbar{height:60px;padding:0 18px;gap:10px}.breadcrumb{margin-right:auto;gap:6px;font-size:9px}.topbar-right{gap:10px}.topbar-divider{display:none}.mode-badge{font-size:8px;padding:4px 6px}main{padding:25px 18px}.page-head{display:block;margin-bottom:22px}.page-head h1{font-size:32px}.head-actions{justify-content:flex-start;margin-top:20px}.metrics{gap:10px}.metric{padding:16px 13px}.metric strong{font-size:27px}.metric-top{font-size:9px}.metric-bottom{font-size:8px}.card-head{padding-top:18px}.card-head .legend{display:none}.chart{height:180px}.info-grid{grid-template-columns:1fr}.table-filters{padding:0 17px 17px;flex-direction:column}.table-filters input,.table-filters select{max-width:none}.main-footer{padding:14px 18px;font-size:7px}.report-summary{display:block;padding:25px}.report-summary strong{display:block;margin-top:20px}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.dialog-top{padding:20px}.dialog-top h2{font-size:25px}#modal-content{padding:20px}.field-row{grid-template-columns:1.5fr .5fr .7fr 22px;gap:5px}.field-row input{font-size:10px}.activity-item time{font-size:8px}.activity-item{gap:10px}.card-head h3{font-size:11px}.notice{font-size:10px;align-items:flex-start}.notice button{font-size:9px}.flow-line{gap:10px;padding:20px}.flow-node{padding:15px}.donut-layout{gap:22px}.donut{width:125px;height:125px}.info-tile{padding:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.8}.notice>svg{width:16px;height:16px;flex:none}.flow-line>span{color:#8c9c87}

.review-strip>svg{width:17px;height:17px;flex:none}.review-strip{min-height:45px}.review-strip span{line-height:1.6}

.period-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:-7px 0 24px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.period-controls label{margin:0 3px 0 0;font-size:10px;color:var(--muted)}.period-controls select{width:150px;font-size:11px;padding:8px 10px}.period-controls input{width:150px;padding:8px 10px;font-size:11px}.period-label{margin-left:auto;font-size:9px;color:var(--muted)}.finance-details{margin-top:22px}.finance-details .notice{margin-top:17px;margin-bottom:0}.ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:0 25px 25px}.ratio-grid>div{padding:15px 0;border-top:1px solid var(--line)}.ratio-grid span{display:block;font-size:11px;color:var(--muted)}.ratio-grid strong{display:block;font:30px var(--serif);margin:12px 0}.ratio-grid small{font-size:9px;line-height:1.7;color:var(--muted)}.hash-label{display:block;font-size:8px;color:var(--muted);margin-top:5px;max-width:280px;overflow-wrap:anywhere;white-space:normal;line-height:1.7}.original-number{font-family:monospace;font-size:10px;font-weight:400}.row-alert{font-size:9px;color:var(--amber);max-width:230px;white-space:normal;margin-top:7px;line-height:1.7}.row-alert summary{cursor:pointer}table input[type=checkbox]{width:14px;height:14px;accent-color:var(--green)}.source-dialog{width:min(1150px,calc(100% - 32px))}.source-grid{margin-top:18px;max-height:50vh}.source-grid table th{position:sticky;top:0;background:#f1f4ea}.source-grid table td{font-size:10px;max-width:350px}.source-grid table td span{white-space:pre-wrap;overflow-wrap:anywhere}.source-grid details{margin-top:8px;font-size:9px;color:var(--green);white-space:normal}.source-grid details code{display:block;max-width:250px;word-break:break-all}.source-grid details small{display:block}.source-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;font-size:10px;color:var(--muted)}.field-row{grid-template-columns:1.7fr .5fr .8fr 1.2fr 25px}.field-row select{font-size:10px;padding:10px 8px}.ocr-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:11px;color:var(--green)}.ocr-panel summary{cursor:pointer}.ocr-panel pre{color:var(--ink);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto;padding:15px;background:var(--paper);line-height:1.7}.print-only{display:none}
@media(max-width:680px){.period-label{width:100%;margin-left:0}.ratio-grid{grid-template-columns:1fr;gap:10px}.ratio-grid strong{font-size:28px}.field-row{grid-template-columns:1.5fr .5fr .7fr 25px}.field-row .item-classification{grid-row:2;grid-column:1/4;margin-bottom:5px}.field-row .icon-button{grid-column:4;grid-row:1}.head-actions .button{font-size:10px;padding:9px 12px}}
@media print{@page{size:A4 landscape;margin:13mm}body{background:white;color:#111;font-size:10pt}.sidebar,.topbar,.main-footer,.head-actions,.period-controls,.notice,.mode-badge,.icon-button,.text-link,dialog,#toast,.button{display:none!important}.app-shell,.main-shell{display:block}.main-shell{width:100%}main{padding:0;max-width:none;min-height:0}.page-head{margin-bottom:20px}.page-head h1{font-size:26pt}.metrics{grid-template-columns:repeat(4,1fr);gap:12px}.metric{padding:10px;border-color:#aaa;animation:none}.metric strong{font-size:21pt}.metric-top{font-size:9pt}.metric-bottom{font-size:8pt}.metric-icon{display:none}.card{border-color:#aaa;overflow:visible;break-inside:auto}.card-head{padding:12px}.table-scroll{overflow:visible}table{font-size:9pt}th,td{padding:8px;font-size:8pt;white-space:normal;border-color:#ccc}thead{display:table-header-group}tr{break-inside:avoid}.original-number{font-size:7pt;overflow-wrap:anywhere}.print-only{display:block;margin-top:20px}.print-only h3{margin-bottom:12px}.print-only .text-link{display:block!important}.inline-note{color:#333;font-size:8pt;line-height:1.5}.finance-details{margin-top:16px}}

/* Capture and individual validation */
.capture-list{padding:0 25px 12px}.capture-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.capture-number{font:23px var(--serif);color:var(--green);width:34px;flex-shrink:0}.capture-row>div{flex:1;min-width:0}.capture-row strong{font-size:12px;overflow-wrap:anywhere}.capture-row small{display:block;color:var(--muted);font-size:10px;margin-top:7px;line-height:1.7}.selected-documents{font-size:11px;text-align:left;line-height:1.8;overflow-wrap:anywhere}.selected-documents span{display:block;margin-top:8px}.validation-dialog{width:min(880px,calc(100% - 32px))}.validation-dialog .preview-image{max-height:420px;border:1px solid var(--line);background:var(--paper);margin-bottom:12px}.original-caption{font-size:9px;color:var(--muted);margin-bottom:15px;letter-spacing:.5px}.original-link{display:block;text-align:center;margin-bottom:23px}.validation-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 23px}.validation-summary>div{padding:17px;background:var(--paper);border:1px solid var(--line);border-radius:7px}.validation-summary span,.validation-summary small{display:block;font-size:10px}.validation-summary strong{display:block;font:25px var(--serif);margin:10px 0}.validation-ok{color:var(--green)}.validation-fail{color:#ad4b33}.validation-confirm{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.8;margin-top:22px;padding:17px;border:1px solid var(--line);background:#f5f8ef;border-radius:7px}.validation-confirm input{width:17px;height:17px;margin:3px 0 0;flex-shrink:0;accent-color:var(--green)}.batch-position{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0 18px;margin-bottom:15px;border-bottom:1px solid var(--line)}.batch-position span{font-size:9px;letter-spacing:1px;color:var(--green)}.batch-position strong{font-size:11px;overflow-wrap:anywhere}.batch-position button{margin-left:auto}.button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:680px){.capture-list{padding:0 18px 12px}.capture-row{gap:10px;flex-wrap:wrap}.capture-row>div{min-width:65%}.capture-row .button,.capture-row>.text-link{margin-left:44px}.validation-dialog .dialog-actions{flex-wrap:wrap}.validation-summary>div{padding:12px}.validation-summary strong{font-size:22px}.validation-confirm{font-size:11px;padding:13px}.batch-position button{margin-left:0}}

/* Boschetto — navy, crimson and white, from the restaurant's visual identity. */
@font-face{font-family:Manrope;src:url('/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{--pine:#051c2c;--pine-dark:#03131f;--green:#ce0e2d;--mint:#fcecef;--ink:#051c2c;--muted:#62717d;--line:#e0e5ea;--paper:#f3f5f7;--amber:#9b5600;--sand:#fff4e5;--danger:#b00c26;--serif:Manrope,sans-serif;--sans:Manrope,sans-serif;--purchase-color:#051c2c;--sales-color:#f18a00}
body{-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}
h1,h2{font-weight:650;letter-spacing:-1.4px}h3{font-weight:750}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#f18a00}
.button{border-radius:9px;background:var(--green);padding:12px 18px;box-shadow:0 3px 8px #051c2c0a;font-size:12px;min-height:42px}
.button:hover{background:#ae0c26}.button.secondary,.button.ghost{color:var(--ink);box-shadow:none}
.button.secondary:hover,.button.ghost:hover{background:#f1f4f7}.button.danger{background:#b00c26}
.button.small-btn{min-height:34px}.text-link{font-size:11px;font-weight:650}.icon-button{color:var(--ink)}
.brand{letter-spacing:-1.3px;font-weight:750}.brand-dot{color:#f18a00}.brand-mark{border-color:#ffffff30;color:#fff;border-radius:9px;font:700 25px var(--sans);background:#ffffff0c;padding:0}
.sidebar{background:var(--pine);color:#b9c6d1;padding-top:26px;border-right:1px solid #ffffff10}
.sidebar .brand{margin-bottom:26px}.workspace{background:#ffffff08;border-color:#ffffff18;border-radius:10px;margin-bottom:14px;padding:12px}
.workspace-icon{background:var(--green);color:white;font:700 17px var(--sans)}.workspace strong{color:#fff;font-size:12px}.workspace span{color:#a6b7c5;font-size:10px}
.nav-group-label{color:#8196a7;font-size:9px;margin-top:20px;letter-spacing:1.6px}
.nav-button{color:#b9c6d1;font-size:11px;padding:11px 12px;border-radius:8px;font-weight:550;transition:background .15s,color .15s}
.nav-button:hover{background:#ffffff0b;color:#fff}.nav-button.active{background:#ffffff12;color:#fff;box-shadow:inset 3px 0 var(--green)}.nav-button.active svg{color:#f18a00;opacity:1}
.nav-count{background:#ce0e2d;color:white;border-radius:5px}.secure-note{border-color:#ffffff18}.secure-note strong{color:#dce5ed}.secure-note span:not(.shield-icon),.profile small,.logout-icon{color:#9cabb8}.shield-icon{color:#f18a00}
.profile{background:var(--pine-dark);color:#fff}.avatar{background:#253a4a;color:#fff}.top-avatar{background:#edf0f4;color:var(--pine);font-weight:750}
.topbar{background:#fff;border-color:var(--line);height:72px}.breadcrumb{font-size:11px;color:var(--muted)}.breadcrumb strong{font-weight:700}.mode-badge{background:#fff;border-color:#dce4e9;color:#475e6c;border-radius:20px;padding:6px 11px;font-size:10px}
main{padding:34px 36px}.page-head{align-items:flex-start;margin-bottom:24px}.page-head h1{font-size:clamp(28px,2.8vw,40px);line-height:1.2;font-weight:650;letter-spacing:-1.4px}.page-head p{font-size:12px;max-width:650px;margin-top:12px}.page-head .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:12px}.head-actions{padding-top:8px;flex-wrap:wrap}
.month-input{width:172px;font-size:12px;min-height:42px}.period-controls{background:white;border:1px solid var(--line);padding:13px 16px;border-radius:12px;margin-bottom:24px}.period-controls label{color:#465c6a;font-size:11px;font-weight:700}.period-label{color:#62717d;font-size:11px}
input,select,textarea{border-radius:8px;border-color:#d6dfe6;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{border-color:#758f9f}
.metrics{gap:16px}.metric{border-radius:13px;padding:21px;border-color:#e0e5ea;box-shadow:0 4px 18px #051c2c04;min-width:0}.metric-top{font-size:11px;color:#526776}.metric strong{font:700 clamp(25px,2.4vw,36px) var(--sans);letter-spacing:-1.3px;margin:21px 0 12px;line-height:1.15;overflow-wrap:anywhere}.metric-bottom{font-size:10px;color:#647787;line-height:1.6}.metric-icon{background:#fcecef;color:var(--green);width:32px;height:32px;border-radius:10px}
.metric:first-child{background:var(--pine);border-color:var(--pine);color:white}.metric:first-child .metric-top,.metric:first-child .metric-bottom{color:#b9c8d3}.metric:first-child .metric-icon{color:#f18a00;background:#ffffff10}.metric:nth-child(3){border-top:3px solid var(--green);padding-top:19px}.metric:nth-child(3) strong{color:var(--green)}
.card{border-radius:13px;box-shadow:0 4px 18px #051c2c03}.card-head{padding:23px 24px 18px}.card-head h3{font-size:13px;font-weight:750}.card-head p{font-size:10px;color:var(--muted)}.card-body{padding:0 24px 24px}.legend{font-size:10px}.legend i{background:var(--purchase-color);width:8px;height:8px}.legend i.light{background:var(--sales-color)}.chart text{fill:#62717d}.chart .grid-line{stroke:#e1e7ec}.chart-total{font-size:11px}.chart-total strong{font-size:13px;font-weight:700}.category-legend>div{font-size:10px}.category-legend b{font-weight:750}.donut text{font-weight:750}
th{background:#f5f7f9;color:#5c6e7d;font-size:9px;font-weight:700;letter-spacing:.7px;padding:14px 20px}td{border-color:#edf0f3;padding:17px 20px}tbody tr:hover{background:#f8fafb}.supplier-avatar{background:#eaf0f5;color:#38536a;border-radius:9px}.supplier-cell strong{font-size:11px}.supplier-cell small{color:var(--muted)}.amount{font-variant-numeric:tabular-nums;font-weight:650}
.notice{background:#edf3f8;border-color:#d6e3ed;color:#38536a;border-radius:10px;font-size:11px}.notice.warning,.review-strip{background:var(--sand);border-color:#f1debf;color:#8a4d0b}.review-strip{border-radius:9px}.status.approved,.status.paid{background:#eaf3ee;color:#245c43}.status.review{background:#fff1df;color:#8a4d0b}.status.rejected{background:#fcecef;color:#b00c26}
.main-footer{color:#62717d;font-size:9px}.info-tile,.security-row,.validation-summary>div{border-radius:10px}.tile-icon,.lock-symbol{background:#fcecef;color:var(--green)}.ratio-grid strong{font-family:var(--sans);font-weight:750;letter-spacing:-1px}.validation-confirm{background:#f1f5f8}.validation-confirm input{accent-color:var(--green)}
dialog{border-radius:16px;box-shadow:0 25px 100px #051c2c33;border:1px solid var(--line)}dialog::backdrop{background:#051c2c99;backdrop-filter:blur(3px)}.dialog-top h2{font-size:26px;font-weight:650;letter-spacing:-1px}.dialog-top{border-color:var(--line)}
.auth-story{background:var(--pine)}.auth-panel{background:#fff}.story-copy h1{font-size:clamp(42px,4vw,62px);font-weight:650;line-height:1.1;letter-spacing:-2px}.story-copy p{color:#b5c7d4;line-height:1.9}.eyebrow{color:#d6e1ea}.eyebrow.dark{color:var(--green)}.story-footer{color:#91a9bb}.mini-document{background:#fff;color:var(--pine);box-shadow:0 20px 50px #0003}.mini-approved{color:#245c43;background:#eaf3ee}.mini-tag{color:#fff;background:var(--green);border-color:#ffffff20}.visual-orbit{border-color:#ffffff25}.auth-content h2{font-weight:650}.auth-top,.auth-bottom{color:var(--muted)}.secret-code{background:#edf3f8;border-color:#8da6bb}.auth-divider{color:var(--muted)}.status-dot{background:#f18a00}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{flex-wrap:wrap}.metric strong{font-size:30px}.dashboard-grid{grid-template-columns:1fr}.card-head{padding:20px}.card-body{padding:0 20px 20px}}
@media(max-width:680px){main{padding:24px 16px}.topbar{height:60px;padding:0 16px}.page-head h1{font-size:29px}.head-actions{width:100%;gap:8px}.head-actions .button{padding:10px 13px}.metric{padding:16px}.metric strong{font-size:clamp(22px,5.7vw,30px)}.metric:nth-child(3){padding-top:14px}.metric-top{font-size:10px}.metric-bottom{font-size:9px}.period-controls{padding:12px;gap:10px;flex-wrap:wrap}.period-label{width:100%}.auth-panel{padding:26px}.sidebar{padding-top:22px}.mode-badge{font-size:8px}.dialog-top h2{font-size:23px}}
@media print{body{background:white}.metric:first-child{background:white;color:var(--ink);border-color:var(--line)}.metric:first-child .metric-top,.metric:first-child .metric-bottom{color:var(--muted)}.metric{box-shadow:none}.card{box-shadow:none}}

/* Compact restaurant wordmark within the navigation rail. */
.brand{font-size:24px;letter-spacing:-1px;gap:7px}.sidebar .brand{font-size:22px;margin-left:3px;margin-right:3px}.brand-mark{width:29px;height:31px;flex-shrink:0}.brand-dot{margin-left:-6px}

/* Daily closes and weekly planning use the restaurant's navy/red palette. */
.sales-flow{display:flex;align-items:center;gap:26px;flex-wrap:wrap;border-left:3px solid var(--green);padding:15px 20px;margin:0 0 22px;background:white;border-radius:0 10px 10px 0;font-size:11px;color:var(--muted)}.sales-flow b{margin-left:7px;color:var(--ink)}.sales-flow .text-link{margin-left:auto}.sales-toolbar{display:flex;gap:24px;flex-wrap:wrap;padding:0 24px 18px}.sales-pending{margin:0 0 16px}.daily-preview{display:block;max-width:100%;max-height:380px;object-fit:contain;margin:0 auto 24px;border-radius:8px;background:#f1f5f8}.sales-transcript{margin:18px 0}.sales-transcript pre{max-height:220px;overflow:auto;white-space:pre-wrap;font:12px/1.7 monospace;color:var(--ink);background:#f5f7f9;padding:15px;border-radius:8px}.sales-file-row{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:17px 24px;border-bottom:1px solid var(--line);font-size:12px}.sales-file-row strong{display:block;overflow-wrap:anywhere}.sales-file-row small{display:block;color:var(--muted);margin-top:6px;line-height:1.6}.weekly-period{color:var(--muted);font-size:12px;margin-bottom:22px}.weekly-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 24px 24px;gap:10px}.weekly-day{padding:17px 12px;border:1px solid var(--line);border-top:3px solid var(--pine);border-radius:8px;min-width:0}.weekly-day>span:first-child{display:block;font-size:12px;font-weight:700}.weekly-day small{display:block;color:var(--muted);font-size:10px;margin:5px 0}.weekly-day strong{display:block;font-size:17px;letter-spacing:-.5px;margin:18px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.forecast-day{border-top-color:var(--green);background:#fff7f8}.tag.projection{background:#fcecef;color:var(--green)}.weekly-day .tag{font-size:9px;padding:5px 7px}.weekly-days .tag{white-space:normal}.sales-file-row .text-link{flex-shrink:0}#sales-map-preview{margin:20px 0;max-height:260px}#sales-column-map{margin:20px 0}#weekly-date{width:175px}.weekly-day .tag.review{background:#fff1df;color:#8a4d0b}
@media(max-width:1100px){.weekly-days{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:680px){.weekly-days{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px 16px}.sales-flow{gap:14px}.sales-flow .text-link{margin-left:0}.sales-toolbar{padding:0 16px 18px}.sales-file-row{padding:16px;align-items:flex-start}.weekly-day strong{font-size:20px}}
@media print{.sales-toolbar,.sales-flow,.sales-pending,.card-head button{display:none}.weekly-days{grid-template-columns:repeat(7,minmax(0,1fr));padding:0}.weekly-day strong{font-size:14px}.forecast-day{background:white}}
