/* Premium Diary — installer-first weekly schedule. */
.route-diary .diary-v2{
  --diary-paper:var(--sp-premium-paper,color-mix(in srgb,var(--card) 93%,var(--bg)));
  --diary-card:color-mix(in srgb,var(--card) 97%,var(--bg));
  --diary-soft:color-mix(in srgb,var(--surface) 72%,var(--card));
  --diary-line:color-mix(in srgb,var(--line) 86%,transparent);
  --diary-gold:#a98446;
  width:min(100%,1180px);
  margin:0 auto;
}
.route-diary .diary-v2>.topbar{width:100%;margin-inline:0;margin-bottom:24px;align-items:flex-end}
.route-diary .diary-v2 .page-title{font-size:clamp(2.35rem,4vw,3.55rem)}
.route-diary .diary-primary-add{min-height:48px;padding-inline:18px;background:#1a1b1b;border-color:#1a1b1b}
.route-diary .diary-primary-add>span{color:var(--brand-gold);font-size:1.05rem;font-weight:400}

.route-diary .diary-week-rail{margin-bottom:28px;border-top:1px solid var(--diary-line);border-bottom:1px solid var(--diary-line)}
.route-diary .diary-week-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:66px;padding:10px 0}
.route-diary .diary-week-controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.route-diary .diary-week-range{display:flex;align-items:center;gap:12px;min-width:0}
.route-diary .diary-week-range strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1.08rem;font-weight:500;letter-spacing:-.018em}
.route-diary .diary-week-arrow{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--diary-line);border-radius:50%;background:transparent;color:var(--ink)}
.route-diary .diary-week-arrow .ui-icon{width:17px;height:17px}
.route-diary .diary-today-button{min-height:38px;padding:8px 14px;border:1px solid var(--diary-line);border-radius:7px;background:transparent;color:var(--ink);font-size:.8rem;font-weight:600}
.route-diary .diary-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}
.route-diary .diary-day-chip{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;min-width:0;min-height:88px;padding:11px 6px;border:0;border-left:1px solid var(--diary-line);background:transparent;color:var(--ink);font:inherit}
.route-diary .diary-day-chip:first-child{border-left:0}
.route-diary .diary-day-chip span{color:#60665f;font-size:.67rem;font-weight:700;letter-spacing:.085em;text-transform:uppercase}
.route-diary .diary-day-chip strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1.15rem;line-height:1.15;font-weight:500}
.route-diary .diary-day-chip small{min-height:17px;color:#777c77;font-size:.69rem}
.route-diary .diary-day-chip.selected{background:linear-gradient(180deg,color-mix(in srgb,var(--brand-gold) 10%,var(--diary-paper)),color-mix(in srgb,var(--brand-gold) 5%,var(--diary-paper)))}
.route-diary .diary-day-chip.selected::after{content:"";position:absolute;left:28%;right:28%;bottom:-1px;height:2px;border-radius:999px;background:var(--brand-gold)}
.route-diary .diary-day-chip.today strong{color:#80683d}
.route-diary .diary-day-chip:hover{background:color-mix(in srgb,var(--brand-gold) 5%,transparent)}

.route-diary .diary-day-view[hidden]{display:none!important}
.route-diary .diary-day-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px;align-items:start}
.route-diary .diary-day-main,.route-diary .diary-day-side{min-width:0}
.route-diary .diary-day-side{display:grid;gap:22px;padding-left:26px;border-left:1px solid var(--diary-line)}
.route-diary .diary-day-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
.route-diary .diary-day-heading h2,.route-diary .diary-side-head h3{margin:0;font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-weight:500;letter-spacing:-.025em}
.route-diary .diary-day-heading h2{font-size:2rem;line-height:1.08}
.route-diary .diary-day-heading p{margin:4px 0 0;color:var(--muted);font-size:.83rem}
.route-diary .diary-day-count{display:flex;align-items:baseline;gap:6px;color:#767b76}
.route-diary .diary-day-count strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1.15rem;font-weight:500;color:#8a7047}
.route-diary .diary-day-count span{font-size:.72rem}

.route-diary .diary-route-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--brand-gold) 26%,var(--diary-line));border-radius:8px;background:color-mix(in srgb,var(--brand-gold) 4%,var(--diary-paper))}
.route-diary .diary-route-row>div{display:grid;gap:1px}
.route-diary .diary-route-row span{color:#8a7047;font-size:.62rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.route-diary .diary-route-row strong{font-size:.8rem;font-weight:650}
.route-diary .diary-route-row small{color:var(--muted);font-size:.7rem}
.route-diary .diary-route-row .routepilot-button{min-height:38px;padding:8px 11px;border:1px solid var(--diary-line);border-radius:6px;background:var(--diary-card);color:var(--ink);font-size:.72rem;font-weight:650}

.route-diary .diary-schedule-list{display:grid;gap:10px}
.route-diary .diary-entry-row{display:grid;grid-template-columns:72px 18px minmax(0,1fr);gap:10px;min-width:0}
.route-diary .diary-entry-cancelled{opacity:.58}
.route-diary .diary-entry-cancelled .diary-entry-rail i{background:#9d9f99;box-shadow:0 0 0 4px color-mix(in srgb,#9d9f99 9%,transparent)}
.route-diary .diary-entry-time{display:grid;align-content:start;gap:2px;padding-top:17px;font-variant-numeric:tabular-nums}
.route-diary .diary-entry-time strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1rem;font-weight:500;color:#242825}
.route-diary .diary-entry-time span{color:var(--muted);font-size:.71rem}
.route-diary .diary-entry-rail{position:relative;display:flex;justify-content:center}
.route-diary .diary-entry-rail i{position:relative;z-index:2;width:8px;height:8px;margin-top:20px;border-radius:50%;background:var(--brand-gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-gold) 10%,transparent)}
.route-diary .diary-entry-rail b{position:absolute;top:31px;bottom:-21px;width:1px;background:var(--diary-line)}
.route-diary .diary-entry-detail{min-width:0;margin:0}
.route-diary .diary-entry-detail>summary::after{content:"›";align-self:center;margin-right:16px;color:#8f8f88;font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-weight:400;transform:none;transition:transform 180ms ease,color 180ms ease}
.route-diary .diary-entry-detail[open]>summary::after{content:"›";transform:rotate(90deg);color:#8a7047}
.route-diary .diary-entry-card{display:flex;align-items:stretch;min-height:128px;margin:0;padding:18px 0 17px 20px;border:1px solid var(--diary-line);border-radius:8px;background:var(--diary-card);box-shadow:0 10px 28px rgba(20,21,21,.025);transition:border-color 180ms ease,box-shadow 180ms ease,transform 150ms ease}
.route-diary .diary-entry-detail[open]>.diary-entry-card{border-radius:8px 8px 0 0;border-color:color-mix(in srgb,var(--brand-gold) 26%,var(--diary-line));box-shadow:none}
.route-diary .diary-entry-card:hover{border-color:color-mix(in srgb,var(--brand-gold) 30%,var(--diary-line));box-shadow:0 12px 30px rgba(20,21,21,.04)}
.route-diary .diary-entry-copy{display:grid;align-content:start;gap:3px;min-width:0;flex:1}
.route-diary .diary-entry-topline{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:3px}
.route-diary .diary-entry-type{color:#8a7047;font-size:.66rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.route-diary .diary-entry-topline .timeline-summary-right{justify-content:flex-start}
.route-diary .diary-entry-topline .status-pill{font-size:.68rem;font-weight:550}
.route-diary .diary-entry-customer{display:block;font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1.08rem!important;line-height:1.35!important;font-weight:500!important;letter-spacing:-.015em}
.route-diary .diary-entry-location,.route-diary .diary-entry-detail-line{display:block!important;margin:0!important;color:#5f6560!important;font-size:.78rem!important;line-height:1.45!important;white-space:normal;overflow-wrap:anywhere}
.route-diary .diary-entry-detail-line{color:#777c77!important}
.route-diary .diary-entry-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:5px;color:#8a8e89;font-size:.68rem}
.route-diary .diary-entry-meta span+span::before{content:"·";margin-right:12px;color:#b0a58f}
.route-diary .diary-entry-detail>.progress-box{margin:0;padding:15px 18px 16px;border-color:color-mix(in srgb,var(--brand-gold) 24%,var(--diary-line));border-radius:0;background:var(--diary-soft)}
.route-diary .diary-linked-job{margin:0;padding:12px 16px 14px;border:1px solid color-mix(in srgb,var(--brand-gold) 24%,var(--diary-line));border-top:0;border-radius:0 0 8px 8px;background:var(--diary-card)}
.route-diary .diary-linked-job .btn{min-height:38px;padding:7px 11px;font-size:.75rem}

.route-diary .diary-add-row{display:flex;align-items:center;gap:13px;width:calc(100% - 100px);min-height:70px;margin:12px 0 0 100px;padding:13px 16px;border:1px dashed color-mix(in srgb,var(--brand-gold) 32%,var(--diary-line));border-radius:8px;background:transparent;color:var(--ink);text-align:left;font:inherit}
.route-diary .diary-add-row>span:first-child{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:color-mix(in srgb,var(--brand-gold) 14%,transparent);color:#8a7047;font-size:1.2rem}
.route-diary .diary-add-row>span:last-child{display:grid;gap:1px}
.route-diary .diary-add-row strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.9rem;font-weight:500}
.route-diary .diary-add-row small{color:var(--muted);font-size:.69rem}
.route-diary .diary-empty-day{display:grid;justify-items:start;gap:4px;min-height:180px;padding:34px 30px;border:1px solid var(--diary-line);border-radius:8px;background:color-mix(in srgb,var(--diary-card) 82%,transparent)}
.route-diary .diary-empty-day>span{color:#8a7047;font-size:.64rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.route-diary .diary-empty-day>strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:1.15rem;font-weight:500}
.route-diary .diary-empty-day>small{color:var(--muted);font-size:.78rem}
.route-diary .diary-empty-day .btn{margin-top:13px}
.route-diary .diary-day-summary{display:grid;grid-template-columns:minmax(0,1fr);margin:22px 0 0 100px;border-top:1px solid var(--diary-line);border-bottom:1px solid var(--diary-line)}
.route-diary .diary-day-summary>div{display:grid;gap:2px;padding:13px 12px;border-left:1px solid var(--diary-line)}
.route-diary .diary-day-summary>div:first-child{border-left:0;padding-left:0}
.route-diary .diary-day-summary span{color:#858a84;font-size:.63rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}
.route-diary .diary-day-summary strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.84rem;font-weight:500}

.route-diary .diary-side-section{min-width:0}
.route-diary .diary-side-section+.diary-side-section{padding-top:22px;border-top:1px solid var(--diary-line)}
.route-diary .diary-side-head{display:flex;align-items:center;gap:10px;min-height:32px;margin-bottom:8px}
.route-diary .diary-side-head h3{font-size:1.35rem}
.route-diary .diary-side-head>span{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--brand-gold) 15%,transparent);color:#80683d;font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.78rem}
.route-diary .diary-side-head button{margin-left:auto;padding:0;border:0;background:transparent;color:#80683d;font-size:.7rem;font-weight:650}
.route-diary .diary-next-group+.diary-next-group{margin-top:16px}
.route-diary .diary-next-date{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 2px 6px}
.route-diary .diary-next-date strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.88rem;font-weight:500}
.route-diary .diary-next-date span{color:var(--muted);font-size:.66rem}
.route-diary .diary-next-item{display:grid;grid-template-columns:50px minmax(0,1fr) 10px;gap:10px;align-items:start;width:100%;min-height:72px;padding:11px 4px;border:0;border-top:1px solid var(--diary-line);background:transparent;color:inherit;text-align:left;font:inherit}
.route-diary .diary-next-item.static{cursor:default}
.route-diary .diary-next-time{display:grid;gap:1px;font-variant-numeric:tabular-nums}
.route-diary .diary-next-time strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.82rem;font-weight:500}
.route-diary .diary-next-time small{color:var(--muted);font-size:.65rem}
.route-diary .diary-next-copy{display:grid;gap:1px;min-width:0}
.route-diary .diary-next-copy>span{color:#8a7047;font-size:.6rem;font-weight:720;letter-spacing:.055em;text-transform:uppercase}
.route-diary .diary-next-copy strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.83rem;font-weight:500;overflow-wrap:anywhere}
.route-diary .diary-next-copy small{color:var(--muted);font-size:.66rem;line-height:1.4;overflow-wrap:anywhere}
.route-diary .diary-next-item>b,.route-diary .diary-unscheduled-item>b{align-self:center;color:#a39781;font-size:1rem;font-weight:400}
.route-diary button.diary-next-item:hover,.route-diary .diary-unscheduled-item:hover{background:color-mix(in srgb,var(--brand-gold) 4%,transparent)}
.route-diary .diary-unscheduled-list{display:grid}
.route-diary .diary-unscheduled-item{display:grid;grid-template-columns:minmax(0,1fr) 10px;gap:10px;align-items:center;width:100%;min-height:64px;padding:10px 4px;border:0;border-top:1px solid var(--diary-line);background:transparent;color:inherit;text-align:left;font:inherit}
.route-diary .diary-unscheduled-item>span{display:grid;gap:1px;min-width:0}
.route-diary .diary-unscheduled-item strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.83rem;font-weight:500;overflow-wrap:anywhere}
.route-diary .diary-unscheduled-item small{color:#5e645f;font-size:.68rem;line-height:1.4}
.route-diary .diary-unscheduled-item em{color:var(--muted);font-size:.64rem;font-style:normal;line-height:1.4;overflow-wrap:anywhere}
.route-diary .diary-side-empty{display:grid;gap:2px;padding:13px 0;border-top:1px solid var(--diary-line)}
.route-diary .diary-side-empty strong{font-family:var(--sp-serif,Georgia,"Times New Roman",serif);font-size:.83rem;font-weight:500}
.route-diary .diary-side-empty span{color:var(--muted);font-size:.68rem;line-height:1.45}

.route-diary .diary-v2 .diary-quick-add{width:100%;margin:0 0 24px}

@media(max-width:1100px){
  .route-diary .diary-day-layout{grid-template-columns:minmax(0,1fr) 290px;gap:24px}
  .route-diary .diary-day-side{padding-left:22px}
}
@media(max-width:900px){
  .route-diary .diary-day-layout{grid-template-columns:1fr}
  .route-diary .diary-day-side{grid-template-columns:1fr 1fr;gap:20px;padding:22px 0 0;border-left:0;border-top:1px solid var(--diary-line)}
  .route-diary .diary-side-section+.diary-side-section{padding:0 0 0 20px;border-top:0;border-left:1px solid var(--diary-line)}
}
@media(max-width:720px){
  .route-diary .main{padding-top:24px}
  .route-diary .diary-v2>.topbar{align-items:flex-start}
  .route-diary .diary-primary-add{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%}
  .route-diary .diary-primary-add{font-size:0}
  .route-diary .diary-primary-add>span{font-size:1.2rem}
  .route-diary .diary-week-toolbar{min-height:58px}
  .route-diary .diary-week-range{gap:8px}
  .route-diary .diary-week-range strong{font-size:.94rem}
  .route-diary .diary-week-arrow{width:36px;height:36px}
  .route-diary .diary-week-days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .route-diary .diary-week-days::-webkit-scrollbar{display:none}
  .route-diary .diary-day-chip{flex:0 0 74px;min-height:78px;scroll-snap-align:start}
  .route-diary .diary-day-layout{display:block}
  .route-diary .diary-day-side{display:grid;grid-template-columns:1fr;margin-top:24px;padding-top:22px}
  .route-diary .diary-side-section+.diary-side-section{padding:22px 0 0;border-left:0;border-top:1px solid var(--diary-line)}
  .route-diary .diary-day-heading h2{font-size:1.75rem}
  .route-diary .diary-entry-row{grid-template-columns:54px 14px minmax(0,1fr);gap:7px}
  .route-diary .diary-entry-time{padding-top:15px}
  .route-diary .diary-entry-time strong{font-size:.88rem}
  .route-diary .diary-entry-card{min-height:116px;padding:15px 0 14px 15px}
  .route-diary .diary-entry-detail>summary::after{margin-right:10px}
  .route-diary .diary-entry-topline{align-items:flex-start;flex-direction:column;gap:2px}
  .route-diary .diary-entry-meta{display:none}
  .route-diary .diary-add-row{width:calc(100% - 75px);margin-left:75px}
  .route-diary .diary-day-summary{margin-left:75px;grid-template-columns:1fr 1fr}
  .route-diary .diary-day-summary>div:last-child{display:none}
}
@media(max-width:430px){
  .route-diary .diary-today-button{display:none}
  .route-diary .diary-week-range strong{font-size:.86rem}
  .route-diary .diary-day-count{display:none}
  .route-diary .diary-entry-row{grid-template-columns:46px 12px minmax(0,1fr);gap:6px}
  .route-diary .diary-entry-time strong{font-size:.82rem}
  .route-diary .diary-entry-time span{font-size:.62rem}
  .route-diary .diary-entry-card{padding-left:13px}
  .route-diary .diary-entry-customer{font-size:1rem!important}
  .route-diary .diary-entry-location,.route-diary .diary-entry-detail-line{font-size:.72rem!important}
  .route-diary .diary-add-row{width:calc(100% - 64px);margin-left:64px}
  .route-diary .diary-day-summary{margin-left:64px}
}
@media(prefers-reduced-motion:reduce){
  .route-diary .diary-entry-card,.route-diary .diary-entry-detail>summary::after{transition:none}
}


/* Phone Diary — same brain, different posture.
   Keep the installer on the next job, not on a shrunk desktop dashboard. */
@media(max-width:720px){
  .route-diary .main{
    padding:24px max(18px,env(safe-area-inset-right)) var(--sp-phone-main-clear) max(18px,env(safe-area-inset-left));
  }
  .route-diary .diary-v2>.topbar{
    min-height:54px;
    margin-bottom:10px;
    align-items:flex-start;
  }
  .route-diary .diary-v2>.topbar .page-title{font-size:2.15rem}
  .route-diary .diary-v2>.topbar .sub{display:none}
  .route-diary .diary-primary-add{
    position:static;
    width:auto;
    height:44px;
    min-height:44px;
    padding:0 13px;
    border-radius:999px;
    font-size:.78rem;
    letter-spacing:.01em;
    box-shadow:none;
  }
  .route-diary .diary-primary-add>span{font-size:1rem}
  .route-diary:has([data-diary-quick-add]) .diary-primary-add{opacity:0;pointer-events:none}

  .route-diary .diary-week-rail{
    margin-bottom:20px;
    border-top:0;
  }
  .route-diary .diary-week-toolbar{
    min-height:50px;
    padding:3px 0 7px;
  }
  .route-diary .diary-week-range{gap:7px}
  .route-diary .diary-week-range strong{font-size:.9rem}
  .route-diary .diary-week-arrow{width:34px;height:34px}
  .route-diary .diary-today-button{min-height:34px;padding:6px 11px;font-size:.74rem}
  .route-diary .diary-week-days{
    gap:6px;
    padding:0 0 12px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-padding-inline:16px;
    scroll-snap-type:x proximity;
  }
  .route-diary .diary-day-chip{
    flex:0 0 64px;
    min-height:68px;
    padding:8px 5px;
    border:1px solid transparent;
    border-radius:9px;
    scroll-snap-align:center;
  }
  .route-diary .diary-day-chip:first-child{border-left:1px solid transparent}
  .route-diary .diary-day-chip span{font-size:.61rem}
  .route-diary .diary-day-chip strong{font-size:1.08rem}
  .route-diary .diary-day-chip small{min-height:15px;font-size:.62rem}
  .route-diary .diary-day-chip.selected{
    background:#1a1b1b;
    border-color:#1a1b1b;
    color:#f2eee5;
    box-shadow:0 8px 20px rgba(20,21,21,.11);
  }
  .route-diary .diary-day-chip.selected::after{display:none}
  .route-diary .diary-day-chip.selected span{color:#c8c5bd}
  .route-diary .diary-day-chip.selected strong{color:var(--brand-gold)}
  .route-diary .diary-day-chip.selected small{color:#ddd9d0}

  .route-diary .diary-day-heading{
    align-items:flex-start;
    margin-bottom:14px;
  }
  .route-diary .diary-day-heading h2{font-size:1.8rem}
  .route-diary .diary-day-heading p{font-size:.75rem}
  .route-diary .diary-day-count{display:none}
  .route-diary .diary-route-row{
    margin-bottom:10px;
    padding:10px 12px;
  }
  .route-diary .diary-route-row small{display:none}

  .route-diary .diary-schedule-list{gap:8px}
  .route-diary .diary-entry-row{
    grid-template-columns:48px minmax(0,1fr);
    gap:8px;
  }
  .route-diary .diary-entry-rail{display:none}
  .route-diary .diary-entry-time{padding-top:14px}
  .route-diary .diary-entry-time strong{font-size:.86rem}
  .route-diary .diary-entry-time span{font-size:.62rem}
  .route-diary .diary-entry-card{
    min-height:98px;
    padding:13px 0 12px 14px;
    box-shadow:none;
  }
  .route-diary .diary-entry-detail>summary::after{
    margin-right:9px;
    font-size:1.25rem;
  }
  .route-diary .diary-entry-topline{
    flex-direction:row;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
  }
  .route-diary .diary-entry-type{font-size:.61rem}
  .route-diary .diary-entry-topline .status-pill{font-size:.63rem}
  .route-diary .diary-entry-customer{font-size:1.02rem!important}
  .route-diary .diary-entry-location,
  .route-diary .diary-entry-detail-line{font-size:.73rem!important;line-height:1.4!important}
  .route-diary .diary-entry-detail-line{
    display:-webkit-box!important;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .route-diary .diary-entry-meta{display:none}
  .route-diary .diary-entry-detail>.progress-box{padding:14px}
  .route-diary .diary-linked-job{padding:11px 13px 13px}

  /* One persistent Add action on phone. Contextual desktop Add rows stay out of the way. */
  .route-diary .diary-add-row{display:none}
  .route-diary .diary-empty-day{
    min-height:96px;
    padding:18px 20px;
  }
  .route-diary .diary-empty-day .btn{display:none}
  .route-diary .diary-day-summary{display:none}

  .route-diary .diary-day-side{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin-top:30px;
    padding:24px 0 0;
    border-left:0;
    border-top:1px solid var(--diary-line);
  }
  .route-diary .diary-side-section+.diary-side-section{
    padding:24px 0 0;
    border-left:0;
    border-top:1px solid var(--diary-line);
  }
  .route-diary .diary-side-head{margin-bottom:5px}
  .route-diary .diary-side-head h3{font-size:1.25rem}
  .route-diary .diary-next-item{min-height:64px;padding:10px 3px}
  .route-diary .diary-unscheduled-item{min-height:58px;padding:9px 3px}
  .route-diary .diary-side-empty{padding:12px 0}
}

@media(max-width:430px){
  .route-diary .diary-v2>.topbar .page-title{font-size:2rem}
  .route-diary .diary-today-button{display:none}
  .route-diary .diary-week-range strong{font-size:.82rem}
  .route-diary .diary-day-chip{flex-basis:60px;min-height:64px}
  .route-diary .diary-entry-row{grid-template-columns:43px minmax(0,1fr);gap:7px}
  .route-diary .diary-entry-time strong{font-size:.8rem}
  .route-diary .diary-entry-card{padding-left:12px}
  .route-diary .diary-entry-customer{font-size:.98rem!important}
  .route-diary .diary-entry-location,
  .route-diary .diary-entry-detail-line{font-size:.7rem!important}
  /* Keep the Add action in the header, never floating over appointment content. */
}

/* The desktop Diary is a timetable; the compact day list stays on phones. */
.diary-calendar,.diary-calendar-back,.diary-calendar-unscheduled,.diary-weekend-toggle{display:none}
@media(min-width:901px){
  .route-diary .diary-v2{width:100%;max-width:1400px}
  .route-diary .diary-v2 .diary-week-rail{margin-bottom:0;border-bottom:0}
  .route-diary .diary-v2 .diary-week-days{display:none}
  .route-diary .diary-weekend-toggle{display:block;margin-right:12px}
  .route-diary .diary-weekend-toggle[aria-pressed="true"]{border-color:#a98446;background:#eee7d9}
  .route-diary .diary-calendar{display:block;--calendar-columns:5;border:1px solid var(--diary-line);border-radius:6px;background:var(--diary-card);overflow:hidden}
  .route-diary .calendar-weekends .diary-calendar{--calendar-columns:7}
  .route-diary .diary-v2:not(.calendar-weekends) [data-calendar-weekend]{display:none}
  .route-diary .diary-calendar-head,.route-diary .diary-calendar-grid{display:grid;grid-template-columns:58px repeat(var(--calendar-columns),minmax(0,1fr))}
  .route-diary .diary-calendar-head{border-bottom:1px solid var(--diary-line);background:#f4f1e9}
  .route-diary .diary-calendar-zone{align-self:center;padding-left:10px;font-size:.7rem;color:var(--muted)}
  .route-diary .diary-calendar-date{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;min-width:0;border:0;border-left:1px solid var(--diary-line);border-radius:0;background:transparent;color:var(--ink);font:inherit}
  .route-diary .diary-calendar-date>span{font-size:.75rem;color:var(--muted)}
  .route-diary .diary-calendar-date>strong{font-size:1.125rem;font-weight:500}
  .route-diary .diary-calendar-date>small{font-size:.7rem;color:var(--muted);margin-left:4px}
  .route-diary .diary-calendar-date.is-today{background:#252b2c;color:#fff}
  .route-diary .diary-calendar-date.is-today>strong{color:#d7ba7d}
  .route-diary .diary-calendar-date.is-today>span,.route-diary .diary-calendar-date.is-today>small{color:#eee9df}
  .route-diary .diary-calendar-scroll{overflow:visible}
  .route-diary .diary-calendar-grid{min-height:var(--calendar-height)}
  .route-diary .diary-calendar-times{background:#f8f6f0}
  .route-diary .diary-calendar-times>span{display:block;height:48px;padding:5px 8px 0;font-size:.6875rem;color:#68706b;font-variant-numeric:tabular-nums;box-sizing:border-box}
  .route-diary .diary-calendar-column{position:relative;min-width:0;border-left:1px solid var(--diary-line);background:rgba(255,255,255,.24)}
  .route-diary .diary-calendar-column.is-today{background:rgba(169,132,70,.035)}
  .route-diary .diary-calendar-slot{display:block;width:100%;height:48px;border:0;border-bottom:1px solid var(--diary-line);border-radius:0;background:transparent;padding:0;text-align:center;color:#80683d;font-size:.7rem}
  .route-diary .diary-calendar-slot>span{opacity:0}
  .route-diary button.diary-calendar-slot:hover,.route-diary button.diary-calendar-slot:focus-visible{background:#f0e9dc}
  .route-diary .diary-calendar-slot:hover>span,.route-diary .diary-calendar-slot:focus-visible>span{opacity:1}
  .route-diary .diary-calendar-event{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px 8px;border:1px solid #cabc9e;border-left:3px solid #a98446;border-radius:4px;background:#eee6d6;color:#272d2a;overflow:hidden;text-align:left;font:inherit;box-sizing:border-box;box-shadow:0 2px 4px rgba(30,25,16,.04)}
  .route-diary .diary-calendar-event>span{font-size:.65rem;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
  .route-diary .diary-calendar-event>strong{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  .route-diary .diary-calendar-event>small{font-size:.65rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#575c52}
  .route-diary .diary-calendar-event:hover{background:#e6dbc5;border-color:#a98446}
  .route-diary .diary-calendar-event.is-short{padding:1px 5px;gap:0;justify-content:center}
  .route-diary .diary-calendar-event.is-short>small,.route-diary .diary-calendar-event.is-short>span{display:none}
  .route-diary .diary-calendar-event.is-short>strong{font-size:.75rem;line-height:1.2}
  .route-diary .diary-calendar-event:focus-visible,.route-diary .diary-calendar-date:focus-visible,.route-diary .diary-calendar-slot:focus-visible{outline:2px solid #705b36;outline-offset:-2px;z-index:2}
  .route-diary .diary-calendar-pending{display:flex;align-items:flex-start;gap:16px;padding:12px 14px;border-bottom:1px solid var(--diary-line);background:#f8f5ee}
  .route-diary .diary-calendar-pending>span{font-size:.7rem;color:var(--muted);max-width:90px;padding-top:4px}
  .route-diary .diary-calendar-pending>div{display:flex;flex-wrap:wrap;gap:8px;flex:1}
  .route-diary .diary-calendar-pending>div>div{min-width:140px;max-width:260px;flex:1}
  .route-diary .diary-calendar-pending small{font-size:.65rem;color:var(--muted)}
  .route-diary .diary-calendar-event.is-pending{position:static;width:100%;min-height:58px;border-style:dashed;background:transparent}
  .route-diary .diary-calendar-event.is-pending .calendar-location{display:none}
  .route-diary .diary-calendar-foot{display:flex;justify-content:space-between;gap:16px;padding:10px 14px;border-top:1px solid var(--diary-line);color:var(--muted);font-size:.6875rem}
  .route-diary .diary-v2:not(.calendar-inspecting) .diary-day-views{display:none}
  .route-diary .calendar-inspecting .diary-calendar{display:none}
  .route-diary .calendar-inspecting .diary-weekend-toggle{display:none}
  .route-diary .calendar-inspecting .diary-calendar-back{display:block;margin:4px 0 22px}
  .route-diary .diary-calendar-date>.calendar-booking-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e9dfcc;color:#705b36;font-size:.6875rem;font-weight:600}
  .route-diary .diary-calendar-date.is-today>.calendar-booking-count{background:#4a463a;color:#e8d7ae}
  .route-diary .calendar-inspecting .diary-day-views{padding-top:8px}
  .route-diary .diary-calendar-unscheduled{display:block;margin-top:22px}
  .route-diary .diary-calendar-unscheduled .diary-unscheduled-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .route-diary .calendar-inspecting .diary-calendar-unscheduled{display:none}
}

.diary-calendar-tools,.diary-calendar-help{display:none}
.diary-move-button{margin:12px 0}
.diary-move-dialog{width:min(480px,calc(100vw - 32px));padding:28px;border:1px solid #cfc8bb;border-radius:10px;background:#faf8f2;color:#252b2c;box-shadow:0 24px 80px #0004}
.diary-move-dialog::backdrop{background:#15191888}
.diary-move-dialog h2{margin:0 0 8px;font-family:Georgia,serif;font-size:1.7rem;font-weight:400}
.diary-move-customer{margin:0 0 22px;color:#60665f}
.diary-move-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.diary-move-fields label{display:grid;gap:6px;font-size:.85rem}
.diary-move-fields input{min-width:0;min-height:44px;padding:8px;border:1px solid #cfc8bb;border-radius:4px;background:white;font:inherit;color:inherit}
.diary-move-review{padding:10px 14px;margin-top:18px;border:1px solid #ddd4c0;background:#f1ecdf;border-radius:5px;font-size:.85rem}
.diary-move-review p{margin:8px 0}
.diary-move-warning{color:#923d34;font-weight:600}
.diary-move-status{font-size:.85rem;min-height:22px;margin:18px 0}
.diary-move-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(min-width:901px){
 .route-diary .diary-calendar-tools{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 14px}
 .route-diary .diary-calendar-tools label{display:grid;gap:5px;color:var(--muted);font-size:.75rem}
 .route-diary .diary-calendar-tools select{min-height:40px;min-width:145px;padding:8px 28px 8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);font:inherit;font-size:.8125rem}
 .route-diary .diary-calendar-help{display:block;margin:0 0 10px;font-size:.75rem;color:var(--muted)}
 .route-diary .diary-calendar-event{border-left-color:var(--installer-edge,#a98446);background:var(--installer-fill,#eee6d6)}
 .route-diary .diary-calendar-event:hover{filter:brightness(.975);background:var(--installer-fill,#e6dbc5)}
 .route-diary .diary-calendar-event[draggable="true"]{cursor:grab}
 .route-diary .calendar-dragging{opacity:.45;cursor:grabbing}
 .route-diary .calendar-drop-target{background:#e4eadb;outline:2px solid #718061;outline-offset:-2px}
 .route-diary .calendar-clash-icon{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#a1463b;color:white;font:700 10px sans-serif}
 .route-diary .diary-calendar-event.has-clash{border-top-color:#a1463b;border-right-color:#a1463b;border-bottom-color:#a1463b}
 .route-diary .calendar-inspecting :is(.diary-calendar-tools,.diary-calendar-help){display:none}
 .route-diary .diary-team-day h2{font-family:inherit;font-size:.95rem;font-weight:600;margin:16px}
 .route-diary .diary-team-day-scroll{overflow-x:auto}
 .route-diary .diary-team-day-grid{display:grid;grid-template-columns:58px repeat(var(--team-columns),minmax(180px,1fr))}
 .route-diary .diary-team-day-person{display:block;padding:14px 10px;border-bottom:3px solid var(--installer-edge,#ddd4c0);background:var(--installer-fill,#f4f1e9);font-size:.8rem;font-weight:600}
 .route-diary .diary-team-day-grid>.diary-calendar-column{min-height:var(--calendar-height)}
 .route-diary .diary-calendar [hidden],.route-diary .diary-calendar-tools [hidden],.route-diary .diary-week-controls [hidden]{display:none!important}
}
.diary-move-dialog [hidden]{display:none!important}
.diary-calendar-save-notice{padding:12px 16px;border:1px solid #bbc7b0;background:#edf2e7;color:#425c37;border-radius:5px;font-size:.85rem}
@media(min-width:901px){
 .route-diary .calendar-drop-target::after{content:attr(data-drop-time);position:absolute;top:var(--drop-top);left:0;right:0;z-index:4;border-top:2px solid #526b48;padding:3px 6px;background:#e4eadbee;color:#34462f;font-size:.7rem;pointer-events:none}
}

/* Laptop diary: readable bookings, quieter controls and precise half-hour gaps. */
@media(min-width:901px){
 .route-diary .diary-calendar-tools{gap:12px;margin-bottom:12px}
 .route-diary .diary-calendar-tools select{min-width:156px;min-height:42px;border-radius:6px}
 .route-diary .diary-calendar-summary{margin-left:auto;padding:0 0 12px;color:#5b625c;font-size:.8125rem;font-variant-numeric:tabular-nums}
 .route-diary .diary-calendar-summary.has-clashes{color:#963f35;font-weight:600}
 .route-diary .diary-calendar-help{font-size:.75rem;line-height:1.5;margin-bottom:14px}
 .route-diary .diary-calendar{border-radius:8px;box-shadow:0 3px 14px #29291c05}
 .route-diary .diary-calendar-times>span{font-size:.75rem;color:#5c655f;padding-top:4px}
 .route-diary .diary-calendar-slot{height:24px;border-bottom-color:#dcded580}
 .route-diary .diary-calendar-slot:nth-child(odd){border-bottom-style:dotted;border-bottom-color:#dcded550}
 .route-diary .diary-calendar-event{padding:4px 7px;gap:1px;border-radius:5px;border-top-color:#00000018;border-right-color:#00000018;border-bottom-color:#00000018;line-height:1.2}
 .route-diary .diary-calendar-event>span{font-size:.71875rem;line-height:14px;overflow:hidden;text-overflow:ellipsis}
 .route-diary .diary-calendar-event>strong{font-size:.84375rem;line-height:17px}
 .route-diary .diary-calendar-event>small{font-size:.71875rem;line-height:14px;color:#49554f}
 .route-diary .diary-calendar-event.is-medium>small{display:none}
 .route-diary .diary-calendar-event.is-short>strong{font-size:.75rem}
 .route-diary .diary-calendar-event.is-closed{background:#eff0eb;border-left-color:#87917d;color:#576052;box-shadow:none}
 .route-diary .diary-calendar-event.has-clash{border-top-color:#a1463b;border-right-color:#a1463b;border-bottom-color:#a1463b}
 .route-diary .calendar-fixed-mark{font-size:.6rem;color:#705b36}
 .route-diary .diary-calendar-foot{font-size:.75rem;padding:12px 14px}
 .route-diary .diary-team-day-person{font-size:.875rem;padding:13px 12px}
 .route-diary .diary-team-day h2{font-size:1rem}
}

/* A late-running booking remains in the time grid; explain the clipped end without duplicating its card. */
.route-diary .diary-calendar-outside-note{margin:0;padding:10px 14px;color:var(--muted);font-size:.75rem;line-height:1.45;border-top:1px solid var(--diary-line)}

/* Phone Diary header: get to today's first job sooner. The whole week fits in one row,
   so Saturday and Sunday are never clipped and no chip label wraps. */
.route-diary .diary-day-chip small :is(b,i){font-style:normal;font-weight:inherit}
@media(max-width:720px){
  .route-diary .diary-v2>.topbar{min-height:44px;margin-bottom:6px;align-items:center}
  .route-diary .diary-v2>.topbar .eyebrow{display:none}
  .route-diary .diary-v2>.topbar .page-title{font-size:1.75rem;line-height:1.1}
  .route-diary .diary-scope{margin:0 0 4px}
  .route-diary .diary-scope button{min-height:40px;padding-block:6px}
  .route-diary .diary-week-rail{margin-bottom:12px}
  .route-diary .diary-week-toolbar{min-height:44px;padding:0 0 4px}
  .route-diary .diary-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:0 0 8px;overflow:visible}
  .route-diary .diary-day-chip{min-width:0;min-height:58px;padding:6px 1px;gap:1px;border-radius:8px}
  .route-diary .diary-day-chip span{font-size:.6rem;letter-spacing:.04em}
  .route-diary .diary-day-chip strong{font-size:1.05rem}
  .route-diary .diary-day-chip small{min-height:14px;font-size:.66rem;white-space:nowrap}
  .route-diary .diary-day-chip small b{font-weight:600}
  .route-diary .diary-day-chip small i{display:none}
  .route-diary .diary-day-heading{margin-bottom:10px}
  .route-diary .diary-day-heading h2{font-size:1.5rem}
  .route-diary .diary-route-row{margin-bottom:10px;padding:9px 12px}
}
