:root{--ink:#172a3c;--navy:#101f32;--navy2:#152b42;--teal:#0d8f81;--teal2:#12aa91;--mint:#eaf8f3;--bg:#f6f8fa;--white:#fff;--muted:#738397;--line:#e7ecf0;--warning:#b9822a;--warnbg:#fff6e8;--blue:#4274b5;--bluebg:#eaf2fd;--red:#c44c4c;--redbg:#fff0ef;--radius:15px;--shadow:0 7px 25px rgba(23,42,60,.05)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:800}.eyebrow.teal{color:var(--teal)}.brand{display:flex;gap:11px;align-items:center}.brand-icon{display:inline-grid;place-items:center;position:relative;background:#0f9e91;color:white;border-radius:12px;font:800 23px Manrope,sans-serif;width:40px;height:40px;box-shadow:0 4px 13px #0f9e913b}.brand-spark{position:absolute;right:5px;top:4px;width:6px;height:6px;border-radius:50%;background:#f4cf75}.brand b{display:block;font-family:Manrope,sans-serif;letter-spacing:2px;font-size:15px}.brand small{display:block;font-size:10px;letter-spacing:.2px;color:var(--muted);margin-top:1px}.brand.light b{color:white}.brand.light small{color:#b4c5d3}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(410px,48%) 1fr;background:#fff}.login-art{background:radial-gradient(ellipse at 80% 40%,#1c5570aa 0%,transparent 35%),linear-gradient(155deg,#0d2537,#16334c 65%,#113a45);padding:48px 58px;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#fff}.login-art:after{content:'';position:absolute;width:470px;height:470px;border:1px solid #ffffff17;border-radius:50%;bottom:-140px;right:-140px;box-shadow:0 0 0 70px #ffffff05,0 0 0 150px #ffffff04;pointer-events:none}.login-art-content{margin:auto 0;position:relative;z-index:1}.login-art-content .eyebrow{color:#84e3d4}.login-art h1{font:800 clamp(38px,4vw,62px)/1.18 Manrope,sans-serif;letter-spacing:-2.8px;margin:22px 0}.login-art h1 em{font-style:normal;color:#69d3ba}.login-art-content p{font-size:15px;color:#cad6e1;line-height:1.8;max-width:410px}.feature-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:30px}.feature-pills span{border:1px solid #ffffff30;border-radius:20px;padding:9px 12px;color:#e2f0f3;font-size:11px}.login-art-bottom{color:#aec0ce;font-size:12px;display:flex;align-items:center;gap:9px}.live-dot{display:inline-block;background:#42d9b0;width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 3px #3ac6a52a}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 30px}.login-box{width:min(440px,100%)}.login-box h2{font:800 29px/1.25 Manrope,sans-serif;letter-spacing:-1.2px;margin:13px 0 8px}.login-box>.muted{margin:0 0 28px;line-height:1.6}.login-box label{display:block;font-size:12px;font-weight:700;margin-bottom:17px}.login-box input{margin-top:7px}.login-box input,.input,.form-field input,.form-field select,.form-field textarea,.filter-select{display:block;width:100%;border:1px solid #dce5eb;border-radius:10px;background:#fff;padding:12px 13px;outline:none;transition:border-color .2s,box-shadow .2s;color:var(--ink);min-height:44px}.login-box input:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.filter-select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #10a8981f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 16px;border-radius:10px;border:1px solid transparent;font-weight:700;font-size:12px;white-space:nowrap}.btn-primary{background:var(--teal);color:white;box-shadow:0 4px 12px #02847625}.btn-primary:hover{background:#08776d}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:white;color:#263d50;border-color:#dce5eb}.btn-secondary:hover{background:#f5f8fa}.btn-soft{background:var(--mint);color:#087e73}.btn-danger{color:var(--red);border-color:#f0c8c8;background:#fff}.btn-full{width:100%;justify-content:space-between}.btn-icon{padding:8px;width:36px;min-height:36px}.form-error{color:var(--red);min-height:18px;font-size:12px}.demo-login{margin-top:23px;border-top:1px solid var(--line);padding-top:23px}.demo-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;margin-bottom:12px}.label-mini{color:#a5afbc;font-size:10px;font-weight:500}.demo-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.demo-roles button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px 5px;text-align:center;transition:all .2s}.demo-roles button:hover{border-color:var(--teal);background:#f3fbf8}.demo-roles b,.demo-roles small{display:block}.demo-roles b{font-size:12px;margin:8px 0 4px}.demo-roles small{font-size:10px;color:var(--muted)}.role-emoji{font-size:20px}.demo-hint{font-size:11px;color:var(--muted);margin:13px 0 0}.login-warning{font-size:11px;color:#97a5b0;text-align:center;max-width:390px;margin-top:35px}.login-mobile-brand{display:none}.app{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--navy);color:#bdcbd8;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;padding:26px 16px 18px;z-index:20}.sidebar-top{padding:0 10px 35px;display:flex;align-items:center;justify-content:space-between}.sidebar-section-label{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#6c8497;margin:0 15px 12px}.nav-link{display:flex;gap:12px;align-items:center;padding:13px 14px;border-radius:10px;margin-bottom:4px;font-size:12px;font-weight:600;color:#afc0cc;border:0;width:100%;background:none;text-align:left}.nav-link svg{width:17px;height:17px;stroke-width:1.8}.nav-link:hover{background:#1e3347;color:#fff}.nav-link.active{background:#1e4e55;color:#7be3ca}.nav-count{margin-left:auto;border-radius:7px;padding:2px 7px;background:#ecaf5921;color:#f1bf78;font-size:10px}.sidebar-spacer{flex:1}.sidebar-help{background:#183248;border:1px solid #30485b;border-radius:13px;padding:16px;margin:10px 4px 18px}.sidebar-help-icon{width:26px;height:26px;background:#2c6666;color:#76dccc;display:grid;place-items:center;border-radius:8px;margin-bottom:12px}.sidebar-help b{display:block;color:#fff;font-size:12px}.sidebar-help p{color:#9cb2c3;font-size:11px;line-height:1.6}.sidebar-help span{font-size:9px;letter-spacing:1.3px;color:#67cab8;font-weight:700}.sidebar-profile{border-top:1px solid #304152;padding:16px 7px 0;display:flex;gap:10px;align-items:center}.avatar{height:34px;width:34px;border-radius:10px;background:#2e5967;color:#9ce2d1;display:grid;place-items:center;font-weight:800}.sidebar-profile b{color:white;font-size:11px;display:block}.sidebar-profile small{font-size:10px;color:#99aebe}.sidebar-close{display:none}.main-wrap{flex:1;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10}.top-left{font-size:12px;color:#8794a1}.top-left span{color:#c6ced6;margin:0 8px}.top-right{display:flex;align-items:center;gap:17px}.demo-badge{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800;color:#6c8590;letter-spacing:.6px}.demo-badge .live-dot{height:6px;width:6px}.role-tag{background:#eff6f7;border:1px solid #e0eaeb;border-radius:20px;padding:7px 12px;font-size:11px;color:#3f6973;font-weight:700}.icon-button{border:1px solid #e8edef;background:#fff;width:35px;height:35px;border-radius:9px;display:grid;place-items:center}.top-avatar{background:#dbf3e9;color:#0b7f73;border:0;font-weight:800}.mobile-menu{display:none}.content{max-width:1530px;padding:31px 35px 60px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:27px}.page-head h1{font:800 27px/1.2 Manrope,sans-serif;letter-spacing:-1.3px;margin:4px 0 7px}.page-head p{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.eyebrow-sub{font-size:10px;color:var(--teal);font-weight:800;letter-spacing:1.6px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.metric-card{background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:15px;padding:21px 21px 17px}.metric-top{display:flex;justify-content:space-between;align-items:center;color:#8492a0;font-size:12px}.metric-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#eaf8f4;color:#169583}.metric-icon svg{height:18px;width:18px}.metric-icon.blue{color:#507eb6;background:#eef3fb}.metric-icon.amber{color:#d19945;background:#fff6e7}.metric-icon.purple{color:#9674a9;background:#f5f0fa}.metric-card h2{font:800 27px Manrope,sans-serif;letter-spacing:-1px;margin:11px 0 4px}.metric-foot{font-size:10px;color:#9aa8b4}.grid-dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:19px}.panel{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:21px 22px 18px;border-bottom:1px solid var(--line)}.panel-header h3{font:800 14px Manrope,sans-serif;margin:0}.panel-header p{font-size:11px;color:var(--muted);margin:4px 0 0}.panel-body{padding:20px 22px}.text-btn{border:0;background:none;color:var(--teal);font-weight:800;font-size:11px}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;text-align:left}.data-table th{padding:13px 15px;background:#fafbfc;font-size:10px;letter-spacing:.35px;color:#8b98a6;font-weight:800;white-space:nowrap}.data-table td{padding:15px;border-bottom:1px solid #edf0f3;color:#344a60;font-size:11px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table .strong{font-weight:800;color:#18354a}.subline{color:#97a5af;font-size:10px;margin-top:5px}.status{display:inline-block;border-radius:16px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.status.pending{background:#fff3dc;color:#bb852d}.status.needs{background:var(--redbg);color:#b34f4f}.status.verified{background:#e6f7f3;color:#07897b}.status.ready{background:#eaf4ff;color:#346fad}.status.uploaded{background:#eef0fd;color:#6b68b2}.status.done{background:#edf8eb;color:#518442}.status.rejected{background:#f9e9e9;color:#a64c4c}.status.draft{background:#ecf0f3;color:#81909a}.tiny-circle{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f1f5f8;color:#72889a;margin-right:9px;vertical-align:middle}.empty-state{text-align:center;padding:65px 18px;color:#8b9baa}.empty-state .empty-icon{font-size:34px;margin-bottom:12px}.empty-state h3{color:#324f62;font-size:15px;margin:0 0 7px}.empty-state p{font-size:12px;line-height:1.6}.categories-list{display:flex;flex-direction:column;gap:21px}.cat-top{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;margin-bottom:8px}.cat-top small{color:#93a0af}.progress-track{height:8px;background:#eef1f5;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:var(--teal);border-radius:10px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-card{border:1px solid var(--line);padding:17px;border-radius:12px;background:white;cursor:pointer;text-align:left}.action-card:hover{border-color:var(--teal);background:#f7fdfb}.action-card .action-icon{display:grid;place-items:center;width:34px;height:34px;background:#ecf8f4;color:var(--teal);border-radius:10px;margin-bottom:12px}.action-card b{display:block;font-size:12px;margin-bottom:5px}.action-card small{color:var(--muted);line-height:1.5;font-size:10px}.toolbar{display:flex;align-items:center;gap:10px;padding:15px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.search-input{border:1px solid #dfe6e9;border-radius:9px;min-height:38px;padding:9px 12px;width:min(265px,100%);outline:none;font-size:11px}.filter-select{width:auto;min-width:115px;min-height:38px;padding:8px 11px;font-size:11px}.toolbar .spacer{flex:1}.table-actions{display:flex;gap:5px}.small-btn{background:#fff;border:1px solid #e0e8ee;color:#496377;padding:7px 9px;border-radius:7px;font-size:10px;font-weight:700}.small-btn:hover{background:#f0f9f7;color:var(--teal)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-field{display:flex;flex-direction:column;gap:7px}.form-field label,.form-field>label{font-size:11px;color:#526477;font-weight:800}.required{color:var(--red)}.form-field.full{grid-column:1/-1}.form-field textarea{min-height:85px;resize:vertical}.form-field small{font-size:10px;color:var(--muted)}.form-section{padding:23px;border-bottom:1px solid var(--line)}.form-section:last-child{border:0}.section-heading{font:800 14px Manrope,sans-serif;margin:0 0 5px}.section-desc{color:var(--muted);font-size:11px;margin:0 0 19px;line-height:1.7}.form-shell{display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:19px}.summary-aside{position:sticky;top:92px}.summary-box{padding:21px}.summary-line{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px}.summary-line span{color:#8592a3}.summary-total{display:flex;justify-content:space-between;align-items:center;padding:17px 0}.summary-total b{font:800 21px Manrope}.summary-aside .summary-note{font-size:11px;color:#7f8fa0;line-height:1.7;margin-top:17px;background:#f2f7f8;padding:13px;border-radius:10px}.lineitem{display:grid;grid-template-columns:minmax(140px,2fr) 115px 40px;gap:9px;margin-bottom:10px;align-items:end}.lineitem input{min-width:0}.lineitem-remove{height:43px;border-radius:9px;border:1px solid #e9dede;background:#fff9f9;color:var(--red)}.upload-drop{border:1.5px dashed #b8d6d3;background:#f8fcfb;border-radius:12px;padding:27px 20px;text-align:center;cursor:pointer}.upload-drop:hover{border-color:var(--teal)}.upload-drop b{font-size:12px;display:block;margin:9px 0 4px}.upload-drop p{font-size:10px;color:#90a0aa;margin:0}.upload-drop svg{width:22px;height:22px;color:var(--teal)}.attachment-list{margin-top:13px;display:flex;flex-direction:column;gap:10px}.attach-item{display:flex;gap:11px;align-items:center;border:1px solid #e8eef0;padding:11px;border-radius:10px}.attach-thumb{height:40px;width:42px;flex-shrink:0;background:#ecf4f7;color:#5b91a3;display:grid;place-items:center;border-radius:8px}.attach-content{flex:1;min-width:0}.attach-name{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-meta{font-size:10px;color:#93a0af;margin-top:4px}.attach-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.attach-controls select,.attach-controls input{font-size:10px;padding:6px 8px;border:1px solid #e2e9ed;border-radius:6px;min-width:0;max-width:185px}.attach-controls input{flex:1}.badge-week{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;background:var(--mint);color:#087d70;border-radius:9px;font-size:12px;font-weight:800}.form-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding:19px 24px}.banner-info{border:1px solid #cfe9e2;background:#f1fbf7;border-radius:11px;padding:13px 15px;display:flex;gap:11px;align-items:flex-start;color:#467c73;font-size:11px;line-height:1.6;margin-bottom:18px}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-tile{background:#f8fafb;border:1px solid var(--line);border-radius:10px;padding:13px}.detail-label{text-transform:uppercase;font-size:9px;letter-spacing:.7px;color:#90a1ac;font-weight:800;margin-bottom:8px}.detail-value{font-size:12px;color:#233b4c;font-weight:700}.detail-lines{border:1px solid var(--line);border-radius:10px;margin-top:17px;overflow:hidden}.detail-line{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:11px}.detail-line:last-child{border:0;background:#f6faf9;font-weight:800}.detail-attachments{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:11px;margin-top:12px}.attach-card{padding:13px;border:1px solid var(--line);border-radius:11px;min-width:0}.attach-preview{height:75px;background:#f0f5f7;display:grid;place-items:center;border-radius:7px;margin-bottom:9px;font-size:23px;color:#69909a}.attach-card b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-card small{font-size:10px;color:#91a0ab;display:block;margin:5px 0 12px}.detail-note{background:#fff8e9;border:1px solid #f0e2c6;padding:12px;border-radius:9px;color:#926d35;font-size:11px;line-height:1.6;margin-top:15px}.modal-backdrop{position:fixed;inset:0;background:#102338aa;z-index:40;display:flex;justify-content:center;align-items:center;padding:25px;overflow-y:auto}.modal{background:white;border-radius:17px;box-shadow:0 30px 90px #0c202552;width:min(700px,100%);max-height:calc(100vh - 45px);display:flex;flex-direction:column;overflow:hidden}.modal.large{width:min(965px,100%)}.modal-top{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:9px}.modal-top h2{font:800 18px Manrope;margin:0}.modal-top p{font-size:11px;color:var(--muted);margin:4px 0 0}.modal-close{border:0;background:#f3f5f7;height:32px;width:32px;border-radius:9px;font-size:17px}.modal-content{padding:23px;overflow-y:auto}.modal-footer{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.tip-banner{background:#f5f9fc;border-left:3px solid #6ea5c8;border-radius:6px;color:#52718b;font-size:11px;padding:12px 15px;line-height:1.5}.voucher-sheet{background:#fff;border:1px solid #cad5dd;color:#161e2d;max-width:690px;margin:0 auto;padding:20px 24px;font:11px Arial,sans-serif}.voucher-half{height:390px;display:flex;flex-direction:column;padding:5px 0}.voucher-half:first-child{border-bottom:1px dashed #aab2bd;margin-bottom:20px;padding-bottom:18px}.voucher-top{display:flex;justify-content:space-between;align-items:flex-start}.voucher-top .cv-number{font-weight:bold;font-size:14px}.voucher-top .cv-label{font-weight:bold;font-size:11px}.voucher-pay{display:grid;grid-template-columns:62px 1fr;gap:7px;padding:8px 0 7px}.voucher-head{display:flex;border-top:1px solid #333;border-bottom:1px solid #333;padding:8px 2px;font-weight:bold;letter-spacing:1px;justify-content:space-between}.voucher-rows{min-height:140px;padding:8px 4px;flex:1}.voucher-row{display:flex;justify-content:space-between;gap:12px;margin:5px 0;line-height:1.5}.voucher-row span:last-child{white-space:nowrap}.voucher-total{text-align:right;border-top:1px solid #333;padding:7px 8px;font-size:12px;font-weight:bold}.voucher-received{text-align:center;margin:7px 0;font-size:10px}.voucher-signatures{display:flex;justify-content:space-between;gap:50px;margin-top:auto;padding-top:14px}.voucher-signatures>div{border-top:1px solid #222;width:45%;text-align:center;padding-top:5px}.week-picker{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.week-picker select{min-width:100px}.report-detail{padding:20px}.report-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #dcece8;background:#f4faf8;border-radius:12px;padding:18px 22px;margin-bottom:20px}.report-summary small{color:#8ca0a8}.report-summary b{font:800 23px Manrope}.two-panels{display:grid;grid-template-columns:1fr 1fr;gap:20px}.team-card{display:flex;gap:13px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:13px;margin-bottom:10px}.team-card b,.team-card small{display:block}.team-card b{font-size:12px}.team-card small{font-size:11px;color:var(--muted);margin-top:5px}.team-card .avatar{background:#e4f6f0;color:#0e9583}.preview-image{width:100%;height:auto;max-height:70vh;object-fit:contain;background:#e9eef2;border-radius:9px}.loading-overlay{position:fixed;inset:0;z-index:70;background:#ffffffb8;display:grid;place-items:center;color:var(--teal);font-size:14px;font-weight:800}#toast-stack{position:fixed;bottom:21px;right:22px;z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#183446;color:white;padding:13px 17px;border-radius:11px;box-shadow:0 10px 30px #082e3644;max-width:360px;font-size:12px}.toast.error{background:#a73939}.help-note{background:#fff8e7;color:#956a34;padding:12px;border-radius:9px;font-size:11px;line-height:1.65;margin:12px 0}.section-title{font:800 16px Manrope;margin:0 0 17px}.stat-chip{padding:5px 9px;border:1px solid var(--line);border-radius:7px;color:#647c8a;font-size:11px}.overlay-mobile{display:none}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.form-shell{grid-template-columns:1fr}.summary-aside{position:static}.login-art{padding:40px 32px}.content{padding:26px 22px 50px}}@media(max-width:850px){.sidebar{position:fixed;left:-275px;transition:left .23s;box-shadow:8px 0 28px #0002}.sidebar.open{left:0}.sidebar-close{display:block;background:none;border:0;color:#bdcbd8;font-size:18px}.mobile-menu{display:grid}.topbar{padding:0 18px}.content{padding:25px 17px}.grid-dashboard,.two-panels{grid-template-columns:1fr}.overlay-mobile.visible{display:block;position:fixed;inset:0;background:#162b3b70;z-index:19}.login-screen{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh;padding:25px}.login-mobile-brand{display:flex;margin-bottom:45px;align-self:flex-start}}@media(max-width:580px){.page-head{flex-direction:column}.page-head h1{font-size:23px}.metrics{gap:9px}.metric-card{padding:15px}.metric-card h2{font-size:21px}.metric-top{font-size:10px}.form-grid,.details-grid{grid-template-columns:1fr}.lineitem{grid-template-columns:minmax(0,1fr) 95px 34px}.form-section{padding:17px}.panel-header{padding:18px}.toolbar{padding:12px;gap:7px}.search-input{width:100%}.top-right{gap:7px}.demo-badge{font-size:0}.role-tag{font-size:10px}.modal-backdrop{padding:9px}.modal{max-height:calc(100vh - 18px)}.modal-content{padding:14px}.modal-top{padding:16px}.voucher-sheet{padding:10px;font-size:9px}.voucher-half{height:370px}.voucher-rows{min-height:130px}.voucher-row{font-size:9px}.report-summary{flex-direction:column;align-items:flex-start}.quick-actions{grid-template-columns:1fr 1fr}.btn{white-space:normal}}@media print{body{background:#fff!important}.sidebar,.topbar,.content,#toast-stack,.modal-top,.modal-footer,.no-print,.modal-backdrop{display:none!important}body.printing-voucher .modal-backdrop{display:block!important;position:static;background:white;padding:0;overflow:visible}body.printing-voucher .modal{max-height:none!important;width:100%!important;box-shadow:none!important;display:block;overflow:visible}body.printing-voucher .modal-content{overflow:visible;padding:0}.voucher-sheet{border:0;max-width:none;width:100%;height:auto;padding:12px 20px}.voucher-half{height:46vh;page-break-inside:avoid}body.printing-report .content{display:block!important}body.printing-report .content>.page-head .page-actions,body.printing-report .toolbar,body.printing-report .no-print{display:none!important}body.printing-report .main-wrap{width:100%}body.printing-report .content{padding:15px}body.printing-report .panel{box-shadow:none;border:0}body.printing-report .panel-header{padding:10px}.print-hidden{display:none!important}}

/* Excel-accurate voucher structure: A4 portrait, FILE on top, COPY below.
   Based on the original Supermax workbook (two 29-row vouchers on one sheet). */
.voucher-sheet.cv-sheet-a4{
  box-sizing:border-box;width:210mm;max-width:100%;height:297mm;min-height:297mm;
  padding:4.5mm 5mm;margin:0 auto;background:#fff;color:#252525;
  border:1px solid #d2d5db;box-shadow:0 2px 14px #1c243414;
  font:10pt "Times New Roman",Times,serif;
}
.cv-sheet-a4 .voucher-half.cv-original{
  box-sizing:border-box;position:relative;width:100%;height:144mm;
  display:block;overflow:hidden;margin:0;padding:0;border:0;background:#fff;
}
.cv-sheet-a4 .voucher-half.cv-original:first-child{border-bottom:1px dashed #aab1b9;margin:0;padding:0}
.cv-mainhead{position:absolute;top:0;left:0;width:100%;height:19mm;display:grid;grid-template-columns:31% 1fr 17%;align-items:start}
.cv-red-number{font:bold 16pt "Times New Roman",Times,serif;color:#d65973;white-space:nowrap;padding-top:6.8mm;padding-left:8mm}
.cv-bigtitle{text-align:center;margin-top:1.8mm;font:bold 23pt/1.13 "Times New Roman",Times,serif;text-decoration:underline;text-underline-offset:2px;white-space:nowrap;letter-spacing:-.5px}
.cv-weekbox{justify-self:center;box-sizing:border-box;width:15mm;height:15.3mm;border:1px solid #434343;text-align:center;padding:1mm 0 0}
.cv-weekbox>div{font:10pt "Times New Roman",Times,serif}.cv-weekbox strong{display:block;font:700 21pt/.99 "Times New Roman",Times,serif;margin-top:.8mm}
.cv-date-line{position:absolute;right:2mm;top:20.3mm;display:flex;align-items:baseline;gap:7mm;font:italic 10pt "Times New Roman",Times,serif;white-space:nowrap}
.cv-date-line strong{font-style:normal;font-size:10pt;border-bottom:1px dashed #555;padding:0 2mm 1.2mm}
.cv-copy-mark{position:absolute;right:10mm;top:27.3mm;font:italic 11pt "Times New Roman",Times,serif}
.cv-payee{position:absolute;left:8mm;top:27mm;width:145mm;height:14mm;font:italic 10pt "Times New Roman",Times,serif}
.cv-payee-row{height:6.8mm;display:grid;grid-template-columns:17mm 1fr;align-items:end;gap:1mm}
.cv-payee-row>span{white-space:nowrap}.cv-payee-row strong,.cv-payee-row em{display:block;font-style:normal;text-align:center;font-weight:bold;border-bottom:1px dashed #555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:.3mm}
.cv-payee-row em{font-weight:normal;font-style:italic}
.cv-particulars-table{position:absolute;left:6mm;right:6mm;top:42mm;height:70.6mm;border-top:3px double #555;border-bottom:3px double #555;display:flex;flex-direction:column}
.cv-particulars-heading{height:6mm;flex:none;border-bottom:1px solid #555;display:grid;grid-template-columns:82% 18%;font:italic 11pt "Times New Roman",Times,serif;text-align:center;align-items:center}
.cv-particulars-heading div:last-child{border-left:3px double #555;height:100%;display:grid;place-items:center}
.cv-particulars-body{min-height:0;flex:1;display:flex;flex-direction:column;padding:0;position:relative}
.cv-particulars-lines{padding:5mm 0 0;flex:1;min-height:0;overflow:hidden}
.cv-particular-line{display:grid;grid-template-columns:82% 18%;line-height:1.5;min-height:5.1mm;font-style:italic;font-size:9.8pt}
.cv-particular-desc{padding:0 3mm 0 14mm;min-width:0;overflow-wrap:anywhere;}
.cv-particular-amount{padding:0 3mm 0 2mm;text-align:right;border-left:3px double #555;white-space:nowrap}
.cv-payment-text{height:8.3mm;flex:none;padding:0 2mm 0 14mm;font-style:italic;font-size:10pt;position:relative}
.cv-payment-text:after{content:"";position:absolute;right:18%;top:-61mm;bottom:0;border-left:3px double #555;pointer-events:none}
.cv-total-row{height:5.8mm;display:grid;grid-template-columns:82% 18%;text-align:right;font-style:italic;font-size:10pt;align-items:center;flex:none}
.cv-total-row div:first-child{padding-right:3mm}.cv-total-row div:last-child{border-left:3px double #555;padding-right:3mm;font:bold 11pt "Times New Roman",Times,serif}
.cv-received{position:absolute;top:114.3mm;left:8mm;right:7mm;font:italic 9.6pt/1.32 "Times New Roman",Times,serif;text-align:center}
.cv-received>div:first-child{display:flex;gap:2mm;align-items:baseline;justify-content:flex-end;white-space:nowrap;font-size:9pt}
.cv-received>div:first-child b{border-bottom:1px solid #555;font-size:10pt;flex:1;text-align:center;font-style:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.cv-received-money{margin-top:1mm;display:flex;align-items:center;justify-content:flex-end;gap:3mm}
.cv-received-money>div{height:1px;border-bottom:1px solid #555;flex:1}
.cv-received-money>span:last-child{min-width:36mm;border-bottom:1px solid #555;text-align:center;font-size:10pt}
.cv-received>em{display:block;margin-top:.3mm;text-align:center}
.cv-signoff{position:absolute;top:132mm;left:6mm;right:6mm;height:12mm;display:flex;justify-content:space-between;align-items:flex-end;gap:10mm;font:italic 9.6pt "Times New Roman",Times,serif}
.cv-approval{width:36%;display:flex;flex-direction:column;align-items:center;gap:0}
.cv-approval strong{font-weight:normal;border-bottom:1px dashed #444;width:100%;text-align:center;min-height:4mm}
.cv-approval span{line-height:1.2}
.cv-recipient{width:47%;display:flex;align-items:end;gap:2mm}
.cv-recipient strong{flex:1;text-align:center;border-bottom:1px dashed #444;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 10pt "Times New Roman",Times,serif}
.cv-dense .cv-particular-line{font-size:8.2pt;line-height:1.2;min-height:4mm}
.cv-dense .cv-particulars-lines{padding-top:2.8mm}
.cv-dense .cv-particular-desc{padding-left:8mm}
@media(max-width:830px){.cv-sheet-a4{transform-origin:top center}.voucher-sheet.cv-sheet-a4{width:210mm;max-width:none}.modal.large:has(.cv-sheet-a4) .modal-content{overflow-x:auto}}
@page{size:A4 portrait;margin:0}
@media print{
 body.printing-voucher,#modal-root{margin:0!important;padding:0!important;background:white!important}
 body.printing-voucher #login-screen,body.printing-voucher #app,body.printing-voucher #toast-stack{display:none!important}
 body.printing-voucher #modal-root{display:block!important;position:static!important;width:210mm;height:297mm}
 body.printing-voucher .modal-backdrop{display:block!important;position:static!important;inset:auto!important;padding:0!important;margin:0!important;width:210mm!important;height:297mm!important;overflow:hidden!important;background:#fff!important}
 body.printing-voucher .modal{display:block!important;position:static!important;width:210mm!important;max-width:210mm!important;min-width:210mm!important;height:297mm!important;max-height:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important}
 body.printing-voucher .modal-content{padding:0!important;margin:0!important;width:210mm!important;height:297mm!important;overflow:hidden!important}
 body.printing-voucher .voucher-sheet.cv-sheet-a4{margin:0!important;padding:4.5mm 5mm!important;width:210mm!important;height:297mm!important;min-height:0!important;max-width:none!important;border:0!important;box-shadow:none!important;page-break-after:avoid!important;break-after:avoid!important}
 body.printing-voucher .voucher-half.cv-original{height:144mm!important;page-break-inside:avoid!important;break-inside:avoid!important}
 body.printing-voucher .voucher-half.cv-original:first-child{margin:0!important;padding:0!important}
 body.printing-voucher .cv-red-number{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* One continuous double border beside Amount, beginning at PARTICULARS rather than Address. */
.cv-particulars-table:after{content:"";position:absolute;pointer-events:none;z-index:2;left:82%;top:0;bottom:0;border-left:3px double #555}
.cv-particulars-heading>div:last-child,.cv-particular-amount,.cv-total-row>div:last-child{border-left:0}
.cv-payment-text:after{display:none}
.cv-signoff{top:128mm}

/* v3 – keep received-from text and amount grouped as in original Excel, shifted right. */
.cv-sheet-a4 .cv-received{left:23mm;right:3mm;text-align:center}
.cv-sheet-a4 .cv-received>div:first-child{gap:1.5mm}
.cv-sheet-a4 .cv-received>div:first-child b{flex:1;min-width:0}
.cv-sheet-a4 .cv-received-money{gap:2mm}
.cv-sheet-a4 .cv-signoff{left:9mm;right:5mm}
/* Dedicated Odoo upload queue, responsive for accounting and uploader workstations */
.odoo-list{display:flex;flex-direction:column;gap:12px}
.odoo-row{display:grid;grid-template-columns:minmax(160px,1fr) 125px auto;align-items:center;gap:15px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}
.odoo-row-info{display:flex;flex-direction:column;gap:5px;font-size:12px;min-width:0;color:#587180}
.odoo-row-info .strong{font-size:13px;color:#203b4a}
.odoo-row-info small{font-size:10px;color:#8797a6}
.odoo-category{font-size:10px;color:#527a79;font-weight:500}
.odoo-amount{font-weight:800;text-align:right;font-size:13px;white-space:nowrap}
.odoo-row-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.btn-sm{padding:8px 10px;font-size:11px}
@media(max-width:1060px){.odoo-row{grid-template-columns:1fr auto}.odoo-row-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:580px){.odoo-row{grid-template-columns:minmax(0,1fr) auto;padding:11px}.odoo-amount{font-size:11px}.odoo-row-actions>*{flex:1}.odoo-row-info small{line-height:1.4}.demo-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}

.demo-roles{grid-template-columns:repeat(2,minmax(0,1fr))}

/* v4 — report filtering and draft lifecycle */
.report-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) minmax(142px,1fr) minmax(142px,1fr) auto;gap:12px;align-items:end;padding:20px 20px 13px;border-bottom:1px solid var(--line)}
.report-filters label{font-size:11px;font-weight:800;color:#526777;display:block;margin:0 0 7px}
.report-filters .form-field{margin:0;min-width:0}.report-filters input,.report-filters select{height:43px;min-height:43px;width:100%;border:1px solid #dce5eb;border-radius:9px;background:#fff;padding:9px 10px;color:var(--ink);font-size:12px;min-width:0}
.report-search-wrap{min-width:0}.report-search-wrap .input{width:100%}
.quick-date-filters{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--line);font-size:11px}.quick-date-filters button{border:1px solid #dae9e6;border-radius:8px;background:#f2faf8;color:#197e73;padding:7px 10px;cursor:pointer;font-size:11px;font-weight:700}.quick-date-filters button:hover{background:#d8f4ea}
.status.pending{background:#fff3e3;color:#ac7d2e}
@media(max-width:1200px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.report-search-wrap{grid-column:span 2}}
@media(max-width:620px){.report-filters{grid-template-columns:1fr}.report-search-wrap{grid-column:span 1}}
@media print{
 .report-filters,.quick-date-filters{display:none!important}
 body.printing-report .sidebar,body.printing-report .topbar,body.printing-report #login-screen,body.printing-report #modal-root,body.printing-report #toast-stack,body.printing-report .page-actions,body.printing-report .banner-info,body.printing-report .report-summary + .section-title + .table-scroll + .section-title + .two-panels .panel:last-child{display:none!important}
 body.printing-report .app,body.printing-report .main-wrap,body.printing-report .content{display:block!important;width:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important}
 body.printing-report .panel{box-shadow:none!important;border:0!important}
 body.printing-report .table-scroll{overflow:visible!important}
 body.printing-report table{font-size:10px!important;width:100%!important}
 body.printing-report .data-table td,body.printing-report .data-table th{padding:5px!important}
 body.printing-report .small-btn{display:none!important}
 body.printing-report .report-detail{padding:0!important}
 body.printing-report .page-head{margin-bottom:10px!important}
 }

/* Live-system refinements */
body.printing-report .report-filters,body.printing-report .quick-date-filters,body.printing-report [data-action="more-report"]{display:none!important}
#pending-files .team-card select{max-width:250px;border:1px solid #dce5eb;border-radius:7px;padding:7px;width:100%}
.form-field.full{grid-column:1/-1}
@media(max-width:580px){.team-card{flex-wrap:wrap}.report-filters>*{min-width:0}.report-filters .report-search-wrap{width:100%}}
