*{box-sizing:border-box}body{margin:0;background:#f3f5f5;color:#182a2d;font:16px/1.5 system-ui,sans-serif}main{max-width:680px;margin:auto;padding:20px}header{padding-bottom:20px}header p{margin:0}h1{font-size:32px;margin:8px 0}h2{font-size:20px;margin:10px 0}section{margin-bottom:28px}article,form{background:#fff;padding:18px;border:1px solid #d1dddd;border-radius:8px;margin:12px 0}article p{margin:8px 0}.row,.schedule-controls{display:flex;justify-content:space-between;gap:12px;align-items:center}.row span{background:#e4f0ea;padding:2px 10px;border-radius:4px}label{display:block;margin:12px 0;font-weight:600}input,select,textarea,button{font:inherit;min-height:44px;border:1px solid #91a4a6;border-radius:5px;padding:10px;width:100%;margin-top:5px}textarea{min-height:110px}button{background:#176052;color:#fff;cursor:pointer;font-weight:600}button:disabled{opacity:.6;cursor:wait}.schedule-controls button{width:auto}.error{padding:12px;background:#ffe7e2;color:#84271d}small{color:#4b6265}input:focus,textarea:focus,button:focus,select:focus{outline:3px solid #8fc6dc;outline-offset:2px}main{max-width:1200px;padding:28px}header{border-bottom:1px solid #dce4e6;margin-bottom:18px}header>p{color:#376258;font-weight:700;letter-spacing:.02em}nav{display:flex;gap:8px;margin-bottom:26px}nav button{width:auto;margin:0;padding:10px 22px}.booking-overview{margin-top:20px}.overview-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.overview-title h2{font-size:28px;margin:3px 0}.overview-title p{margin:4px 0 14px;color:#53676d}.overview-title .eyebrow{font-size:11px;font-weight:750;letter-spacing:.11em;color:#376258;margin:0}.secondary-button{background:#fff;color:#25493f;border-color:#c2d0cb;width:auto;white-space:nowrap}.booking-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0 22px}.booking-stats>div{background:#fff;border:1px solid #d8e3df;border-radius:12px;padding:15px 20px;display:flex;align-items:baseline;gap:12px}.booking-stats strong{font-size:28px;color:#214b3f}.booking-stats span{color:#586f66;font-size:14px}.overview-grid{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.4fr);gap:24px;align-items:start}.month-card{background:#fff;border:1px solid #d4e0da;border-radius:14px;padding:20px;position:sticky;top:20px}.month-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px}.month-navigation button{width:42px;background:#f3f7f5;color:#25493f;padding:0;font-size:26px;border-color:#d4e0da;margin:0}.month-navigation h3{margin:0;font-size:18px}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin:18px 0;font-size:11px;color:#42574e}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend span:before{content:"";width:9px;height:9px;border-radius:3px;border:1px solid #ffffff70}.legend-open:before{background:#4b946d}.legend-partial:before{background:#437ab9}.legend-full:before{background:#c66059}.legend-closed:before{background:#b9c1c5}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{text-align:center;color:#71837b;font-size:12px;font-weight:600;margin-bottom:6px}.calendar-day{min-width:0;min-height:66px;padding:5px 2px;margin:0;border-radius:7px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.2;font-weight:500}.calendar-day strong{font-size:15px}.calendar-day>span{font-size:10px}.day-open{background:#e7f4ea;color:#26553a;border-color:#b8dbc3}.day-partial{background:#e6effc;color:#244f83;border-color:#b9cee9}.day-full{background:#fbe6e4;color:#8b3630;border-color:#eabcb7}.day-closed,.day-past{background:#f2f4f4;color:#728079;border-color:#e1e6e3}.selected-day{outline:2px solid #264c42;outline-offset:1px}.current-day strong{text-decoration:underline;text-underline-offset:3px}.booking-dot{position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;background:#b84139}.calendar-note{margin:16px 0 0;color:#738079;font-size:11px;line-height:1.5}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid #d9e2de}.list-heading h3{margin:0;font-size:18px}.list-heading span{font-size:12px;color:#6b7e75}.date-group-heading{background:transparent;color:#486153;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:0;padding:14px 0 5px;min-height:36px;font-size:13px}.date-group-heading span{font-size:11px;font-weight:500;color:#7b8a83}.upcoming-booking{display:flex;gap:17px;padding:17px;border:1px solid #d7e2dc;border-left:3px solid #3d7d62;border-radius:10px;margin:9px 0}.booking-time{display:flex;flex-direction:column;min-width:87px;border-right:1px solid #e3eae6;padding-right:15px}.booking-time strong{font-size:14px;color:#254d3c;white-space:nowrap}.booking-time span{font-size:11px;color:#6e8276;margin-top:5px}.booking-information{flex:1;min-width:0;overflow-wrap:anywhere}.booking-customer{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.booking-customer h3{font-size:18px;margin:0}.confirmed-badge{background:#e7f3e9;border-radius:20px;padding:3px 9px;font-size:10px;color:#35624a}.booking-information p{margin:6px 0;font-size:13px}.booking-information .appliance-line{font-weight:600;color:#5b6f63}.booking-information small{font-size:11px}.empty-bookings{padding:28px;background:#fff;border:1px dashed #bdcec3;border-radius:10px;margin-top:20px;color:#617568}.selected-schedule{border-top:1px solid #d7e2dc;padding-top:20px}.selected-schedule>h2{font-size:17px;color:#587265}.selected-schedule article{max-width:720px}.schedule-controls{justify-content:flex-start}.schedule-controls label{max-width:230px}section[aria-label="Communications requiring review"]{margin-top:24px}section[aria-label="Communications requiring review"] small{overflow-wrap:anywhere}@media(max-width:800px){main{padding:18px 16px}.overview-grid{grid-template-columns:1fr;gap:12px}.month-card{position:static;padding:16px;max-width:480px;width:100%;margin:auto}.booking-stats{gap:6px}.booking-stats>div{padding:12px 10px;display:flex;flex-direction:column;gap:1px}.booking-stats strong{font-size:24px}.booking-stats span{font-size:11px}.overview-title{align-items:flex-start}.overview-title h2{font-size:24px}.overview-title p{font-size:12px}.overview-title .secondary-button{font-size:11px;padding:8px;min-height:40px}.upcoming-booking{gap:10px;padding:14px 12px}.booking-time{min-width:79px;padding-right:9px}.booking-customer h3{font-size:16px}.row{flex-wrap:wrap}}.staff-settings{margin:24px 0;padding:16px;border:1px solid #d4e0da;border-radius:12px;background:#fff}.staff-settings summary{cursor:pointer;font-weight:650;color:#25493f}.staff-settings form{margin-top:16px}.hours-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.hours-row>label:first-child{min-width:130px}input[type=checkbox]{width:auto;min-height:20px;margin-right:8px}.job-link{width:auto;min-height:32px;font-size:12px;margin-top:8px;background:#eef4f2;color:#25493f}.job-detail article{background:#fff;border:1px solid #d4e0da;border-radius:10px;padding:16px;margin:12px 0}.job-detail form{background:#fff;padding:16px;border:1px solid #d4e0da;border-radius:12px;margin:20px 0}.job-detail h4{margin:0 0 8px}.job-detail button{margin:8px 8px 8px 0}main{padding-bottom:100px}.staff-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d0d9d3}.staff-nav button{min-height:48px;padding:8px 2px;font-size:14px;background:#eef3ef;color:#193b2d}.staff-nav button[aria-current=page]{background:#193b2d;color:#fff}main[data-panel] .today-home,main[data-panel] .overview-panel,main[data-panel] .settings-panel,main[data-panel] .context-panel,main[data-panel] .selected-schedule,main[data-panel] .intake-panel,main[data-panel] .more-nav{display:none}main[data-panel=Today] .today-home,main[data-panel=Jobs] .overview-panel,main[data-panel=Calendar] .overview-panel,main[data-panel=Calendar] .selected-schedule,main[data-panel=Calendar] .context-panel,main[data-panel=More] .settings-panel,main[data-panel=More] .intake-panel,main[data-panel=More] .more-nav{display:block}main[data-panel=Today] .requests-panel,main[data-panel=Today] .messages-panel{margin-top:20px}main[data-panel=More] .requests-panel,main[data-panel=More] .messages-panel,main[data-panel=Jobs] .requests-panel,main[data-panel=Jobs] .messages-panel{display:none}main[data-panel=Messages] .requests-panel,main[data-panel=Messages] .messages-panel{display:block}main[data-panel=Jobs] .month-card,main[data-panel=Calendar] .upcoming-list,main[data-panel=Calendar] .booking-stats,main[data-panel=Calendar] .overview-title{display:none}.mobile-appointment-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;background:#fff;color:#193b2d;border:1px solid #d5ddd6;border-left:5px solid #27715a;border-radius:14px;width:100%;padding:16px;margin:12px 0;min-height:132px;white-space:normal}.mobile-appointment-card h2{font-size:21px;margin:2px 0}.mobile-appointment-card span{font-size:16px;line-height:1.4}.quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.quick-actions a,.quick-actions button{min-height:48px;padding:12px 14px;border-radius:8px;display:inline-flex;align-items:center;background:#e7efe9;color:#193b2d;text-decoration:none}.danger-button{background:#8e2626!important;color:#fff!important}.action-dialog{border:2px solid #244e3d;background:#f4f8f4;border-radius:12px;padding:16px;margin:16px 0}.action-dialog button{width:100%;margin:5px 0;min-height:48px}.appointment-actions{margin:16px 0;border-block:1px solid #d5ddd6;padding:12px 0}@media(max-width:600px){main{padding:16px 12px 100px}section,article,form,details{min-width:0;max-width:100%}button,input,select,textarea{min-height:48px;max-width:100%}input,select,textarea{font-size:16px}p,small,a{overflow-wrap:anywhere}.overview-grid{display:block}.booking-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-controls{display:flex;flex-wrap:wrap}.job-detail h2{font-size:22px}.calendar-day{min-height:52px;padding:4px 1px}.calendar-day span{font-size:10px}.upcoming-booking{display:block}.booking-time{flex-direction:row;gap:12px}.booking-information{padding:10px 0}.selected-schedule article{cursor:pointer}}.install-app{margin:12px 0;padding:12px;background:#eaf2ec;border-radius:10px}.install-app>button{width:100%;min-height:48px}@media(display-mode:standalone){body{overscroll-behavior-y:contain}header{padding-top:env(safe-area-inset-top)}}main[data-panel=Calendar] .selected-schedule,main[data-panel=Calendar] .context-panel{display:none}.day-navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.day-navigation button{padding:10px 4px;min-height:48px;font-size:14px}.agenda-timeline{border-left:3px solid #bed0c3;margin:16px 0 16px 8px;padding-left:12px}.agenda-timeline article{margin:10px 0;border-radius:10px;padding:14px}.agenda-busy{background:#eeeaf4}.agenda-travel{background:#fff2d6}.agenda-open{background:#edf7ed}.agenda-appointment{background:#fff;border-left:4px solid #27715a}.month-card>summary{min-height:48px;padding:12px;font-weight:700;cursor:pointer}
