:root{--navy-deep:#081f3a;--navy:#0b2f52;--navy-mid:#0d4d84;--blue:#1578aa;--blue-bright:#1e90d8;--blue-deep:#0b5ea8;--blue-gradient:linear-gradient(180deg,#2b9ded,#0b5ea8);--blue-gradient-hover:linear-gradient(180deg,#1f8fe0,#094e8c);--sky:#bfebfe;--sky-tint:#eef8fd;--sun-yellow:#ffd800;--sun-orange:#f47c20;--sun-red:#d9431f;--sun-gradient:linear-gradient(180deg,#f7911f,#e9541e);--sun-gradient-hover:linear-gradient(180deg,#ee8412,#d4461a);--brand-stripe:linear-gradient(90deg,#f7a51f,#ea5a1e 55%,#c12400);--bg:#f3f6fa;--card-bg:#fff;--border:#e1e7ee;--text:#16233a;--muted:#64748b;--success:#1e8e5a;--success-bg:#e3f3ea;--danger:#c12400;--danger-bg:#fbe9e5;--shadow-sm:0 1px 2px rgba(11,47,82,.05),0 1px 6px rgba(11,47,82,.04);--shadow-md:0 6px 20px rgba(11,47,82,.1);--radius:12px}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);font-family:var(--font-sans,"Open Sans"),"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;margin:0;padding:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit}::selection{background:var(--sky)}.spha-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:#fff;box-shadow:0 1px 0 var(--border),0 4px 16px rgba(11,47,82,.06)}.spha-header:after{content:"";display:block;height:3px;background:var(--brand-stripe)}.spha-header-inner{max-width:1280px;margin:0 auto;padding:8px 24px;justify-content:space-between;gap:18px}.spha-brand,.spha-header-inner{display:flex;align-items:center}.spha-brand{text-decoration:none;flex:none}.spha-brand-chip{display:flex;align-items:center}.spha-brand-chip img{height:46px;width:auto;display:block}.spha-nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap;flex:1 1;justify-content:center}.spha-nav a{position:relative;color:var(--navy);font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:10px 9px;border-radius:6px;text-decoration:none;transition:color .15s ease,background .15s ease;white-space:nowrap}.spha-nav a:hover{background:#fff6ef;text-decoration:none}.spha-nav a.active,.spha-nav a:hover{color:var(--sun-red)}.spha-nav a.active:after{content:"";position:absolute;left:9px;right:9px;bottom:4px;height:3px;border-radius:2px;background:var(--sun-gradient)}.spha-user{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:12.5px;font-weight:600;flex:none}.spha-user .role-pill{background:var(--navy);color:#fff;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.spha-signout{background:#fff;border:1px solid var(--border);color:var(--navy);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}.spha-signout:hover{border-color:var(--blue);background:var(--sky-tint)}.spha-help-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--sun-orange);background:#fff;color:var(--sun-red);font-weight:800;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.spha-help-btn:hover{background:var(--sun-gradient);color:#fff;border-color:transparent}.spha-hero{background:radial-gradient(circle at 4% 210%,transparent 70%,rgba(191,235,254,.08) 71%,rgba(191,235,254,.08) 72%,transparent 73%),radial-gradient(circle at 4% 210%,transparent 84%,rgba(191,235,254,.06) 85%,rgba(191,235,254,.06) 86%,transparent 87%),radial-gradient(circle at 96% -60%,rgba(241,139,0,.18) 0,rgba(241,139,0,0) 55%),linear-gradient(120deg,var(--navy-deep),var(--navy) 65%,var(--navy-mid) 140%);border-radius:14px;padding:26px 30px;color:#fff;margin-bottom:22px;box-shadow:0 6px 20px rgba(8,31,58,.15)}.spha-hero-eyebrow{text-transform:uppercase;letter-spacing:1.2px;font-size:10.5px;font-weight:700;color:var(--sun-yellow);margin-bottom:4px}.spha-hero h1{color:#fff;margin:0 0 6px;font-size:26px;font-weight:800}.spha-hero p{color:hsla(0,0%,100%,.78);margin:0;font-size:14px;max-width:640px}.spha-main{max-width:1280px;margin:0 auto;padding:28px 24px 70px}.spha-h1{color:var(--navy);font-size:26px;font-weight:800;letter-spacing:-.2px;margin:0 0 4px}.spha-subtitle{color:var(--muted);font-size:13.5px;line-height:1.5;margin:0 0 20px;max-width:900px}.spha-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.spha-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--navy);font-weight:700;font-size:15px}.spha-card>.spha-card-header:first-child{margin:-20px -22px 12px;padding:14px 18px;border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:#fbfcfe}.spha-card>.spha-table{margin-top:0}.spha-card>.spha-table:first-child th:first-child{border-top-left-radius:var(--radius)}.spha-card>.spha-table:first-child th:last-child{border-top-right-radius:var(--radius)}.spha-stat-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.spha-stat{flex:1 1;min-width:160px;background:#fff;border:1px solid var(--border);border-left:4px solid var(--sun-orange);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.spha-stat-value{font-size:28px;font-weight:800;color:var(--navy);line-height:1.1}.spha-stat-label{letter-spacing:.5px;margin-top:4px;font-weight:600}.spha-label,.spha-stat-label{color:var(--muted);font-size:11.5px;text-transform:uppercase}.spha-label{display:block;font-weight:700;letter-spacing:.4px;margin-bottom:4px}.spha-input{width:100%;border:1px solid #cfd8e3;border-radius:8px;padding:8px 11px;font-size:13.5px;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.spha-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,120,170,.15)}.spha-btn,.spha-btn-blue,.spha-btn-gray{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:700;line-height:1.2;cursor:pointer;text-decoration:none!important;transition:filter .15s ease,transform .05s ease,background .15s ease,border-color .15s ease;white-space:nowrap}.spha-btn-blue:active,.spha-btn-gray:active,.spha-btn:active{transform:translateY(1px)}.spha-btn-blue:disabled,.spha-btn-gray:disabled,.spha-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.spha-btn{border:none;background:var(--sun-gradient);color:#fff;box-shadow:0 2px 6px rgba(217,67,31,.28)}.spha-btn:hover{background:var(--sun-gradient-hover)}.spha-btn-blue{border:none;background:var(--blue-gradient);color:#fff;box-shadow:0 2px 6px rgba(11,94,168,.25)}.spha-btn-blue:hover{background:var(--blue-gradient-hover)}.spha-btn-gray{border:1px solid #cfd8e3;background:#fff;color:var(--navy)}.spha-btn-gray:hover{background:var(--sky-tint);border-color:var(--blue)}.spha-table{width:100%;border-collapse:collapse;font-size:13px}.spha-table th{text-align:left;background:linear-gradient(180deg,var(--navy),var(--navy-deep));color:#fff;padding:10px 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.spha-table th:first-child{border-top-left-radius:8px}.spha-table th:last-child{border-top-right-radius:8px}.spha-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.spha-table tbody tr:last-child td{border-bottom:none}.spha-table tr:hover td{background:var(--sky-tint)}.spha-badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.3px}.spha-badge-success{background:var(--success-bg);color:var(--success)}.spha-badge-danger{background:var(--danger-bg);color:var(--danger)}.spha-badge-navy{background:#e7edf5;color:var(--navy)}.spha-badge-sun{background:#fdecd6;color:#a95d00}.spha-switch{position:relative;display:inline-block;width:34px;height:19px;flex:none;cursor:pointer}.spha-switch input{opacity:0;width:0;height:0}.spha-switch-track{position:absolute;inset:0;background:#d3dae2;border-radius:999px;transition:background .15s ease}.spha-switch-track:before{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;background:#fff;border-radius:50%;transition:transform .15s ease;box-shadow:0 1px 2px rgba(16,24,40,.25)}.spha-switch input:checked+.spha-switch-track{background:var(--success)}.spha-switch input:checked+.spha-switch-track:before{transform:translateX(15px)}.spha-switch input:disabled+.spha-switch-track{opacity:.5;cursor:not-allowed}.spha-section{border:1px solid var(--border);border-radius:10px;margin-top:12px;overflow:hidden}.spha-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;cursor:pointer;background:var(--sky-tint);color:var(--navy);font-weight:700;font-size:14.5px}.spha-section-header:hover{filter:brightness(.98)}.spha-section-meta{font-weight:400;color:var(--muted);font-size:12.5px}.spha-section-body{padding:12px 14px}.spha-chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;background:#eef1f4;color:var(--text);white-space:nowrap}.spha-chip-navy{background:#e7edf5;color:var(--navy);font-weight:600}.spha-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-top:4px}.spha-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:#fff;border:1px solid var(--border);border-top:3px solid var(--blue);border-radius:10px;padding:14px 16px;cursor:pointer;font-family:inherit;transition:box-shadow .15s ease,transform .05s ease,border-color .15s ease}.spha-tile:hover{box-shadow:0 4px 14px rgba(16,24,40,.08);border-color:var(--blue)}.spha-tile:active{transform:translateY(1px)}.spha-tile-label{font-weight:700;color:var(--navy);font-size:14.5px}.spha-tile-count{font-size:12px;color:var(--muted)}.spha-tile-visible{font-size:11px;color:var(--success);font-weight:600}.spha-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin-top:20px}.spha-board-col{background:#f6f8fa;border:1px solid var(--border);border-radius:10px;padding:12px;min-height:160px}.spha-board-col-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--blue)}.spha-board-col-title{font-weight:700;color:var(--navy);font-size:13.5px}.spha-board-col-count{font-size:11.5px;font-weight:700;color:#fff;background:var(--blue);border-radius:999px;padding:1px 8px}.spha-job-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.06);transition:opacity .15s ease}.spha-job-card-name{font-weight:700;color:var(--navy);font-size:13.5px}.spha-job-card-address{font-size:12px;color:var(--muted);margin:2px 0 6px}.spha-job-card-meta{display:flex;align-items:center;gap:6px;margin-bottom:6px}.spha-job-select{width:100%;font-size:12.5px;padding:5px 6px;margin-bottom:6px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);box-sizing:border-box}.spha-job-select:focus{outline:none;border-color:var(--blue)}.spha-board-empty{font-size:12px;color:var(--muted);text-align:center;padding:16px 0}.spha-help-backdrop{position:fixed;inset:0;background:rgba(8,31,58,.35);z-index:60}.spha-help-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:#fff;z-index:61;box-shadow:-8px 0 30px rgba(8,31,58,.18);display:flex;flex-direction:column}.spha-help-drawer:before{content:"";display:block;height:4px;background:var(--brand-stripe)}.spha-help-head{padding:14px 18px 10px;border-bottom:1px solid var(--border)}.spha-help-title{display:flex;justify-content:space-between;align-items:center;color:var(--navy);font-weight:800;font-size:16px}.spha-help-body{padding:14px 18px 30px;overflow-y:auto;flex:1 1;font-size:13.5px;line-height:1.55}.spha-help-body h3{color:var(--navy);font-size:14px;margin:18px 0 6px}.spha-help-body h3:first-child{margin-top:0}.spha-help-body p{margin:0 0 8px}.spha-help-body ol{margin:4px 0 10px 18px;padding:0}.spha-help-body li{margin-bottom:4px}.spha-help-kbd{display:inline-block;padding:0 6px;border:1px solid var(--border);border-radius:5px;background:#f6f8fb;font-size:12px;font-weight:600;color:var(--navy)}.spha-help-result{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-bottom:8px;cursor:pointer;font:inherit;color:var(--text)}.spha-help-result:hover{border-color:var(--blue);background:var(--sky-tint)}.spha-help-result strong{color:var(--navy);display:block;font-size:13.5px}.spha-help-result span{color:var(--muted);font-size:12.5px}.spha-help-crumb{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--sun-red);font-weight:700}.spha-help-tip{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:6px;border-radius:50%;border:1.5px solid #cfd8e3;background:#fff;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer;vertical-align:middle;transition:all .15s ease}.spha-help-tip:hover{border-color:var(--sun-orange);color:var(--sun-red)}.spha-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 15% 20%,rgba(191,235,254,.35),transparent 45%),radial-gradient(circle at 85% 80%,rgba(247,145,31,.18),transparent 40%),var(--bg)}.spha-login{width:100%;max-width:400px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);overflow:hidden}.spha-login:before{content:"";display:block;height:5px;background:var(--brand-stripe)}.spha-login-inner{padding:28px 30px 30px}.spha-login-logo{display:block;height:58px;width:auto;margin:0 auto 14px}.spha-login h1{color:var(--navy);font-size:20px;text-align:center;margin:0 0 2px}.spha-login p{color:var(--muted);font-size:13px;text-align:center;margin:0 0 20px}.spha-boards-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 12px}.spha-board-tabs{display:inline-flex;gap:4px;background:#e9eef5;border-radius:10px;padding:3px}.spha-board-tabs a{padding:7px 14px;border-radius:8px;font-weight:700;font-size:13px;color:var(--navy);text-decoration:none!important}.spha-board-tabs a.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--sun-red)}.spha-board2{display:grid;grid-gap:14px;gap:14px;align-items:start}.spha-board-col{transition:background .15s ease,border-color .15s ease}.spha-board-col.drop-ok{background:var(--sky-tint);border-color:var(--blue);border-style:dashed}.spha-board-col.drop-no{opacity:.55}.spha-board-col-count.due{background:var(--sun-red)}.spha-dropzone{border:2px dashed #cfd8e3;border-radius:10px;padding:12px;text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;min-height:60px;display:flex;align-items:center;justify-content:center}.spha-dropzone.drop-ok{border-color:var(--success);background:var(--success-bg);color:var(--success)}.spha-jc{position:relative;background:#fff;border:1px solid var(--border);border-left:5px solid #94a3b8;border-radius:10px;padding:10px 12px;margin-bottom:10px;box-shadow:var(--shadow-sm);cursor:-webkit-grab;cursor:grab;transition:box-shadow .15s ease,transform .08s ease}.spha-jc:hover{box-shadow:var(--shadow-md)}.spha-jc.dragging{opacity:.45;transform:rotate(1deg)}.spha-jc-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px}.spha-jc-src{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:#e7edf5;color:var(--navy);white-space:nowrap}.spha-jc-src.ahs{background:#fde8e6;color:#b3261e}.spha-jc-src.fa{background:#e6f0fb;color:#0b5ea8}.spha-jc-src.web{background:#e3f3ea;color:var(--success)}.spha-jc-src.fb{background:#e7ecff;color:#3b5bdb}.spha-jc-name{font-weight:700;color:var(--navy);font-size:13.5px;line-height:1.25}.spha-jc-line{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.35}.spha-jc-line strong{color:var(--text);font-weight:600}.spha-jc-state{display:inline-flex;gap:5px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.spha-jc-foot,.spha-jc-state{align-items:center;margin-top:6px}.spha-jc-foot{display:flex;justify-content:space-between;gap:6px;font-size:11.5px;color:var(--muted)}.spha-jc-btn{border:1px solid #cfd8e3;background:#fff;color:var(--navy);border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:700;cursor:pointer}.spha-jc-btn:hover{border-color:var(--blue);background:var(--sky-tint)}.spha-jc-btn.primary{background:var(--sun-gradient);color:#fff;border-color:transparent}.spha-jc-btn.primary:hover{background:var(--sun-gradient-hover)}.spha-jc.st-new{border-left-color:#1e90d8}.spha-jc.st-waiting{border-left-color:var(--success)}.spha-jc.st-due{border-left-color:var(--sun-orange)}.spha-jc.st-overdue{border-left-color:var(--danger);background:#fff8f7}.spha-jc.st-after_hours,.spha-jc.st-callback{border-left-color:#94a3b8}.spha-jc-state.st-new{background:#e3f1fb;color:#0b5ea8}.spha-jc-state.st-waiting{background:var(--success-bg);color:var(--success)}.spha-jc-state.st-due{background:#fdecd6;color:#a95d00}.spha-jc-state.st-overdue{background:var(--danger-bg);color:var(--danger)}.spha-jc-state.st-after_hours,.spha-jc-state.st-callback{background:#eef1f4;color:var(--muted)}.spha-jc.js-scheduled{border-left-color:#1e90d8}.spha-jc.js-in_progress{border-left-color:var(--sun-orange)}.spha-jc.js-completed{border-left-color:var(--success);opacity:.9}.spha-jc.js-cancelled{border-left-color:#94a3b8;opacity:.7}.spha-jc.urgent{box-shadow:0 0 0 2px rgba(217,67,31,.25),var(--shadow-sm)}.spha-drawer-backdrop{position:fixed;inset:0;background:rgba(8,31,58,.35);z-index:50}.spha-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:#fff;z-index:51;box-shadow:-8px 0 30px rgba(8,31,58,.18);display:flex;flex-direction:column}.spha-drawer:before{content:"";display:block;height:4px;background:var(--brand-stripe)}.spha-drawer-head{padding:14px 18px 10px;border-bottom:1px solid var(--border)}.spha-drawer-body{padding:14px 18px 40px;overflow-y:auto;flex:1 1;font-size:13.5px}.spha-drawer h3{color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin:16px 0 6px}.spha-drawer h3:first-child{margin-top:0}.spha-kv{display:grid;grid-template-columns:140px 1fr;grid-gap:3px 10px;gap:3px 10px;font-size:13px}.spha-kv dt{color:var(--muted)}.spha-kv dd{margin:0}.spha-pre{white-space:pre-wrap;font-size:12.5px;background:#f7f9fc;border:1px solid var(--border);border-radius:8px;padding:10px 12px;max-height:260px;overflow:auto}.spha-timeline{list-style:none;margin:0;padding:0}.spha-timeline li{display:grid;grid-template-columns:118px 1fr;grid-gap:8px;gap:8px;padding:5px 0;border-bottom:1px solid #f0f3f7;font-size:12.5px}.spha-timeline li span:first-child{color:var(--muted);white-space:nowrap}.spha-pill-row{display:flex;gap:6px;flex-wrap:wrap}.spha-pill{border:1px solid #cfd8e3;background:#fff;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--navy);cursor:pointer}.spha-pill:hover{border-color:var(--blue);background:var(--sky-tint)}.spha-pill.on{background:var(--navy);color:#fff;border-color:var(--navy)}.spha-pill:disabled{opacity:.5;cursor:not-allowed}.spha-grid-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.spha-grid{min-width:1560px}.spha-grid-row{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid var(--border);position:relative}.spha-grid-row.head{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:#f6f8fb;border-bottom:2px solid #cfd8e3;height:34px}.spha-grid-row.area{background:#fbfcfe}.spha-grid-row.drop-ok{background:var(--sky-tint)}.spha-grid-row.drop-no{opacity:.55}.spha-grid-label{padding:6px 10px;border-left:5px solid #94a3b8;border-right:1px solid var(--border);font-size:13px;position:-webkit-sticky;position:sticky;left:0;background:inherit;z-index:2;overflow:hidden}.spha-grid-label.head{border-left-color:transparent;font-weight:700;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;padding-top:10px;background:#f6f8fb}.spha-grid-label-name{font-weight:700;color:var(--navy);line-height:1.2}.spha-grid-label-sub{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spha-grid-lane{position:relative}.spha-grid-lane.head .spha-grid-hour{position:absolute;top:0;height:34px;line-height:34px;padding-left:6px;font-size:11.5px;font-weight:700;color:var(--muted);border-left:1px solid #dfe6ee}.spha-grid-hourline{position:absolute;top:0;bottom:0;border-left:1px solid #edf1f5}.spha-grid-now{position:absolute;top:0;bottom:0;border-left:2px solid var(--sun-orange);z-index:1;opacity:.8}.spha-grid-ghost{position:absolute;top:4px;bottom:4px;background:rgba(30,144,216,.12);border:1px dashed var(--blue);border-radius:8px;font-size:11px;color:var(--blue);padding:2px 6px;pointer-events:none;z-index:1}.spha-grid-divider{padding:6px 12px;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;background:#f6f8fb;border-bottom:1px solid var(--border)}.spha-gc{position:absolute;height:58px;background:#fff;border:1px solid var(--border);border-left:5px solid #94a3b8;border-radius:8px;padding:4px 8px;box-shadow:var(--shadow-sm);cursor:-webkit-grab;cursor:grab;overflow:hidden;font-size:12px;z-index:2;transition:box-shadow .15s ease}.spha-gc:hover{box-shadow:var(--shadow-md);z-index:4}.spha-gc.dragging{opacity:.45}.spha-gc.no-time{border-style:dashed}.spha-gc.js-scheduled{border-left-color:#1e90d8}.spha-gc.js-in_progress{border-left-color:var(--sun-orange);background:#fffaf5}.spha-gc.js-completed{border-left-color:var(--success);opacity:.85}.spha-gc.urgent{box-shadow:0 0 0 2px rgba(217,67,31,.25),var(--shadow-sm)}.spha-gc-top{display:flex;justify-content:space-between;align-items:center;gap:4px}.spha-gc-top .spha-jc-src{font-size:9px;padding:1px 6px}.spha-gc-time{font-size:10.5px;color:var(--muted);white-space:nowrap}.spha-gc-name{font-weight:700;color:var(--navy);font-size:12.5px;margin-top:1px}.spha-gc-line,.spha-gc-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spha-gc-line{font-size:11px;color:var(--muted)}.spha-grid-legend{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.spha-grid-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:#94a3b8}.spha-grid-legend i.js-scheduled{background:#1e90d8}.spha-grid-legend i.js-in_progress{background:var(--sun-orange)}.spha-grid-legend i.js-completed{background:var(--success)}.spha-grid-score{font-size:11px;font-weight:800;color:var(--sun-orange);white-space:nowrap}.spha-grid-score small{font-size:9.5px;font-weight:600;color:var(--muted)}.spha-grid-group{padding:5px 12px;font-size:11px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.4px;background:#fff;border-bottom:1px solid var(--border);border-left:5px solid var(--navy)}.spha-board-tabs button{background:none;border:0;padding:4px 10px;border-radius:999px;font:inherit;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}.spha-board-tabs button.active{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}.spha-gc-window{position:absolute;height:58px;border-radius:8px;background:repeating-linear-gradient(135deg,rgba(30,144,216,.08) 0 6px,rgba(30,144,216,.03) 6px 12px);border:1px dashed rgba(30,144,216,.35);pointer-events:none;z-index:1}.spha-gc.narrow{padding:4px 5px}.spha-gc.narrow .spha-gc-line,.spha-gc.narrow .spha-gc-top .spha-jc-src{display:none}.spha-week{min-width:1180px}.spha-week-head,.spha-week-row{display:grid;grid-template-columns:190px repeat(7,1fr);border-bottom:1px solid var(--border)}.spha-week-head{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:#f6f8fb;border-bottom:2px solid #cfd8e3}.spha-week-row.area{background:#fbfcfe}.spha-week-label{padding:8px 10px;border-left:5px solid transparent;border-right:1px solid var(--border);font-size:13px;position:-webkit-sticky;position:sticky;left:0;background:inherit;z-index:2;overflow:hidden}.spha-week-head .spha-week-label{font-weight:700;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;background:#f6f8fb}.spha-week-day{padding:8px;font-size:12px;font-weight:700;color:var(--muted);border-left:1px solid #dfe6ee}.spha-week-day.today{color:var(--sun-orange)}.spha-week-cell{min-height:44px;padding:4px;border-left:1px solid #edf1f5;display:flex;flex-direction:column;gap:3px}.spha-week-cell.today{background:#fffaf5}.spha-week-cell.drop-ok{background:var(--sky-tint)}.spha-chip-job{font-size:11.5px;line-height:1.25;padding:3px 6px;border-radius:6px;background:#fff;border:1px solid var(--border);border-left:4px solid #94a3b8;cursor:-webkit-grab;cursor:grab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spha-chip-job .t{color:var(--muted);font-weight:600}.spha-chip-job.js-scheduled{border-left-color:#1e90d8}.spha-chip-job.js-in_progress{border-left-color:var(--sun-orange)}.spha-chip-job.js-completed{border-left-color:var(--success);opacity:.85}.spha-chip-job.dragging{opacity:.45}.spha-month{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.spha-month-head{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:4px 6px}.spha-month-cell{text-align:left;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 10px;min-height:96px;cursor:pointer;font:inherit}.spha-month-cell:hover{box-shadow:var(--shadow-md)}.spha-month-cell.other{opacity:.45}.spha-month-cell.today{border-color:var(--sun-orange);box-shadow:0 0 0 2px rgba(249,115,22,.18)}.spha-month-date{font-weight:800;color:var(--navy);font-size:13px}.spha-month-count{font-size:12.5px;margin-top:4px}.spha-month-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:5px;background:#eef1f4}.spha-month-bar i{display:block;height:100%}.spha-month-bar i.js-scheduled{background:#1e90d8}.spha-month-bar i.js-in_progress{background:var(--sun-orange)}.spha-month-bar i.js-completed{background:var(--success)}.spha-month-unassigned{font-size:11px;color:var(--sun-orange);font-weight:700;margin-top:4px}.spha-month-areas{font-size:10.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spha-portal{max-width:1040px;margin:0 auto;padding:18px 16px 30px}.spha-portal-head{display:flex;justify-content:space-between;align-items:center;padding:6px 0 14px;border-bottom:3px solid var(--sun-orange);margin-bottom:8px}.spha-portal-head img{height:44px}.spha-portal-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 14px}.spha-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:14px;gap:14px}.spha-portal-card{padding:16px 18px}.spha-portal-card h2{font-size:15px;color:var(--navy);margin:0 0 10px;text-transform:uppercase;letter-spacing:.4px}.spha-portal-visit{padding:8px 0;border-top:1px solid var(--border);font-size:14px}.spha-portal-visit:first-of-type{border-top:0;padding-top:0}.spha-portal-w{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;margin-top:3px;background:#eef1f4;color:var(--muted)}.spha-portal-w.ok{background:var(--success-bg);color:var(--success)}.spha-portal-w.warn{background:#fdecd6;color:#a95d00}.spha-ic-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 12px}.spha-ic-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:14px;gap:14px;align-items:start}@media (max-width:1100px){.spha-ic-layout{grid-template-columns:1fr}}.spha-ic-grid-wrap{overflow-x:auto}.spha-ic-grid{min-width:980px}.spha-ic-head,.spha-ic-week{display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) 110px;grid-gap:6px;gap:6px;margin-bottom:6px}.spha-ic-cell{background:#fff;border:1px solid var(--border);border-radius:10px;padding:6px 7px;min-height:120px;transition:background .15s ease,border-color .15s ease}.spha-ic-cell.other{background:#f7f9fc;opacity:.6}.spha-ic-cell.today{border-color:var(--sun-orange);box-shadow:0 0 0 2px rgba(249,115,22,.18)}.spha-ic-cell.drop-ok{background:var(--sky-tint);border-color:var(--blue);border-style:dashed}.spha-ic-date{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.spha-ic-date span{font-weight:800;color:var(--navy);font-size:13px}.spha-ic-date b{font-size:11.5px;color:var(--success)}.spha-ic-card{border:1px solid var(--border);border-left:5px solid #94a3b8;border-radius:8px;padding:4px 7px;margin-bottom:5px;font-size:12px;cursor:-webkit-grab;cursor:grab;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease}.spha-ic-card:hover{box-shadow:var(--shadow-md)}.spha-ic-card.cont{cursor:pointer;border-style:dashed;opacity:.85}.spha-ic-card.dragging{opacity:.4}.spha-ic-card.cancelled{opacity:.45;text-decoration:line-through}.spha-ic-card.completed{opacity:.8}.spha-ic-top{display:flex;justify-content:space-between;align-items:center;gap:4px}.spha-ic-kind{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}.spha-ic-a{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:#1e90d8;color:#fff;font-weight:800;font-size:11px}.spha-ic-name{font-weight:700;color:var(--navy);font-size:12.5px;line-height:1.2}.spha-ic-line,.spha-ic-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spha-ic-line{font-size:11px;color:var(--muted)}.spha-ic-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:3px;font-size:11.5px;font-weight:700;color:var(--text)}.spha-ic-checks{display:inline-flex;align-items:center;gap:2px}.spha-ic-checks i{display:inline-block;width:7px;height:7px;border-radius:2px;border:1px solid #b6c2d0;background:#fff}.spha-ic-checks i.on{background:var(--success);border-color:var(--success)}.spha-ic-checks small{font-size:10px;color:var(--muted);font-weight:600;margin-left:3px}.spha-ic-weektotal{background:#f6f8fb;border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.spha-ic-weektotal span{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.spha-ic-weektotal b{font-size:15px;color:var(--navy)}.spha-ic-weektotal small{font-size:11px;color:var(--muted)}.spha-ic-side{gap:12px}.spha-ic-pending,.spha-ic-side{display:flex;flex-direction:column}.spha-ic-pending{gap:1px;width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-left:4px solid var(--sun-orange);border-radius:8px;padding:7px 10px;margin-bottom:6px;cursor:pointer;font:inherit;font-size:12.5px;color:var(--muted)}.spha-ic-pending:hover{border-color:var(--blue);background:var(--sky-tint)}.spha-ic-pending strong{color:var(--navy);font-size:13px}.spha-ic-checklist{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px 10px;gap:6px 10px;font-size:13px}.spha-ic-checklist label{display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.spha-ic-checklist label.on{background:var(--success-bg);border-color:#bfe3cf;color:var(--success);font-weight:600}