.sidebar{width:220px;min-width:220px;background:var(--sidebar-bg);display:flex;flex-direction:column;height:100vh}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo-img{width:36px;height:36px;object-fit:contain}.sidebar-logo-text{font-size:20px;font-weight:700;color:var(--primary);letter-spacing:.5px}.sidebar-nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:1px;overflow-y:auto;min-height:0}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:7px;background:none;border:none;color:var(--sidebar-text);font-size:13.5px;text-align:left;width:100%;cursor:pointer;transition:background .13s;opacity:.78}.sidebar-nav-item:hover{background:var(--sidebar-hover);opacity:1}.sidebar-nav-item.active{background:var(--primary);color:#fff;opacity:1;font-weight:600}.nav-group{display:flex;flex-direction:column}.nav-group-btn{font-weight:600;opacity:.85;letter-spacing:.01em}.nav-group-btn.group-active{opacity:1;color:#fff}.nav-label{flex:1}.nav-chevron{margin-left:auto;font-size:14px;line-height:1;opacity:.5;transition:transform .18s ease;display:inline-block}.nav-chevron.open{transform:rotate(90deg);opacity:.8}.nav-group-children{overflow:hidden;max-height:0;transition:max-height .22s ease}.nav-group-children.open{max-height:400px}.nav-child-item{padding:7px 12px 7px 14px;font-size:13px;opacity:.7;border-left:2px solid transparent;border-radius:0 7px 7px 0;margin-left:8px;width:calc(100% - 8px)}.nav-child-item:hover{opacity:1;border-left-color:#fff3}.nav-child-item.active{background:#ffffff24;color:#fff;opacity:1;font-weight:600;border-left-color:var(--primary)}.nav-group:last-of-type .nav-child-item.active{background:#7c3aed33;border-left-color:#a78bfa;color:#ddd6fe}.child-icon{font-size:13px;width:18px}.nav-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}.sidebar-footer{padding:12px 8px 14px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-bottom-nav{display:flex;flex-direction:column;gap:1px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-user{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:7px 8px;border-radius:8px;background:#ffffff12}.sidebar-user-icon{font-size:13px;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;min-width:0}.sidebar-user-name{font-size:12px;color:#ffffffd9;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:10px;color:#fff6;text-transform:uppercase;letter-spacing:.06em}.sidebar-logout-btn{display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:7px;color:#ffffff80;font-size:12px;cursor:pointer;margin-bottom:8px;text-align:left;transition:background .15s,color .15s}.sidebar-logout-btn:hover{background:#dc262626;color:#fca5a5;border-color:#dc26264d}.sidebar-quit-btn{display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;background:none;border:1px solid rgba(239,68,68,.25);border-radius:7px;color:#ef444499;font-size:12px;cursor:pointer;margin-bottom:8px;text-align:left;transition:background .15s,color .15s}.sidebar-quit-btn:hover{background:#ef444426;color:#fca5a5;border-color:#ef444480}.sidebar-version{color:#ffffff4d;font-size:11px;padding:0 8px}@media(max-width:900px){.sidebar{position:fixed;top:0;left:0;bottom:0;height:100%;z-index:60;transform:translate(-100%);transition:transform .22s ease;box-shadow:4px 0 24px #00000047;overflow-y:auto}.sidebar.sidebar-open{transform:translate(0)}}@media(max-width:900px)and (prefers-reduced-motion:reduce){.sidebar{transition:none}}.gs{position:relative;margin:10px 10px 4px;display:flex;align-items:center}.gs-icon{position:absolute;left:9px;font-size:.8rem;opacity:.7;pointer-events:none}.gs-input{width:100%;padding:8px 10px 8px 28px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#ffffff14;color:#fff;font-size:.85rem;outline:none}.gs-input::placeholder{color:#ffffff8c}.gs-input:focus{border-color:var(--primary, #009A44);background:#ffffff1f}.gs-input::-webkit-search-cancel-button{filter:invert(1)}.gs-panel{position:fixed;z-index:1000;overflow-y:auto;background:var(--card-bg, #fff);color:var(--text, #0f172a);border:1px solid var(--border, #e2e8f0);border-radius:10px;box-shadow:0 12px 32px #0f172a38;padding:6px}.gs-note{padding:12px;font-size:.86rem;color:var(--text-muted, #64748b)}.gs-group+.gs-group{margin-top:4px;border-top:1px solid var(--border, #e2e8f0);padding-top:4px}.gs-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 2px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #64748b)}.gs-more{background:none;border:0;color:var(--primary, #009A44);font-size:.72rem;font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0}.gs-item{display:block;width:100%;text-align:left;background:none;border:0;border-radius:7px;padding:7px 10px;cursor:pointer;color:inherit}.gs-item.on{background:#f0fdf4}.gs-title{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-sub{font-size:.76rem;color:var(--text-muted, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.gs-foot{padding:6px 10px 2px;font-size:.7rem;color:var(--text-muted, #94a3b8);border-top:1px solid var(--border, #e2e8f0);margin-top:4px}.login-screen{min-height:100vh;background:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:#fff;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 20px 60px #00000059}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:2rem}.login-logo-img{width:48px;height:48px;object-fit:contain;border-radius:10px}.login-logo-name{font-size:1.25rem;font-weight:800;color:var(--primary-dark);line-height:1.1}.login-logo-sub{font-size:.78rem;color:var(--text-muted)}.login-title{font-size:1.5rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.login-hint{font-size:.85rem;color:var(--text-muted);margin-bottom:1.75rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:5px}.login-field label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.login-field input{padding:.7rem .9rem;border:1.5px solid var(--border);border-radius:8px;font-size:.95rem;outline:none;transition:border-color .15s;background:#f8fafc}.login-field input:focus{border-color:var(--primary);background:#fff}.login-error{font-size:.82rem;color:var(--danger);background:var(--danger-light);border-radius:6px;padding:.5rem .75rem}.login-btn{margin-top:.25rem;padding:.8rem;background:var(--primary-dark);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--primary)}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-default-hint{margin-top:1.5rem;text-align:center;font-size:.75rem;color:#94a3b8}.login-alt{background:none;border:none;color:var(--primary);font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0}.login-alt:hover{color:var(--primary-dark)}.login-alt-row{display:flex;justify-content:space-between}.login-info{font-size:.82rem;color:#15803d;background:#dcfce7;border-radius:6px;padding:.5rem .75rem}.login-code-input{font-size:1.5rem!important;letter-spacing:8px;text-align:center;font-weight:700}.page{padding:32px;max-width:1800px}.page-header{margin-bottom:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.dash-header-filters{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.dash-company-btn{font-weight:600}.dash-company-btn.active{background:var(--text);border-color:var(--text);color:#fff}.dash-company-btn:hover:not(.active){border-color:var(--text);color:var(--text)}.dash-sector-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dash-sector-btn{padding:6px 14px;border-radius:99px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.dash-sector-btn:hover{border-color:var(--primary);color:var(--primary)}.dash-sector-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-title{font-size:26px;font-weight:700;color:var(--text)}.page-subtitle{color:var(--text-muted);margin-top:4px}.dash-summary-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;margin-bottom:32px}.dash-summary-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:20px 24px}.dash-summary-main{border-color:var(--primary);background:var(--primary-light)}.dash-summary-clickable:hover{box-shadow:0 4px 12px #00000014;border-color:var(--primary)}.dash-summary-labour{border-color:#dc2626;background:#fef2f2}.dash-summary-labour .dash-summary-label{color:#991b1b}.dash-summary-labour .dash-summary-value{color:#dc2626}.dash-summary-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px}.dash-summary-main .dash-summary-label{color:var(--primary-dark)}.dash-summary-value{font-size:22px;font-weight:700;color:var(--text)}.dash-summary-main .dash-summary-value{font-size:26px;color:var(--primary-dark)}.dash-section-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:18px 20px;display:flex;align-items:flex-start;gap:14px;transition:box-shadow .15s}.stat-card:hover{box-shadow:0 4px 12px #0000000f}.stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.stat-info{flex:1;min-width:0}.stat-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.stat-value{font-size:18px;font-weight:700;margin-bottom:8px}.stat-bar-wrap{height:4px;background:var(--border);border-radius:99px;overflow:hidden;margin-bottom:4px}.stat-bar{height:100%;border-radius:99px;transition:width .4s ease}.stat-pct{font-size:11px;color:var(--text-muted)}.dash-primary-filter{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:4px;flex-wrap:wrap}.dash-primary-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}.dash-primary-pills{display:flex;flex-wrap:wrap;gap:6px}.dash-primary-btn{padding:5px 12px;border-radius:99px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.dash-primary-btn:hover{border-color:var(--primary);color:var(--primary)}.dash-primary-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.dash-clickable{cursor:pointer}.dash-clickable:hover{box-shadow:0 2px 10px #0000001a}.dash-summary-sub{margin:2px 0 0;font-size:.72rem;color:var(--text-muted, #64748b);font-weight:600}.dash-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:80;padding:16px}.dash-modal{background:#fff;border-radius:12px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;box-sizing:border-box}.dash-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #e2e8f0}.dash-modal-head h2{margin:0;font-size:1rem}.dash-modal-head p{margin:3px 0 0;font-size:.8rem;color:#64748b}.dash-modal-close{background:none;border:none;font-size:1.1rem;color:#64748b;cursor:pointer;min-width:36px;min-height:36px;border-radius:8px}.dash-modal-close:hover{background:#f1f5f9}.dash-modal-search{margin:12px 18px 0;padding:10px 12px;border:1.5px solid #cbd5e1;border-radius:8px;font-size:.9rem;font-family:inherit}.dash-modal-search:focus{outline:none;border-color:#009a44}.dash-modal-body{overflow-y:auto;padding:8px 18px 18px}.dash-modal-none{color:#94a3b8;font-style:italic;font-size:.88rem;padding:12px 0}.dash-missing-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid #f1f5f9;padding:11px 4px;cursor:pointer;font:inherit}.dash-missing-row:last-child{border-bottom:none}.dash-missing-row:hover{background:#f8fafc}.dash-missing-name{font-size:.9rem;color:#1e293b}.dash-missing-meta{font-size:.75rem;color:#94a3b8;white-space:nowrap}.ec-contract-nav{display:flex;flex-direction:column;gap:10px;padding:14px 0 4px}.ec-search-input{width:100%;max-width:320px;padding:8px 12px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;outline:none;transition:border-color .15s}.ec-search-input:focus{border-color:var(--primary)}.ec-contract-btns{display:flex;flex-wrap:wrap;gap:6px}.ec-contract-btn{padding:6px 16px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.83rem;cursor:pointer;transition:all .15s;white-space:nowrap}.ec-contract-btn:hover{border-color:var(--primary);color:var(--primary)}.ec-contract-btn-active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.ec-search-empty{font-size:.82rem;color:var(--text-muted);padding:4px 2px}.ec-panel-wrap{display:flex;flex-direction:column;gap:24px}.ec-panel-contract{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;overflow:hidden;position:relative}.ec-panel-contract-title{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}.ec-panel-stats{display:flex;gap:12px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--border)}.ec-page{max-width:1400px}.ec-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ec-search{padding:8px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;width:240px;outline:none;background:var(--card-bg);color:var(--text)}.ec-search:focus{border-color:var(--primary)}.ec-import-btn{padding:8px 18px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.ec-import-btn:hover{border-color:var(--primary);color:var(--primary)}.ec-import-btn:disabled{opacity:.5;cursor:not-allowed}.ec-entity-filter{display:flex;gap:8px;margin-bottom:16px}.ec-entity-btn{padding:8px 20px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.ec-entity-btn:hover{border-color:var(--primary);color:var(--primary)}.ec-entity-active{background:var(--primary);color:#fff;border-color:var(--primary)}.ec-entity-active:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.ec-sector-btn{padding:6px 14px;font-size:12px}.ec-sector-active{background:#475569;color:#fff;border-color:#475569}.ec-sector-active:hover{background:#334155;border-color:#334155;color:#fff}.ec-summary-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:28px}.ec-summary-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.ec-card-revenue{border-left:4px solid #2563eb}.ec-card-cost{border-left:4px solid #dc2626}.ec-card-profit{border-left:4px solid #16a34a}.ec-card-margin{border-left:4px solid #7c3aed}.ec-summary-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.ec-summary-value{font-size:20px;font-weight:700;color:var(--text)}.ec-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.ec-table{width:100%;border-collapse:collapse;font-size:14px}.ec-table thead th{padding:12px 16px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:2px solid var(--border);background:var(--bg);white-space:nowrap;position:sticky;top:0;z-index:1}.ec-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ec-sortable:hover{color:var(--primary)}.ec-table tbody td{padding:10px 16px;border-bottom:1px solid var(--border);white-space:nowrap}.ec-right{text-align:right!important}.ec-row{cursor:pointer;transition:background .1s}.ec-row:hover{background:var(--bg)}.ec-row-expanded{background:var(--primary-light)}.ec-td-expand{width:32px;text-align:center;color:var(--text-muted);font-size:11px}.ec-th-expand{width:32px}.ec-td-no{font-weight:600;color:var(--text-muted);font-size:13px}.ec-td-name{max-width:280px}.ec-name-main{display:block;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis}.ec-name-entity{display:block;font-size:11px;color:var(--text-muted);margin-top:1px}.ec-bold{font-weight:700!important}.ec-margin-pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:13px;font-weight:700;border:1px solid}.ec-totals-row td{padding:14px 16px;border-top:2px solid var(--border);background:var(--bg);font-size:14px}.ec-detail-totals td{padding:6px 8px;border-top:2px solid var(--border);background:var(--bg);font-size:13px}.ec-detail-row td{padding:0!important;border-bottom:2px solid var(--primary)!important;background:var(--bg)}.ec-detail-panel{padding:12px 16px 16px;position:relative}.ec-detail-scroll{overflow-x:auto;max-width:100%}.ec-detail-table{border-collapse:collapse;font-size:13px;min-width:1100px}.ec-detail-table thead th{padding:6px 8px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.ec-detail-table tbody td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}.ec-detail-table tbody tr:last-child td{border-bottom:none}.ec-day-col{min-width:44px;max-width:56px}.ec-sticky-col{position:sticky;left:0;background:var(--bg);z-index:1;min-width:160px}.ec-emp-name{font-weight:600;color:var(--text)}.ec-editable{cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .12s;display:inline-block;min-width:28px;text-align:inherit}.ec-editable:hover{background:#e0e7ff;outline:1px dashed #6366f1}.ec-editable:focus{outline:2px solid #6366f1;background:#e0e7ff;border-radius:4px}.ec-edit-input{width:70px;padding:2px 4px;border:1.5px solid #6366f1;border-radius:4px;font-size:13px;background:#fff;color:var(--text);outline:none;text-align:right}.ec-edit-input[type=text]{width:140px;text-align:left}.ec-saving-badge{position:absolute;top:8px;right:16px;background:#6366f1;color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;animation:ec-pulse 1s infinite}@keyframes ec-pulse{0%,to{opacity:1}50%{opacity:.6}}.ec-rates-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;overflow:hidden}.ec-rates-toggle{width:100%;display:flex;align-items:center;gap:10px;padding:14px 20px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:700;color:var(--text);text-align:left}.ec-rates-toggle:hover{background:var(--bg)}.ec-rates-summary{font-weight:500;font-size:13px;color:var(--text-muted);margin-left:auto}.ec-rates-grid{display:flex;gap:32px;padding:0 20px 20px;flex-wrap:wrap;align-items:flex-end}.ec-rate-group{flex:1;min-width:200px}.ec-rate-group-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin-bottom:12px;padding-bottom:6px;border-bottom:2px solid var(--primary)}.ec-rate-field{display:flex;align-items:center;gap:10px;margin-bottom:8px}.ec-rate-field label{font-size:13px;font-weight:600;color:var(--text);min-width:80px}.ec-rate-input-wrap{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:6px;overflow:hidden;background:#fff}.ec-rate-prefix{padding:6px 8px;font-size:13px;font-weight:600;color:var(--text-muted);background:var(--bg);border-right:1px solid var(--border)}.ec-rate-input{width:90px;padding:6px 8px;border:none;font-size:14px;font-weight:600;color:var(--text);outline:none;background:#fff}.ec-rate-input:focus{box-shadow:inset 0 0 0 1px var(--primary)}.ec-rate-count{font-size:11px;color:var(--text-muted);white-space:nowrap}.ec-rate-actions{display:flex;align-items:center;gap:12px;padding-top:20px}.ec-rate-apply-btn{padding:10px 24px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s}.ec-rate-apply-btn:hover{opacity:.9}.ec-rate-apply-btn:disabled{opacity:.4;cursor:not-allowed}.ec-rate-changed{font-size:12px;color:#d97706;font-weight:600}.ec-night-toggle{cursor:pointer;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;color:var(--text-muted);transition:all .12s;-webkit-user-select:none;user-select:none}.ec-night-toggle:hover{background:#e0e7ff}.ec-night-on{background:#312e81;color:#c7d2fe}.ec-night-on:hover{background:#3730a3}.ec-rate-readonly{background:var(--bg)}.ec-rate-derived{padding:6px 8px;font-size:14px;font-weight:600;color:var(--text-muted)}.ec-rate-hint{font-size:11px;color:var(--text-muted);font-style:italic}.ec-calculated{color:var(--text-muted)!important;font-style:italic}.ec-col-highlight{background:#fefce8!important}.ec-detail-table thead th.ec-col-highlight{background:#fef9c3!important;color:#92400e}.ec-add-emp-btn{margin-top:10px;padding:6px 18px;border:1.5px dashed var(--border);border-radius:8px;background:none;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.ec-add-emp-btn:hover{border-color:var(--primary);color:var(--primary);background:#e0e7ff}.ec-th-del{width:32px}.ec-td-del{width:32px;text-align:center}.ec-del-btn{background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .12s;line-height:1}.ec-del-btn:hover{color:#dc2626;background:#fee2e2}.ec-empty{text-align:center;padding:80px 24px;color:var(--text-muted)}.ec-empty p:first-child{font-size:18px;font-weight:600;margin-bottom:12px}@media(max-width:900px){.ec-summary-row{grid-template-columns:repeat(2,1fr)}}.modal{background:var(--card-bg);border-radius:14px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:18px;font-weight:700}.modal-close{background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-form{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:13px;font-weight:600;color:var(--text)}.form-group input,.form-group select,.form-group textarea{padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);outline:none;transition:border-color .15s;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}.form-group.has-error input{border-color:var(--danger)}.form-error{font-size:12px;color:var(--danger)}.form-group-sm{max-width:140px}.field-hint{font-weight:400;color:var(--primary);font-size:12px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.ws-panel{margin-top:20px}.ws-panel,.ws-panel *,.ws-panel *:before,.ws-panel *:after{box-sizing:border-box}.ws-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.ws-head h3{margin:0;font-size:1rem}.ws-meta{color:#64748b;font-size:.8rem}.ws-days{display:flex;gap:6px;flex-wrap:wrap}.ws-day{padding:8px 14px;border-radius:999px;border:1.5px solid #cbd5e1;background:#fff;color:#475569;font-size:.82rem;font-weight:600;cursor:pointer}.ws-day.on{background:#009a44;border-color:#009a44;color:#fff}.ws-day.empty{color:#94a3b8;border-style:dashed}.ws-scroll{overflow-x:auto;border:1px solid #cbd5e1;border-radius:8px}table.ws-grid{border-collapse:collapse;width:auto;table-layout:fixed;font-size:.78rem}table.ws-grid th,table.ws-grid td{border:1px solid #cbd5e1;padding:3px 6px}table.ws-grid thead th{background:#0f172a;color:#fff;font-weight:700;text-align:center;position:sticky;top:0;z-index:2;font-size:.72rem}table.ws-grid thead th.ws-pos{font-weight:600}table.ws-grid td.ws-time,table.ws-grid th.ws-time{background:#0f172a;color:#fff;text-align:center;font-weight:700;white-space:nowrap;width:58px;font-size:.72rem}table.ws-grid td.ws-cell{width:168px;text-align:center;cursor:text}table.ws-grid td.ws-cell:hover{background:#f1f5f9}table.ws-grid td.ws-off{background:#0f172a;cursor:default}table.ws-grid td.ws-off:hover{background:#0f172a}table.ws-grid td.ws-conflict{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}table.ws-grid tr.ws-hour td.ws-time{border-top:2px solid #64748b}.ws-cell-input{width:100%;border:none;background:#fff7ed;font:inherit;text-align:center;padding:2px;outline:2px solid #009A44;border-radius:3px}.ws-shift-edit{display:flex;gap:4px;justify-content:center;margin-top:3px}.ws-shift-edit input{width:62px;font-size:.7rem;padding:2px 3px;border:1px solid #475569;border-radius:4px;background:#1e293b;color:#fff;text-align:center}.ws-blocks{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.ws-block{min-width:0}.ws-block-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:16px 0 6px}.ws-import textarea{width:100%;min-height:150px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;padding:10px;border:1.5px solid #cbd5e1;border-radius:8px}.ws-warn{background:#fef9c3;color:#854d0e;border-radius:8px;padding:10px 12px;font-size:.82rem;margin-bottom:10px}.ws-warn ul{margin:6px 0 0;padding-left:18px}.ws-err{background:#fee2e2;color:#b91c1c;border-radius:8px;padding:10px 12px;font-size:.82rem;margin-bottom:10px}.ws-ok{background:#dcfce7;color:#15803d;border-radius:8px;padding:10px 12px;font-size:.82rem;margin-bottom:10px}.ws-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ws-actions button,.ws-head button{min-height:38px;padding:0 14px;border-radius:8px;font-size:.84rem;font-weight:600;cursor:pointer}.ws-btn-go{background:#009a44;border:none;color:#fff}.ws-btn-go:disabled{opacity:.5}.ws-btn-flat{background:#fff;border:1.5px solid #cbd5e1;color:#475569}.ws-empty{color:#94a3b8;font-style:italic;font-size:.85rem}.ws-toggle{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:#475569;padding:0 6px;cursor:pointer;min-height:38px}.ws-toggle input{width:17px;height:17px;cursor:pointer}.ws-qr{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px;margin-bottom:12px}.ws-qr img{width:150px;height:150px}.ws-preview-tbl{width:100%;border-collapse:collapse;font-size:.8rem;margin:8px 0}.ws-preview-tbl th,.ws-preview-tbl td{border-bottom:1px solid #e2e8f0;padding:6px 8px;text-align:left}@media print{body *{visibility:hidden}.ws-print,.ws-print *{visibility:visible}.ws-print{position:absolute;left:0;top:0;width:100%}.ws-no-print{display:none!important}.ws-scroll{overflow:visible;border:none}table.ws-grid{font-size:7pt}table.ws-grid thead th{position:static}table.ws-grid td.ws-cell{min-width:0}@page{size:A4 landscape;margin:8mm}}.chem-msg{padding:11px 14px;border-radius:9px;font-size:.86rem;margin-bottom:12px}.chem-ok{background:#dcfce7;color:#15803d}.chem-err{background:#fee2e2;color:#b91c1c}.chem-warn{background:#fef9c3;color:#854d0e;border-radius:8px;padding:10px 13px;font-size:.84rem;margin:10px 0}.chem-warn ul{margin:6px 0 0;padding-left:18px}.chem-note{font-size:.78rem;color:#64748b;margin:10px 0 0}.chem-empty{color:#94a3b8;font-style:italic;font-size:.88rem;padding:16px 0}.chem-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0}.chem-search{max-width:280px}.chem-kinds{display:flex;gap:6px}.chem-kind{padding:8px 14px;border-radius:999px;border:1.5px solid #cbd5e1;background:#fff;color:#475569;font-size:.82rem;font-weight:600;cursor:pointer}.chem-kind.on{background:#009a44;border-color:#009a44;color:#fff}.chem-toggle{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:#475569;cursor:pointer}.chem-toggle input{width:16px;height:16px;cursor:pointer}.chem-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.chem-table{width:100%;border-collapse:collapse;font-size:.86rem}.chem-table th{background:#f8fafc;text-align:left;padding:10px 12px;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom:1px solid #e2e8f0}.chem-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.chem-table tr:last-child td{border-bottom:none}.chem-table tr:hover td{background:#f8fafc}.chem-table .r{text-align:right}.chem-retired td{opacity:.55}.chem-pill{margin-left:8px;font-size:.68rem;font-weight:700;text-transform:uppercase;background:#e2e8f0;color:#475569;border-radius:999px;padding:2px 8px}.chem-code{margin-left:8px;font-size:.72rem;color:#94a3b8}.chem-kind-pill{font-size:.7rem;font-weight:700;border-radius:6px;padding:3px 8px;white-space:nowrap}.chem-chemical{background:#ede9fe;color:#6d28d9}.chem-consumable{background:#dbeafe;color:#1d4ed8}.chem-row-actions{white-space:nowrap;text-align:right}.chem-edit,.chem-seed{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px;margin-bottom:14px}.chem-edit h3,.chem-seed h3{margin:0 0 12px;font-size:.95rem}.chem-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.chem-edit-grid label{display:block}.chem-edit-grid span{display:block;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.chem-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.chem-seed-tbl{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:10px}.chem-seed-tbl th,.chem-seed-tbl td{padding:6px 10px;border-bottom:1px solid #e2e8f0;text-align:left}.chem-seed-tbl .r{text-align:right}.ct-panel{margin-top:20px}.ct-panel,.ct-panel *{box-sizing:border-box}.ct-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}.ct-head h3{margin:0;font-size:1rem}.ct-meta{color:#64748b;font-size:.8rem}.ct-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}.ct-settings label{display:block}.ct-settings span{display:block;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.ct-hint{font-size:.72rem;color:#94a3b8;margin:3px 0 0;font-weight:400;text-transform:none;letter-spacing:0}.ct-reset{background:none;border:none;padding:4px 0 0;margin:0;color:#1d4ed8;font-size:.72rem;text-decoration:underline;cursor:pointer}.ct-table{width:100%;border-collapse:collapse;font-size:.85rem;background:#fff}.ct-table th{background:#f8fafc;text-align:left;padding:9px 10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom:1px solid #e2e8f0}.ct-table td{padding:7px 10px;border-bottom:1px solid #f1f5f9}.ct-table .r{text-align:right}.ct-table input{width:92px;padding:6px 8px;border:1.5px solid #cbd5e1;border-radius:7px;font-size:.85rem;text-align:right}.ct-table input:focus{outline:none;border-color:#009a44}.ct-nosell{background:#fef9c3}.ct-total{display:flex;flex-wrap:wrap;gap:20px;align-items:baseline;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px;margin-top:12px}.ct-total div{font-size:.8rem;color:#64748b}.ct-total strong{display:block;font-size:1.05rem;color:#1e293b}.ct-over strong{color:#b91c1c}.co-tabs{flex-wrap:wrap;margin:14px 0}.co-late{background:#fee2e2;color:#b91c1c}.co-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0f172a8c;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.co-modal{background:#fff;border-radius:14px;width:100%;max-width:720px;box-shadow:0 20px 50px #0f172a4d}.co-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e2e8f0}.co-head h2{margin:0;font-size:1.05rem;color:#1e293b}.co-head p{margin:6px 0 0;font-size:.82rem;color:#64748b}.co-close{background:none;border:none;font-size:1.1rem;color:#94a3b8;cursor:pointer;padding:2px 6px;line-height:1}.co-close:hover{color:#475569}.co-body{padding:18px 20px 20px}.co-status{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:3px 10px}.co-pick-help{margin-bottom:12px}.co-short{color:#b91c1c}.co-pick{display:flex;flex-direction:column;gap:10px}.co-pick-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;width:100%;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px}.co-pick-row:hover{border-color:#009a44;background:#f8fafc}.co-pick-main{display:flex;flex-direction:column;gap:3px}.co-pick-main strong{font-size:1rem;color:#1e293b}.co-pick-main small{font-size:.78rem;color:#64748b}.co-pick-due{font-size:.8rem;color:#64748b}.co-line{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9;padding:12px 2px}.co-line-name{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;font-size:.95rem;color:#1e293b}.co-line-name small{font-size:.75rem;color:#94a3b8}.co-stepper{display:flex;align-items:center;gap:10px;flex:none}.co-stepper button{width:44px;height:44px;flex:none;border-radius:10px;border:1.5px solid #cbd5e1;background:#fff;font-size:1.3rem;line-height:1;color:#334155;cursor:pointer}.co-stepper button:active{background:#e2e8f0}.co-stepper span{min-width:2.2ch;text-align:center;font-size:1.15rem;font-weight:700}.co-stepper small{font-size:.75rem;color:#94a3b8;min-width:4.5ch}@media(max-width:640px){.co-modal{max-width:none}.co-stepper{gap:7px}.co-stepper small{min-width:0}}.co-bill{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;margin-bottom:12px}.co-bill-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px}.co-bill-head strong{display:block;font-size:.98rem;color:#1e293b}.co-bill-head small{font-size:.78rem;color:#64748b}.co-bill-right{display:flex;align-items:center;gap:12px}.co-bill-value{font-size:1.05rem;font-weight:700;color:#1e293b}.co-over-row td{background:#fef2f2}.co-over-row:hover td{background:#fee2e2}.co-over strong{color:#b91c1c}.chem-toggle select{padding:7px 10px;border:1.5px solid #cbd5e1;border-radius:8px;font-size:.84rem;font-family:inherit;background:#fff;cursor:pointer}.chem-toggle select:focus{outline:none;border-color:#009a44}.ct-qr{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px;margin-bottom:14px}.ct-qr img{width:150px;height:150px;flex:none;background:#fff;border-radius:8px}.ct-qr-body{flex:1;min-width:220px}.ct-qr-body h4{margin:0 0 6px;font-size:.92rem}.ct-qr-pin{font-size:1.7rem;font-weight:700;letter-spacing:.22em;font-variant-numeric:tabular-nums;color:#1e293b;margin:4px 0 2px}.ct-qr-url{font-size:.72rem;color:#64748b;word-break:break-all;margin:6px 0 0}.chem-paste{width:100%;padding:11px 13px;border:1.5px solid #cbd5e1;border-radius:9px;font-family:Consolas,Menlo,monospace;font-size:.78rem;line-height:1.5;white-space:pre;overflow-x:auto;resize:vertical}.chem-paste:focus{outline:none;border-color:#009a44}.co-waiting{color:#a16207;font-weight:600}.co-budget{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;margin-top:14px}.co-budget-over{background:#fef2f2;border-color:#fecaca}.co-budget-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.8rem;color:#64748b;margin-bottom:9px}.co-budget-head strong{font-size:1.05rem;color:#1e293b}.co-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#e2e8f0;margin-bottom:11px}.co-bar span{display:block;height:100%}.co-bar-spent{background:#94a3b8}.co-bar-this{background:#009a44}.co-budget-over .co-bar-this{background:#dc2626}.co-budget-row{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;color:#475569;padding:3px 0}.co-budget-left{border-top:1px solid #e2e8f0;margin-top:7px;padding-top:9px;font-size:.9rem;color:#1e293b}.co-budget-left strong{font-size:1.05rem}.co-budget-over .co-budget-left strong{color:#b91c1c}.co-key{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:baseline}.co-key-spent{background:#94a3b8}.co-key-this{background:#009a44}.co-budget-over .co-key-this{background:#dc2626}.co-invno{width:130px;padding:8px 10px;font-size:.85rem}.co-invoiced{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;margin-top:14px}.co-invoiced-head{font-size:.8rem;color:#64748b;margin-bottom:8px}.co-invoiced-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.co-signed{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;margin-top:14px}.co-signed-head{font-size:.85rem;color:#15803d}.co-signed-note{font-size:.8rem;color:#166534;margin:6px 0 0;font-style:italic}.co-signature{display:block;margin-top:9px;max-width:280px;width:100%;background:#fff;border:1px solid #d1fae5;border-radius:8px}.co-hint{font-size:.78rem;color:#64748b;align-self:center}.co-link{background:none;border:none;padding:6px 0;margin:0;font:inherit;font-weight:700;color:#1d4ed8;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.co-link:hover{color:#1e40af}@media(max-width:520px){.co-orders th,.co-orders td{padding:9px 7px}.co-orders .co-wide{display:none}.co-orders .co-status{padding:3px 7px;font-size:.64rem}}.co-trail{border-top:1px solid #e2e8f0;margin-top:18px;padding-top:14px}.co-trail h3{margin:0 0 9px;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.co-people{margin:0;display:grid;gap:6px}.co-people div{display:flex;gap:12px;font-size:.86rem}.co-people dt{flex:0 0 170px;color:#64748b}.co-people dd{margin:0;color:#1e293b;font-weight:600}.co-events{margin-top:12px}.co-events summary{cursor:pointer;font-size:.8rem;color:#1d4ed8;padding:4px 0}.co-events ol{list-style:none;margin:8px 0 0;padding:0;border-left:2px solid #e2e8f0}.co-events li{display:flex;gap:12px;padding:7px 0 7px 13px;position:relative;font-size:.82rem}.co-events li:before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:#009a44;border:2px solid #fff}.co-when{flex:0 0 92px;color:#94a3b8;font-variant-numeric:tabular-nums}.co-what{flex:1;min-width:0;color:#334155}.co-what small{display:block;color:#94a3b8;font-size:.74rem;margin-top:2px;word-break:break-word}.co-where{margin-left:6px;font-size:.68rem;font-weight:700;text-transform:uppercase;background:#dcfce7;color:#15803d;border-radius:999px;padding:1px 7px}@media(max-width:520px){.co-people div{flex-direction:column;gap:0}.co-people dt{flex:none;font-size:.74rem}.co-when{flex-basis:74px;font-size:.74rem}}.co-link-inline{padding:0;font-size:inherit;display:inline}.co-link-note{margin-left:7px;font-size:.74rem;color:#64748b;text-transform:capitalize}.co-card{font-size:.75rem;font-weight:700;color:#166534;background:#dcfce7;border-radius:8px;padding:1px 6px;margin-left:6px}.fold{border:1px solid var(--border, #e2e8f0);border-radius:8px;margin:10px 0;background:var(--card-bg, #fff)}.fold-bar{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:var(--bg-subtle, #f8fafc);border:none;border-radius:8px;cursor:pointer;text-align:left;font-size:.9rem;color:var(--text, #1e293b)}.fold-open>.fold-bar{border-bottom:1px solid var(--border, #e2e8f0);border-radius:8px 8px 0 0}.fold-bar:hover{background:var(--hover-bg, #eef2f7)}.fold-chev{width:14px;color:var(--text-muted, #64748b)}.fold-title{font-weight:700}.fold-hint{margin-left:auto;font-size:.75rem;color:var(--text-muted, #64748b)}.fold-body{padding:4px 0}.fold-body .ws-head>h3,.fold-body .ct-head>h3{display:none}.fold-body .ws-panel,.fold-body .ct-panel{margin-top:0;border-top:none}.cla{padding:10px 16px 14px;font-size:.9rem}.cla-muted{color:var(--text-muted, #64748b);margin:6px 0}.cla-table{width:100%;border-collapse:collapse;margin-bottom:10px}.cla-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #64748b);padding:6px;border-bottom:1px solid var(--border, #e2e8f0)}.cla-table td{padding:7px 6px;border-bottom:1px solid var(--border, #e2e8f0);vertical-align:middle}.cla-actions{text-align:right;white-space:nowrap}.cla-btn{display:inline-block;padding:5px 10px;font-size:.78rem;margin-left:5px;text-decoration:none}.cla-tag{margin-left:6px;font-size:.68rem;padding:1px 6px;border-radius:8px;background:#eef2ff;color:#4338ca;font-weight:600}.cla-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}.cla-add .form-input{flex:1 1 220px;min-width:0}.cla-add .form-select{flex:0 1 220px}.cla-foot{display:flex;gap:12px;align-items:center;margin-top:12px;flex-wrap:wrap}.cla-link{background:none;border:0;padding:0;color:#7c3aed;text-decoration:underline;cursor:pointer;font-size:.82rem}.cla-off{font-size:.82rem;color:var(--text-muted, #64748b);margin-top:4px}.cla-msg{margin-bottom:8px;padding:7px 10px;border-radius:6px;font-size:.85rem}.cla-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.cla-err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}@media(max-width:640px){.cla-actions{white-space:normal}.cla-btn{margin:3px 4px 0 0}}.clp-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.clp-card{background:var(--card-bg, #fff);border:1px solid var(--border, #e2e8f0);border-radius:10px;padding:14px 16px;margin-bottom:14px}.clp-card h3{margin:0 0 4px;font-size:1rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.clp-qs{list-style:none;padding:0;margin:8px 0}.clp-qs li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border, #e2e8f0)}.clp-qs li .clp-q{flex:1;min-width:0}.clp-qs li.off .clp-q{color:var(--text-muted, #94a3b8);text-decoration:line-through}.clp-flags{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:#475569;margin:4px 0}.clp-flags label{display:flex;gap:5px;align-items:center;cursor:pointer}.clp-hint{font-size:.8rem;color:var(--text-muted, #64748b);margin:4px 0 10px}.clv-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px;font-size:.82rem;color:#475569}.clv-filters label{display:flex;flex-direction:column;gap:3px}.clv-filters .form-input,.clv-filters .form-select{padding:6px 8px}.clv-check{flex-direction:row!important;align-items:center;gap:6px!important;cursor:pointer}.clv-clean{border:1px solid var(--border, #e2e8f0);border-left:4px solid #009A44;border-radius:8px;margin-bottom:8px;background:var(--card-bg, #fff)}.clv-clean.clv-has-problems{border-left-color:#c2410c}.clv-clean.clv-in-progress{border-left-color:#2563eb}.clv-clean.clv-not-finished{border-left-color:#94a3b8}.clv-head{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;cursor:pointer}.clv-site{color:#475569}.clv-chev{display:inline-block;width:16px;color:#64748b}.clv-head .clv-sub{padding-left:16px}.clv-sub{font-size:.8rem;color:var(--text-muted, #64748b);margin-top:2px}.clv-badges{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}.clv-badge{font-size:.72rem;font-weight:700;border-radius:10px;padding:2px 8px;white-space:nowrap}.clv-b-ok{background:#dcfce7;color:#166534}.clv-b-problem{background:#ffedd5;color:#9a3412}.clv-b-in-progress{background:#dbeafe;color:#1d4ed8}.clv-b-not-finished{background:#f1f5f9;color:#475569}.clv-body{padding:0 12px 10px}.clv-cons{font-size:.85rem;background:#f8fafc;border-radius:6px;padding:6px 8px;margin-bottom:6px}.clv-answers{list-style:none;padding:0;margin:0 0 6px}.clv-answers li{padding:4px 0;font-size:.86rem;border-bottom:1px dashed var(--border, #e2e8f0)}.clv-ans{display:inline-block;min-width:56px;text-align:center;font-size:.7rem;font-weight:700;border-radius:6px;padding:1px 6px;margin-right:6px}.clv-a-yes{background:#dcfce7;color:#166534}.clv-a-no{background:#fee2e2;color:#b91c1c}.clv-a-problem{background:#ffedd5;color:#9a3412}.clv-comment{margin:2px 0 0 68px;color:#9a3412;font-size:.82rem}.clv-thumbs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0 68px}.clv-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:6px;cursor:zoom-in;border:1px solid var(--border, #e2e8f0)}.clv-zoom{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000e0;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.clv-zoom img{max-width:95vw;max-height:92vh;border-radius:6px}.clv-mapbox{width:min(900px,96vw);max-width:none}.clv-map{height:min(70vh,560px)}.clv-tablewrap{overflow-x:auto}.clv-totals td,.clv-totals th{text-align:right}.clv-totals td:first-child,.clv-totals th:first-child{text-align:left}.clv-totals tfoot td{font-weight:700;border-top:2px solid var(--border, #e2e8f0)}.cla-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}@media(max-width:640px){.clv-comment,.clv-thumbs{margin-left:0}.clv-head{flex-direction:column}.clv-badges{justify-content:flex-start}}.clp-tabs .filter-chip.active,.cla-tabs .filter-chip.active{background:#009a44;border-color:#009a44;color:#fff}.cla-email{margin-top:18px;padding-top:12px;border-top:1px solid var(--border, #e2e8f0)}.cla-email h4{margin:0 0 2px;font-size:.92rem}.clp-inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;width:100%}.clp-inline .form-input{flex:1 1 200px;min-width:0;padding:5px 8px;font-size:.9rem;font-weight:400}.clp-inline .cla-btn{margin-left:0}.clp-card h3 .cla-btn{margin-left:8px;font-weight:400}.clp-ems{display:grid;gap:4px;font-size:.86rem;margin-bottom:10px;word-break:break-all}.clp-ems .cla-muted{display:inline-block;min-width:80px}.clp-bad{color:#b91c1c}.clp-ems-edit{display:grid;gap:8px;max-width:560px}.clp-ems-edit label{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:#475569}.clp-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.clp-sort:hover{color:var(--text, #0f172a)}.clp-sort-arrow{font-size:.7rem;opacity:.6}.clv-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.clv-actions .cla-btn{margin-left:0;text-decoration:none}.sto-sign{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;background:#f8fafc;border:1px solid var(--border, #e2e8f0);border-radius:8px;padding:10px 12px;font-size:.86rem}.sto-h{margin:14px 0 6px;font-size:.95rem}.sto-due{background:#fffbeb;color:#b45309;border:1px solid #fcd34d}.sto-table td,.sto-table th{font-size:.84rem;white-space:nowrap}.sto-table .sto-sum td{font-weight:700;border-top:2px solid var(--border, #e2e8f0)}.sto-flag{background:#fff7ed;color:#9a3412}.sto-bad{color:#b91c1c;font-weight:700}.sto-num{width:110px}.sto-items td{vertical-align:middle}.sto-other{margin-top:8px;font-size:.85rem}.sto-other summary{cursor:pointer;color:#475569}.con-table td,.con-table th{white-space:nowrap;font-size:.85rem}.con-cell b{font-variant-numeric:tabular-nums}.con-flag{background:#fef2f2;color:#b91c1c}.con-site{cursor:pointer}.con-site:hover{background:var(--hover-bg, #f8fafc)}.con-days>td{background:#f8fafc;padding:8px 10px 12px}.con-days .con-table{background:#fff}.con-editbtn{display:block;margin-top:2px;font-size:.75rem}.con-edit{background:#f8fafc;border:1px solid var(--border, #e2e8f0);border-radius:8px;padding:10px 12px;white-space:normal}.con-edit-block+.con-edit-block{margin-top:12px}.con-edit-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:6px}.con-edit-row label{display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:#475569}.con-num{width:80px;padding:5px 8px}.con-edit-table{margin-top:6px;background:#fff}.con-edit-table td{vertical-align:middle}.con-danger{color:#b91c1c;border-color:#fecaca}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.portal-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px}.portal-subtitle{margin-top:4px;font-size:14px;color:var(--text-muted)}.portal-properties{display:flex;flex-direction:column;gap:24px;margin-bottom:24px}.portal-property-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.portal-prop-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#f8fafc;border-bottom:2px solid var(--border);gap:16px;flex-wrap:wrap}.portal-prop-name-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-prop-name{font-size:17px;font-weight:700;color:var(--text);margin:0}.portal-prop-no{font-size:12px;color:var(--text-muted);background:#fff;border:1px solid var(--border);border-radius:99px;padding:2px 10px}.portal-prop-subtotal{display:flex;flex-direction:column;align-items:flex-end}.portal-subtotal-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.portal-subtotal-val{font-size:20px;font-weight:700;color:var(--primary-dark, #1d4ed8)}.portal-services{display:flex;flex-direction:column}.portal-service-section{padding:16px 20px;border-bottom:1px solid var(--border)}.portal-service-section:last-child{border-bottom:none}.portal-service-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;border-left:4px solid;padding-left:10px}.portal-service-badge{font-size:12px;font-weight:700;padding:3px 12px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}.portal-service-subtotal{font-size:13px;font-weight:600;color:var(--text-muted)}.portal-cd-table{min-width:560px;table-layout:fixed;width:100%}.portal-cd-table th:nth-child(1){width:36%}.portal-cd-table th:nth-child(2){width:12%}.portal-cd-table th:nth-child(3){width:12%}.portal-cd-table th:nth-child(4){width:10%}.portal-cd-table th:nth-child(5){width:15%}.portal-cd-table th:nth-child(6){width:15%}.portal-property-card .portal-cd-table th,.portal-property-card .portal-cd-table tbody td{text-align:center}.portal-property-card .portal-cd-table th:first-child,.portal-property-card .portal-cd-table tbody td:first-child{text-align:left}.portal-property-card .portal-cd-table th:nth-child(n+5),.portal-property-card .portal-cd-table tbody td:nth-child(n+5){text-align:right}.portal-prop-name-btn{background:none;border:none;padding:0;cursor:pointer;text-align:left;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-prop-name-btn .portal-prop-name{color:var(--primary, #3b82f6);text-decoration:underline;text-underline-offset:3px}.portal-prop-name-btn:hover .portal-prop-name{opacity:.75}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.import-status{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:16px}.import-success{background:var(--primary-light);color:var(--primary-dark)}.import-error{background:var(--danger-light);color:var(--danger)}.import-loading{background:var(--warning-light);color:var(--warning)}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;transition:background .15s;white-space:nowrap}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border);padding:10px 18px;border-radius:8px;font-size:14px;font-weight:500}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600}.toolbar{margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.toolbar-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn-mgmt-view{padding:10px 16px;border-radius:8px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.btn-mgmt-view:hover{background:var(--bg);color:var(--text)}.btn-mgmt-view-active{background:#fef9c3;color:#854d0e;border-color:#fde047;font-weight:600}.sector-filters{display:flex;flex-wrap:wrap;gap:8px}.sector-chip{padding:6px 16px;border-radius:99px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.sector-chip:hover{background:var(--bg);color:var(--text)}.sector-chip-active{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary);font-weight:600}.search-input{width:100%;max-width:420px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--card-bg);color:var(--text);outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--primary)}.empty-state{background:var(--card-bg);border:2px dashed var(--border);border-radius:12px;padding:64px 32px;text-align:center;color:var(--text-muted)}.empty-icon{font-size:48px;margin-bottom:12px}.empty-hint{margin-top:8px;font-size:13px}.customer-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow-x:auto;overflow-y:visible}.cg-row{display:grid;grid-template-columns:36px 72px minmax(140px,220px) 110px 90px 110px 150px 96px 110px minmax(160px,260px) 80px;align-items:center;min-width:1050px}.cg-row>.cg-cell:last-child{position:sticky;right:0;background:inherit;z-index:1;box-shadow:-2px 0 4px #0000000f}.cg-muted{color:var(--text-muted)}.inline-select{width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);color:var(--text);font-size:13px;outline:none;cursor:pointer;transition:border-color .15s}.inline-select:hover{border-color:var(--primary)}.inline-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.cg-expand-col{display:flex;align-items:center;justify-content:center}.cg-expand-btn{background:none;border:none;cursor:pointer;font-size:11px;color:var(--text-muted);padding:4px 6px;border-radius:4px;transition:background .15s,color .15s}.cg-expand-btn:hover{background:var(--primary-light);color:var(--primary-dark)}.cg-row-expanded{background:#f0f7ff!important;border-bottom:none!important}.cg-detail-panel{border-bottom:1px solid var(--border);background:#f8fafc;padding:0 16px 16px 52px}.cg-lines-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.cg-lines-table th{padding:8px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:#f8fafc;border-bottom:1px solid var(--border);text-align:left}.cg-lines-table td{padding:10px 14px;border-bottom:1px solid #f1f5f9;color:var(--text);vertical-align:middle}.cg-lines-table tbody tr:last-child td{border-bottom:none}.cg-lines-table tbody tr:hover{background:#f8fafc}.cg-right{text-align:right}.cg-line-desc{font-weight:500;max-width:360px}.cg-line-supplier{color:var(--text-muted)}.cg-line-bill{color:var(--text-muted);white-space:nowrap}.cg-line-sell{font-weight:600;color:#15803d;white-space:nowrap}.cg-lines-total td{background:#f0fdf4;border-top:2px solid #bbf7d0!important;font-size:13px;color:#15803d}.cg-header{background:var(--bg);border-bottom:1px solid var(--border)}.cg-header .cg-cell{padding:12px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.cg-data{border-bottom:1px solid var(--border);color:var(--text)}.cg-data:last-child,div:last-child>.cg-data{border-bottom:none}.cg-data:hover{background:var(--bg)}.cg-data .cg-cell{padding:14px 16px;font-size:14px}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sortable:hover{background:#e8f0fe;color:var(--primary-dark)}.sort-none{opacity:.3}.sort-active{color:var(--primary);opacity:1}.td-name{min-width:0;overflow-wrap:anywhere}.cust-sub{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--text-muted);line-height:1.35}.cust-gps{text-decoration:none;font-family:monospace;font-size:11.5px;overflow-wrap:normal}.cust-gps:hover{color:var(--primary);text-decoration:underline}.td-mono{font-family:monospace;font-size:13px;color:var(--text-muted)}.td-types{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:8px}.badge-type-pestcontrol{background:#dcfce7;color:#15803d}.badge-type-hygiene{background:#dbeafe;color:#1d4ed8}.badge-type-consumables{background:#fef9c3;color:#854d0e}.badge-type-contract{background:#f3e8ff;color:#7e22ce}.badge-clickable{cursor:pointer;transition:all .15s}.badge-clickable:hover{background:#e9d5ff;box-shadow:0 0 0 2px #7e22ce40;transform:scale(1.05)}.badge-type-windows{background:#e0f2fe;color:#0369a1}.badge-type-waste{background:#fce7f3;color:#9d174d}.badge-type-transport{background:#ffedd5;color:#c2410c}.badge-type-deepclean{background:#f1f5f9;color:#475569}.btn-contracts{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:13px;color:var(--primary-dark);cursor:pointer;white-space:nowrap;transition:background .15s}.btn-contracts:hover{background:var(--primary-light);border-color:var(--primary)}.td-actions{display:flex;gap:6px}.btn-icon{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:14px;cursor:pointer;transition:background .15s}.btn-icon:hover{background:var(--bg)}.btn-icon-email:hover{background:#eff6ff;border-color:#3b82f6}.btn-icon-danger:hover{background:var(--danger-light);border-color:var(--danger)}.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600}.badge-active,.badge-Active{background:var(--primary-light);color:var(--primary-dark)}.badge-inactive,.badge-Inactive{background:#f1f5f9;color:var(--text-muted)}.badge-freq-weekly{background:#dcfce7;color:#15803d}.badge-freq-fortnightly{background:#fef9c3;color:#854d0e}.badge-freq-monthly{background:#f3e8ff;color:#7e22ce}.badge-lead,.badge-Lead{background:var(--warning-light);color:var(--warning)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.confirm-dialog{background:var(--card-bg);border-radius:12px;padding:28px 32px;max-width:380px;width:90%;text-align:center}.confirm-dialog p{margin-bottom:20px;font-size:15px;color:var(--text)}.confirm-actions{display:flex;gap:10px;justify-content:center}.import-preview-modal{background:var(--card-bg);border-radius:12px;padding:28px 32px;max-width:820px;width:95%;max-height:85vh;display:flex;flex-direction:column;gap:16px}.import-preview-header{display:flex;align-items:center;justify-content:space-between}.import-preview-header h2{font-size:18px;font-weight:600;color:var(--text);margin:0}.modal-close-btn{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);line-height:1;padding:0 4px}.import-preview-intro{font-size:14px;color:var(--text);margin:0}.import-preview-table-wrap{overflow:auto;flex:1;border:1px solid var(--border);border-radius:8px}.import-preview-table{width:100%;border-collapse:collapse;font-size:13px}.import-preview-table th{background:var(--table-header-bg, #f8f9fa);padding:8px 12px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.import-preview-table td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.import-preview-table tr:last-child td{border-bottom:none}.ipt-customer{font-weight:500;color:var(--text);max-width:200px}.ipt-desc{color:var(--text);max-width:220px}.ipt-old{color:#dc2626;font-variant-numeric:tabular-nums}.ipt-new{color:#15803d;font-weight:600;font-variant-numeric:tabular-nums}.ipt-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.import-preview-note{font-size:13px;color:var(--text-muted);margin:0;font-style:italic}.imp-sum-head{margin:18px 0 2px;font-size:13px;font-weight:700;letter-spacing:.02em}.imp-sum-head:first-child{margin-top:0}.imp-sum-warn{color:#b45309}.imp-sum-note{margin:0 0 8px;font-size:12px;color:var(--text-muted);font-style:italic}.import-preview-actions{display:flex;gap:10px;justify-content:flex-end}.cg-econtract-inline{margin-top:16px;border-top:1px solid var(--border);padding-top:8px}.cg-econtract-title{margin:8px 16px 0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.cust-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid #e2e8f0}.cust-tab{padding:10px 20px;border:none;background:none;cursor:pointer;font-size:.92rem;font-weight:500;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.cust-tab:hover{color:#1e293b}.cust-tab-active{color:#166534;border-bottom-color:#166534;font-weight:600}.changes-group{margin-bottom:20px;border-bottom:1px solid #e5e7eb;padding-bottom:12px}.changes-group:last-child{margin-bottom:0;border-bottom:none}.change-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:600;white-space:nowrap}.change-badge-import-new{background:#dcfce7;color:#15803d}.change-badge-import-change{background:#dbeafe;color:#1d4ed8}.change-badge-archive{background:#fef9c3;color:#854d0e}.change-badge-unarchive{background:#f3e8ff;color:#7e22ce}.change-entry{margin:8px 0;padding:8px 10px;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.change-entry-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.change-entry-details{padding-left:4px}.change-detail-row{display:flex;gap:8px;align-items:baseline;padding:2px 0;font-size:.82rem;line-height:1.4}.change-detail-label{color:#6b7280;flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-detail-val{font-weight:500}.change-val-old{color:#dc2626;text-decoration:line-through;opacity:.75}.change-val-new{color:#16a34a}.cd-recurring-badge{margin-left:.4rem;font-size:.8rem;opacity:.85;cursor:default;vertical-align:middle}.cd-header{margin-bottom:20px}.cd-back-row{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.cd-company-switcher{display:flex;gap:6px;flex-wrap:wrap}.cd-company-btn{padding:5px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s}.cd-company-btn:hover{border-color:var(--primary);color:var(--primary)}.cd-company-btn-active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn-back{background:none;border:none;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;padding:0}.btn-back:hover{text-decoration:underline}.btn-schedule{background:var(--primary);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.btn-schedule:hover{background:var(--primary-dark)}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;text-decoration:underline}.cd-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}.cd-meta{display:flex;gap:16px;margin-top:6px;flex-wrap:wrap}.cd-meta span{font-size:13px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);padding:2px 10px;border-radius:99px}.cd-totals{display:flex;gap:12px;flex-shrink:0}.cd-total-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:12px 18px;text-align:right;min-width:150px}.cd-total-highlight{border-color:var(--primary);background:var(--primary-light)}.cd-total-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.cd-total-value{font-size:18px;font-weight:700;color:var(--text)}.cd-total-highlight .cd-total-value{color:var(--primary-dark)}.cd-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:12px}.cd-tab{background:var(--card-bg);border:1px solid var(--border);border-radius:99px;padding:5px 14px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.cd-tab:hover{border-color:var(--primary);color:var(--primary)}.cd-tab-active{font-weight:600}.cd-tab-count{background:#00000014;border-radius:99px;padding:1px 7px;font-size:11px}.cd-sections{display:flex;flex-direction:column;gap:24px}.cd-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;border-left:4px solid;padding-left:10px}.cd-section-type{font-size:13px;font-weight:700;padding:3px 12px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}.cd-section-total{font-size:14px;font-weight:600;color:var(--text-muted)}.cd-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;overflow-x:auto}.cd-table{width:100%;border-collapse:collapse;min-width:900px;table-layout:fixed}.cd-table th{background:var(--bg);padding:10px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.th-center{text-align:center}.th-num{text-align:right}.cd-table td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text);font-size:13px}.cd-table tbody tr:last-child td{border-bottom:none}.cd-table tbody tr:hover{background:var(--bg)}.td-desc{max-width:260px}.td-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.td-ctr{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.td-highlight{font-weight:600;color:var(--primary-dark)}.badge-bill{display:inline-block;background:var(--bg);border:1px solid var(--border);border-radius:99px;padding:2px 8px;font-size:11px;white-space:nowrap}.cd-table tfoot td{padding:10px 12px;background:var(--bg);font-size:13px;border-top:2px solid var(--border)}.tfoot-label{font-weight:600;color:var(--text-muted);text-align:right}.tfoot-val{font-weight:700;color:var(--text)}.cd-tab-reports{margin-left:auto}.cd-reports-panel{margin-bottom:24px}.cd-reports-table{min-width:600px}.rpt-signed-badge{display:inline-block;background:#dcfce7;color:#15803d;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.rpt-unsigned-badge{display:inline-block;background:#f1f5f9;color:#64748b;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.rpt-send{margin-top:14px;border-top:1px solid var(--border, #e2e8f0);padding-top:12px}.rpt-send-row{display:flex;gap:10px;flex-wrap:wrap}.rpt-send-row label{flex:1 1 220px;display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:#475569}.rpt-send-msg{margin-top:8px;font-size:.85rem;padding:6px 10px;border-radius:6px}.rpt-send-msg.ok{background:#f0fdf4;color:#166534}.rpt-send-msg.err{background:#fef2f2;color:#b91c1c}.reports-toolbar{display:flex;align-items:center;gap:1rem;padding:0 1.5rem 1rem;flex-wrap:wrap}.reports-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:0 1.5rem 1.5rem}.reports-table{width:100%;border-collapse:collapse;font-size:.875rem}.reports-table th{text-align:left;padding:10px 16px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#f8fafc;border-bottom:1px solid var(--border)}.reports-table td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.reports-table tbody tr:last-child td{border-bottom:none}.reports-table tbody tr:hover{background:#f8fafc}.rpt-signed-badge{display:inline-block;padding:2px 9px;background:#dcfce7;color:#15803d;border-radius:99px;font-size:.78rem;font-weight:600}.rpt-unsigned-badge{display:inline-block;padding:2px 9px;background:#f1f5f9;color:#64748b;border-radius:99px;font-size:.78rem;font-weight:600}.rpt-modal{width:780px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column}.rpt-preview-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;min-height:0}.rpt-preview-sig-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:580px){.rpt-preview-sig-row{grid-template-columns:1fr}}.rpt-sig-block{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:.9rem}.rpt-sig-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#15803d}.rpt-sig-img{max-width:100%;height:90px;object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:6px}.rpt-sig-time{font-size:.75rem;color:#15803d;font-weight:600}.rpt-no-sig{display:flex;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.9rem;font-size:.85rem;color:var(--text-muted)}.rpt-meta-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.9rem;display:flex;flex-direction:column;gap:.55rem}.rpt-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;gap:.5rem}.rpt-meta-row span{color:var(--text-muted)}.rpt-meta-row strong{color:var(--text);text-align:right}.rpt-body-text{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;font-family:Courier New,Courier,monospace;font-size:.72rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:#1e293b;overflow-y:auto;max-height:320px}.stv-back-row{margin-bottom:20px}.stv-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.stv-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}.stv-customers{display:flex;flex-direction:column;gap:20px}.stv-empty{color:var(--text-muted);padding:32px 0}.stv-customer-block{background:var(--card-bg);border:1px solid var(--border);border-left:4px solid;border-radius:10px;overflow:hidden}.stv-customer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg)}.stv-customer-meta{display:flex;flex-direction:column;gap:4px}.stv-customer-name{font-size:15px;font-weight:700;color:var(--text)}.stv-customer-details{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-muted)}.stv-customer-details span:before{content:""}.stv-customer-details span+span:before{content:"·  "}.stv-customer-total{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.stv-total-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.stv-total-value{font-size:16px;font-weight:700}.stv-table-wrap{overflow-x:auto}.stv-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;min-width:900px}.stv-table th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}.stv-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text)}.stv-table tbody tr:last-child td{border-bottom:none}.stv-table tbody tr:hover{background:var(--hover-bg, #f8fafc)}.stv-table tfoot td{padding:10px 12px;font-size:12px;background:var(--bg);border-top:1px solid var(--border)}.job-window-panel{border:1px solid #bae6fd;background:#f0f9ff;border-radius:8px;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.625rem}.job-window-panel-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#0369a1}.job-window-exec-row,.job-biz-row{display:flex;gap:.5rem;flex-wrap:wrap}.job-exec-option{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid #bae6fd;border-radius:20px;cursor:pointer;font-size:.875rem;color:#0369a1;background:#fff;transition:background .15s,border-color .15s}.job-exec-option input[type=radio]{accent-color:#0369a1;width:14px;height:14px}.job-exec-option-active{background:#0369a1;border-color:#0369a1;color:#fff}.job-exec-option-active input[type=radio]{accent-color:#fff}.job-window-sheet-fields{display:flex;flex-direction:column;gap:.25rem;border-top:1px solid #bae6fd;padding-top:.625rem;margin-top:.125rem}.job-window-sheet-hint{margin:0;font-size:.75rem;color:#0369a1;font-style:italic}.job-sheet-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;white-space:nowrap}.job-sheet-badge-link{cursor:pointer;transition:background .12s,color .12s}.job-sheet-badge-link:hover{background:#bae6fd;color:#0c4a6e}.job-report-badge{background:#dcfce7;color:#15803d;border-color:#86efac}.job-report-badge:hover{background:#bbf7d0;color:#166534}.btn-icon-report{color:#15803d}.autocomplete-wrap{position:relative}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--primary);border-top:none;border-radius:0 0 8px 8px;z-index:200;max-height:220px;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.autocomplete-item{padding:9px 12px;cursor:pointer;font-size:13px;color:var(--text);border-bottom:1px solid var(--border)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--primary-light);color:var(--primary-dark)}.job-contract-panel{border:1px solid;border-radius:8px;overflow:hidden;margin-bottom:4px}.job-contract-panel-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px}.job-contract-panel-title{font-weight:600}.job-contract-panel-total{font-weight:700}.job-contract-table{width:100%;border-collapse:collapse;font-size:12px;background:#ffffff8c}.job-contract-table th{text-align:left;padding:6px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-top:1px solid rgba(0,0,0,.07);border-bottom:1px solid rgba(0,0,0,.07)}.job-contract-table td{padding:7px 12px;color:var(--text);border-bottom:1px solid rgba(0,0,0,.05)}.job-contract-table tbody tr:last-child td{border-bottom:none}.job-contract-amt{font-weight:600;text-align:right}.job-contract-qty{text-align:center;font-variant-numeric:tabular-nums;color:#475569}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}@media(max-width:640px){.form-row-3{grid-template-columns:1fr}}.th-check,.td-check{width:32px;padding:7px 4px 7px 10px!important}.service-checkbox{width:15px;height:15px;cursor:pointer;accent-color:currentColor}.service-row-checked{background:#fff9!important}.td-checked-desc{font-weight:600}.job-contract-ticked{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:99px;font-size:11px;font-weight:700;color:#fff;vertical-align:middle}.trm-modal{width:900px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column}.trm-steps{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.trm-step-tab{padding:.3rem .9rem;border-radius:20px;font-size:.8rem;font-weight:600;color:#94a3b8;background:#f1f5f9}.trm-step-tab.active{background:#1e40af;color:#fff}.trm-step-tab.done{background:#dcfce7;color:#15803d}.trm-step-arrow{color:#cbd5e1;font-size:.9rem}.trm-body{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:1.25rem 1.5rem;overflow-y:auto;flex:1;min-height:0}.trm-view-body{grid-template-columns:1.6fr 1fr}@media(max-width:640px){.trm-body{grid-template-columns:1fr}}.trm-left,.trm-right{display:flex;flex-direction:column;gap:.75rem;min-width:0}.trm-col-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:0rem}.trm-job-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.85rem 1rem}.trm-job-customer{font-weight:700;color:#1e293b;font-size:1rem;margin-bottom:.2rem}.trm-job-meta{font-size:.82rem;color:#64748b}.trm-job-svcs{margin-top:.5rem;padding-left:.25rem;list-style:none;font-size:.82rem;color:#475569;display:flex;flex-direction:column;gap:.15rem}.trm-svc-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;overflow-y:auto;max-height:300px}.trm-svc-table{width:100%;border-collapse:collapse;font-size:.8rem}.trm-svc-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.trm-svc-table th{padding:6px 10px;text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;white-space:nowrap}.trm-svc-th-check{width:28px;padding:6px 4px 6px 8px!important}.trm-svc-th-qty{width:80px;text-align:center!important}.trm-svc-table td{padding:7px 10px;border-bottom:1px solid #f1f5f9;vertical-align:middle;color:#1e293b}.trm-svc-table tbody tr:last-child td{border-bottom:none}.trm-svc-table tbody tr:hover,.trm-svc-row-skipped{background:#fafafa}.trm-svc-td-check{width:28px;padding:7px 4px 7px 8px!important}.trm-svc-td-qty{text-align:center}.trm-svc-desc{font-size:.8rem}.trm-svc-desc-skip{color:#94a3b8;text-decoration:line-through}.trm-svc-contracted{color:#64748b;font-variant-numeric:tabular-nums}.trm-svc-checkbox{width:15px;height:15px;cursor:pointer;accent-color:#1e40af}.trm-qty-input{width:62px;padding:3px 6px;border:1.5px solid #e2e8f0;border-radius:5px;font-size:.82rem;text-align:center;outline:none;background:#fff;font-variant-numeric:tabular-nums}.trm-qty-input:focus{border-color:#3b82f6}.trm-qty-input.trm-qty-variance{border-color:#f59e0b;background:#fffbeb;color:#b45309;font-weight:600}.trm-svc-not-done{font-size:.72rem;color:#ef4444;font-style:italic}.trm-field-hint{font-size:.8rem;color:#64748b;line-height:1.5}.trm-sig-pad-wrap{display:flex;flex-direction:column;gap:.3rem}.trm-sig-canvas{width:100%;height:180px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;display:block;touch-action:none;cursor:crosshair}.trm-sig-canvas.has-sig{border-color:#3b82f6}.trm-sig-hint{font-size:.78rem;color:#94a3b8}.trm-clear-btn{background:none;border:none;color:#ef4444;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}.trm-clear-btn:hover{color:#dc2626}.btn-accept-sig{width:100%;padding:.7rem 1rem;background:#15803d;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer}.btn-accept-sig:hover{background:#166534}.trm-sig-received{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:.75rem}.trm-sig-img{max-width:100%;height:80px;object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:6px}.trm-sig-time{font-size:.75rem;color:#15803d;font-weight:600}.trm-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.85rem 1rem;font-family:Courier New,Courier,monospace;font-size:.72rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:#1e293b;overflow-y:auto;max-height:260px;flex:1}.trm-optional{font-weight:400;color:#94a3b8;font-size:.78rem}.trm-prefilled{font-weight:400;color:#22c55e;font-size:.78rem}.trm-cc-note{font-size:.78rem;color:#475569;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:.45rem .7rem}.trm-cc-note-warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.trm-saved-badge{padding:.6rem .9rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;color:#15803d;font-size:.85rem;font-weight:600}.rcm-modal{width:520px;max-width:96vw}.rcm-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem}.rcm-info-card{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:.85rem 1rem}.rcm-info-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#0369a1;margin-bottom:.3rem}.rcm-info-freq{font-size:1.05rem;color:#0c4a6e;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.rcm-info-sep{color:#7dd3fc}.rcm-info-interval{background:#0369a1;color:#fff;padding:2px 10px;border-radius:99px;font-size:.82rem;font-weight:600}.rcm-info-sub{font-size:.82rem;color:#0369a1;margin-top:.3rem}.rcm-count-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.rcm-count-label{font-size:.875rem;color:var(--text);flex:1}.rcm-count-label em{font-style:normal;font-weight:600}.rcm-count-controls{display:flex;align-items:center;gap:.4rem}.rcm-step-btn{width:32px;height:32px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.rcm-step-btn:hover{background:#f1f5f9}.rcm-count-input{width:64px;text-align:center;padding:5px 8px;border:1.5px solid var(--border);border-radius:7px;font-size:1rem;font-weight:700;color:var(--text);background:var(--card-bg)}.rcm-count-input:focus{outline:none;border-color:#3b82f6}.rcm-how-it-works{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem 1rem}.rcm-how-title{font-size:.82rem;font-weight:700;color:#475569;margin-bottom:.4rem}.rcm-how-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.25rem}.rcm-how-list li{font-size:.82rem;color:#475569;line-height:1.5}.rcm-preview-wrap{background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.rcm-preview-label{font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem}.rcm-preview-list{display:flex;flex-wrap:wrap;gap:.35rem;max-height:180px;overflow-y:auto}.rcm-preview-date{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:3px 10px;font-size:.78rem;color:#1e293b;white-space:nowrap}.rcm-preview-empty{font-size:.82rem;color:#94a3b8;font-style:italic}.btn-ss-primary{background:#7c3aed;color:#fff;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-ss-primary:hover:not(:disabled){background:#6d28d9}.btn-ss-primary:disabled{opacity:.55;cursor:not-allowed}.ss-table-wrap{width:100%}.ssg-row{display:grid;grid-template-columns:1.8fr 2fr 1.4fr 1.2fr 1.8fr 100px;align-items:center;gap:0}.ssg-header{background:#f1f5f9;border-radius:8px 8px 0 0;border:1px solid #e2e8f0}.ssg-data{border:1px solid #e2e8f0;border-top:none;transition:background .12s}.ssg-data:hover{background:#faf5ff}.ssg-data:last-child{border-radius:0 0 8px 8px}.ssg-cell{padding:.7rem 1rem;font-size:.875rem;color:#334155;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssg-header .ssg-cell{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.ssg-name{font-weight:600;color:#1e293b}.ssg-secondary{color:#64748b}.ssg-email{color:#7c3aed}.ssg-actions{display:flex;gap:.35rem}.btn-icon{background:none;border:1px solid #e2e8f0;border-radius:5px;padding:.3rem .5rem;cursor:pointer;font-size:.85rem;transition:background .12s}.btn-icon:hover{background:#f1f5f9}.btn-icon-del:hover{background:#fee2e2;border-color:#fca5a5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal-box{background:var(--card-bg, #fff);border-radius:14px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column}.modal-sm{max-width:420px}.modal-lg{max-width:760px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;font-size:1rem;font-weight:700;color:#1e293b}.modal-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#94a3b8;line-height:1;padding:0}.modal-close:hover{color:#475569}.modal-body{padding:1.25rem;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid #e2e8f0}.form-group{margin-bottom:.9rem}.form-label{display:block;font-size:.8rem;font-weight:600;color:#475569;margin-bottom:.3rem}.form-input{width:100%;box-sizing:border-box;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:7px;font-size:.875rem;color:#1e293b;background:#fff;transition:border-color .15s}.form-input:focus{outline:none;border-color:#7c3aed}.form-input:disabled{background:#f8fafc;color:#94a3b8}.form-select{width:100%;box-sizing:border-box;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:7px;font-size:.875rem;color:#1e293b;background:#fff;cursor:pointer;transition:border-color .15s}.form-select:focus{outline:none;border-color:#7c3aed}textarea.form-input{resize:vertical;min-height:72px}.btn-danger{background:#dc2626;color:#fff;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-danger:hover{background:#b91c1c}.company-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.company-tab{display:flex;align-items:center;gap:.5rem;padding:.45rem 1.1rem;border-radius:20px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s}.company-tab:hover{background:#f1f5f9;border-color:#cbd5e1}.company-tab-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.company-tab-active:hover{background:#6d28d9}.company-tab-count{background:#0000001f;border-radius:10px;padding:.1rem .45rem;font-size:.75rem;font-weight:700;min-width:20px;text-align:center}.company-tab-active .company-tab-count{background:#ffffff40}.empty-state{text-align:center;padding:3rem 1.5rem;color:#94a3b8;font-size:.9rem}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:6px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:#e2e8f0}.js-form-layout{display:flex;flex-direction:column;gap:0}.js-job-info-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.25rem}.js-info-chip{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.35rem .75rem;display:flex;flex-direction:column;gap:.1rem;min-width:100px}.js-info-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7c3aed}.js-info-val{font-size:.9rem;font-weight:600;color:#1e293b}.js-date-input{font-size:.9rem;font-weight:600;color:#1e293b;background:transparent;border:none;border-bottom:1.5px solid #c4b5fd;border-radius:0;padding:0;margin:0;outline:none;cursor:pointer;width:auto}.js-date-input:focus{border-bottom-color:#7c3aed}.builder-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem 1rem}@media(max-width:700px){.builder-grid-3{grid-template-columns:1fr}}.cleaner-search-row{margin-bottom:.5rem;position:relative}.cleaner-dropdown{border:1px solid #ddd6fe;border-radius:6px;background:#fff;box-shadow:0 4px 12px #0000001a;margin-bottom:.75rem;overflow:hidden}.cleaner-option{padding:.55rem 1rem;cursor:pointer;font-size:.875rem;color:#334155;border-bottom:1px solid #f1f5f9;transition:background .1s}.cleaner-option:last-child{border-bottom:none}.cleaner-option:hover{background:#faf5ff;color:#7c3aed}.cleaners-table{margin-top:.5rem;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.cl-row{display:grid;grid-template-columns:36px 100px 1fr 90px 80px 36px;align-items:center}.cl-header{background:#f8fafc}.cl-data{border-top:1px solid #f1f5f9}.cl-data:hover{background:#faf5ff}.cl-cell{padding:.5rem .75rem;font-size:.875rem;color:#334155}.cl-header .cl-cell{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.cl-num{color:#94a3b8;font-size:.8rem}.cl-name{font-weight:600;color:#1e293b}.cl-tbt{display:flex;justify-content:center}.cl-tbt input{width:16px;height:16px;accent-color:#7c3aed;cursor:pointer}.form-hint{font-size:.8rem;color:#94a3b8;margin-top:.75rem}.sig-pad-wrap{border:2px dashed #ddd6fe;border-radius:10px;background:#faf5ff;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.sig-canvas{width:100%;height:140px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:crosshair;touch-action:none;display:block}.sig-pad-hint{font-size:.75rem;color:#94a3b8;text-align:center}.sig-pad-actions{display:flex;gap:.5rem;justify-content:flex-end}.sig-captured{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.sig-preview-img{max-height:70px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;display:block}.sig-captured-meta{font-size:.78rem;color:#16a34a;font-weight:600}.js-print-page{background:#fff;max-width:750px;margin:1.5rem auto;padding:2rem 2.5rem;border-radius:4px;box-shadow:0 2px 12px #0000001f;font-family:Arial,sans-serif;font-size:.85rem;color:#1e293b;line-height:1.5}.js-section-title{font-size:1.1rem;font-weight:700;text-align:center;background:#7c3aed;color:#fff;padding:.6rem 1rem;margin-bottom:.35rem;border-radius:4px}.js-subheader{font-size:.78rem;text-align:center;color:#64748b;margin-bottom:1rem}.js-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;margin-bottom:.5rem}.js-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem 1.5rem;margin-bottom:.5rem}.js-field{font-size:.85rem;padding:.3rem 0;border-bottom:1px solid #e2e8f0}.js-field-full{padding:.3rem 0;border-bottom:1px solid #e2e8f0;margin-bottom:.4rem}.js-label{font-weight:700;font-size:.82rem;color:#64748b;margin-right:.35rem}.js-text-block{min-height:28px;white-space:pre-wrap;padding:.35rem;background:#f8fafc;border-radius:3px;font-size:.85rem;margin-top:.25rem}.js-cleaners-table{width:100%;border-collapse:collapse;margin:.75rem 0}.js-cleaners-table th{background:#7c3aed;color:#fff;padding:.45rem .6rem;font-size:.78rem;text-align:left}.js-cleaners-table td{padding:.35rem .6rem;border-bottom:1px solid #e2e8f0;font-size:.82rem;min-height:22px}.js-cleaners-table tr:nth-child(2n) td{background:#f8fafc}.js-sig-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1rem 0}.js-sig-line{border-bottom:2px solid #1e293b;margin-top:2rem}.tbt-section{margin-bottom:.75rem}.tbt-section-title{font-weight:700;font-size:.88rem;color:#7c3aed;margin-bottom:.3rem}.tbt-point{font-size:.82rem;padding:.2rem 0 .2rem 1rem;border-left:3px solid #ddd6fe;margin-bottom:.25rem}.tbt-declaration{background:#faf5ff;border:1px solid #ddd6fe;border-radius:4px;padding:.75rem;margin:.75rem 0}.tbt-decl-text{font-size:.82rem;line-height:1.6;color:#334155}.tbt-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:1rem}.tbt-form-section{background:#faf5ff;border:1px solid #ede9fe;border-radius:8px;padding:.65rem 1rem;margin-bottom:.6rem}.tbt-form-section-title{font-weight:700;font-size:.85rem;color:#6d28d9;margin-bottom:.4rem}.tbt-form-point{font-size:.8rem;color:#475569;line-height:1.55;padding:.1rem 0 .1rem .5rem}.tbt-checklist-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7c3aed;margin-bottom:.5rem}.tbt-checklist{display:flex;flex-direction:column;gap:.35rem}.tbt-check-row{display:flex;align-items:center;gap:.65rem;padding:.55rem .85rem;border-radius:7px;border:1.5px solid #e2e8f0;background:#f8fafc;cursor:pointer;transition:background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.tbt-check-row:hover{background:#f1f5f9;border-color:#cbd5e1}.tbt-check-row.tbt-done{background:#f0fdf4;border-color:#86efac}.tbt-checkbox{width:17px;height:17px;accent-color:#16a34a;cursor:pointer;flex-shrink:0}.tbt-check-name{font-size:.875rem;color:#1e293b;font-weight:500;flex:1}.tbt-done-badge{font-size:.72rem;font-weight:700;color:#16a34a;background:#dcfce7;border-radius:12px;padding:.15rem .55rem;letter-spacing:.02em}.photo-grid{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.75rem}.photo-thumb{position:relative;width:130px;height:100px;border-radius:8px;overflow:hidden;border:1.5px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.photo-thumb-img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:opacity .15s}.photo-thumb-img:hover{opacity:.88}.photo-thumb-del{position:absolute;top:4px;right:4px;background:#0000008c;color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.photo-thumb:hover .photo-thumb-del{opacity:1}.js-page-break{page-break-after:always;border-top:3px dashed #e2e8f0;margin:1.5rem 0}@media(max-width:700px){.cleaners-table{overflow-x:auto}.cl-row{grid-template-columns:28px 80px 1fr 70px 60px 28px}.cl-cell{padding:.4rem .5rem;font-size:.8rem}.js-job-info-row{gap:.5rem}.js-info-chip{min-width:80px}.sig-canvas{height:180px}.photo-grid{gap:.5rem}.photo-thumb{width:calc(50% - .25rem);height:90px}.js-print-page{padding:1rem;margin:.5rem}.js-row-2,.js-row-3{grid-template-columns:1fr}}@media print{.no-print{display:none!important}.print-wrapper{background:#fff}.js-print-page{box-shadow:none;margin:0;max-width:100%}.js-page-break{page-break-after:always;border:none;margin:.5rem 0}}.badge-recurring{font-size:.8rem;opacity:.7;cursor:default}.recurring-panel{margin:0 1.5rem 1rem;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.recurring-panel-toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8fafc;border:none;cursor:pointer;font-size:.82rem;font-weight:600;color:#475569;text-align:left}.recurring-panel-toggle:hover{background:#f1f5f9}.recurring-toggle-arrow{margin-left:auto;font-size:.7rem;color:#94a3b8}.recurring-panel-body{border-top:1px solid #e2e8f0}.recurring-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid #f1f5f9;gap:1rem}.recurring-row:last-child{border-bottom:none}.recurring-row-cancelled{opacity:.45}.recurring-row-info{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-width:0}.recurring-customer{font-weight:600;font-size:.85rem;color:#1e293b}.recurring-detail{font-size:.78rem;color:#64748b;background:#f1f5f9;padding:1px 8px;border-radius:99px}.recurring-row-actions{flex-shrink:0}.btn-cancel-schedule{padding:4px 10px;border:1px solid #fca5a5;border-radius:6px;background:none;color:#ef4444;font-size:.78rem;cursor:pointer;font-weight:600}.btn-cancel-schedule:hover{background:#fee2e2}.recurring-cancelled-badge{font-size:.75rem;color:#94a3b8;font-style:italic}.view-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-btn{background:var(--card-bg);border:none;padding:8px 14px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s}.view-btn:first-child{border-right:1px solid var(--border)}.view-btn.active{background:var(--primary);color:#fff;font-weight:600}.jobs-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.status-filters{display:flex;gap:6px;flex-wrap:wrap}.filter-chip{background:var(--card-bg);border:1px solid var(--border);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s}.filter-chip:hover{border-color:var(--primary);color:var(--primary)}.filter-chip.active{font-weight:600}.chip-count{background:#00000014;border-radius:99px;padding:1px 6px;font-size:11px}.jobs-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.jg-row{display:grid;grid-template-columns:100px 145px 110px minmax(100px,200px) 125px 75px 95px 110px;align-items:start}.jg-header{background:var(--bg);border-bottom:1px solid var(--border)}.jg-header .jg-cell{padding:11px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}.jg-data{border-bottom:1px solid var(--border);color:var(--text)}.jg-data:last-child{border-bottom:none}.jg-data:hover{background:var(--bg)}.jg-data .jg-cell{padding:13px 14px;font-size:13px}.row-overdue .jg-cell:first-child{border-left:3px solid var(--danger)}.td-date{white-space:nowrap}.date-main{display:block;font-weight:600}.date-time{display:block;font-size:12px;color:var(--text-muted);margin-top:2px}.td-desc{max-width:220px;color:var(--text-muted)}.job-services-list{margin:0;padding:0 0 0 14px;font-size:12px;color:var(--text);list-style:disc;white-space:normal}.job-services-list li{line-height:1.5}.calendar-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.cal-area-toggle{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px}.cal-area-btn{background:none;border:none;border-radius:5px;padding:4px 12px;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s;white-space:nowrap}.cal-area-btn.active{background:var(--card-bg);color:var(--primary);font-weight:600;box-shadow:0 1px 3px #0000001a}.cal-area-btn:hover:not(.active){background:var(--card-bg);color:var(--text)}.cal-month-label{font-size:17px;font-weight:700;color:var(--text)}.cal-nav-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:4px 12px;font-size:18px;cursor:pointer;color:var(--text-muted);line-height:1.4}.cal-nav-btn:hover{background:var(--bg);color:var(--text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-day-header{padding:10px 0;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.cal-cell{min-height:100px;padding:6px 8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top}.cal-empty{background:#fafafa}.cal-today{background:var(--primary-light)}.cal-date-num{display:inline-block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.cal-today .cal-date-num{background:var(--primary);color:#fff;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px}.cal-jobs{display:flex;flex-direction:column;gap:3px}.cal-job-pill{font-size:11px;font-weight:500;padding:2px 6px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s}.cal-job-pill:hover{opacity:.8}.cal-more{font-size:11px;color:var(--text-muted);padding:1px 4px}.cal-view-toggle{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px}.cal-view-btn{background:none;border:none;border-radius:5px;padding:4px 12px;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.cal-view-btn.active{background:var(--card-bg);color:var(--primary);font-weight:600;box-shadow:0 1px 3px #0000001a}.cal-today-btn{font-size:12px;padding:4px 10px}.cal-week-grid{display:grid;grid-template-columns:repeat(7,1fr);min-height:480px}.cal-week-cell{border-right:1px solid var(--border);display:flex;flex-direction:column}.cal-week-cell:last-child{border-right:none}.cal-week-day-header{padding:10px 8px 8px;border-bottom:1px solid var(--border);background:var(--bg);text-align:center;flex-shrink:0}.cal-today .cal-week-day-header{background:var(--primary-light, #eff6ff)}.cal-week-day-name{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:5px}.cal-week-date-num{display:inline-block;font-size:16px;font-weight:600;color:var(--text);line-height:1}.cal-week-today-num{background:var(--primary);color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.cal-week-jobs{padding:6px;flex:1;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.cal-job-pill-week{white-space:normal;display:flex;flex-direction:column;gap:1px;padding:5px 7px;border-radius:5px}.cal-pill-time{font-size:10px;font-weight:700;opacity:.75}.cal-pill-name{font-size:12px;font-weight:600;line-height:1.2}.cal-pill-svc{font-size:10px;opacity:.7}.cal-no-jobs{font-size:11px;color:var(--text-muted);padding:4px 2px}.audit-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.audit-filters{display:flex;gap:6px;flex-wrap:wrap}.audit-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.audit-table{width:100%;border-collapse:collapse;font-size:13px}.audit-table th{text-align:left;padding:11px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}.audit-row td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.audit-row:last-child td{border-bottom:none}.audit-row:hover td{background:var(--hover-bg, #f8fafc)}.audit-ts{white-space:nowrap;font-size:12px;color:var(--text-muted)}.audit-user-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--border);border-radius:99px;padding:2px 10px;font-size:12px;font-weight:500;white-space:nowrap}.audit-action-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.audit-entity{white-space:nowrap;font-size:12px;color:var(--text-muted)}.audit-summary{max-width:300px}.btn-diff{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 10px;font-size:11px;cursor:pointer;color:var(--text-muted);white-space:nowrap}.btn-diff:hover{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.audit-diff-row td{padding:0 14px 14px 40px;background:var(--bg);border-bottom:1px solid var(--border)}.diff-table{width:100%;border-collapse:collapse;font-size:12px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.diff-table th{text-align:left;padding:6px 12px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);background:var(--card-bg);border-bottom:1px solid var(--border)}.diff-table td{padding:6px 12px;border-bottom:1px solid var(--border)}.diff-table tbody tr:last-child td{border-bottom:none}.diff-field{font-weight:600;color:var(--text-muted);width:140px}.diff-old{color:#dc2626;background:#fef2f2;text-decoration:line-through}.diff-new{color:#15803d;background:#f0fdf4}.diff-none{font-size:12px;color:var(--text-muted)}.users-table .th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.users-table .th-sortable:hover{background:#e8f0fe;color:#4338ca}.sort-icon{margin-left:4px;font-size:11px}.sort-none{opacity:.35}.sort-active{color:#7c3aed}.client-company-search-wrap{position:relative}.client-company-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--bg-primary);border:1.5px solid var(--primary);border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:200;overflow:hidden}.client-company-option{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;gap:8px;font-size:.875rem}.client-company-option:hover{background:var(--bg-secondary)}.client-co-name{font-weight:500;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-co-no{flex-shrink:0;font-size:.75rem;color:var(--text-muted)}.client-company-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.client-company-tag{display:inline-flex;align-items:center;gap:5px;background:#fff7ed;color:#c2410c;border:1.5px solid #fed7aa;border-radius:16px;padding:3px 10px 3px 12px;font-size:.82rem;font-weight:500}.client-company-tag button{background:none;border:none;color:#c2410c;cursor:pointer;font-size:1rem;line-height:1;padding:0;opacity:.7}.client-company-tag button:hover{opacity:1}.sectors-grid{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.sector-chip{padding:.3rem .8rem;border-radius:20px;border:1.5px solid var(--border);background:var(--bg);font-size:.82rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .12s}.sector-chip:hover{border-color:#15803d;color:#15803d}.sector-chip-on{background:#dcfce7;border-color:#15803d;color:#15803d;font-weight:600}.users-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:0 1.5rem 1.5rem}.users-table{width:100%;border-collapse:collapse;font-size:.875rem}.users-table th{text-align:left;padding:10px 16px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#f8fafc;border-bottom:1px solid var(--border)}.users-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr:hover{background:#f8fafc}.row-inactive{opacity:.5}.td-name{font-weight:600}.td-name-inner{display:inline-flex;align-items:center;gap:.4rem}.td-username{color:var(--text-muted);font-family:monospace}.td-email,.td-date{color:var(--text-muted);font-size:.82rem}.users-table td.td-actions{display:table-cell;white-space:nowrap}.users-table td.td-actions>*+*{margin-left:4px}.users-you-badge{display:inline-block;padding:1px 7px;background:var(--primary-light);color:var(--primary-dark);border-radius:99px;font-size:.7rem;font-weight:700}.badge-active{background:#dcfce7;color:#15803d}.badge-inactive{background:#f1f5f9;color:#64748b}.email-settings-panel{margin-top:32px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.email-settings-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:none;border:none;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;text-align:left}.email-settings-toggle:hover{background:var(--hover-bg)}.email-status-dot{font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}.dot-active{background:#dcfce7;color:#15803d}.dot-inactive{background:#f1f5f9;color:#64748b}.email-settings-body{padding:0 20px 20px;border-top:1px solid var(--border)}.email-settings-desc{margin:16px 0;font-size:13px;color:var(--text-muted)}.email-form-grid{display:flex;flex-direction:column;gap:12px;max-width:500px}.email-form-grid .form-row{display:flex;gap:12px}.email-form-grid .form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.email-form-grid input[type=text],.email-form-grid input[type=email],.email-form-grid input[type=number],.email-form-grid input[type=password]{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--input-bg, #fff);color:var(--text)}.email-form-grid input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light, rgba(59,130,246,.15))}.email-actions-row{display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}.email-test-row{display:flex;gap:8px;align-items:center}.email-test-input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;width:220px}.cal-area-section{border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.cal-credentials-section{border:1px solid var(--border);border-radius:8px;padding:1rem}.cal-area-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--primary)}.cal-reset-link{background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:2px 0;margin-top:4px;display:inline-block}.cal-reset-link:hover{color:var(--primary)}.email-status-msg{margin-top:12px;font-size:13px;padding:8px 12px;border-radius:6px;background:#f8fafc;border:1px solid var(--border)}.email-help{margin-top:20px;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:13px;color:#78350f}.email-help p{margin:0 0 8px}.email-help ol{margin:0;padding-left:20px}.email-help li{margin-bottom:4px}.email-help a{color:#1d4ed8}.perm-panel{margin-top:32px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.perm-panel-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:none;border:none;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;text-align:left}.perm-panel-toggle:hover{background:var(--hover-bg)}.perm-panel-body{border-top:1px solid var(--border);padding:20px}.perm-scroll{overflow-x:auto}.perm-top-scroll{overflow-x:auto;overflow-y:hidden;height:16px;margin-bottom:4px}.perm-hint{font-size:12px;color:var(--text-muted);margin-bottom:16px}.perm-matrix{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}.perm-matrix td:first-child,.perm-matrix th:first-child{position:sticky;left:0;background:inherit;z-index:2}.perm-matrix th{padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#f8fafc;border-bottom:2px solid var(--border);text-align:center;white-space:nowrap}.perm-matrix th:first-child{text-align:left;min-width:180px;background:#f8fafc}.perm-matrix td{padding:8px 14px;border-bottom:1px solid #f1f5f9;text-align:center;vertical-align:middle}.perm-matrix td:first-child{text-align:left;color:var(--text);font-weight:500;background:var(--card-bg)}.perm-section-row td{background:#f1f5f9!important;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:6px 14px;border-bottom:1px solid var(--border)}.perm-matrix tbody tr:hover td,.perm-matrix tbody tr:hover td:first-child{background:#f8fafc}.perm-cb{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}.perm-user-th{min-width:110px}.perm-role-th{background:#f8fafc!important;border-right:2px solid #cbd5e1}.perm-role-td{background:#f8fafc;border-right:2px solid #e2e8f0}.perm-user-name{display:block;font-size:12px;font-weight:700;color:var(--text);text-transform:none;letter-spacing:0;margin-bottom:2px}.perm-user-role{display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;border-radius:99px}.perm-save-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:12px;flex-wrap:wrap}.perm-save-status{font-size:13px;color:#15803d;background:#dcfce7;padding:6px 14px;border-radius:8px}.perm-reset-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:background .15s}.perm-reset-btn:hover{background:var(--bg);color:var(--text)}.perm-tpl-check{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.perm-tpl-check input{cursor:pointer;accent-color:#7c3aed}.users-header-actions{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}.restart-server{display:flex;flex-direction:column;align-items:flex-end;max-width:340px}.btn-restart{background:#fff;color:#b91c1c;border:1px solid #fecaca;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.btn-restart:hover:not(:disabled){background:#fef2f2}.btn-restart:disabled{color:#64748b;border-color:#e2e8f0;cursor:default}.restart-error{margin-top:6px;font-size:12px;color:#b91c1c;text-align:right}.perm-matrix .perm-grp{border-left:1px solid var(--border)}.perm-matrix th.perm-sub-th{padding:4px 8px;font-size:10px;letter-spacing:.06em;background:#f1f5f9}.perm-matrix td{padding:8px}.perm-cb-follow{opacity:.35;cursor:help}.perm-fill{margin-top:6px;display:flex;gap:4px;justify-content:center;align-items:center;font-size:10px;text-transform:none;letter-spacing:0;font-weight:600}.perm-fill-btn{padding:2px 7px;font-size:10px;font-weight:600;border-radius:10px;cursor:pointer;border:1px solid #ddd6fe;background:#fff;color:#6d28d9;text-transform:none;letter-spacing:0}.perm-fill-btn.on{background:#7c3aed;border-color:#7c3aed;color:#fff}.perm-matrix tr.perm-sub-row td:first-child{padding-left:26px;color:var(--text-muted)}.qbs{padding:12px 16px 16px;font-size:.9rem;color:var(--text, #1e293b)}.qbs section{margin-bottom:18px}.qbs h4{margin:0 0 6px;font-size:.9rem}.qbs-hint{font-size:.78rem;color:var(--text-muted, #64748b);margin:4px 0}.qbs-code{display:block;margin-top:4px;padding:6px 8px;background:#f1f5f9;border-radius:6px;font-size:.8rem;-webkit-user-select:all;user-select:all;word-break:break-all}.qbs-keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.qbs-keys .form-input{flex:1 1 220px;min-width:0}.qbs-keys .form-select{flex:0 0 auto}.qbs-table{width:100%;border-collapse:collapse}.qbs-table td{padding:8px 6px;border-bottom:1px solid var(--border, #e2e8f0);vertical-align:top}.qbs-co{font-weight:700;white-space:nowrap;width:1%}.qbs-actions{text-align:right;white-space:nowrap}.qbs-btn{display:inline-block;margin-left:6px;text-decoration:none;padding:6px 12px;font-size:.8rem}.qbs-disabled{opacity:.5;pointer-events:none}.qbs-good{color:#15803d;font-weight:700}.qbs-bad{color:#b45309;font-weight:700}.qbs-muted{color:var(--text-muted, #64748b)}.qbs-users{display:flex;flex-wrap:wrap;gap:6px 18px}.qbs-user{display:flex;align-items:center;gap:6px;cursor:pointer}.qbs-msg{margin-bottom:10px;padding:8px 10px;border-radius:6px;font-size:.85rem}.qbs-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.qbs-err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}@media(max-width:640px){.qbs-actions{white-space:normal}.qbs-btn{margin:4px 4px 0 0}}.ms-week-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ms-sector-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.ms-sector-group-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 20px;background:var(--bg);border:1px solid var(--border);border-radius:10px 10px 0 0;border-bottom:2px solid var(--primary);margin-top:12px}.ms-sector-group-name{font-size:16px;font-weight:800;color:var(--primary-dark);min-width:80px}.ms-departure-config{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.ms-departure-input{flex:1;min-width:220px;max-width:400px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--card-bg);color:var(--text);outline:none;transition:border-color .15s}.ms-departure-input:focus{border-color:var(--primary)}.ms-dep-saved{font-size:12px;font-weight:600;color:var(--primary-dark);white-space:nowrap}.ms-sector-group-header+.ms-sector-card,.ms-sector-card+.ms-sector-card{border-radius:0;border-top:none}.ms-sector-group-header~.ms-sector-card:last-child{border-radius:0 0 10px 10px}.ms-info-banner{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 16px;font-size:13px;color:#1d4ed8;margin-bottom:20px}.ms-sector-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;overflow:hidden}.ms-sector-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:var(--bg);border-bottom:1px solid var(--border)}.ms-sector-title{display:flex;flex-direction:column;gap:2px}.ms-sector-name{font-size:16px;font-weight:700;color:var(--text)}.ms-sector-date{font-size:13px;color:var(--text-muted)}.ms-sector-controls{display:flex;align-items:center;gap:8px}.ms-day-label{font-size:13px;color:var(--text-muted);font-weight:500}.ms-day-select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--card-bg);color:var(--text)}.ms-saving{font-size:12px;color:var(--text-muted);font-style:italic}.ms-none-due{padding:20px;color:var(--text-muted);font-size:14px}.ms-route-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 20px;font-size:13px;color:var(--text-muted);border-bottom:1px solid var(--border);background:#f8fafc}.ms-meta-sep{color:var(--border);font-weight:300}.ms-meta-time{color:var(--text);font-weight:600}.ms-meta-breakdown{font-weight:400;color:var(--text-muted);margin-left:4px}.ms-maps-link{color:var(--primary);font-weight:600;text-decoration:none}.ms-maps-link:hover{text-decoration:underline}.ms-route-list{padding:8px 0}.ms-stop{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid #f1f5f9}.ms-stop:last-child{border-bottom:none}.ms-stop-office{background:#f0fdf4;color:#15803d;font-weight:500;font-size:13px}.ms-stop-num{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ms-stop-office .ms-stop-num{background:none;font-size:18px;width:28px;height:28px}.ms-stop-info{flex:1;display:flex;flex-direction:column;gap:2px}.ms-stop-name{font-size:14px;font-weight:600;color:var(--text)}.ms-stop-office .ms-stop-name{font-size:13px;font-weight:500;color:#15803d}.ms-stop-addr{font-size:12px;color:var(--text-muted)}.ms-stop-badges{display:flex;gap:6px;flex-wrap:wrap}.ms-badge{padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap}.ms-badge-cleaners{background:#f1f5f9;color:#475569}.ms-badge-freq{background:#dbeafe;color:#1d4ed8}.ms-freq-weekly{background:#dcfce7;color:#15803d}.ms-freq-fortnightly{background:#fef9c3;color:#854d0e}.ms-freq-monthly{background:#f3e8ff;color:#7e22ce}.ms-badge-visit-time{background:#eff6ff;color:#1d4ed8}.ms-stop-dist{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:70px;text-align:right}.ms-stop-time{font-size:12px;font-weight:700;white-space:nowrap}.ms-time-arrive{color:#15803d}.ms-time-depart{color:#1d4ed8}.ms-drive-time,.ms-drive-km{font-size:11px;color:var(--text-muted);white-space:nowrap}.ms-stop-dist-inline{font-size:12px;color:#15803d;font-weight:400}.ms-push-report{margin:0 0 14px;padding:11px 14px;border-radius:8px;font-size:.85rem;line-height:1.5}.ms-push-report-ok{background:#dcfce7;color:#15803d}.ms-push-report-warn{background:#fef3c7;color:#92400e}.ms-push-report ul{margin:7px 0 8px;padding-left:20px}.ms-push-report li{margin-bottom:2px}.ms-push-code{font-family:ui-monospace,Menlo,Consolas,monospace;opacity:.75}.ms-push-hint{display:block;font-size:.78rem;opacity:.85}.ms-push-dismiss{margin-top:9px;padding:5px 13px;border:1.5px solid currentColor;border-radius:6px;background:transparent;color:inherit;font-size:.78rem;font-weight:600}.ssq-status-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.ssq-gps-row{display:flex;gap:.5rem;align-items:stretch;flex-wrap:wrap}.ssq-gps-row .form-input{flex:1 1 220px;min-width:0}.ssq-gps-find{white-space:nowrap;padding:.5rem .85rem}.ssq-gps-note{margin-top:.3rem;font-size:.75rem;color:#15803d}.ssq-gps-note.warn{color:#b45309}.ssq-gps-map{display:inline-block;margin-top:.3rem;font-size:.78rem;color:#2563eb}.ssq-days-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.85rem;padding:.6rem .75rem;background:#f8fafc;border-radius:8px}.ssq-days-field{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:600;color:#334155}.ssq-days-field .qty-input{width:64px}.ssq-days-reset{border:none;background:none;color:#2563eb;font-size:.78rem;cursor:pointer;padding:0}.ssq-days-hint{font-size:.78rem;color:#64748b}.ssq-dayhours{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.ssq-dayhour{display:inline-flex;flex-direction:column;font-size:.7rem;color:#64748b}.ssq-dayhour .qty-input{width:62px}.ssq-qty-total{font-weight:700}.ssq-trip{display:inline-flex;align-items:center;gap:.3rem;flex-wrap:wrap}.ssq-book-hint{font-size:.8rem;color:#475569;background:#f0f9ff;border-radius:6px;padding:.45rem .6rem;margin-bottom:.5rem}.ssq-book-day{font-size:.78rem;font-weight:700;color:#475569;min-width:46px}.ssq-book-dow{font-size:.78rem;color:#64748b;min-width:30px}.date-row{align-items:center}.ssq-book-tools{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.ssq-book-skip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:#334155;cursor:pointer}.qp-days{margin:0 0 1rem}.qp-days-title{font-weight:700;font-size:.9rem;margin-bottom:.35rem;color:#0f172a}.qp-days-table{margin-bottom:.35rem}.qp-days-sum td{background:#f8fafc;font-weight:600}.qp-days-note{font-size:.8rem;color:#475569}.ssq-area-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.ssq-row{display:grid;grid-template-columns:130px minmax(340px,1fr) 160px 130px 110px 190px;align-items:center}.ssq-header{background:#f1f5f9;border-radius:8px 8px 0 0;border:1px solid #e2e8f0}.ssq-data{border:1px solid #e2e8f0;border-top:none;transition:background .12s}.ssq-data:hover{background:#faf5ff}.ssq-data:last-child{border-radius:0 0 8px 8px}.ssq-cell{padding:.7rem 1rem;font-size:.875rem;color:#334155;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssq-header .ssq-cell{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.ssq-no{font-weight:700;color:#7c3aed;cursor:pointer}.ssq-no:hover{text-decoration:underline}.ssq-cust{font-weight:600;color:#1e293b;cursor:pointer}.ssq-cust:hover{color:#7c3aed}.ssq-num{text-align:right;font-weight:600}.ssq-secondary{color:#64748b}.ssq-actions{display:flex;gap:.35rem}.ssq-created{color:#94a3b8;font-size:.8rem}.status-badge{display:inline-block;padding:.2rem .65rem;border-radius:20px;font-size:.78rem;font-weight:600}.btn-filter{background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;padding:.35rem .9rem;font-size:.82rem;cursor:pointer;color:#475569;transition:all .12s}.btn-filter:hover{border-color:#7c3aed;color:#7c3aed}.btn-filter-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.filter-count{display:inline-block;margin-left:.35rem;background:#ffffff40;border-radius:10px;padding:0 .4rem;font-size:.75rem}.btn-filter-active .filter-count{background:#ffffff4d}.btn-filter:not(.btn-filter-active) .filter-count{background:#e2e8f0;color:#64748b}.js-list-row{display:grid;grid-template-columns:120px 145px minmax(200px,1fr) minmax(130px,200px) 110px 110px 110px 160px;align-items:center}.js-list-row .ssq-cell,.ssq-row.ssq-data .ssq-cell{text-align:left}.js-list-header{background:#f1f5f9;border-radius:8px 8px 0 0;border:1px solid #e2e8f0}.js-list-header .ssq-cell{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.js-list-data{border:1px solid #e2e8f0;border-top:none;transition:background .12s}.js-list-data:hover{background:#faf5ff}.js-list-data:last-child{border-radius:0 0 8px 8px}.js-address{font-size:.72rem;color:#94a3b8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:700px){.js-list-header{display:none}.js-list-data{display:flex;flex-direction:column;gap:0;border:1px solid #e2e8f0;border-top:none;border-radius:0;padding:.75rem 1rem;cursor:pointer}.js-list-data:first-of-type{border-radius:8px 8px 0 0;border-top:1px solid #e2e8f0}.js-list-data:last-child{border-radius:0 0 8px 8px}.js-list-data .ssq-cust{font-size:1rem;font-weight:700;color:#1e293b;white-space:normal;padding:0 0 .35rem}.js-list-data .ssq-cust:before{display:none}.js-list-data .ssq-cell{display:flex;align-items:center;gap:.5rem;padding:.2rem 0;font-size:.85rem;white-space:normal;overflow:visible}.js-list-data .ssq-cell:before{content:attr(data-label);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;min-width:72px;flex-shrink:0}.js-list-data .ssq-cust:before,.js-list-data .ssq-actions:before{display:none}.js-list-data .ssq-actions{padding-top:.6rem}.js-list-data .btn-icon-lg{width:100%;padding:.55rem;font-size:.95rem}}.builder-layout{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start}@media(max-width:900px){.builder-layout{grid-template-columns:1fr}}.builder-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}.builder-card-title{font-size:.9rem;font-weight:700;color:#7c3aed;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.builder-main{min-width:0}.builder-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}.add-line-form{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.add-line-form .form-select{flex:1;min-width:160px}.line-items-table{margin-top:.5rem;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.li-row{display:grid;grid-template-columns:110px 1fr 130px 110px 110px 36px;align-items:center}.li-header{background:#f8fafc}.li-data{border-top:1px solid #f1f5f9}.li-data:hover{background:#faf5ff}.li-cell{padding:.55rem .75rem;font-size:.85rem;color:#334155;min-width:0}.li-header .li-cell{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.li-num{text-align:right}.li-rate{color:#64748b}.li-total{font-weight:700;color:#1e293b}.cat-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:700;text-transform:capitalize}.cat-upholstery{background:#ede9fe;color:#7c3aed}.cat-staff{background:#dbeafe;color:#1d4ed8}.cat-carpet{background:#dcfce7;color:#15803d}.cat-transport{background:#fef9c3;color:#854d0e}.qty-input{width:70px;border:1px solid #e2e8f0;border-radius:4px;padding:.25rem .4rem;font-size:.85rem;text-align:right}.qty-input:focus{outline:none;border-color:#7c3aed}.qty-unit{font-size:.75rem;color:#94a3b8;margin-left:.25rem}.builder-sidebar{position:sticky;top:1rem}.totals-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem}.totals-body{margin-bottom:1rem}.total-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.9rem;color:#334155;border-bottom:1px solid #f1f5f9}.total-row:last-child{border-bottom:none}.total-grand{font-weight:700;font-size:1.05rem;color:#1e293b;padding-top:.6rem;border-top:2px solid #7c3aed}.total-discount{color:#16a34a;font-weight:600}.totals-meta{margin-top:1rem;border-top:1px solid #f1f5f9;padding-top:1rem}.entity-selector{display:flex;gap:.6rem;flex-wrap:wrap}.entity-btn{flex:1;min-width:140px;display:flex;flex-direction:column;align-items:flex-start;padding:.6rem .9rem;border:2px solid #e2e8f0;border-radius:8px;background:#f8fafc;cursor:pointer;transition:all .15s;text-align:left}.entity-btn:hover{border-color:#7c3aed;background:#faf5ff}.entity-btn-active{border-color:#7c3aed;background:#faf5ff;box-shadow:0 0 0 3px #7c3aed1f}.entity-btn-label{font-weight:700;font-size:.9rem;color:#1e293b}.entity-btn-active .entity-btn-label{color:#7c3aed}.entity-btn-name{font-size:.72rem;color:#64748b;margin-top:.15rem;line-height:1.3}.discount-row{border-top:1px solid #f1f5f9;padding-top:.9rem;margin-top:.25rem}.discount-slider{width:100%;height:6px;accent-color:#7c3aed;cursor:pointer;margin:.25rem 0 .4rem}.discount-ticks{display:flex;justify-content:space-between;font-size:.7rem;color:#94a3b8}.totals-actions{margin-top:1rem;border-top:1px solid #f1f5f9;padding-top:1rem}.tier-summary-card{background:#faf5ff;border:1px solid #ddd6fe;border-radius:10px;padding:1rem 1.25rem}.tier-row{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.82rem;border-bottom:1px solid #ede9fe}.tier-row:last-child{border-bottom:none}.tier-active{color:#7c3aed;font-weight:600;margin-left:auto}.date-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.btn-add-date{background:none;border:1px dashed #ddd6fe;border-radius:6px;padding:.4rem .75rem;font-size:.82rem;color:#7c3aed;cursor:pointer;margin-top:.25rem}.btn-add-date:hover{background:#faf5ff}.linked-jobs-list{margin-top:1rem}.linked-jobs-list h4{font-size:.85rem;font-weight:700;color:#64748b;margin:0 0 .5rem;text-transform:uppercase}.linked-job-row{display:flex;gap:1rem;padding:.4rem .75rem;background:#f8fafc;border-radius:6px;font-size:.85rem;margin-bottom:.35rem}.linked-jobs-table{display:flex;flex-direction:column;gap:.35rem}.lj-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#f8fafc;border-radius:6px;font-size:.875rem;flex-wrap:wrap}.lj-date{font-weight:700;color:#1e293b}.lj-time{color:#64748b}.lj-mgr{color:#7c3aed;flex:1}.btn-icon-lg{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.45rem .9rem;font-size:.85rem;cursor:pointer;transition:background .12s}.btn-icon-lg:hover{background:#ede9fe;border-color:#ddd6fe;color:#7c3aed}.btn-icon-sched{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.btn-icon-sched:hover{background:#dcfce7;border-color:#86efac;color:#166534}.btn-danger-sm{background:none;border:1px solid #fca5a5;border-radius:6px;padding:.4rem .75rem;font-size:.82rem;color:#dc2626;cursor:pointer;width:100%;margin-top:.5rem;transition:background .12s}.btn-danger-sm:hover{background:#fee2e2}.print-wrapper{background:#f1f5f9;min-height:100vh;padding:0}.print-close-bar{display:flex;align-items:center;justify-content:space-between;background:#1e293b;color:#fff;padding:.75rem 1.5rem;font-size:.875rem;gap:1rem}.quote-print-page{background:#fff;max-width:750px;margin:1.5rem auto;padding:2.5rem;border-radius:4px;box-shadow:0 2px 12px #0000001f;font-family:Arial,sans-serif;font-size:.9rem;color:#1e293b}.qp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:3px solid #009A44}.qp-logo{height:56px;width:auto;object-fit:contain;margin-bottom:.4rem;display:block}.qp-company-name{font-size:1.15rem;font-weight:700;color:#009a44}.qp-company-sub{font-size:.8rem;color:#64748b;margin-top:.2rem}.qp-quote-no{font-size:1.3rem;font-weight:700;color:#7c3aed}.qp-client-row{display:flex;justify-content:space-between;margin-bottom:1.5rem}.qp-client{flex:1}.qp-dates{text-align:right;font-size:.85rem;line-height:1.8}.qp-field-label{font-weight:700;font-size:.8rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.qp-field-value{font-size:1rem;font-weight:600;color:#1e293b;margin:.15rem 0}.qp-field-sub{font-size:.85rem;color:#475569;line-height:1.6}.qp-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.qp-th{background:#009a44;color:#fff;padding:.6rem .75rem;text-align:left;font-size:.82rem;font-weight:700}.qp-th-qty{width:60px}.qp-th-num{text-align:right;width:140px}.qp-td{padding:.55rem .75rem;border-bottom:1px solid #e2e8f0;font-size:.875rem}.qp-td-c{text-align:center}.qp-td-r{text-align:right;font-weight:600}.qp-tr-alt{background:#f8fafc}.qp-totals{margin-left:auto;width:260px;border:1px solid #e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:1rem}.qp-total-row{display:flex;justify-content:space-between;padding:.45rem .75rem;font-size:.875rem;border-bottom:1px solid #f1f5f9}.qp-total-row:last-child{border-bottom:none}.qp-grand{background:#009a44;color:#fff;font-weight:700;font-size:.95rem}.qp-discount{color:#16a34a;font-weight:600}.qp-notes{font-size:.85rem;color:#475569;margin-bottom:1rem;padding:.75rem;background:#f8fafc;border-radius:4px;white-space:pre-wrap}.qp-footer{border-top:1px solid #e2e8f0;padding-top:.75rem;font-size:.78rem;color:#64748b;line-height:1.7}@media print{.no-print{display:none!important}.print-wrapper{background:#fff}.quote-print-page{box-shadow:none;margin:0;max-width:100%}}.quote-invoice{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:13px 15px;margin-top:12px}.quote-invoice-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:5px}.quote-invoice-row .form-input{max-width:190px}.quote-invoice-note{font-size:.76rem;color:#64748b;margin:8px 0 0}.entity-note{margin-top:.6rem;font-size:.8rem;color:#7c3aed;background:#faf5ff;border:1px solid #e9d5ff;border-radius:6px;padding:.4rem .6rem}.quote-qbo{border-color:#bbf7d0;background:#f0fdf4}.btn-qbo{margin-top:5px;background:#2ca01c;color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer}.btn-qbo:hover:not(:disabled){background:#238016}.btn-qbo:disabled{opacity:.6;cursor:default}.quote-qbo-warn{color:#b45309;font-weight:600}.quote-invoice .link-btn{background:none;border:0;padding:0;color:#7c3aed;text-decoration:underline;cursor:pointer;font-size:inherit}.ss-import-panel{background:#faf5ff;border:1px solid #ddd6fe;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}.ss-import-panel h3{margin:0 0 .4rem;font-size:1rem;color:#7c3aed}.import-hint{font-size:.825rem;color:#64748b;margin:0 0 .75rem}.import-textarea{width:100%;border:1px solid #ddd6fe;border-radius:6px;padding:.6rem .8rem;font-family:monospace;font-size:.85rem;resize:vertical;margin-bottom:.75rem;box-sizing:border-box}.import-actions{display:flex;gap:.75rem}.emp-row{display:grid;grid-template-columns:48px 160px minmax(120px,240px) 110px 100px;align-items:center}.emp-row.no-company-col{grid-template-columns:48px 160px minmax(120px,240px) 100px}.emp-company-badge{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-size:.75rem;font-weight:600;background:#ede9fe;color:#6d28d9}.emp-header{background:#f1f5f9;border-radius:8px 8px 0 0;border:1px solid #e2e8f0}.emp-data{border:1px solid #e2e8f0;border-top:none;transition:background .12s}.emp-data:hover{background:#faf5ff}.emp-data:last-child{border-radius:0 0 8px 8px}.emp-cell{padding:.65rem 1rem;font-size:.875rem;color:#334155}.emp-header .emp-cell{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.emp-num{color:#94a3b8;font-size:.8rem}.emp-mono{font-family:monospace;font-size:.875rem;color:#7c3aed;font-weight:600}.emp-name{font-weight:600;color:#1e293b}.emp-actions{display:flex;gap:.35rem}.rc-notice{background:#fef9c3;border:1px solid #fde68a;border-radius:8px;padding:.75rem 1rem;font-size:.875rem;color:#78350f;margin-bottom:1.25rem}.rc-sections{display:flex;flex-direction:column;gap:1.75rem}.rc-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.rc-section-header{display:flex;align-items:center;justify-content:space-between;background:#7c3aed;color:#fff;padding:.75rem 1.25rem}.rc-section-header h2{margin:0;font-size:1rem;font-weight:700}.rc-tier-note{font-size:.8rem;opacity:.8}.rc-tier-bounds{display:flex;gap:0;background:#f5f3ff;border-bottom:1px solid #e2e8f0;padding:.6rem 1.25rem;flex-wrap:wrap;gap:1rem}.rc-tier-bound-cell{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.rc-tier-label{color:#7c3aed;font-weight:600}.rc-tier-input{width:72px;border:1px solid #ddd6fe;border-radius:4px;padding:.25rem .4rem;font-size:.85rem;text-align:right}.rc-tier-display{font-weight:700;color:#5b21b6;min-width:32px;text-align:right}.rc-table{width:100%}.rc-row{display:grid;grid-template-columns:minmax(280px,520px) repeat(5,110px) 36px;align-items:center;border-bottom:1px solid #f1f5f9}.rc-row-flat{grid-template-columns:minmax(280px,520px) 110px 36px}.rc-row:last-child{border-bottom:none}.rc-thead{background:#f8fafc}.rc-cell{padding:.6rem 1rem;font-size:.85rem;color:#334155;min-width:0}.rc-thead .rc-cell{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;line-height:1.4}.rc-item-name{font-weight:500;color:#1e293b}.rc-rate-cell{text-align:right}.rc-rate-display{font-weight:600;color:#1e293b}.rc-rate-input{width:80px;border:1px solid #e2e8f0;border-radius:4px;padding:.3rem .4rem;font-size:.85rem;text-align:right;margin-left:auto;display:block}.rc-rate-input:focus{outline:none;border-color:#7c3aed}.rc-name-input{width:100%;border:1px solid #e2e8f0;border-radius:4px;padding:.3rem .5rem;font-size:.85rem;box-sizing:border-box}.rc-name-input:focus{outline:none;border-color:#7c3aed}.rc-del-col{width:36px;padding:0 4px!important}.rc-del-btn{background:none;border:none;color:#94a3b8;font-size:13px;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1;transition:background .15s,color .15s}.rc-del-btn:hover{background:#fee2e2;color:#dc2626}.rc-add-btn{display:block;margin:10px 16px 14px;padding:6px 14px;background:none;border:1px dashed #c4b5fd;border-radius:6px;color:#7c3aed;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.rc-add-btn:hover{background:#f5f3ff}.ts-page{--ts-job-h: 110px;--ts-job-day-h: 140px}.ts-month-picker{padding:.45rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#334155}.ts-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 180px);border:1px solid #e2e8f0;border-radius:8px}.ts-table{border-collapse:separate;border-spacing:0;font-size:.82rem;white-space:nowrap;width:100%}.ts-sticky-col{position:sticky;left:0;z-index:3}.ts-sticky-right{position:sticky;right:0;z-index:3}.ts-sticky-top{position:sticky;top:0;z-index:2}thead .ts-sticky-col,thead .ts-sticky-right{z-index:5}.ts-th-name{min-width:200px;max-width:200px;padding:.5rem .75rem;text-align:left;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f1f5f9;border-bottom:1px solid #e2e8f0;border-right:2px solid #cbd5e1;top:0}.ts-th-job{height:110px;width:46px;min-width:46px;max-width:46px;vertical-align:bottom;padding:4px 3px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;text-align:center}.ts-job-label-link{cursor:pointer;color:#6d28d9;text-decoration:underline dotted}.ts-job-label-link:hover{color:#4c1d95}.ts-job-label{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:.72rem;font-weight:600;color:#334155;max-height:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.ts-th-date,.ts-th-day,.ts-th-sub{width:46px;min-width:46px;text-align:center;padding:.3rem .2rem;background:#f1f5f9;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;position:sticky}.ts-th-sub{min-width:200px;max-width:200px;background:#f1f5f9;border-right:2px solid #cbd5e1}.ts-th-date{font-weight:700;color:#1e293b;font-size:.84rem}.ts-th-day{font-size:.72rem;color:#64748b}.ts-th-total{min-width:72px;padding:.4rem .6rem;text-align:right;background:#f1f5f9;border-bottom:1px solid #e2e8f0;border-left:2px solid #cbd5e1;font-weight:700;font-size:.72rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.ts-td-name{min-width:200px;max-width:200px;padding:.4rem .75rem;border-bottom:1px solid #e2e8f0;border-right:2px solid #cbd5e1;background:#fff;font-size:.8rem;color:#1e293b}.ts-emp-no{font-size:.7rem;color:#94a3b8;margin-right:.4rem;font-family:monospace}.ts-emp-name{font-weight:600}.ts-td-cell{width:46px;min-width:46px;max-width:46px;text-align:center;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;cursor:pointer;padding:.35rem .2rem;transition:background .1s;background:#fff}.ts-td-cell:hover{background:#f0f4ff!important}.ts-td-cell.ts-job-day{background:#faf5ff}.ts-td-cell.ts-job-day:hover{background:#ede9fe!important}.ts-td-cell.ts-has-hours{background:#f0fdf4}.ts-td-cell.ts-has-hours:hover{background:#dcfce7!important}.ts-cell-val{font-size:.82rem;color:#334155;font-weight:500}.ts-cell-input{width:42px;border:none;outline:2px solid #7c3aed;border-radius:3px;text-align:center;font-size:.82rem;padding:.1rem .15rem;background:#fff;-moz-appearance:textfield}.ts-cell-input::-webkit-inner-spin-button,.ts-cell-input::-webkit-outer-spin-button{-webkit-appearance:none}.ts-sunday{background:#f8fafc!important;cursor:default!important}.ts-sunday .ts-cell-val,.ts-sunday .ts-th-date,.ts-sunday .ts-th-day{color:#cbd5e1}.ts-sunday.ts-th-job{background:#f8fafc}.ts-today-col{background:#fdf4ff!important}.ts-today-col.ts-has-hours{background:#f3e8ff!important}.ts-today-col.ts-th-date,.ts-today-col.ts-th-day,.ts-today-col.ts-th-job{background:#ede9fe!important}.ts-row-alt .ts-td-cell,.ts-row-alt .ts-td-name{background:#fafafa}.ts-row-alt .ts-td-cell.ts-has-hours{background:#f0fdf4}.ts-row-alt .ts-td-cell.ts-job-day{background:#f5f3ff}.ts-row-alt .ts-today-col{background:#fdf4ff!important}.ts-td-total{text-align:right;padding:.35rem .65rem;font-weight:700;color:#1e293b;border-bottom:1px solid #e2e8f0;border-left:2px solid #cbd5e1;background:#f8fafc;min-width:72px;font-size:.84rem}.ts-row-totals td{background:#f1f5f9!important;font-weight:700;font-size:.82rem;text-align:center;border-top:2px solid #cbd5e1;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;padding:.4rem .2rem;color:#334155}.ts-total-label{text-align:left!important;color:#64748b;border-right:2px solid #cbd5e1!important}.ts-grand-total{color:#7c3aed!important;font-size:.9rem!important;text-align:right!important;border-left:2px solid #cbd5e1!important}.ts-row-budget td{background:#eff6ff!important;font-size:.78rem;text-align:center;border-top:1px dashed #bfdbfe;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;padding:.35rem .2rem;color:#1d4ed8}.ts-budget-label{text-align:left!important;color:#3b82f6!important;font-style:italic;border-right:2px solid #cbd5e1!important}.ts-td-budget{font-weight:600}.ts-grand-budget{color:#1d4ed8!important;font-size:.9rem!important;text-align:right!important;border-left:2px solid #cbd5e1!important;font-weight:700}.ts-date-boundary{border-left:2px solid #94a3b8!important}.ts-saving{color:#94a3b8;font-style:italic}.ts-hidden-note{color:#94a3b8}.ssp-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:20px}.ssp-entity-tabs,.ssp-year-tabs{display:flex;gap:6px;flex-wrap:wrap}.ssp-entity-tab,.ssp-year-tab{padding:6px 16px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.84rem;cursor:pointer;transition:all .15s}.ssp-entity-tab:hover,.ssp-year-tab:hover{border-color:var(--primary);color:var(--primary)}.ssp-entity-tab.active,.ssp-year-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.ssp-loading{color:var(--text-muted);padding:24px 0}.ssp-ytd-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.ssp-ytd-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:14px 20px;min-width:160px}.ssp-ytd-main{border-left:3px solid var(--primary)}.ssp-ytd-label{font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px}.ssp-ytd-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin:0;font-family:DM Mono,monospace}.ssp-section-title{font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--primary);margin-bottom:10px}.ssp-section-sub{font-size:.78rem;color:var(--text-muted);margin:-6px 0 12px}.ssp-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;overflow:hidden}.ssp-table{width:100%;border-collapse:collapse;font-size:.86rem}.ssp-table thead th{padding:10px 16px;text-align:left;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-secondary)}.ssp-th-num{text-align:right}.ssp-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}.ssp-table tbody tr:last-child{border-bottom:none}.ssp-table tbody tr:nth-child(odd){background-color:#fff}.ssp-table tbody tr:nth-child(2n){background-color:#22c55e12}.ssp-table tbody tr:hover{background-color:#22c55e2e!important}.ssp-col-divider{border-left:2px solid #94a3b8!important}.ssp-row-empty td{color:var(--text-muted)}.ssp-td-month{padding:10px 16px;font-weight:500}.ssp-td-num{padding:10px 16px;text-align:right;font-family:DM Mono,monospace}.ssp-td-amount{font-weight:600;color:var(--text-primary)}.ssp-tfoot td{padding:11px 16px;font-weight:700;border-top:2px solid var(--border);background:var(--bg-secondary);font-size:.88rem}.ssp-tfoot .ssp-td-num{text-align:right;font-family:DM Mono,monospace;color:var(--primary)}.ssp-status-cell{font-weight:600;font-family:DM Mono,monospace}.ssp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.ssp-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;width:100%;max-width:820px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.ssp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.ssp-modal-title{font-size:1rem;font-weight:700;margin:0;color:var(--text-primary)}.ssp-modal-close{background:none;border:none;font-size:1.1rem;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .1s}.ssp-modal-close:hover{background:var(--bg-hover, rgba(0,0,0,.06));color:var(--text-primary)}.ssp-modal-body{overflow-y:auto;flex:1}.ssp-modal-empty{padding:24px;text-align:center;color:var(--text-muted)}.ssp-thead-group th{padding:6px 16px 4px;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-bottom:none;background:var(--bg-secondary)}.ssp-th-group{text-align:center;border-bottom:2px solid var(--border)!important}.ssp-th-group-quoted{color:var(--text-muted)}.ssp-th-group-invoiced{color:var(--primary)}.ssp-th-group span{font-weight:400;font-size:.64rem;text-transform:none;letter-spacing:0;opacity:.8}.ssp-th-status{font-size:.65rem}.ssp-td-invoiced{color:var(--primary)!important}.ssp-td-clickable{cursor:pointer;transition:background .1s,color .1s}.ssp-td-clickable:hover{background:var(--bg-hover, rgba(0,0,0,.04));text-decoration:underline}.ssp-pipeline-cards{display:flex;gap:12px;flex-wrap:wrap}.ssp-pipe-card{flex:1;min-width:150px;background:var(--card-bg);border:1px solid var(--border);border-top:3px solid;border-radius:10px;padding:16px}.ssp-pipe-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.72rem;font-weight:600;letter-spacing:.05em;margin-bottom:10px}.ssp-pipe-count{font-size:.8rem;color:var(--text-muted);margin:0 0 4px}.ssp-pipe-card-clickable{cursor:pointer;transition:box-shadow .15s,transform .1s}.ssp-pipe-card-clickable:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.ssp-pipe-amount{font-size:1.1rem;font-weight:700;font-family:DM Mono,monospace;color:var(--text-primary);margin:0}.ssc-booked{--c: #2563eb;--bg: #dbeafe}.ssc-progress{--c: #d97706;--bg: #fef3c7}.ssc-completed{--c: #16a34a;--bg: #dcfce7}.ssc-invoiced{--c: #7c3aed;--bg: #ede9fe}.ssc-areas{display:flex;gap:6px;flex-wrap:wrap}.ssc-area{padding:7px 14px;border-radius:18px;border:1px solid var(--border, #e2e8f0);background:#fff;font-size:13px;font-weight:600;color:var(--text, #1e293b);cursor:pointer}.ssc-area.on{background:#0f766e;border-color:#0f766e;color:#fff}.ssc-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.ssc-nav{display:flex;align-items:center;gap:6px}.ssc-navbtn,.ssc-today{height:32px;min-width:32px;padding:0 10px;border-radius:6px;cursor:pointer;border:1px solid var(--border, #e2e8f0);background:#fff;font-size:14px;font-weight:600}.ssc-navbtn{font-size:18px;line-height:1}.ssc-title{margin:0 0 0 8px;font-size:18px;font-weight:700}.ssc-key{display:flex;gap:4px;flex-wrap:wrap}.ssc-keyitem{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;border:1px solid transparent;background:none;font-size:12px;font-weight:600;cursor:pointer;color:var(--text, #1e293b)}.ssc-keyitem:hover{border-color:var(--border, #e2e8f0)}.ssc-keyitem.off{opacity:.4;text-decoration:line-through}.ssc-swatch{width:12px;height:12px;border-radius:3px;background:var(--bg);border-left:3px solid var(--c)}.ssc-error{padding:10px 14px;margin-bottom:10px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px}.ssc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border, #e2e8f0);border-radius:8px;overflow:hidden;background:var(--border, #e2e8f0);gap:1px}.ssc-grid.loading{opacity:.55}.ssc-wday{background:#f8fafc;padding:6px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.ssc-day{background:#fff;min-height:108px;padding:4px 5px 6px;display:flex;flex-direction:column;gap:3px;min-width:0}.ssc-day.weekend{background:#fcfcfd}.ssc-day.other{background:#f8fafc}.ssc-day.other .ssc-date{color:#cbd5e1}.ssc-date{font-size:12px;font-weight:600;color:#475569;padding:1px 3px;align-self:flex-start;border-radius:10px}.ssc-day.today .ssc-date{background:#2563eb;color:#fff;padding:1px 7px}.ssc-job{display:flex;gap:5px;align-items:baseline;width:100%;text-align:left;cursor:pointer;padding:3px 6px;border:none;border-left:3px solid var(--c);border-radius:4px;background:var(--bg);font-size:12px;line-height:1.3;color:#0f172a;min-width:0}.ssc-job:hover{filter:brightness(.96)}.ssc-time{font-weight:700;color:var(--c);flex:none;font-variant-numeric:tabular-nums}.ssc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssc-agenda{display:none}.ssc-agday{padding:8px 0;border-bottom:1px solid var(--border, #e2e8f0);display:flex;flex-direction:column;gap:4px}.ssc-agday.today .ssc-agdate{color:#2563eb}.ssc-agdate{font-size:13px;font-weight:700;color:#475569}.ssc-agday .ssc-job{font-size:14px;padding:7px 10px}.ssc-none{color:#64748b;font-size:14px}@media(max-width:760px){.ssc-grid{display:none}.ssc-agenda{display:block}.ssc-title{font-size:16px}}.ssc-card{max-width:440px}.ssc-status{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:700;background:var(--bg);color:var(--c);margin-bottom:12px}.ssc-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:14px}.ssc-facts dt{color:#64748b;font-weight:600}.ssc-facts dd{margin:0;color:#0f172a}.ssc-namewrap{display:flex;flex-direction:column;min-width:0}.ssc-co{font-size:10px;font-weight:800;letter-spacing:.05em;color:#64748b;line-height:1.2}.ssc-co-essential{color:#15803d}.ssc-co-funeka{color:#b45309}.ssc-co-overberg{color:#0369a1}.ssc-co-esscorp{color:#7c3aed}.rcy-booked{--c: #2563eb;--bg: #dbeafe}.rcy-collected{--c: #16a34a;--bg: #dcfce7}.rcy-missed{--c: #dc2626;--bg: #fee2e2}.rcy-cancelled{--c: #64748b;--bg: #f1f5f9}.ssc-job.rcy-cancelled .ssc-name{text-decoration:line-through;color:#64748b}.rcy-kg{margin-left:auto;flex:none;font-size:11px;font-weight:700;color:var(--c)}.rcy-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--border, #e2e8f0)}.rcy-tab{padding:9px 16px;border:none;background:none;font-size:14px;font-weight:600;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.rcy-tab.on{color:#15803d;border-bottom-color:#15803d}.rcy-bar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rcy-monthkg{margin-left:10px;font-size:13px;font-weight:700;color:#15803d;background:#dcfce7;padding:3px 10px;border-radius:12px}.rcy-modal{max-width:560px}.rcy-grid-3{display:grid;grid-template-columns:1.3fr 1fr 1.4fr;gap:10px}.rcy-hint{font-size:12px;color:#64748b;margin-top:4px}.rcy-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin:4px 0 10px;cursor:pointer}.rcy-repeat{padding:10px 12px;border:1px dashed var(--border, #e2e8f0);border-radius:8px;margin-bottom:12px}.rcy-dows{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.rcy-dow{padding:6px 11px;border-radius:16px;border:1px solid var(--border, #e2e8f0);background:#fff;font-size:13px;font-weight:600;cursor:pointer}.rcy-dow.on{background:#15803d;border-color:#15803d;color:#fff}.rcy-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--border, #e2e8f0)}.rcy-section h3{margin:0 0 10px;font-size:14px;font-weight:700}.rcy-kgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.rcy-kginput input{min-width:0}.rcy-kgfield{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#334155}.rcy-kginput{display:flex;align-items:center;gap:6px}.rcy-kginput input{font-size:16px}.rcy-kginput em{font-style:normal;color:#64748b;font-weight:500}.rcy-total{margin:10px 0;font-size:14px}.rcy-locked{margin-top:12px;padding:9px 12px;border-radius:8px;background:#fef3c7;color:#78350f;font-size:13px}.rcy-saved{margin-top:10px;color:#15803d;font-weight:600;font-size:13px}.rcy-photos{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.rcy-photo{position:relative;width:84px;height:84px;border-radius:8px;overflow:hidden;border:1px solid var(--border, #e2e8f0)}.rcy-photo img{width:100%;height:100%;object-fit:cover;display:block}.rcy-photo-x{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:none;background:#0f172ab3;color:#fff;font-size:14px;line-height:1;cursor:pointer}.rcy-photo-add{width:84px;height:84px;border-radius:8px;border:2px dashed #86efac;color:#15803d;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;background:#f0fdf4}.rcy-change summary{cursor:pointer;font-size:14px;font-weight:700;color:#334155}.rcy-change[open] summary{margin-bottom:10px}.rcy-change-actions{display:flex;gap:8px;flex-wrap:wrap}.rcy-lockchip{margin-left:10px;font-size:12px;font-weight:700;color:#78350f;background:#fef3c7;padding:3px 9px;border-radius:12px}.rcy-linkbtn{text-decoration:none;display:inline-flex;align-items:center}.rcy-printhead{display:none}.rcy-table-wrap{overflow-x:auto;border:1px solid var(--border, #e2e8f0);border-radius:10px;background:#fff}.rcy-table{width:100%;border-collapse:collapse;font-size:13px}.rcy-table th{text-align:left;padding:9px 12px;background:#f8fafc;border-bottom:1px solid var(--border, #e2e8f0);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;white-space:nowrap}.rcy-table th small{display:block;text-transform:none;letter-spacing:0;font-weight:500}.rcy-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top}.rcy-table .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rcy-client{cursor:pointer}.rcy-client:hover td{background:#f8fafc}.rcy-caret{display:inline-block;width:14px;color:#94a3b8}.rcy-missed-chip{margin-left:8px;font-size:11px;font-weight:700;color:#b91c1c;background:#fee2e2;padding:1px 7px;border-radius:10px}.rcy-detail td{background:#fbfdfb;font-size:12px;color:#334155}.rcy-detail td:first-child{padding-left:30px}.rcy-state{margin-left:8px;font-size:11px;font-weight:700;color:var(--c);background:var(--bg);padding:1px 7px;border-radius:10px}.rcy-detail-notes{margin-top:3px;color:#64748b;font-style:italic}.rcy-detail-photos{display:flex;gap:4px;margin-top:4px}.rcy-detail-photos img{width:40px;height:40px;object-fit:cover;border-radius:4px}.rcy-table tfoot td{font-weight:700;background:#f8fafc;border-top:2px solid var(--border, #e2e8f0)}@media(max-width:640px){.rcy-grid-3{grid-template-columns:1fr 1fr}.rcy-grid-3>:last-child{grid-column:1 / -1}}@media print{.sidebar,.mobile-topbar,.rcy-noprint,.view-only-banner{display:none!important}.rcy-printhead{display:block;font-size:18px;font-weight:700;margin-bottom:10px}.rcy-table-wrap{border:none;overflow:visible}.rcy-client:hover td{background:none}}.rcy-footer{justify-content:space-between;flex-wrap:wrap;gap:8px}.rcy-footer-left{display:flex;gap:8px;flex-wrap:wrap}.btn-danger.rcy-btn-light{background:#fff;color:#b91c1c;border:1px solid #fecaca}.cal-who{margin-left:auto;flex:none;font-size:10px;font-weight:700;padding:0 5px;border-radius:8px;background:#0f172a14;color:#334155}.rcy-kg+.cal-who{margin-left:4px}.mnt-booked{--c: #2563eb;--bg: #dbeafe}.mnt-done{--c: #16a34a;--bg: #dcfce7}.mnt-missed{--c: #dc2626;--bg: #fee2e2}.mnt-cancelled{--c: #64748b;--bg: #f1f5f9}.ssc-job.mnt-cancelled .ssc-name{text-decoration:line-through;color:#64748b}.mnt-tabdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#dc2626;margin-left:6px;vertical-align:middle}.mnt-kinds{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.mnt-kind{flex:1 1 180px;padding:10px 12px;border-radius:8px;border:1px solid var(--border, #e2e8f0);background:#fff;font-size:14px;font-weight:600;cursor:pointer}.mnt-kind.on{border-color:#0f766e;background:#f0fdfa;color:#0f766e;box-shadow:inset 0 0 0 1px #0f766e}.mnt-grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:10px}.mnt-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mnt-grid-4{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}@media(max-width:640px){.mnt-grid-2,.mnt-grid-3{grid-template-columns:1fr}.mnt-grid-4{grid-template-columns:1fr 1fr}.mnt-grid-4>:first-child{grid-column:1 / -1}}.mnt-warn{margin-top:4px;font-size:12px;color:#b45309}.mnt-outlook{margin-top:10px;padding:8px 12px;border-radius:8px;background:#f0fdf4;color:#166534;font-size:13px}.mnt-outlook.err{background:#fffbeb;color:#92400e}.mnt-linkbtn{border:none;background:none;color:#2563eb;text-decoration:underline;cursor:pointer;font-size:13px;padding:0 0 0 6px}.mnt-pre{white-space:pre-wrap}.mnt-filters{display:flex;gap:6px;flex-wrap:wrap}.mnt-table td{vertical-align:middle}.mnt-sub{font-size:12px;color:#64748b}.mnt-due{font-weight:600;font-size:13px}.mnt-due-overdue{color:#b91c1c}.mnt-due-due{color:#b45309}.mnt-due-ok{color:#15803d}.mnt-due-none{color:#64748b;font-weight:400}.mnt-actions{white-space:nowrap;text-align:right}.mnt-small{padding:4px 9px;font-size:12px;margin-left:4px}.mnt-hist{padding:3px 0;font-size:12px}.mnt-hist .rcy-state{margin:0 8px 0 0}.mnt-ec{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.emp-table tbody tr{cursor:pointer}.emp-table tbody tr:hover{background:var(--hover-bg, #f8fafc)}.emp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0f172a73;display:flex;justify-content:flex-end}.emp-panel{width:min(560px,100vw);height:100%;overflow-y:auto;background:var(--card-bg, #fff);padding:18px 20px;box-shadow:-8px 0 24px #00000026}.emp-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.emp-head h2{margin:0;font-size:1.2rem}.emp-sub{font-size:.85rem;color:var(--text-muted, #64748b);margin-top:3px}.emp-off{margin-left:8px;font-size:.72rem;font-weight:700;background:#f1f5f9;color:#475569;border-radius:8px;padding:1px 7px}.emp-x{background:none;border:0;font-size:1.1rem;cursor:pointer;color:#64748b;padding:4px 6px}.emp-kinds{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.emp-list{list-style:none;margin:0;padding:0}.emp-list li{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--border, #e2e8f0);font-size:.88rem}.emp-ic{font-size:1.1rem;line-height:1.3}.emp-detail{color:#475569}.emp-meta{font-size:.78rem;color:var(--text-muted, #64748b);margin-top:2px}.ra-panel{font-size:.95rem}.ra-panel,.ra-panel *,.ra-panel *:before,.ra-panel *:after{box-sizing:border-box}.ra-summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px;margin-bottom:14px}.ra-summary-top{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.ra-ver{font-weight:700;font-size:1rem}.ra-meta{color:#64748b;font-size:.82rem}.ra-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ra-pill-ok{background:#dcfce7;color:#15803d}.ra-pill-due{background:#fef9c3;color:#a16207}.ra-pill-overdue{background:#fee2e2;color:#b91c1c}.ra-pill-none{background:#e2e8f0;color:#475569}.ra-pill-draft{background:#dbeafe;color:#1d4ed8}.ra-tally{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.ra-tally span{font-size:.75rem;font-weight:700;padding:3px 9px;border-radius:6px}.ra-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 13px;margin-bottom:10px}.ra-card.ra-excluded{opacity:.55}.ra-card.ra-unrated{border-left:4px solid #f59e0b}.ra-card-head{display:flex;align-items:flex-start;gap:10px}.ra-card-head h4{margin:0;font-size:.92rem;line-height:1.35;flex:1}.ra-card-head .ra-area{display:block;color:#64748b;font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.ra-toggle{flex:0 0 auto;min-width:44px;min-height:44px;border-radius:9px;border:1.5px solid #cbd5e1;background:#fff;color:#94a3b8;font-size:1.1rem;font-weight:700;cursor:pointer}.ra-toggle.on{background:#009a44;border-color:#009a44;color:#fff}.ra-rate{display:flex;gap:8px;margin-top:11px}.ra-rate button{flex:1;min-height:46px;border-radius:9px;border:1.5px solid #cbd5e1;background:#fff;color:#475569;font-size:.88rem;font-weight:700;cursor:pointer}.ra-rate button.on.ra-low{background:#16a34a;border-color:#16a34a;color:#fff}.ra-rate button.on.ra-med{background:#d97706;border-color:#d97706;color:#fff}.ra-rate button.on.ra-high{background:#dc2626;border-color:#dc2626;color:#fff}.ra-detail-btn{margin-top:10px;background:none;border:none;padding:6px 0;color:#1d4ed8;font-size:.82rem;font-weight:600;cursor:pointer}.ra-detail{margin-top:8px;border-top:1px solid #e2e8f0;padding-top:10px}.ra-field{margin-bottom:11px}.ra-field label{display:block;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.ra-field input,.ra-field textarea,.ra-head-grid input{width:100%;padding:11px 12px;border:1.5px solid #cbd5e1;border-radius:9px;font-size:16px;font-family:inherit;color:#1e293b;background:#fff}.ra-field textarea{min-height:80px;resize:vertical;line-height:1.45}.ra-field input:focus,.ra-field textarea:focus{outline:none;border-color:#009a44}.ra-head-grid{display:grid;grid-template-columns:1fr;gap:11px;margin-bottom:14px}@media(min-width:620px){.ra-head-grid{grid-template-columns:1fr 1fr}}.ra-head-grid label{display:block;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.ra-sig canvas{width:100%;height:160px;border:1.5px dashed #cbd5e1;border-radius:9px;background:#fff;display:block;touch-action:none}.ra-sig-row{display:flex;justify-content:space-between;align-items:center;margin-top:7px}.ra-sig-hint{font-size:.76rem;color:#94a3b8}.ra-sig-clear{background:none;border:none;color:#1d4ed8;font-size:.8rem;text-decoration:underline;padding:8px 4px;cursor:pointer}.ra-sig img{max-width:220px;height:auto;display:block}.ra-actions{background:#fff;border-top:1px solid #e2e8f0;padding:13px 0 0;margin-top:16px;display:flex;gap:9px;flex-wrap:wrap}.ra-actions button{min-height:46px;flex:1 1 auto;border-radius:9px;font-weight:700;font-size:.9rem;cursor:pointer;padding:0 16px}.ra-btn-go{background:#009a44;border:none;color:#fff}.ra-btn-go:disabled{opacity:.5}.ra-btn-flat{background:#fff;border:1.5px solid #cbd5e1;color:#475569}.ra-discard{display:block;margin:14px auto 0;background:none;border:none;color:#b91c1c;font-size:.82rem;text-decoration:underline;padding:10px 12px;cursor:pointer}.ra-msg{padding:11px 13px;border-radius:9px;font-size:.85rem;margin-bottom:12px}.ra-msg-ok{background:#dcfce7;color:#15803d}.ra-msg-err{background:#fee2e2;color:#b91c1c}.ra-progress{font-size:.8rem;color:#64748b;margin:0 0 11px}.ra-empty{color:#94a3b8;font-style:italic;font-size:.86rem}.ra-history{margin-top:14px;font-size:.84rem}.ra-history h4{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0 0 7px}.ra-history-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #e2e8f0}.ra-history-row:last-child{border-bottom:none}.ra-history-row button{background:none;border:none;color:#1d4ed8;font-size:.82rem;cursor:pointer;padding:0}.hs-panel{padding:4px 0 8px;font-size:.85rem}.hs-panel-loading{color:var(--text-muted);padding:14px 0}.hs-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.hs-entity{color:var(--text-muted);font-size:.8rem}.hs-status{display:inline-block;padding:3px 11px;border-radius:20px;font-size:.75rem;font-weight:600;margin-right:10px}.hs-status-current{background:var(--primary-light);color:var(--primary-dark)}.hs-status-expiring{background:var(--warning-light);color:var(--warning)}.hs-status-expired{background:var(--danger-light);color:var(--danger)}.hs-status-incomplete{background:#e0e7ff;color:#4338ca}.hs-status-none{background:#f1f5f9;color:var(--text-muted)}.hs-progress{color:var(--text-muted);font-size:.78rem}.hs-warn,.hs-error{margin:10px 0;padding:8px 12px;border-radius:6px;font-size:.8rem}.hs-warn{background:var(--warning-light);color:#92400e}.hs-error{background:var(--danger-light);color:var(--danger)}.hs-block{padding:14px 0 4px}.hs-block-title{margin:0 0 10px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.hs-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 14px}.hs-form label{display:flex;flex-direction:column;gap:4px}.hs-form label span{font-size:.75rem;font-weight:600;color:var(--text-muted)}.hs-form input{padding:7px 10px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.85rem;outline:none;transition:border-color .15s}.hs-form input:focus{border-color:var(--primary)}.hs-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.hs-btn{padding:7px 16px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.82rem;font-weight:600}.hs-btn:disabled{opacity:.5;cursor:not-allowed}.hs-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.hs-btn-primary:hover:not(:disabled){background:var(--primary-dark)}.hs-unsaved{font-size:.78rem;color:var(--warning)}.hs-genmeta{margin:9px 0 0;font-size:.78rem;color:var(--text-muted)}.hs-ok{margin-top:10px;padding:9px 12px;border-radius:7px;background:var(--primary-light);color:var(--primary-dark);font-size:.82rem}.hs-ok a{color:var(--primary-dark);font-weight:700}.hs-partial{margin-top:10px;padding:9px 12px;border-radius:7px;background:var(--warning-light);color:#92400e;font-size:.82rem}.hs-partial a{color:#92400e;font-weight:700}.hs-blockers{margin-top:10px;padding:11px 14px;border-radius:8px;background:var(--danger-light);color:#991b1b;font-size:.82rem}.hs-blockers ul{margin:7px 0 10px;padding-left:20px;line-height:1.7}.hs-btn-warn{background:var(--card-bg);border-color:var(--danger);color:var(--danger)}.hs-btn-warn:hover:not(:disabled){background:var(--danger);color:#fff}.hs-sections{display:flex;flex-direction:column;gap:6px}.hs-section{border:1px solid var(--border);border-radius:8px;padding:9px 12px;background:var(--card-bg)}.hs-section-missing{border-color:#fcd34d;background:#fffbeb}.hs-section-head{display:flex;align-items:center;gap:10px}.hs-section-no{width:20px;height:20px;flex:0 0 20px;border-radius:50%;background:#f1f5f9;color:var(--text-muted);font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.hs-section-title{font-weight:600;flex:1}.hs-section-source{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.hs-tick{width:20px;height:20px;flex:0 0 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff}.hs-tick-ok{background:var(--primary)}.hs-tick-missing{background:var(--warning)}.hs-doclist{list-style:none;margin:8px 0 0;padding:0 0 0 30px;display:flex;flex-direction:column;gap:5px}.hs-doclist li{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:.8rem}.hs-doclist a{color:var(--primary-dark);text-decoration:none;font-weight:500}.hs-doclist a:hover{text-decoration:underline}.hs-rev{font-size:.72rem;color:var(--text-muted)}.hs-empty{margin:7px 0 0 30px;font-size:.78rem;color:var(--text-muted);font-style:italic}.hs-reg-mount{margin:10px 0 4px 30px}.hs-reg-tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.hs-reg-tab{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1.5px solid var(--border);border-radius:18px;background:var(--card-bg);font-size:.78rem;font-weight:600;color:var(--text-muted)}.hs-reg-tab-on{background:var(--primary);border-color:var(--primary);color:#fff}.hs-reg-count{background:#00000024;border-radius:10px;padding:0 6px;font-size:.68rem}.hs-reg-tab-on .hs-reg-count{background:#ffffff47}.hs-reg-blurb{margin:0 0 9px;font-size:.78rem;color:var(--text-muted)}.hs-reg-note{margin:7px 0 0;font-size:.75rem;color:var(--text-muted);font-style:italic}.hs-reg-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px}.hs-reg-form label{display:flex;flex-direction:column;gap:3px;min-width:96px}.hs-reg-form label span{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.hs-reg-form input,.hs-reg-form select{padding:6px 9px;border:1.5px solid var(--border);border-radius:6px;background:var(--card-bg);color:var(--text);font-size:.8rem;outline:none}.hs-reg-form input:focus,.hs-reg-form select:focus{border-color:var(--primary)}.hs-reg-add{flex:0 0 auto;padding:7px 18px}.hs-reg-table-wrap{overflow-x:auto}.hs-reg-table{width:100%;min-width:460px;border-collapse:collapse;font-size:.78rem}.hs-reg-table th{text-align:left;padding:6px 9px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1.5px solid var(--border)}.hs-reg-table td{padding:6px 9px;border-bottom:1px solid var(--border)}.hs-reg-none{color:var(--text-muted);font-style:italic}.hs-reg-sig{height:26px;width:auto;max-width:120px;border:1px solid var(--border);border-radius:4px;background:#fff}.hs-reg-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}.hs-mini-x{border:none;background:none;color:var(--text-muted);font-size:.8rem;padding:2px 4px;border-radius:4px}.hs-mini-x:hover{color:var(--danger);background:var(--danger-light)}.hs-reg-share{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.hs-reg-share-open{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.hs-reg-share-open img{width:130px;height:130px;border:1px solid var(--border);border-radius:8px}.hs-reg-share-label{margin:0 0 6px;font-size:.78rem;font-weight:600}.hs-reg-share-url{width:100%;max-width:380px;padding:6px 9px;border:1.5px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.75rem;font-family:ui-monospace,Menlo,Consolas,monospace}.hs-cert-warn{margin:0 0 10px;padding:8px 11px;border-radius:7px;background:var(--warning-light);color:#92400e;font-size:.76rem}.hs-cert-table{width:100%;border-collapse:collapse;font-size:.79rem;margin-bottom:10px}.hs-cert-table th{text-align:left;padding:5px 9px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1.5px solid var(--border)}.hs-cert-table td{padding:6px 9px;border-bottom:1px solid var(--border)}.hs-cert-table a{color:var(--primary-dark);font-weight:600;text-decoration:none}.hs-cert-table a:hover{text-decoration:underline}.hs-cert-add{padding:6px 14px;font-size:.79rem}.hs-cert-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px;padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.hs-cert-form label{display:flex;flex-direction:column;gap:3px;min-width:130px}.hs-cert-form label span{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.hs-cert-form input{padding:6px 9px;border:1.5px solid var(--border);border-radius:6px;background:var(--card-bg);color:var(--text);font-size:.8rem;outline:none}.hs-cert-form input:focus{border-color:var(--primary)}.hs-cert-form input[type=file]{padding:4px;font-size:.74rem}.hs-cert-file{flex:1;min-width:190px}.hs-cert-actions{display:flex;gap:7px}.hs-pill{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:600;white-space:nowrap}.hs-pill-green{background:var(--primary-light);color:var(--primary-dark)}.hs-pill-amber{background:var(--warning-light);color:#92400e}.hs-pill-red{background:var(--danger-light);color:var(--danger)}.hs-pill-grey{background:#f1f5f9;color:var(--text-muted)}.hs-pill-blue{background:#dbeafe;color:#1d4ed8}.hs-doc-remove{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:.75rem;line-height:1;padding:2px 4px;border-radius:4px;opacity:.55;transition:opacity .15s,color .15s,background .15s}.hs-doc-remove:hover{opacity:1;color:var(--danger);background:var(--danger-light)}.hs-sitemap{margin:9px 0 0 30px;display:flex;align-items:flex-start;gap:12px}.hs-sitemap img{max-width:220px;max-height:150px;border:1px solid var(--border);border-radius:6px;object-fit:contain}.hs-file-btn{display:inline-block;padding:6px 13px;border:1.5px dashed var(--border);border-radius:7px;font-size:.78rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.hs-file-btn:hover{border-color:var(--primary);color:var(--primary-dark)}.hs-file-btn input{display:none}.hs-file-btn-sm{margin:8px 0 0 30px;padding:5px 11px;font-size:.74rem}.hs-form-readonly input{background:var(--bg);border-color:transparent;color:var(--text-muted);cursor:default}.hs-genskip{margin-top:5px;font-size:.75rem;opacity:.85}.hs-qr-section{margin-top:14px;padding-top:14px;border-top:1px solid #e2e8f0}.hs-qr-card{text-align:center;padding:12px 0}.hs-qr-img{width:200px;height:200px;border:1px solid #e2e8f0;border-radius:8px}.hs-qr-label{font-weight:600;margin:8px 0 2px}.hs-qr-status{font-size:.78rem;color:#64748b;margin:0 0 10px}.hs-qr-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.hs-qr-url{font-size:.72rem;color:#94a3b8;word-break:break-all;margin-top:8px}.hs-section-hint{font-weight:400;font-size:.85em;color:#64748b}.hs-card{display:inline-block;margin-left:6px;font-size:.7rem;font-weight:700;border-radius:8px;padding:1px 6px;white-space:nowrap}.hs-card-ok{background:#dcfce7;color:#166534}.hs-card-typed{background:#f1f5f9;color:#64748b}.hsl-page{padding:24px 28px 60px;max-width:1180px}.hsl-header h1{font-size:1.5rem;margin:0 0 4px}.hsl-sub{color:var(--text-muted);font-size:.85rem;margin:0 0 20px;max-width:620px}.hsl-alert{background:var(--warning-light);color:#92400e;padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:18px}.hsl-error{background:var(--danger-light);color:var(--danger);padding:8px 12px;border-radius:6px;font-size:.8rem;margin:10px 0}.hsl-loading{color:var(--text-muted);padding:20px 0}.hsl-tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:20px}.hsl-tab{padding:9px 18px;border:none;background:none;font-size:.88rem;font-weight:600;color:var(--text-muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.hsl-tab:hover{color:var(--text)}.hsl-tab-active{color:var(--primary-dark);border-bottom-color:var(--primary)}.hsl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:20px}.hsl-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--card-bg)}.hsl-tile-value{font-size:1.7rem;font-weight:700;line-height:1.1}.hsl-tile-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.hsl-tile-red{background:var(--danger-light);border-color:#fca5a5}.hsl-tile-red .hsl-tile-value{color:var(--danger)}.hsl-tile-blue{background:#e0e7ff;border-color:#c7d2fe}.hsl-tile-blue .hsl-tile-value{color:#4338ca}.hsl-tile-grey{background:#f1f5f9}.hsl-tile-grey .hsl-tile-value{color:var(--text-muted)}.hsl-tile-green{background:var(--primary-light);border-color:#86efac}.hsl-tile-green .hsl-tile-value{color:var(--primary-dark)}.hsl-filters{display:flex;align-items:center;gap:10px;margin-bottom:10px}.hsl-filters select{padding:7px 10px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.83rem;outline:none}.hsl-filters select:focus{border-color:var(--primary)}.hsl-filter-count{font-size:.8rem;color:var(--text-muted)}.hsl-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.hsl-table{background:var(--card-bg);min-width:640px}.hsl-search{flex:1;min-width:180px;max-width:340px;padding:7px 11px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.83rem;outline:none}.hsl-search:focus{border-color:var(--primary)}.hsl-tr{display:grid;grid-template-columns:26px minmax(150px,2fr) 70px 90px 105px minmax(150px,2fr);gap:12px;padding:9px 14px;border-bottom:1px solid var(--border);font-size:.82rem;align-items:center}.hsl-tr-click{cursor:pointer;transition:background .12s}.hsl-tr-click:hover{background:var(--bg)}.hsl-caret{color:var(--text-muted);font-size:.7rem}.hsl-row-open{background:var(--bg)}.hsl-row-open>.hsl-tr{border-bottom:none}.hsl-row-detail{padding:4px 18px 16px 44px;border-bottom:1px solid var(--border)}.hsl-tr:last-child{border-bottom:none}.hsl-th{background:var(--bg);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.hsl-td-name{font-weight:600}.hsl-td-mono{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--text-muted)}.hsl-td-missing{color:var(--text-muted);font-size:.78rem}.hsl-td-none{color:var(--text-muted)}.hsl-entity-cards{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.hsl-entity-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;border:1.5px solid var(--border);border-radius:10px;background:var(--card-bg);text-align:left;transition:border-color .15s,background .15s}.hsl-entity-card:hover{border-color:var(--primary)}.hsl-entity-card-active{border-color:var(--primary);background:var(--primary-light)}.hsl-entity-name{font-weight:700;font-size:.9rem;color:var(--text)}.hsl-entity-count{font-size:.75rem;color:var(--text-muted)}.hsl-upload{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:26px}.hsl-upload-title{margin:0 0 4px;font-size:1rem}.hsl-upload-hint{margin:0 0 16px;font-size:.8rem;color:var(--text-muted);max-width:640px}.hsl-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}.hsl-form-grid label{display:flex;flex-direction:column;gap:4px}.hsl-form-grid label>span{font-size:.75rem;font-weight:600;color:var(--text-muted)}.hsl-req{color:var(--danger);font-style:normal;font-size:.68rem;font-weight:700;text-transform:uppercase;margin-left:4px}.hsl-hint{color:var(--text-muted);font-style:normal;font-weight:400;font-size:.68rem}.hsl-form-grid input,.hsl-form-grid select{padding:7px 10px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.85rem;outline:none;transition:border-color .15s}.hsl-form-grid input:focus,.hsl-form-grid select:focus{border-color:var(--primary)}.hsl-form-grid input[type=file]{padding:5px;font-size:.78rem}.hsl-btn{margin-top:14px;padding:8px 20px;border:1.5px solid var(--border);border-radius:8px;background:var(--card-bg);font-size:.85rem;font-weight:600;color:var(--text)}.hsl-btn:disabled{opacity:.55;cursor:not-allowed}.hsl-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.hsl-btn-primary:hover:not(:disabled){background:var(--primary-dark)}.hsl-sections{display:flex;flex-direction:column;gap:14px}.hsl-section{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.hsl-section-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.hsl-section-head h3{font-size:.92rem;margin:0;flex:1}.hsl-section-no{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#f1f5f9;color:var(--text-muted);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}.hsl-section-count{font-size:.75rem;font-weight:700;color:var(--text-muted);background:#f1f5f9;border-radius:12px;padding:2px 10px}.hsl-section-empty{margin:0 0 0 32px;font-size:.8rem;color:var(--text-muted);font-style:italic}.hsl-doc-grid{display:flex;flex-direction:column;gap:6px;margin-left:32px}.hsl-doc{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.hsl-doc-main{display:flex;align-items:baseline;gap:7px;flex:1;min-width:180px}.hsl-doc-title{font-weight:600;font-size:.85rem;color:var(--primary-dark);text-decoration:none}.hsl-doc-title:hover{text-decoration:underline}.hsl-doc-rev{font-size:.72rem;color:var(--text-muted)}.hsl-doc-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hsl-doc-actions{display:flex;gap:6px}.hsl-tag{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.7rem;font-weight:600;white-space:nowrap;border:none}.hsl-tag-grey{background:#f1f5f9;color:var(--text-muted)}.hsl-tag-blue{background:#e0e7ff;color:#4338ca}.hsl-tag-green{background:var(--primary-light);color:var(--primary-dark)}.hsl-tag-amber{background:var(--warning-light);color:#92400e}.hsl-tag-red{background:var(--danger-light);color:var(--danger)}.hsl-tag-btn{cursor:pointer}.hsl-mini{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);font-size:.72rem;font-weight:600;color:var(--text-muted);text-decoration:none}.hsl-mini:hover{border-color:var(--primary);color:var(--primary-dark)}.hsl-mini-danger:hover{border-color:var(--danger);color:var(--danger)}.hsl-auto-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.hsl-switch{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600}.hsl-switch input{width:16px;height:16px;accent-color:var(--primary)}.hsl-auto-hour{display:flex;align-items:center;gap:7px;font-size:.85rem;color:var(--text-muted)}.hsl-auto-hour select{padding:6px 9px;border:1.5px solid var(--border);border-radius:7px;background:var(--card-bg);color:var(--text);font-size:.83rem;outline:none}.hsl-auto-hour select:focus{border-color:var(--primary)}.hsl-auto-hour select:disabled{opacity:.5}.hsl-section-hint{font-weight:400;font-size:.82em;color:#64748b}.cmp-saving{color:var(--text-muted);font-weight:500}.cmp-alert{background:var(--danger-light);color:var(--danger);border:1px solid var(--danger);border-radius:8px;padding:10px 14px;font-size:.85rem;margin-bottom:14px}.cmp-form{background:var(--surface, #fff);border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:18px}.cmp-form-title{margin:0 0 4px;font-size:1rem}.cmp-form-hint{margin:0 0 16px;font-size:.8rem;color:var(--text-muted)}.cmp-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin-bottom:12px}.cmp-form label,.cmp-detail label{display:flex;flex-direction:column;gap:5px;font-size:.82rem}.cmp-form label>span,.cmp-detail label>span{font-weight:600;color:var(--text-muted)}.cmp-hint{color:var(--text-muted);font-style:normal;font-weight:400;font-size:.72rem}.cmp-full{display:flex;flex-direction:column;gap:5px;font-size:.82rem}.cmp-form input,.cmp-form select,.cmp-form textarea,.cmp-detail input,.cmp-detail select,.cmp-detail textarea{padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-family:inherit;font-size:.85rem;background:#fff;resize:vertical}.cmp-form-actions,.cmp-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.cmp-danger{color:var(--danger);border-color:var(--danger)}.cmp-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cmp-table-wrap{border:1px solid var(--border);border-radius:10px;overflow:hidden}.cmp-row{display:grid;grid-template-columns:90px 110px minmax(160px,2fr) 150px 150px 100px 34px;align-items:center;gap:10px;padding:10px 14px}.cmp-header{background:var(--bg-subtle, #f8fafc);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border)}.cmp-data{border-bottom:1px solid var(--border);font-size:.85rem;cursor:pointer;transition:background .12s}.cmp-data:hover,.cmp-row-expanded{background:var(--bg-subtle, #f8fafc)}.cmp-cell{min-width:0;overflow:hidden;text-overflow:ellipsis}.cmp-ref{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.cmp-cust{font-weight:600}.cmp-expand{color:var(--text-muted);font-size:.7rem;text-align:right}.cmp-badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.7rem;font-weight:700;white-space:nowrap}.cmp-badge-open{background:var(--danger-light);color:var(--danger)}.cmp-badge-done{background:var(--primary-light);color:var(--primary-dark)}.cmp-detail{padding:16px 18px 18px;border-bottom:1px solid var(--border);background:var(--bg-subtle, #f8fafc)}.cmp-detail-block{margin-bottom:14px}.cmp-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.cmp-desc{margin:6px 0 8px;padding:10px 12px;background:#fff;border-left:3px solid var(--danger);border-radius:5px;font-size:.88rem;white-space:pre-wrap}.cmp-meta{margin:0;font-size:.76rem;color:var(--text-muted)}.cmp-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;margin-bottom:12px}@media(max-width:900px){.cmp-row{grid-template-columns:80px minmax(120px,2fr) 110px 28px}.cmp-row .cmp-cell:nth-child(2),.cmp-row .cmp-cell:nth-child(4),.cmp-row .cmp-cell:nth-child(5){display:none}}.cmp-resp-block{display:flex;flex-direction:column;gap:8px;margin-top:4px}.cmp-resp-empty{margin:0;font-size:.82rem;color:var(--text-muted);font-style:italic}.cmp-resp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cmp-resp{border:1px solid var(--border);border-left:3px solid var(--primary, #2563eb);border-radius:6px;padding:8px 12px;background:var(--surface, #fff)}.cmp-resp-migrated{border-left-color:var(--text-muted);background:var(--bg-subtle, #f8fafc)}.cmp-resp-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:.78rem}.cmp-resp-lock{font-size:.72rem;opacity:.7}.cmp-resp-time{color:var(--text-muted)}.cmp-resp-body{margin:4px 0 0;font-size:.85rem;white-space:pre-wrap}.cmp-resp-add{display:flex;flex-direction:column;gap:6px;margin-top:4px}.cmp-resp-add textarea{width:100%;box-sizing:border-box;font:inherit;font-size:.85rem;padding:8px 10px;border:1px solid var(--border);border-radius:6px;resize:vertical}.cmp-resp-add-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.cc-page{padding:24px;max-width:1600px}.cc-loading{color:#6b7280;padding:24px}.cc-year-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;background:#fff}.cc-table-wrap{overflow-x:auto;margin-top:12px}.cc-table{width:100%;border-collapse:collapse;font-size:.88rem}.cc-table thead{background:#f8fafc;position:sticky;top:0;z-index:1}.cc-table th{text-align:left;padding:10px 12px;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;white-space:nowrap}.cc-th-date{min-width:90px;white-space:nowrap}.cc-th-name{min-width:200px}.cc-th-status{min-width:360px}.cc-th-num{text-align:right!important;min-width:110px}.cc-th-type{min-width:80px}.cc-th-actions{width:70px}.cc-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.cc-cell-date{white-space:nowrap;color:#64748b;font-size:.84rem}.cc-cell-name{font-weight:500}.cc-cell-status{color:#6b7280;font-size:.84rem}.cc-cell-num{text-align:right;font-variant-numeric:tabular-nums;font-family:SF Mono,Cascadia Code,Consolas,monospace}.cc-cell-total{font-weight:600}.cc-val-pos{color:#16a34a}.cc-val-neg{color:#dc2626}.cc-type-badge{display:inline-block;padding:2px 10px;border-radius:4px;font-size:.75rem;font-weight:600}.cc-type-add{background:#dcfce7;color:#15803d}.cc-type-change{background:#dbeafe;color:#1d4ed8}.cc-type-ends{background:#fee2e2;color:#b91c1c}.cc-actions{display:flex;gap:4px}.cc-btn-edit,.cc-btn-del{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:4px;opacity:.4}.cc-btn-edit:hover{opacity:1;background:#f1f5f9}.cc-btn-del:hover{opacity:1;background:#fee2e2;color:#dc2626}.cc-row:hover .cc-btn-edit,.cc-row:hover .cc-btn-del{opacity:.7}.cc-row-edit td{padding:4px 6px}.cc-input{width:100%;padding:5px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem}.cc-input-num{text-align:right;width:100px}.cc-input-date{width:130px}.cc-btn-save{background:#16a34a;color:#fff;border:none;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600}.cc-btn-save:hover{background:#15803d}.cc-btn-cancel{background:none;border:1px solid #d1d5db;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:.8rem}.cc-totals td{border-top:2px solid #334155;padding:12px;background:#f8fafc;white-space:nowrap}.cc-confirm{background:#fff;padding:24px;border-radius:10px;max-width:320px;text-align:center}.cc-confirm p{margin-bottom:16px;font-weight:500}.cc-confirm-actions{display:flex;gap:8px;justify-content:center}.cc-row-add{background:#f0fdf4}.cc-row-ends{background:#fef2f2}.app-layout{display:flex;height:100vh;overflow:hidden}.app-main{flex:1;overflow-y:auto;background:var(--bg)}.app-main.full-embed{overflow:hidden;display:flex;flex-direction:column}.app-main.sidebar-hidden{overflow-y:auto}@media print{.sidebar{display:none!important}.app-layout{display:block;height:auto;overflow:visible}.app-main{overflow:visible}}.mobile-topbar,.nav-backdrop{display:none}@media(max-width:900px){.mobile-topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:40;background:var(--sidebar-bg);color:#fff;padding:8px 10px;flex:0 0 auto}.mobile-menu-btn{min-width:44px;min-height:44px;border:none;border-radius:9px;background:#ffffff1f;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer}.mobile-topbar-title{font-size:.95rem;font-weight:700;letter-spacing:.01em}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a80;border:none;width:100%}}.view-only-banner{margin:0 0 12px;padding:9px 14px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;font-size:13px;line-height:1.4}.page-view-only :is(.btn-primary,.btn-ss-primary,.btn-danger,.btn-icon-del,.btn-icon-danger,.hs-btn-primary,.hsl-btn-primary,.hs-reg-add,.hs-mini-danger,.hsl-mini-danger,.cc-btn-save,.rc-add-btn,.rc-del-btn,.ws-btn-go,.ra-btn-go):not([data-view-ok]):not([data-view-ok-scope] *){display:none!important}.page-view-only [data-view-only-hidden]{display:none!important}.page-view-only [data-view-only-locked]{background:#f8fafc;color:#475569;cursor:not-allowed}.view-only-toast{position:fixed;bottom:24px;right:24px;z-index:10000;max-width:420px;cursor:pointer;padding:12px 16px;border-radius:8px;background:#1e3a8a;color:#fff;font-size:13px;font-weight:600;line-height:1.4;box-shadow:0 4px 14px #00000040}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #16a34a;--primary-dark: #15803d;--primary-light: #dcfce7;--sidebar-bg: #1a1a2e;--sidebar-text: #e2e8f0;--sidebar-hover: #16213e;--bg: #f8fafc;--card-bg: #ffffff;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--danger: #dc2626;--danger-light: #fee2e2;--warning: #d97706;--warning-light: #fef3c7}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}
