
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--ink:#282a25;--muted:#7e8078;--line:#e9e6df;--paper:#fffefa;--bg:#f5f3ef;--green:#344e40;--sage:#e7eee7;--gold:#bf9451;--rose:#b76558;--shadow:0 8px 30px #27271b0a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{background:#293c32;color:#f7f4ed;padding:28px 18px;display:flex;flex-direction:column;gap:34px}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px}.brand-mark{height:38px;width:38px;border:1px solid #bda879;border-radius:50%;display:grid;place-items:center;color:#d8c18f;font:600 19px 'Playfair Display'}.brand-name{font:600 19px 'Playfair Display';letter-spacing:.2px}.brand-sub{font-size:10px;color:#b9c3ba;letter-spacing:1.7px;margin-top:3px}.nav-label{color:#aeb8af;text-transform:uppercase;letter-spacing:1.3px;font-size:10px;padding:0 12px;margin-bottom:9px}.nav-item{width:100%;border:0;background:transparent;color:#d9ded8;text-align:left;padding:12px;border-radius:9px;display:flex;align-items:center;gap:12px;margin:2px 0}.nav-item.active,.nav-item:hover{background:#405449;color:white}.nav-icon{width:18px;text-align:center;font-size:16px}.nav-icon svg{width:18px;height:18px;display:block}.side-note{margin-top:auto;border-top:1px solid #536257;padding:18px 10px 0;color:#d2d8d1;font-size:12px;line-height:1.6}.side-note b{display:block;color:#e8d5a7;font-size:12px;margin-bottom:5px}.main{padding:32px clamp(20px,4vw,58px) 48px;max-width:1500px;width:100%;margin:0 auto}.topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.6px}.topline h1{font:600 31px 'Playfair Display';margin:6px 0 0}.today{color:var(--muted);font-size:12px;background:var(--paper);padding:10px 13px;border:1px solid var(--line);border-radius:30px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px;flex-wrap:wrap}.period-control{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;flex:1}.period-anchor{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);white-space:nowrap}.period-anchor input{width:138px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px;color:var(--ink);font:inherit}.period-anchor input:focus{outline:2px solid #718a7220;border-color:#829380}.periods{display:flex;gap:4px;background:#eae8e2;padding:4px;border-radius:9px;overflow:auto}.period-btn{border:0;background:transparent;color:#70736c;padding:8px 12px;border-radius:6px;white-space:nowrap;font-size:12px}.period-btn.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 4px #0000000d;font-weight:600}.period-status{font-size:11px;color:var(--muted);white-space:nowrap}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:8px;font-size:12px;font-weight:600}.btn:hover{border-color:#b6b4a8}.btn-primary{background:var(--green);border-color:var(--green);color:white}.btn-primary:hover{background:#263a2e}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:20px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:17px 18px;box-shadow:var(--shadow)}.stat-label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.stat-icon{width:27px;height:27px;border-radius:8px;background:var(--sage);color:var(--green);display:grid;place-items:center}.stat-value{font:600 23px 'Playfair Display';margin:14px 0 3px;letter-spacing:-.3px}.stat-foot{font-size:10px;color:var(--muted)}.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);gap:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.panel-head{padding:17px 19px 13px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-title{font:600 16px 'Playfair Display'}.panel-caption{font-size:11px;color:var(--muted);margin-top:4px}.chart{padding:19px 18px 12px;height:245px;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.chart-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:12px}.category-list{padding:10px 18px 15px}.cat-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0eee8}.cat-row:last-child{border:0}.cat-label{display:flex;align-items:center;gap:9px;font-size:12px}.dot{width:8px;height:8px;border-radius:50%}.cat-amount{font-size:12px;font-weight:600}.cat-bar{grid-column:1/3;height:4px;background:#f0eee8;border-radius:9px;margin-top:-4px}.cat-fill{height:100%;background:#708875;border-radius:9px}.device-modal{max-width:760px}.device-content{padding:16px 0}.device-content h3{font:600 16px var(--serif);margin:20px 0 7px}.device-content p{font-size:12px;color:var(--muted);line-height:1.6}.device-status{padding:12px 14px;border-radius:10px;background:#e8eee8;color:var(--green);font-size:12px;line-height:1.5;margin-bottom:8px}.device-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.encrypted-backup{border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:14px}.encrypted-backup summary{cursor:pointer;color:var(--green);font-weight:700;font-size:12px}.device-note{padding-top:12px;border-top:1px solid var(--line)}.receipt-modal{max-width:760px}.receipt-actions>div{display:flex;gap:8px;align-items:center}.receipt-content{padding:20px 0}.receipt-title{text-align:center;margin:0 0 6px;font-family:var(--serif);font-size:26px}.receipt-subtitle{text-align:center;color:var(--muted);margin:0 0 20px}.receipt-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:var(--soft);border-radius:12px;margin-bottom:16px}.receipt-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.receipt-lines{width:100%;border-collapse:collapse}.receipt-lines td,.receipt-lines th{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left}.receipt-lines td:last-child,.receipt-lines th:last-child{text-align:right}.receipt-total{margin-top:12px;display:flex;justify-content:space-between;padding:10px 6px}.receipt-net{font-size:20px;font-weight:700;border-top:2px solid var(--ink)}@media print{body *{visibility:hidden!important}#payrollReceiptModal.open,#payrollReceiptModal.open *{visibility:visible!important}#payrollReceiptModal.open{position:fixed!important;inset:0!important;display:block!important;background:#fff!important;z-index:99999!important;padding:0!important;overflow:visible!important}#payrollReceiptModal .modal{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0 10mm!important;margin:0!important}#payrollReceiptModal .receipt-actions{display:none!important}#payrollReceiptContent{padding:0!important}body{background:#fff!important}}.piecework-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.75fr) minmax(0,1fr);gap:8px;align-items:end;margin:10px 0}.piecework-row .piece-name-field{grid-column:span 2}.piecework-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:8px}.piecework-actions .btn{padding:6px 10px;font-size:11px}.piecework-row .field{margin:0}@media(max-width:640px){.device-modal{max-width:760px}.device-content{padding:16px 0}.device-content h3{font:600 16px var(--serif);margin:20px 0 7px}.device-content p{font-size:12px;color:var(--muted);line-height:1.6}.device-status{padding:12px 14px;border-radius:10px;background:#e8eee8;color:var(--green);font-size:12px;line-height:1.5;margin-bottom:8px}.device-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.encrypted-backup{border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:14px}.encrypted-backup summary{cursor:pointer;color:var(--green);font-weight:700;font-size:12px}.device-note{padding-top:12px;border-top:1px solid var(--line)}.receipt-modal{max-width:760px}.receipt-actions>div{display:flex;gap:8px;align-items:center}.receipt-content{padding:20px 0}.receipt-title{text-align:center;margin:0 0 6px;font-family:var(--serif);font-size:26px}.receipt-subtitle{text-align:center;color:var(--muted);margin:0 0 20px}.receipt-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:var(--soft);border-radius:12px;margin-bottom:16px}.receipt-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.receipt-lines{width:100%;border-collapse:collapse}.receipt-lines td,.receipt-lines th{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left}.receipt-lines td:last-child,.receipt-lines th:last-child{text-align:right}.receipt-total{margin-top:12px;display:flex;justify-content:space-between;padding:10px 6px}.receipt-net{font-size:20px;font-weight:700;border-top:2px solid var(--ink)}@media print{body *{visibility:hidden!important}#payrollReceiptModal.open,#payrollReceiptModal.open *{visibility:visible!important}#payrollReceiptModal.open{position:fixed!important;inset:0!important;display:block!important;background:#fff!important;z-index:99999!important;padding:0!important;overflow:visible!important}#payrollReceiptModal .modal{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0 10mm!important;margin:0!important}#payrollReceiptModal .receipt-actions{display:none!important}#payrollReceiptContent{padding:0!important}body{background:#fff!important}}.piecework-row{grid-template-columns:minmax(0,1fr) minmax(0,.78fr)}.piecework-row .piece-name-field,.piecework-row .piece-order-field{grid-column:span 2}.piecework-actions{grid-column:1/-1;justify-content:flex-end}}.payroll-live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0;padding:14px;background:var(--soft);border-radius:12px}.payroll-live div{display:flex;justify-content:space-between;gap:8px;font-size:13px}.payroll-live b{font-weight:700}.field-hint{color:var(--muted);font-size:12px;line-height:1.5}.dashboard-overview{margin:20px 0 24px}.dashboard-overview-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:13px}.dashboard-overview-head h2{font-family:var(--serif);font-size:24px;font-weight:500;margin:2px 0 0}.dashboard-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-module-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0;padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.dashboard-module-card:hover{transform:translateY(-2px);border-color:var(--sage);box-shadow:0 10px 24px rgba(39,58,48,.08)}.module-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px}.module-heading i{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#e8eee8;color:var(--green);font-style:normal;font-weight:700}.dashboard-module-card>strong{font:500 23px var(--serif);margin:13px 0 3px;overflow-wrap:anywhere}.dashboard-module-card>small{color:var(--muted);font-size:11px;line-height:1.45;min-height:30px}.module-link{margin-top:10px;color:var(--green);font-size:11px;font-weight:700}.dashboard-duo{display:grid;gap:7px;margin:12px 0 5px;font-size:11px;color:var(--muted)}.dashboard-duo b{color:var(--ink);font-size:13px;margin-left:4px}.dash-alerts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.dash-alert{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#fbefdf;color:#886025;padding:7px 11px;font-size:11px;font-weight:600}.dash-alert.good{background:#e8eee8;color:var(--green)}@media(max-width:1050px){.dashboard-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.dashboard-overview-head{align-items:start;flex-direction:column}.dashboard-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-module-card{padding:13px;border-radius:13px}.dashboard-module-card>strong{font-size:20px}.module-heading{font-size:11px}}@media(max-width:420px){.dashboard-module-grid{grid-template-columns:1fr}.dashboard-module-card{display:grid;grid-template-columns:1fr auto;align-items:center}.module-heading,.dashboard-module-card>strong,.dashboard-module-card>small,.module-link{grid-column:1}.module-heading{grid-row:1}.dashboard-module-card>strong{grid-row:2;margin:7px 0 2px}.dashboard-module-card>small{grid-row:3;min-height:0}.module-link{grid-row:4;margin-top:7px}.dashboard-module-card .module-heading i{grid-column:2;grid-row:1/3}}.section-help{color:var(--muted);font-size:13px;line-height:1.6;max-width:900px;margin:-15px 0 20px}.section-help b{color:var(--ink)}.expense-form-hint{font-size:12px;line-height:1.45;color:var(--muted);margin:-9px 0 16px}.expense-panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.expense-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) minmax(150px,1fr);gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}.expense-filters .field{font-size:10px;color:var(--muted)}.expense-filters input,.expense-filters select{min-width:0;width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink)}.table-panel{margin-top:15px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th{text-align:left;padding:11px 16px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px;font-weight:600;border-bottom:1px solid var(--line)}td{padding:13px 16px;border-bottom:1px solid #f0eee8;font-size:12px}tr:last-child td{border-bottom:0}.expense-name{font-weight:600}.expense-detail{font-size:10px;color:var(--muted);margin-top:3px}.badge{background:#eef1eb;color:#53694f;padding:5px 8px;border-radius:20px;font-size:10px;white-space:nowrap}.amount{text-align:right;font-weight:600}.empty{text-align:center;color:var(--muted);padding:38px 16px!important}.row-actions{display:flex;gap:6px}.icon-btn{border:0;background:none;color:#8b8d85;padding:4px;font-size:14px}.icon-btn:hover{color:var(--rose)}.modal-backdrop{position:fixed;inset:0;background:#17201978;display:none;place-items:center;padding:18px;z-index:5;overflow-y:auto;align-items:start;overscroll-behavior:contain}.modal-backdrop.open{display:grid}.modal{width:min(500px,100%);max-width:100%;min-width:0;max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:auto;background:var(--paper);border-radius:14px;box-shadow:0 20px 70px #0003;padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.modal-head h2{font:600 22px 'Playfair Display';margin:0}.close{border:0;background:transparent;font-size:22px;color:var(--muted)}.modal form{display:block;width:100%;max-width:100%;min-width:0}.form-grid{display:grid;width:100%;max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;min-width:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1;width:100%;min-width:0}.payroll-employee-rates{align-self:flex-start;padding:7px 10px;font-size:11px;margin-top:2px}.payroll-rates-modal{width:min(620px,100%)}.payroll-rates-search{margin-bottom:14px}.payroll-rates-list{border:1px solid var(--line);border-radius:9px;overflow:hidden}.payroll-rate-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) auto 36px;gap:10px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line);font-size:12px}.payroll-rate-edit{justify-self:end;font-size:13px}.payroll-rate-row:last-child{border-bottom:0}.payroll-rate-heading{background:#f6f5f0;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.payroll-rate-price{font-weight:700;white-space:nowrap}.payroll-rate-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:12px;line-height:1.5}.field label{font-size:11px;font-weight:600;color:#5e6159}.field input,.field select,.field textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;border:1px solid var(--line);background:white;border-radius:7px;padding:10px 11px;outline:none;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{border-color:#829380;box-shadow:0 0 0 3px #718a7220}.cost-multiplier{display:block;box-sizing:border-box;min-height:40px;padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:#f5f6f1;color:var(--green);font:600 16px 'Playfair Display'}.field-hint{color:var(--muted);font-size:10px;line-height:1.3}.field textarea{resize:vertical;min-height:68px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.notice{position:fixed;bottom:20px;right:20px;background:#293c32;color:white;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.notice.show{opacity:1;transform:translateY(0)}
@media(max-width:900px){.shell{grid-template-columns:70px 1fr}.sidebar{padding:23px 9px}.brand{justify-content:center;padding:0}.brand-copy,.nav-label,.nav-text,.side-note{display:none}.nav-item{justify-content:center;padding:12px 5px}.stats{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}}@media(max-width:560px){.shell{display:block}.sidebar{height:62px;padding:7px 8px;flex-direction:row;align-items:center;justify-content:flex-start;gap:0;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:10;border-top:1px solid #536257;box-shadow:0 -6px 22px #17201918}.brand{display:none}.sidebar nav{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;gap:3px}.sidebar nav::-webkit-scrollbar{display:none}.nav-item{flex:0 0 44px;width:44px;height:44px;padding:10px}.main{padding:22px 14px 88px}.topline{margin-bottom:22px;gap:8px}.topline h1{font-size:26px}.today{font-size:10px;padding:8px}.toolbar{align-items:flex-start;flex-direction:column}.period-control{width:100%;flex:none}.periods{max-width:100%;width:100%}.period-anchor{width:100%;justify-content:space-between}.period-anchor input{flex:1}.period-status{width:100%}.period-btn{padding:8px 10px}.actions{width:100%;justify-content:flex-end}.stats{gap:9px}.stat{padding:13px}.stat-value{font-size:19px}.stat-label{font-size:10px}.form-grid{grid-template-columns:minmax(0,1fr)}.field.full{grid-column:auto}.table-panel .panel-head{align-items:flex-start;gap:8px;flex-wrap:wrap}.expense-panel-actions{width:100%;justify-content:flex-start}.expense-filters{grid-template-columns:1fr}.chart{padding:12px 8px;height:205px}.modal-backdrop{align-items:start;overflow-y:auto;padding:12px}.modal{max-height:calc(100dvh - 24px);overflow-y:auto;margin:auto;padding:20px}.row-actions .icon-btn{padding:8px}.today{white-space:nowrap}.topline>div:first-child{min-width:0;flex:1}.topline>div:last-child #today{display:none}.sidebar{height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.main{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.notice{bottom:calc(76px + env(safe-area-inset-bottom))}}

.catalog-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end;padding:14px 18px 2px}.catalog-filters .field{margin:0}.material-input-row input,.material-input-row select{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:9px 8px;background:#fff;color:var(--ink);font:inherit}.material-input-row input{font-size:13px}.material-input-row select{font-size:12px}.material-input-row button{align-self:center}.material-input-row{align-items:center}#costRows .expense-detail{max-width:360px;white-space:normal;line-height:1.45}#costRows td{vertical-align:top}
@media(max-width:640px){.catalog-filters{grid-template-columns:1fr;padding:12px}.material-input-row{grid-template-columns:minmax(85px,.8fr) minmax(135px,1.4fr) 68px minmax(90px,.8fr) 30px!important;gap:5px!important}.material-input-row input,.material-input-row select{padding:8px 5px;font-size:11px}}
.material-input-row{grid-template-columns:115px minmax(120px,1fr) 68px 78px 100px 30px!important}@media(max-width:640px){.material-input-row{grid-template-columns:minmax(78px,.8fr) minmax(120px,1.4fr) 55px 68px minmax(82px,.8fr) 28px!important;gap:4px!important}}.material-input-head{display:grid;grid-template-columns:115px minmax(120px,1fr) 68px 78px 100px 30px;gap:6px;color:var(--muted);font-size:10px;padding:0 3px}.material-input-head span:nth-child(3){text-align:center}.material-input-head span:nth-child(5){text-align:center}@media(max-width:640px){.material-input-head{grid-template-columns:minmax(78px,.8fr) minmax(120px,1.4fr) 55px 68px minmax(82px,.8fr) 28px;gap:4px;font-size:8px}.material-input-head span{overflow:hidden;white-space:nowrap}}
.nav-group{width:100%}.nav-group-toggle{justify-content:flex-start}.nav-group-toggle .nav-chevron{margin-left:auto;color:#c4cec5;font-size:13px;transition:transform .18s ease}.nav-group-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}.nav-group.has-active>.nav-group-toggle{background:#405449;color:#fff}.nav-submenu{display:grid;gap:2px;margin:0 0 5px 12px;padding-left:8px;border-left:1px solid #536257}.nav-submenu[hidden]{display:none}.nav-subitem{padding:9px 9px;margin:0;font-size:12px;color:#d2dbd4}.nav-subitem .nav-icon{font-size:14px}.nav-subitem.active{background:#405449;color:white}

@media(max-width:900px){.nav-group{position:relative}.nav-submenu{position:absolute;z-index:30;top:0;left:calc(100% + 7px);min-width:190px;margin:0;padding:7px;background:#293c32;border:1px solid #536257;border-radius:10px;box-shadow:0 10px 28px #17201955}.nav-subitem{width:100%;height:auto;min-height:38px;flex:none;justify-content:flex-start;padding:9px 10px}.nav-subitem .nav-text{display:inline}}
@media(max-width:560px){.nav-group{width:44px;height:44px;flex:0 0 44px}.nav-group-toggle{width:44px;height:44px;flex:0 0 44px}.nav-group-toggle .nav-chevron{display:none}.nav-submenu{position:fixed;top:auto;bottom:70px;left:8px;min-width:200px}}

/* Inicio: resumen visual compacto */#dashboardView>.topline{margin-bottom:18px}#dashboardView>.toolbar{align-items:center;margin-bottom:18px}#dashboardView>.stats.dashboard-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 14px;padding:4px 8px;border:1px solid #e4e9e2;border-radius:16px;background:linear-gradient(115deg,#e9f0e9,#fffefa);box-shadow:none}#dashboardView>.stats.dashboard-kpis .stat{min-width:0;border:0;border-right:1px solid #dfe6df;border-radius:0;background:transparent;box-shadow:none;padding:15px 17px}#dashboardView>.stats.dashboard-kpis .stat:last-child{border-right:0}#dashboardView>.stats.dashboard-kpis .stat-value{font-size:22px;margin:9px 0 2px}#dashboardView>.stats.dashboard-kpis .stat-foot{font-size:10px}.dashboard-flow{margin:0 0 22px;padding:13px 16px;background:#fffefa;border:1px solid var(--line);border-radius:13px}.dashboard-flow-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin-bottom:9px}.dashboard-flow-head span:first-child{font-weight:700;color:var(--ink)}.dashboard-flow-track{display:flex;height:8px;border-radius:9px;overflow:hidden;background:#eee}.dashboard-flow-track span{display:block;height:100%;transition:width .35s ease}.dashboard-flow-track span:first-child{background:#607b66}.dashboard-flow-track span:last-child{background:#d9a870}.dashboard-flow-legend{display:flex;gap:14px;margin-top:8px;color:var(--muted);font-size:10px}.dashboard-flow-legend span{display:flex;align-items:center;gap:5px}.dashboard-flow-legend i{width:7px;height:7px;border-radius:50%;background:#607b66}.dashboard-flow-legend span:last-child i{background:#d9a870}.dashboard-overview{margin:0 0 20px}.dashboard-overview-head{margin-bottom:10px}.dashboard-overview-head h2{font-size:20px}.dashboard-module-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dashboard-module-card{padding:12px 13px;border-radius:12px;box-shadow:none;min-height:112px}.dashboard-module-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(39,58,48,.07)}.module-heading{font-size:10px}.module-heading i{width:24px;height:24px}.dashboard-module-card>strong{font-size:18px;margin:10px 0 2px}.dashboard-module-card>small{font-size:9px;line-height:1.35}.module-link{font-size:9px;margin-top:7px}.dash-alerts{display:none!important;gap:6px;margin:0 0 11px}.dash-alert{font-size:10px;padding:6px 9px}.dashboard-status-good{display:inline-flex;align-items:center;gap:7px;color:#667469;font-size:10px}.dashboard-status-good i{width:7px;height:7px;border-radius:50%;background:#719678}.dashboard-analysis{margin:18px 0 0;border:1px solid var(--line);border-radius:13px;background:rgba(255,254,250,.55);overflow:hidden}.dashboard-analysis>summary{display:flex;align-items:center;gap:10px;padding:13px 15px;cursor:pointer;list-style:none;font-size:12px;font-weight:700;color:var(--ink)}.dashboard-analysis>summary::-webkit-details-marker{display:none}.dashboard-analysis>summary:after{content:'＋';margin-left:auto;color:var(--green);font-size:16px}.dashboard-analysis[open]>summary:after{content:'−'}.dashboard-analysis>summary small{font-size:10px;font-weight:400;color:var(--muted)}.dashboard-analysis-body{padding:2px 13px 13px}.dashboard-secondary-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:4px 0 12px}.dashboard-secondary-kpis .stat{padding:12px 14px;box-shadow:none;border-radius:10px}.dashboard-secondary-kpis .stat-value{font-size:18px;margin:7px 0 2px}.dashboard-analysis .content-grid{gap:10px}.dashboard-analysis .panel{box-shadow:none}.dashboard-tools{position:relative}.dashboard-tools>summary{list-style:none;cursor:pointer;border:1px solid var(--line);background:var(--paper);padding:10px 13px;border-radius:8px;color:var(--ink);font-size:12px;font-weight:600;white-space:nowrap}.dashboard-tools>summary::-webkit-details-marker{display:none}.dashboard-tools[open]>summary{border-color:#b6b4a8}.dashboard-tools-menu{position:absolute;z-index:8;top:calc(100% + 6px);right:0;display:grid;gap:6px;min-width:190px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #20251b20}.dashboard-tools-menu .btn{text-align:left;white-space:nowrap}
@media(max-width:1050px){.dashboard-module-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){#dashboardView>.stats.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#dashboardView>.stats.dashboard-kpis .stat:nth-child(2){border-right:0}#dashboardView>.stats.dashboard-kpis .stat:nth-child(-n+2){border-bottom:1px solid #dfe6df}.dashboard-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-secondary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#dashboardView>.toolbar{gap:9px}.dashboard-flow-head{align-items:flex-start;flex-direction:column;gap:3px}.dashboard-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-module-card{min-height:102px;padding:11px}.dashboard-overview-head h2{font-size:18px}.dashboard-analysis>summary{flex-wrap:wrap;gap:4px 9px}.dashboard-analysis>summary small{width:100%}.dashboard-tools-menu{right:auto;left:0}.dashboard-secondary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.dashboard-recommendations{margin:0 0 16px;padding:14px;background:#fffefa;border:1px solid var(--line);border-radius:14px}.recommendations-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.recommendations-head h3{font:600 17px 'Playfair Display';margin:3px 0 0}.recommendations-context{font-size:10px;color:var(--muted);white-space:nowrap}.recommendation-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.recommendation-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:12px;border:1px solid #eceae4;border-radius:11px;background:#fffefa}.recommendation-card.rec-attention{border-color:#f0dfcf;background:#fffaf4}.recommendation-card.rec-positive{border-color:#e1eae1;background:#f9fcf8}.recommendation-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#778277;font-weight:700}.rec-attention .recommendation-kicker{color:#9a6841}.recommendation-card h4{font:600 13px 'DM Sans',sans-serif;line-height:1.35;margin:7px 0 5px}.recommendation-card p{font-size:10px;line-height:1.5;color:var(--muted);margin:0 0 9px;flex:1}.recommendation-card button{border:0;background:transparent;padding:0;color:var(--green);font-size:10px;font-weight:700;cursor:pointer;text-align:left}.recommendation-card button:hover{text-decoration:underline}
@media(max-width:1050px){.recommendation-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.dashboard-recommendations{padding:11px}.recommendations-head{align-items:flex-start;flex-direction:column;gap:4px}.recommendation-list{grid-template-columns:1fr}.recommendation-card{padding:11px}.recommendation-card p{font-size:11px}}

.payroll-onsite-panel{margin:12px 0 15px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fcfbf7}.payroll-rates-head{margin:0 0 8px}.payroll-rate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.payroll-rate-grid .field{margin:0}.payroll-design-panel{margin:12px 0 6px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffefa}.payroll-design-panel[hidden],.payroll-design-fields[hidden]{display:none!important}.payroll-design-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.payroll-design-toggle{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:600}.payroll-design-toggle input{width:17px;height:17px;accent-color:var(--green)}.payroll-design-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.payroll-design-fields .field{margin:0}.payroll-design-amount{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:9px 2px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.payroll-design-amount b{font-size:14px;color:var(--green)}@media(max-width:480px){.payroll-design-fields{grid-template-columns:1fr}}.payroll-day-planner{margin:15px 0 8px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fffefa}.payroll-day-planner-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.payroll-week-total{text-align:right;display:grid;gap:2px}.payroll-week-total small{font-size:10px;color:var(--muted)}.payroll-week-total b{font:600 18px 'Playfair Display';color:var(--green)}.payroll-day-list{display:grid;gap:0}.payroll-day-list[hidden]{display:none}.payroll-day-row{padding:12px 14px;border-bottom:1px solid #efede7}.payroll-day-row:last-child{border-bottom:0}.payroll-day-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.payroll-day-title{display:flex;align-items:center;gap:10px}.payroll-day-title strong{text-transform:capitalize;font-size:13px}.payroll-day-title>span{font-size:10px;color:var(--muted)}.payroll-day-result{display:flex;align-items:center;gap:8px}.payroll-day-result span{font-size:10px;color:var(--muted)}.payroll-day-result b{font-size:12px;color:var(--green)}.payroll-day-main{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr);gap:10px;align-items:end}.payroll-day-kind{margin:0}.payroll-day-kind select{padding:9px}.payroll-day-rest-label{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px;color:var(--ink)}.payroll-day-rest-label input{accent-color:var(--green);width:15px;height:15px;margin:0}.payroll-day-hours-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.payroll-day-hours-grid .field{margin:0}.payroll-day-hours-grid .field span{font-size:9px}.payroll-day-hours-grid input{padding:8px 9px}.payroll-day-detail{display:block;margin-top:8px;font-size:10px;color:var(--muted)}.payroll-day-help{display:block;margin:8px 0 0;line-height:1.5}.payroll-rate-grid .field label,.payroll-day-kind>span{font-size:10px}
@media(max-width:600px){.payroll-onsite-panel{padding:9px}.payroll-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-day-planner-head{align-items:flex-start;padding:10px}.payroll-day-row{padding:10px}.payroll-day-main{grid-template-columns:1fr 1fr;gap:7px}.payroll-day-hours-grid{gap:6px}.payroll-day-hours-grid .field span{font-size:8px;min-height:22px}.payroll-day-hours-grid input{padding:7px 5px;font-size:12px}.payroll-day-title{gap:6px}.payroll-day-title strong{font-size:12px}}
#payrollForm .form-actions{flex-wrap:wrap}@media(max-width:560px){#payrollForm .form-actions{display:grid;grid-template-columns:1fr}#payrollForm .form-actions .btn{width:100%;white-space:normal}}.payroll-row-saved td{animation:payrollRowSaved 2.8s ease-out}@keyframes payrollRowSaved{0%,65%{background:#e7eee7}100%{background:transparent}}.payroll-rate-create{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px;background:#fbfaf7}.payroll-rate-create h3{font:600 15px "Playfair Display";margin:0 0 5px}.payroll-rate-create p{font-size:11px;color:var(--muted);line-height:1.45;margin:0 0 12px}.payroll-rate-create-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(135px,.9fr);gap:10px}.payroll-rate-create-fields .field label{font-size:10px}.payroll-rate-create-actions{display:flex;justify-content:flex-end;margin-top:11px}@media(max-width:560px){.payroll-rate-create-fields{grid-template-columns:1fr 1fr}.payroll-rate-create-fields .field:first-child{grid-column:1/-1}.payroll-rate-create-actions .btn{width:100%}}.payroll-summary-panel{margin:0 0 16px}.payroll-summary-filters{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) minmax(300px,1.8fr);gap:12px;padding:16px;border-bottom:1px solid var(--line)}.payroll-summary-filters .field label{font-size:10px}.payroll-summary-subfilters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.payroll-summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}.payroll-summary-metric{border:1px solid var(--line);border-radius:9px;padding:12px;min-width:0}.payroll-summary-metric span{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.payroll-summary-metric b{display:block;font:600 18px "Playfair Display";overflow-wrap:anywhere}.payroll-summary-metric small{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.35}.payroll-summary-production{border-top:1px solid var(--line)}.payroll-summary-production .table-wrap{overflow-x:auto}.payroll-summary-table{min-width:0}.payroll-summary-table th,.payroll-summary-table td{padding:10px 14px}.payroll-summary-empty{padding:16px;color:var(--muted);font-size:11px;text-align:center}@media(max-width:850px){.payroll-summary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-summary-subfilters{grid-column:1/-1}}@media(max-width:560px){.payroll-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.payroll-summary-filters{padding:12px;gap:10px}.payroll-summary-subfilters{grid-template-columns:1fr 1fr}.payroll-summary-panel .panel-head{align-items:flex-start;gap:10px;flex-wrap:wrap}.payroll-summary-panel .panel-head .btn{width:100%}}.material-catalog-filters{display:grid;grid-template-columns:minmax(200px,1.5fr) minmax(150px,1fr);gap:12px;padding:16px;border-bottom:1px solid var(--line)}.material-catalog-filters .field{margin:0}.material-catalog-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.material-catalog-meta span{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:12px;color:var(--muted)}.material-catalog-meta b{color:var(--ink)}.material-catalog-table{min-width:760px}.material-price-history{margin-top:18px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.material-price-history h3{font:500 18px var(--serif);padding:12px 14px;margin:0;border-bottom:1px solid var(--line)}.material-price-history table{min-width:0}.material-price-history th,.material-price-history td{padding:10px 14px;font-size:11px}.material-price-help{font-size:11px;color:var(--muted);margin:8px 0;line-height:1.5}@media(max-width:560px){.material-catalog-filters{grid-template-columns:1fr}.material-catalog-meta{gap:6px}.material-catalog-meta span{font-size:11px;padding:7px 10px}} 