:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17202a;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit}.shell{max-width:1240px;margin:0 auto;padding:0 32px 42px}.topbar{height:76px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5eaf1}.brand,.detail-head,.job-row,.customer-card{display:flex;align-items:center}.brand{gap:11px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#fff;background:#246bfe;font-weight:800;box-shadow:0 5px 12px #246bfe35}.brand strong{display:block;font-size:15px;letter-spacing:-.02em}.brand span{display:block;color:#8691a2;font-size:11px;margin-top:1px}.topbar-date{color:#748095;font-size:13px}.welcome{display:flex;justify-content:space-between;align-items:end;padding:46px 0 30px;gap:24px}.eyebrow{color:#246bfe;font-size:11px;font-weight:800;letter-spacing:.11em;margin:0 0 8px;text-transform:uppercase}h1,h2,p{margin-top:0}h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.045em;line-height:1.1;margin-bottom:12px}h2{font-size:18px;letter-spacing:-.025em;margin:0}.muted{color:#768398}.welcome .muted{font-size:14px;margin:0}.summary-pill{display:flex;align-items:center;gap:9px;padding:11px 15px;border:1px solid #dce7ff;border-radius:999px;color:#47618d;background:#f3f7ff;font-size:12px;white-space:nowrap}.summary-pill strong{color:#246bfe;font-size:15px}.summary-dot{width:7px;height:7px;background:#27b477;border-radius:50%}.error-banner{margin-bottom:20px;padding:13px 16px;border:1px solid #f3caca;border-radius:10px;color:#9f3030;background:#fff6f6;font-size:13px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.metric-card{display:grid;grid-template-columns:auto 1fr;column-gap:13px;padding:20px;border:1px solid #e5eaf1;border-radius:14px;background:#fff;box-shadow:0 5px 18px #20304d05}.metric-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;font-size:20px;font-weight:700;grid-row:span 2}.metric-icon.blue{color:#246bfe;background:#eaf1ff}.metric-icon.orange{color:#e4862d;background:#fff1df}.metric-icon.green{color:#1fa06a;background:#e5f8ef}.metric-card div span,.metric-card small{color:#7a869a;font-size:12px}.metric-card div strong{display:block;font-size:25px;line-height:1.15}.metric-card small{grid-column:2;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;align-items:stretch}.panel{padding:23px;border:1px solid #e5eaf1;border-radius:14px;background:#fff;box-shadow:0 5px 18px #20304d05}.panel-heading{display:flex;align-items:start;justify-content:space-between;margin-bottom:20px}.count-badge{min-width:25px;padding:4px 8px;border-radius:8px;color:#246bfe;background:#eaf1ff;font-size:12px;font-weight:700;text-align:center}.schedule-list,.job-list{border-top:1px solid #edf0f5}.schedule-item,.job-row{width:100%;border:0;border-bottom:1px solid #edf0f5;background:transparent;text-align:left;cursor:pointer}.schedule-item{display:grid;grid-template-columns:60px 2px 1fr auto;gap:14px;align-items:center;padding:17px 4px;color:inherit}.schedule-item:hover,.schedule-item.selected,.job-row:hover,.job-row.selected{background:#f8faff}.time-block strong,.time-block span{display:block}.time-block strong{font-size:14px}.time-block span{color:#93a0b2;font-size:11px;margin-top:3px}.schedule-line{height:42px;background:#dce6fa;border-radius:3px}.schedule-detail strong,.schedule-detail span,.schedule-detail small{display:block}.schedule-detail strong{font-size:13px}.schedule-detail span{color:#64738b;font-size:12px;margin-top:4px}.schedule-detail small{color:#246bfe;font-size:11px;margin-top:5px}.chevron{color:#a7b2c1;font-size:23px;font-weight:300}.detail-panel{position:relative;min-height:280px}.detail-head{align-items:center;gap:13px;padding-bottom:20px;border-bottom:1px solid #edf0f5}.detail-head h2{margin-bottom:4px}.detail-head .muted{font-size:13px}.avatar{display:grid;flex:0 0 auto;place-items:center;width:35px;height:35px;border-radius:11px;color:#246bfe;background:#eaf1ff;font-size:11px;font-weight:800}.avatar.large{width:48px;height:48px;border-radius:14px;font-size:14px}.detail-body{display:grid;gap:17px;padding:20px 0 14px}.detail-body>div{display:grid;gap:5px}.detail-label{color:#8995a6;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.detail-body strong{font-size:13px}.description p{color:#637188;font-size:13px;line-height:1.5;margin:0}.text-button{padding:0;border:0;color:#246bfe;background:transparent;cursor:pointer;font-size:12px;font-weight:700}.detail-empty{display:grid;place-items:center;align-content:center;height:100%;min-height:230px;text-align:center}.detail-empty h2{margin:11px 0 6px}.detail-empty p{max-width:220px;color:#8490a2;font-size:13px;line-height:1.45;margin:0}.detail-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#246bfe;background:#eaf1ff;font-size:21px}.jobs-panel,.customers-panel{margin-top:18px}.job-row{display:grid;grid-template-columns:auto minmax(140px,1fr) minmax(130px,.7fr) auto auto;gap:13px;align-items:center;padding:14px 5px}.job-main strong,.job-main span,.job-visit span,.job-visit strong{display:block}.job-main strong{font-size:13px}.job-main span,.job-visit span{color:#7d899c;font-size:12px;margin-top:4px}.job-visit strong{color:#4e5d73;font-size:12px;margin-top:4px}.status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.status-new{color:#66758c;background:#eef1f5}.status-scheduled{color:#246bfe;background:#eaf1ff}.status-quoted{color:#9c6819;background:#fff4da}.status-approved,.status-completed{color:#168157;background:#e3f8ed}.status-invoiced,.status-paid{color:#7552bc;background:#f0eaff}.status-closed{color:#66758c;background:#eef1f5}.customer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.customer-card{gap:11px;padding:14px;border:1px solid #edf0f5;border-radius:11px}.customer-card strong,.customer-card span,.customer-card small{display:block}.customer-card strong{font-size:13px}.customer-card span{overflow:hidden;max-width:180px;color:#79869a;font-size:11px;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.customer-card small{color:#246bfe;font-size:10px;font-weight:700;margin-top:5px}.empty-state{display:grid;place-items:center;padding:38px 20px;color:#8390a3;text-align:center}.empty-state>span{font-size:27px;color:#b8c4d4}.empty-state strong{color:#58677d;font-size:13px;margin-top:7px}.empty-state p{font-size:12px;margin:5px 0 0}.loading-card{display:grid;place-items:center;min-height:70vh;color:#6d7b90;font-size:13px}.password-gate{display:grid;justify-items:center;gap:12px;width:280px;text-align:center}.password-gate-title{font-size:22px;letter-spacing:-.03em;margin:4px 0 0}.password-gate input{width:100%;padding:11px 13px;border:1px solid #dbe1ea;border-radius:9px;font-size:14px}.password-gate input:focus{outline:none;border-color:#246bfe;box-shadow:0 0 0 3px #246bfe22}.password-gate button{width:100%;padding:11px 13px;border:0;border-radius:9px;color:#fff;background:#246bfe;font-size:14px;font-weight:700;cursor:pointer}.password-gate button:hover{background:#1957e0}.password-gate-error{color:#b13a3a;font-size:12px;margin:0}.spinner{width:24px;height:24px;border:3px solid #dce6fa;border-top-color:#246bfe;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{display:flex;justify-content:space-between;padding:28px 4px 0;color:#a2adbb;font-size:11px}@media (max-width: 800px){.shell{padding:0 18px 30px}.welcome{display:block;padding:34px 0 24px}.summary-pill{display:inline-flex;margin-top:18px}.dashboard-grid{grid-template-columns:1fr}.job-row{grid-template-columns:auto 1fr auto}.job-visit{display:none}.customer-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.topbar-date{display:none}.metrics{gap:8px}.metric-card{display:block;padding:13px 10px}.metric-icon{margin-bottom:10px}.metric-card div strong{font-size:20px}.metric-card small{display:block;line-height:1.3}.panel{padding:17px 14px}.schedule-item{grid-template-columns:52px 2px 1fr auto;gap:9px}.customer-grid{grid-template-columns:1fr}.job-row{gap:8px}.job-row .status{display:none}footer{display:block;line-height:1.8}}
