.view-intro{margin-bottom:20px;color:var(--muted);max-width:600px;line-height:1.55}.view-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.month-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.month-head h2{font-size:17px}.month-key{display:flex;gap:13px;font-size:10px;font-weight:700;color:var(--muted)}.month-key i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5680b8;margin-right:4px}.month-key i.green{background:#1b7b5d}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:112px;border-right:1px solid #eef2ef;border-bottom:1px solid #eef2ef;padding:8px}.calendar-day:nth-child(7n){border-right:0}.day-number{font:500 11px "DM Mono",monospace;color:#6e7b77}.calendar-day.muted .day-number{color:#aeb9b5}.calendar-event{display:block;border:0;width:100%;text-align:left;background:#eaf0fa;color:#3d5f8b;border-radius:5px;margin-top:6px;padding:5px;font:700 10px Manrope;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event.confirmed{background:#e1f2ea;color:#196349}.installer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.installer-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.installer-card header{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.installer-name{display:flex;gap:10px;align-items:center}.installer-name h3{font-size:14px;margin:0}.installer-name p{font-size:11px;color:var(--muted);margin:3px 0 0}.status-dot{width:9px;height:9px;border-radius:50%;background:#2ba373;margin-top:3px}.availability{display:flex;justify-content:space-between;border-top:1px solid #edf1ee;padding-top:12px;color:var(--muted);font-size:11px}.availability strong{color:var(--ink);font-size:12px}.template-list{display:grid;gap:12px}.template-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px 18px;display:grid;grid-template-columns:1fr auto;gap:16px}.template-card h3{font-size:13px;margin:0 0 5px}.template-card p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.template-card .button{height:max-content;padding:8px 10px;font-size:11px}.settings-card{padding:22px}.settings-row{padding:15px 0;border-bottom:1px solid #edf1ee;display:flex;justify-content:space-between;align-items:center}.settings-row:last-child{border:0}.settings-row p{margin:4px 0 0;color:var(--muted);font-size:11px}.toggle{width:36px;height:21px;border-radius:15px;background:#18805f;position:relative}.toggle:after{content:"";position:absolute;width:15px;height:15px;top:3px;right:3px;background:white;border-radius:50%}@media(max-width:760px){.calendar-day{min-height:72px;padding:5px}.calendar-event{font-size:8px;padding:3px}.installer-grid{grid-template-columns:1fr}.template-card{grid-template-columns:1fr}.month-key{display:none}}
.view-intro.calendar-intro{margin-bottom:0}
.install-calendar{min-width:0}
.install-calendar .calendar-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px;border-bottom:1px solid var(--line)}
.install-calendar .calendar-period{margin:0;text-align:center;font-size:18px;line-height:1.4;letter-spacing:-.5px}
.install-calendar .calendar-navigation{display:flex;align-items:center;gap:6px}
.install-calendar .calendar-nav-button,.install-calendar .calendar-today-button{min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}
.install-calendar .calendar-nav-button{width:36px;font-size:23px;line-height:1}
.install-calendar .calendar-today-button{padding:0 13px;font:700 11px Manrope,sans-serif}
.install-calendar .calendar-nav-button:hover,.install-calendar .calendar-today-button:hover{background:#f2f6f3;border-color:#a9beb3}
.install-calendar .calendar-view-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:10px;background:#f0f4f1}
.install-calendar .calendar-view-switch button{min-height:30px;min-width:50px;padding:6px 10px;border:0;border-radius:7px;background:transparent;color:#53645c;font:700 11px Manrope,sans-serif;cursor:pointer}
.install-calendar .calendar-view-switch button[aria-pressed="true"]{background:var(--green);color:#fff;box-shadow:0 2px 5px #18392f15}
.install-calendar button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.install-calendar .calendar-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:11px;color:#586a61}
.install-calendar .calendar-legend>span{display:flex;align-items:center;gap:6px}
.install-calendar .calendar-legend i{width:7px;height:7px;border-radius:50%}
.install-calendar .calendar-legend-confirmed{background:var(--green)}
.install-calendar .calendar-legend-risk{background:#ba3a31}
.install-calendar .calendar-workday-note{margin-left:auto;color:#75827b}
.install-calendar .calendar-weekdays,.install-calendar .calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.install-calendar .calendar-weekdays{padding:11px 0;background:#f8faf8;border-bottom:1px solid var(--line);font-size:10px;font-weight:800;letter-spacing:.4px;text-align:center;text-transform:uppercase;color:#66766d}
.install-calendar .calendar-day{min-width:0;min-height:132px;padding:8px;border-color:#e9efeb;background:#fff}
.install-calendar .calendar-day.weekend,.install-calendar .calendar-day.muted{background:#f7f9f8}
.install-calendar .calendar-date{display:inline-flex;align-items:center;justify-content:center;min-width:27px;min-height:27px;padding:4px 6px;border:0;border-radius:7px;background:transparent;color:#495b51;font:700 11px Manrope,sans-serif;cursor:pointer}
.install-calendar .calendar-date:hover{background:#e7eeea}
.install-calendar .calendar-day.muted .calendar-date{color:#99a69e}
.install-calendar .calendar-date[aria-current="date"]{background:var(--green);color:#fff}
.install-calendar .calendar-day.today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green),transparent 55%)}
.install-calendar .calendar-day-jobs{display:grid;gap:5px;margin-top:5px}
.install-calendar .calendar-event{display:block;min-width:0;width:100%;margin:0;padding:7px;text-align:left;white-space:normal;border:1px solid #c6dfd2;border-left:3px solid var(--green);border-radius:6px;background:var(--green-2);color:var(--green);font-family:Manrope,sans-serif;cursor:pointer}
.install-calendar .calendar-event:hover{filter:brightness(.97)}
.install-calendar .calendar-event.at-risk{border-color:#edc8c3;border-left-color:#ba3a31;background:#fff1ee;color:#9e2b24}
.install-calendar .calendar-job-body{display:grid;min-width:0;gap:3px}
.install-calendar .calendar-job-body strong,.install-calendar .calendar-job-body>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.install-calendar .calendar-job-body strong{font-size:10px;line-height:1.4;font-weight:800}
.install-calendar .calendar-job-installer{font-size:9px;line-height:1.4;opacity:.9}
.install-calendar .calendar-job-progress{display:block;margin-top:5px;font-size:9px;line-height:1.4;font-weight:800}
.install-calendar .calendar-week-scroll{max-width:100%;overflow-x:auto}
.install-calendar .calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:630px}
.install-calendar .calendar-week-day{min-width:0;min-height:400px;border-right:1px solid #e9efeb}
.install-calendar .calendar-week-day:last-child{border-right:0}
.install-calendar .calendar-week-day>header{padding:12px 5px;text-align:center;background:#f8faf8;border-bottom:1px solid #e9efeb}
.install-calendar .calendar-week-jobs{display:grid;align-content:start;gap:8px;padding:8px}
.install-calendar .calendar-week-jobs .calendar-job-card{padding:8px}
.install-calendar .calendar-week-jobs .calendar-job-body strong{font-size:11px}
.install-calendar .calendar-job-card{padding:12px}
.install-calendar .calendar-job-card .calendar-job-body strong{font-size:12px;white-space:normal;overflow-wrap:anywhere}
.install-calendar .calendar-job-card .calendar-job-floor,.install-calendar .calendar-job-card .calendar-job-installer{font-size:10px;white-space:normal;overflow-wrap:anywhere}
.install-calendar .calendar-day-empty{margin:14px 0;color:#8b978f;font-size:11px;text-align:center}
.install-calendar .calendar-day-agenda{display:grid;gap:12px;padding:24px}
.install-calendar .calendar-agenda-count{margin:0 0 4px;color:#66786d;font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase}
.install-calendar .calendar-day-agenda .calendar-job-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px}
.install-calendar .calendar-day-agenda .calendar-job-body{gap:6px}
.install-calendar .calendar-day-agenda .calendar-job-body strong{font-size:16px}
.install-calendar .calendar-day-agenda .calendar-job-floor,.install-calendar .calendar-day-agenda .calendar-job-installer{font-size:12px}
.install-calendar .calendar-job-window{font-size:11px;line-height:1.5;opacity:.9}
.install-calendar .calendar-day-agenda .calendar-job-progress{margin:0;padding:6px 9px;border-radius:6px;background:#ffffffa6;font-size:11px}
.install-calendar .calendar-empty{display:grid;align-content:center;min-height:230px;padding:30px 20px;text-align:center}
.install-calendar .calendar-empty h3{margin-bottom:8px;color:#3f5348;font-size:17px}
.install-calendar .calendar-empty p{max-width:380px;margin:0 auto;color:#748379;font-size:12px;line-height:1.6}
@media(max-width:1100px){
  .install-calendar .calendar-toolbar{grid-template-columns:1fr auto}
  .install-calendar .calendar-period{grid-row:1;grid-column:1/-1;text-align:left}
  .install-calendar .calendar-navigation{grid-row:2;grid-column:1}
  .install-calendar .calendar-view-switch{grid-row:2;grid-column:2}
}
@media(max-width:620px){
  .install-calendar .calendar-toolbar{gap:12px;padding:14px}
  .install-calendar .calendar-period{font-size:16px}
  .install-calendar .calendar-legend{padding:11px 14px}
  .install-calendar .calendar-workday-note{width:100%;margin-left:0;font-size:10px}
  .install-calendar .calendar-day{min-height:88px;padding:4px}
  .install-calendar .calendar-grid .calendar-event{padding:4px;border-left-width:2px}
  .install-calendar .calendar-grid .calendar-job-body strong{font-size:9px}
  .install-calendar .calendar-grid .calendar-job-installer,.install-calendar .calendar-grid .calendar-job-progress{display:none}
  .install-calendar .calendar-day-agenda{padding:16px}
  .install-calendar .calendar-day-agenda .calendar-job-card{grid-template-columns:1fr;padding:16px;gap:10px}
  .install-calendar .calendar-day-agenda .calendar-job-progress{justify-self:start}
}
.preference-editor{display:grid;gap:14px;padding:20px 0 0}.preference-editor label{display:grid;gap:8px;font-size:12px;font-weight:700}.preference-editor input,.preference-editor textarea{padding:10px;border:1px solid #ccd7d1;border-radius:6px;background:#fff;font:inherit}.preference-editor input{max-width:140px}.preference-editor button{justify-self:start}.preference-editor p{margin:0;font-size:12px;color:#526a5e}.toggle.off{background:#b7c2be!important}
.toggle.off:after{right:18px}
