/* Page layouts use global component tokens; never embedded in HTML. */
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 298px;gap:22px;align-items:start;}.schedule-card .card-head{align-items:center;}.date-button{font-size:9px;min-height:31px;padding:7px 9px;gap:7px;}.date-button>.icon{width:12px;height:12px;flex-basis:12px;}.schedule-table .technician-cell{width:83px;}.schedule-table th:last-child{width:27px;}.schedule-table .technician-cell .avatar{width:28px;height:28px;flex-basis:28px;}.schedule-table .time-cell{width:89px;}.schedule-table td{padding-top:17px;padding-bottom:17px;}.schedule-table td:last-child{padding-left:0;}.schedule-table .customer-icon{width:33px;height:34px;flex:0 0 33px;border:1px solid #edf0f2;border-radius:9px;display:grid;place-items:center;color:#9aaa9e;background:#fbfcfb;}.customer-icon>.icon{width:15px;height:15px;}.schedule-table .person-cell{gap:10px;}.schedule-table .cell-sub{font-size:9px;}.schedule-table .cell-title{font-size:11px;}.schedule-table .job-cell{min-width:185px;}.schedule-table .badge{font-size:8px;}.schedule-card .search-box{max-width:151px;}.schedule-card .search-box input{font-size:10px;}.schedule-card .filter-tab{font-size:9px;padding-inline:8px;}.schedule-card .filter-tab span{margin-left:3px;}.schedule-card .toolbar{gap:8px;}.schedule-card .card-foot{font-size:9px;}
.maintenance-banner{display:flex;justify-content:space-between;gap:20px;align-items:center;position:relative;padding:22px 24px;background:#edf3ee;border:1px solid #e1ebe2;border-radius:14px;margin-top:20px;overflow:hidden;}.maintenance-banner strong{font-size:12px;font-weight:600;letter-spacing:-.15px;color:#4d6d53;}.maintenance-banner p{font-size:10px;color:#8a9d8d;margin-top:7px;}.maintenance-banner .btn{background:rgb(255 255 255 / 66%);border-color:#d7e3d8;color:#496951;flex-shrink:0;}.banner-icon{position:absolute;right:126px;bottom:-13px;color:#c3d8c8;opacity:.6;pointer-events:none;}.banner-icon>.icon{width:90px;height:90px;}
.team-card .card-head,.maintenance-card .card-head{padding:22px 21px 16px;}.team-card .card-head h2,.maintenance-card .card-head h2{font-size:15px;}.team-card .card-head p,.maintenance-card .card-head p{font-size:10px;}.team-list{padding:0 21px 10px;}.team-member{display:flex;align-items:center;gap:10px;padding:11px 0;}.team-member .avatar{width:34px;height:34px;flex-basis:34px;}.team-info{flex:1;min-width:0;}.team-info strong{display:block;font-size:11px;font-weight:600;}.team-info small{font-size:9px;color:#919da4;margin-top:3px;display:block;}.team-dot{width:6px;height:6px;background:#8db79a;border-radius:50%;}.team-dot.away{background:#cbb68a;}.team-card .card-foot{font-size:9px;justify-content:flex-start;gap:7px;padding-inline:21px;}.maintenance-list{padding:0 21px 8px;}.maintenance-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:0;border-radius:8px;padding:13px 0;}.maintenance-item:hover .maintenance-title{color:var(--sk-primary);}.maintenance-item + .maintenance-item{border-top:1px solid #f0f3f4;}.date-tile{width:38px;min-height:44px;flex:0 0 38px;border:1px solid #e8edf0;border-radius:8px;background:#fafcfc;text-align:center;padding:6px 0;line-height:1.2;}.date-tile strong{display:block;font-size:15px;color:#627181;font-weight:600;}.date-tile span{font-size:7px;color:#95a0a9;letter-spacing:.8px;display:block;margin-top:3px;}.maintenance-item>span:nth-child(2){flex:1;min-width:0;}.maintenance-title{font-size:11px;font-weight:600;display:block;}.maintenance-sub{font-size:9px;color:#95a0a9;margin-top:4px;display:block;}.maintenance-item>.icon{width:13px;flex-basis:13px;color:#b0b9bf;}.maintenance-card .card-foot{justify-content:center;padding-block:12px;}.maintenance-card .text-link{color:#80938a;}
.two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;}.collection-card{padding:22px;}.collection-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px;}.collection-card h3{margin-bottom:5px;}.collection-card p{font-size:11px;color:var(--sk-muted);}.collection-meta{margin-top:17px;padding-top:15px;border-top:1px solid var(--sk-border);display:flex;justify-content:space-between;gap:10px;color:#8b98a2;font-size:10px;}.collection-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px;}.section-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:22px;}.section-toolbar .search-box{width:260px;max-width:100%;}.section-toolbar .muted{font-size:11px;}.device-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#edf5f0;color:#698c78;}.device-symbol>.icon{width:24px;height:24px;}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}.calendar-day-name{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#97a1a9;padding:12px;border-top:1px solid var(--sk-border);border-bottom:1px solid var(--sk-border);text-align:center;}.calendar-day{min-height:102px;border-right:1px solid #edf0f2;border-bottom:1px solid #edf0f2;padding:10px;min-width:0;}.calendar-day:nth-child(7n){border-right:0;}.calendar-day-number{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#93a0a9;margin-bottom:6px;}.calendar-day.is-today{background:#f5faf7;}.calendar-day.is-today .calendar-day-number{background:var(--sk-primary);color:#fff;border-radius:7px;}.calendar-event{display:block;width:100%;border:0;background:#edf3f8;color:#718aa0;border-radius:5px;font-size:9px;padding:5px 6px;text-align:left;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.calendar-event.is-maintenance{background:#eef4e8;color:#809366;}.calendar-empty{background:#fcfdfd;}.calendar-legend{display:flex;gap:15px;padding:16px 24px;color:var(--sk-muted);font-size:10px;}.calendar-legend span{display:flex;align-items:center;gap:6px;}.legend-marker{width:8px;height:8px;border-radius:3px;background:#d8e6f3;}.legend-marker.is-maintenance{background:#dce9d2;}.calendar-mobile-events{display:none;}
.detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#f8faf9;border:1px solid #edf1ee;border-radius:12px;padding:18px;}.detail-summary dt{font-size:10px;color:var(--sk-muted);margin-bottom:5px;}.detail-summary dd{margin:0;font-size:12px;font-weight:550;overflow-wrap:anywhere;}.detail-summary dl{margin:0;}.detail-section{margin-top:23px;}.detail-section h3{margin-bottom:12px;}.detail-section>p{font-size:12px;line-height:1.8;color:#718077;}.detail-amounts{display:flex;justify-content:space-between;gap:12px;padding:15px 0;}.detail-amounts>div>span{display:block;font-size:10px;color:var(--sk-muted);}.detail-amounts strong{display:block;font-size:18px;margin-top:5px;font-weight:650;}.detail-timeline{border-left:1px solid #e1e9e4;padding-left:17px;margin-left:4px;}.timeline-entry{position:relative;padding-bottom:17px;font-size:12px;color:#6d7e74;}.timeline-entry:before{content:'';position:absolute;left:-21px;top:5px;width:7px;height:7px;border:2px solid #fff;box-shadow:0 0 0 1px #dce5df;background:#7baa8c;border-radius:50%;}.timeline-entry small{display:block;font-size:9px;color:#9da79f;margin-top:4px;}.note-form{display:flex;gap:9px;margin-top:8px;align-items:flex-end;}.note-form .field{flex:1;}.note-form textarea{min-height:70px;}.timeline-entry .text-block{line-height:1.7;}
.settings-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;}.settings-card .card-body{padding-top:7px;}.settings-actions{margin-top:23px;display:flex;justify-content:flex-end;}.setting-row{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--sk-border);}.setting-row:last-child{border-bottom:0;}.setting-row>div{flex:1;}.setting-row strong{display:block;font-size:12px;}.setting-row small{display:block;color:var(--sk-muted);font-size:10px;margin-top:4px;}.switch{appearance:none;width:36px;height:22px;flex:0 0 36px;background:#e4e9e5;border-radius:20px;position:relative;cursor:pointer;}.switch:checked{background:var(--sk-primary);}.switch:before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 1px 2px rgb(0 0 0 / 8%);}.switch:checked:before{transform:translateX(14px);}.settings-footer{margin-top:20px;}
.tech-heading{display:flex;align-items:center;gap:12px;}.tech-heading .avatar{width:52px;height:52px;flex-basis:52px;font-size:15px;}.tech-heading h1{font-size:29px;}.tech-picker{min-width:180px;}.tech-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}.tech-job{padding:22px;}.tech-job-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;}.tech-job-time{font-size:16px;font-weight:650;}.tech-job h3{font-size:18px;margin-bottom:8px;}.tech-job>p{font-size:12px;color:#929da4;}.tech-job-info{padding:16px 0;display:grid;gap:9px;}.tech-job-info p{display:flex;gap:7px;font-size:11px;color:#859489;}.tech-job-info .icon{width:15px;height:15px;flex-basis:15px;}.tech-job .button-row{margin-top:2px;padding-top:15px;border-top:1px solid var(--sk-border);}.tech-job .button-row .btn{flex:1;}.tech-summary{margin-bottom:22px;display:flex;gap:16px;align-items:center;padding:17px 20px;background:#edf4ef;border:1px solid #e2ebe5;border-radius:12px;}.tech-summary .icon{color:#739981;width:23px;height:23px;}.tech-summary p{font-size:11px;color:#658270;}.tech-summary strong{display:block;font-size:12px;color:#456b51;margin-bottom:3px;}
@media(min-width:1500px){.dashboard-grid{grid-template-columns:minmax(0,1fr) 325px;}.schedule-table .cell-title{font-size:12px;}.schedule-table .cell-sub{font-size:10px;}.schedule-table .badge{font-size:9px;}.schedule-card .filter-tab{font-size:10px;}}
@media(max-width:1200px){.dashboard-grid{grid-template-columns:minmax(0,1fr) 265px;gap:17px;}.schedule-card .toolbar{flex-wrap:wrap;}.schedule-card .search-box{max-width:none;width:100%;}.schedule-table .customer-icon{display:none;}.schedule-table th:first-child,.schedule-table td:first-child{padding-left:19px;}.schedule-table th:last-child,.schedule-table td:last-child{padding-right:15px;}.schedule-table th,.schedule-table td{padding-left:10px;padding-right:10px;}.schedule-table .job-cell{min-width:153px;}.date-button{font-size:8px;}.team-card .card-head,.maintenance-card .card-head{padding-inline:18px;}.team-list,.maintenance-list{padding-inline:18px;}.maintenance-banner{padding:20px;gap:12px;}.maintenance-banner strong{font-size:11px;}.maintenance-banner p{font-size:9px;}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:1080px){.dashboard-grid{grid-template-columns:1fr;}.dashboard-side{grid-template-columns:1fr 1fr;align-items:start;}.schedule-card .toolbar{flex-wrap:nowrap;}.schedule-card .search-box{max-width:180px;}.schedule-table .customer-icon{display:grid;}.schedule-card .card-head{flex-wrap:wrap;}.two-columns{grid-template-columns:1fr;}.settings-layout{grid-template-columns:1fr;}.calendar-day{padding:7px;}.calendar-event{font-size:8px;}.tech-grid{grid-template-columns:1fr;}}
@media(max-width:760px){.dashboard-grid{gap:18px;}.dashboard-side{grid-template-columns:1fr;gap:18px;}.schedule-card .toolbar{flex-wrap:wrap;}.schedule-card .search-box{max-width:none;}.schedule-card .card-head{gap:13px;}.schedule-card .card-head .date-button{min-height:31px;}.schedule-table{display:block;}.schedule-table thead{display:none;}.schedule-table tbody{display:block;}.schedule-table tr{display:grid;grid-template-columns:64px minmax(0,1fr) 31px;padding:17px 16px;gap:7px 10px;border-top:1px solid #edf0f1;align-items:center;}.schedule-table td{display:block;border:0;padding:0!important;min-width:0!important;}.schedule-table .time-cell{width:auto;grid-column:1;grid-row:1/3;align-self:start;font-size:12px;}.schedule-table .job-cell{grid-column:2;grid-row:1;}.schedule-table .status-cell{grid-column:2;grid-row:2;}.schedule-table .technician-cell{grid-column:3;grid-row:1;align-self:start;width:auto;}.schedule-table td:last-child{grid-column:3;grid-row:2;}.schedule-table .customer-icon{display:none;}.schedule-table .cell-title{font-size:12px;}.schedule-table .cell-sub{font-size:10px;}.schedule-table .badge{font-size:9px;}.schedule-table .person-cell{display:block;}.schedule-table .technician-cell .avatar{width:28px;height:28px;}.schedule-table .time-cell small{font-size:8px;}.schedule-card .card-foot span:last-child{display:none;}.schedule-card .filter-tab{font-size:10px;}.maintenance-banner{padding:19px 17px;flex-wrap:wrap;}.maintenance-banner>div:first-child{width:100%;}.maintenance-banner strong{font-size:12px;line-height:1.6;}.maintenance-banner p{font-size:10px;}.maintenance-banner .btn{min-height:35px;}.banner-icon{right:10px;}.collection-grid{grid-template-columns:1fr;}.collection-card{padding:20px;}.collection-card h3{font-size:16px;}.section-toolbar{flex-wrap:wrap;gap:10px;}.section-toolbar .search-box{width:100%;}.calendar-day{min-height:50px;padding:5px;}.calendar-day-name{font-size:8px;letter-spacing:0;padding:10px 2px;}.calendar-day-number{font-size:10px;width:21px;height:21px;margin:0;}.calendar-event{height:5px;padding:0;font-size:0;margin-top:3px;}.calendar-mobile-events{display:grid;gap:8px;padding:18px;border-top:1px solid var(--sk-border);}.calendar-mobile-events>h3{margin-bottom:8px;}.mobile-event{background:#f5f9f6;border:1px solid #eaf0eb;border-radius:9px;text-align:left;padding:12px;font-size:11px;}.mobile-event small{font-size:10px;display:block;margin-top:4px;color:var(--sk-muted);}.detail-summary{gap:16px;padding:16px;}.detail-summary dd{font-size:11px;}.detail-amounts{gap:8px;}.detail-amounts strong{font-size:16px;}.detail-amounts>div>span{font-size:9px;}.note-form{flex-wrap:wrap;}.note-form .field{flex:1 1 100%;}.note-form .btn{width:100%;}.tech-heading h1{font-size:24px;}.tech-picker{min-width:0;width:100%;}.tech-job{padding:20px;}.tech-job .button-row{flex-wrap:wrap;}.tech-job .button-row .btn{min-width:100px;}}

/* Laravel pages: real forms and a dedicated field-technician shell. */
.service-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:22px}.detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;background:#f7f9fa;border-radius:12px;padding:20px;margin:0}.detail-summary div{min-width:0}.detail-summary dt{font-size:10px;color:var(--sk-muted);margin-bottom:6px}.detail-summary dd{font-size:12px;margin:0;font-weight:600;overflow-wrap:anywhere}.section-subtitle{margin:22px 0 10px}.note-list{display:grid;gap:14px}.service-note{border:1px solid var(--sk-border);border-radius:11px;padding:16px}.note-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--sk-muted);margin-bottom:10px;flex-wrap:wrap}.note-meta strong{color:var(--sk-primary)}.service-note .raw-text{font-size:12px}.activity-list{display:grid;gap:20px;max-height:440px;overflow-y:auto;padding-right:8px}.activity-item{display:flex;gap:10px;align-items:flex-start}.activity-item .status-dot{flex:0 0 6px;margin-top:7px}.activity-item p{font-size:11px;line-height:1.7;overflow-wrap:anywhere}.activity-item small{font-size:9px;color:var(--sk-muted);line-height:1.7}.kpi-two{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-event{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-more{display:block;font-size:10px;color:var(--sk-primary);padding:5px}.calendar-day.is-outside{opacity:.5}.calendar-day.is-today .calendar-day-number{background:var(--sk-primary);color:white}.maintenance-event{background:#fff1d7;color:#8c661f}.calendar-header{align-items:center;flex-wrap:wrap}
.technician-shell{min-height:100vh;padding-bottom:105px}.technician-topbar{height:76px;padding:0 max(20px,calc((100vw - 1040px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid var(--sk-border);position:sticky;top:0;z-index:20}.technician-topbar .brand{font-size:26px}.technician-content{max-width:1040px;margin:0 auto;padding:25px 24px}.technician-workspace{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--sk-muted);margin-bottom:24px}.technician-workspace small{margin-left:auto;font-size:10px}.technician-bottom-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:60px;background:rgba(255,255,255,.98);border-top:1px solid var(--sk-border);padding:12px 20px max(12px,env(safe-area-inset-bottom));}.technician-bottom-nav a{display:grid;justify-items:center;gap:5px;font-size:10px;padding:4px 15px;color:#7b858b}.technician-bottom-nav a[aria-current="page"]{color:var(--sk-primary);font-weight:650}.tech-filters{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;padding:18px}.tech-filters .field{flex:1}.tech-grid .button-row>form{flex:1;min-width:130px}.tech-job-top{gap:12px;flex-wrap:wrap}.tech-job-time small{font-size:10px}.tech-issue{display:block!important;line-height:1.7;color:#657078!important}.tech-heading h1{overflow-wrap:anywhere}.tech-heading{align-items:center}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{padding:60px 70px;background:#eef4f0;display:flex;flex-direction:column;justify-content:space-between;gap:80px}.login-story h1{font-size:clamp(32px,3.2vw,49px);line-height:1.2;color:#20483d;margin-bottom:25px}.login-story>div>p:not(.eyebrow){font-size:14px;line-height:1.9;color:#698077}.login-story>small{font-size:11px;color:#81938a}.login-highlights{display:grid;gap:12px;margin-top:30px;color:var(--sk-primary);font-size:13px}.login-highlights span{display:flex;align-items:center;gap:9px}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:45px}.login-card{width:100%;max-width:390px}.login-card h2{font-size:28px;margin:20px 0 9px}.login-card>p{font-size:12px;color:var(--sk-muted);line-height:1.85;margin-bottom:25px}.login-icon{width:48px;height:48px;border:1px solid #dce8e0;background:#eff5f1;color:var(--sk-primary);border-radius:14px;display:grid;place-items:center}.login-card .login-help{margin:22px 0 14px}.login-card form.stack{gap:18px}.login-card .btn{min-height:46px;font-size:13px}.error-screen{min-height:100vh;padding:30px;display:grid;place-items:center}.error-screen .card{max-width:580px}
@media(max-width:1080px){.service-detail-layout{grid-template-columns:1fr}.service-detail-layout>aside{grid-template-columns:1fr 1fr}.login-story{padding:45px}.technician-content .tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.service-detail-layout>aside{grid-template-columns:1fr}.technician-content{padding:20px 16px}.technician-topbar{padding:0 17px;height:66px}.technician-topbar .brand{font-size:24px}.technician-workspace{flex-wrap:wrap;gap:7px}.technician-workspace small{width:100%;margin-left:26px}.technician-bottom-nav{gap:0;justify-content:space-around}.technician-bottom-nav a{min-width:80px}.technician-content .tech-grid{grid-template-columns:1fr}.tech-filters{flex-wrap:wrap;padding:16px;gap:12px}.tech-filters .field{min-width:calc(50% - 12px);max-width:100%}.tech-filters>.btn{width:100%;font-size:13px;min-height:44px}.tech-job .button-row>.btn,.tech-job .button-row>form{flex:1 1 100%}.tech-job .btn{font-size:12px;min-height:44px}.detail-summary{grid-template-columns:1fr}.kpi-two{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:1fr}.login-story{padding:24px 22px;gap:0}.login-story>div,.login-story>small{display:none}.login-form-wrap{padding:35px 22px;align-items:flex-start}.login-card h2{font-size:26px}}

/* Server-rendered schedule table and final shared refinements. */
.schedule-table{width:100%;border-collapse:collapse;text-align:left}.schedule-table tbody tr:hover{background:#fafcfb}.schedule-table .cell-sub{overflow-wrap:anywhere}.workspace-switch{border-radius:12px}.tech-job-info p{color:#677970}.tech-job>p{color:#6a7b83}.tech-job-info .tech-issue{font-size:12px}
@media(min-width:761px){.schedule-table th{font-size:9px;font-weight:600;letter-spacing:.8px;color:var(--sk-muted);background:#fafbfc;padding:13px 15px;border-block:1px solid var(--sk-border);white-space:nowrap}.schedule-table td{padding:18px 15px;border-bottom:1px solid var(--sk-border);font-size:12px}.schedule-table td:first-child,.schedule-table th:first-child{padding-left:24px}.schedule-table td:last-child,.schedule-table th:last-child{padding-right:20px}.schedule-table .cell-title{font-size:12px}.schedule-table .cell-sub{font-size:10px}.schedule-table .badge{font-size:9px}.schedule-table .time-cell small{display:block;color:var(--sk-muted);font-size:9px;margin-top:5px}.schedule-table tr:last-child td{border-bottom:0}}
