/* Public project schedule: approved display fields only. */
.preview-note{background:#e9e5dc;color:#635a4e;border-bottom:1px solid var(--line);font-size:10px;line-height:1.7;padding:6px 0}.preview-note .wrap{display:flex;gap:6px 16px;flex-wrap:wrap}.preview-note strong{font-weight:500}
.schedule-page{--completed:#d0d8cc;--current:#7d6348;--future:#ece9e2;--row-columns:minmax(100px,1fr) minmax(150px,1.6fr) 86px;--row-gap:18px}.schedule-page [hidden]{display:none!important}.schedule-page button{font-family:inherit;cursor:pointer}.schedule-page button:focus-visible{outline:2px solid #665340;outline-offset:3px}.schedule-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0 20px}.schedule-intro>div{display:flex;align-items:baseline;gap:20px}.schedule-intro h1{font-size:30px;font-weight:400;line-height:1.4;margin:0}.schedule-intro span{font-size:10px;color:var(--muted)}.schedule-intro>a{font-size:12px;min-height:44px;display:flex;align-items:center}.schedule-board{padding-bottom:32px}
.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:0}.schedule-filters{display:flex;gap:28px}.schedule-filters button{border:0;border-bottom:2px solid transparent;background:none;padding:12px 0;min-height:46px;color:var(--muted);font-size:12px;white-space:nowrap}.schedule-filters button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}.schedule-filters span{font-size:10px;margin-left:7px}.schedule-toolbar form{position:relative;width:230px;max-width:100%;margin:0}.schedule-toolbar input{width:100%;height:38px;padding:7px 44px 7px 12px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font-size:12px}.schedule-toolbar input::-webkit-search-cancel-button{display:none}.schedule-toolbar form button{position:absolute;right:0;top:0;min-height:38px;min-width:44px;border:0;background:transparent;font-size:11px;color:var(--muted)}
.schedule-column-heads,.schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}.schedule-column-head,.schedule-project{display:grid;grid-template-columns:var(--row-columns);gap:var(--row-gap);align-items:center;min-width:0}.schedule-column-head{height:38px;font-size:10px;color:#80776b;border-bottom:1px solid var(--line)}.schedule-column-head>span:last-child{text-align:right}.schedule-stage-head{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;text-align:center;font-size:10px}.schedule-project{min-height:60px;border-bottom:1px solid #dedad2;padding:8px 0}.schedule-row-title{min-width:0}.schedule-row-title h2{font-size:14px;font-weight:400;line-height:1.5;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-row-title>span{font-size:10px;color:#8f8577;display:block;line-height:1.6;margin-top:2px;white-space:nowrap}.schedule-progress{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;min-width:0}.schedule-step{position:relative;display:flex;align-items:center;justify-content:center;height:24px;font-size:11px;line-height:1;white-space:nowrap;border-radius:1px;background:var(--future);isolation:isolate}.schedule-step.past{color:#53674f}.schedule-step.current{color:#fff}.step-ink{position:absolute;inset:0;border-radius:1px;z-index:-1;transform-origin:left center}.schedule-step.past .step-ink{background:var(--completed)}.schedule-step.current .step-ink{background:var(--current)}.schedule-project[data-done=true] .schedule-step:last-child{color:#fff}.schedule-project[data-done=true] .schedule-step:last-child .step-ink{background:#687b60}.schedule-row-date{text-align:right;line-height:1.5;min-width:0}.schedule-row-date>span{display:block;color:#8f8577;font-size:9px;line-height:1.5}.schedule-row-date strong{font-size:12px;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
.schedule-board-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;font-size:10px;color:var(--muted)}.schedule-key{display:flex;gap:20px;flex-wrap:wrap}.schedule-key>span{display:flex;align-items:center;gap:6px}.schedule-key i{width:12px;height:6px}.schedule-key i.past{background:var(--completed)}.schedule-key i.current{background:var(--current)}.schedule-key i.future{background:var(--future);border:1px solid #d7d1c5}.schedule-board-foot>div:last-child{display:flex;gap:18px;align-items:center}.schedule-board-foot button{border:0;background:transparent;font-size:10px;min-height:40px;color:var(--ink);padding:0}.schedule-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:10px;font-size:10px;color:var(--muted)}.schedule-bottom>a{font-size:11px;min-height:44px;display:flex;align-items:center;flex-shrink:0}.schedule-empty{text-align:center;padding:28px 15px;border-bottom:1px solid var(--line)}.schedule-empty h2{font-size:17px;font-weight:400;margin-bottom:12px}.schedule-empty button{font-size:12px;padding:10px 18px;border:1px solid var(--line);background:transparent}.schedule-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.schedule-list.is-running .schedule-step:not(.future) .step-ink{animation:stage-enter .65s cubic-bezier(.2,.7,.3,1) both;animation-delay:var(--delay)}@keyframes stage-enter{from{transform:scaleX(0);opacity:.4}to{transform:scaleX(1);opacity:1}}
@media(max-width:1100px){.schedule-page{--row-gap:12px;--row-columns:minmax(85px,1fr) minmax(115px,1.4fr) 75px}.schedule-column-heads,.schedule-list{column-gap:26px}}
@media(max-width:900px){.schedule-page{--row-columns:minmax(105px,1fr) minmax(150px,2fr) 86px;--row-gap:16px}.schedule-column-heads,.schedule-list{grid-template-columns:1fr}.schedule-column-head:nth-child(2){display:none}.schedule-project{min-height:56px}.schedule-intro h1{font-size:27px}.schedule-intro{padding:20px 0 14px}}
@media(max-width:550px){.schedule-page{--row-columns:97px minmax(0,1fr) 65px;--row-gap:9px}.preview-note{font-size:9px;padding:5px 0}.preview-note .wrap{gap:3px 7px}.preview-note span{max-width:calc(100% - 48px)}.schedule-intro{padding:17px 0 10px;gap:12px}.schedule-intro>div{gap:10px}.schedule-intro h1{font-size:25px}.schedule-intro span{display:none}.schedule-intro>a{font-size:11px}.schedule-toolbar{flex-direction:column-reverse;align-items:stretch;gap:2px}.schedule-toolbar form{width:100%}.schedule-toolbar input{height:38px;font-size:16px}.schedule-toolbar input::placeholder{font-size:12px}.schedule-filters{gap:27px}.schedule-filters button{font-size:12px;min-height:42px;padding:10px 0}.schedule-column-head{height:32px;font-size:9px}.schedule-stage-head{font-size:9px;gap:3px}.schedule-project{min-height:56px;padding:7px 0}.schedule-row-title h2{font-size:14px}.schedule-row-title>span{font-size:9px}.schedule-progress{gap:3px}.schedule-step{height:23px;font-size:10px}.schedule-row-date>span{font-size:9px}.schedule-row-date strong{font-size:10px}.schedule-board-foot{font-size:9px;gap:8px;flex-wrap:wrap;padding:6px 0}.schedule-key{gap:12px}.schedule-board-foot>div:last-child{gap:14px}.schedule-board-foot button{font-size:9px;min-height:32px}.schedule-bottom{display:block;padding-top:10px;font-size:9px}.schedule-bottom>a{font-size:10px;min-height:40px;width:max-content}.schedule-board{padding-bottom:20px}}
@media(max-width:360px){.schedule-page{--row-columns:83px minmax(0,1fr) 61px;--row-gap:6px}.schedule-row-title h2{font-size:13px}.schedule-row-title>span{font-size:9px}.schedule-stage-head,.schedule-step{font-size:10px}.schedule-key{gap:10px}}
@media(prefers-reduced-motion:reduce){.schedule-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Initial-draft estimate: one centered reading order, three visible lines. */
.drawing-forecast{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0 38px;margin-bottom:25px}
.drawing-forecast-copy,.drawing-wait,.drawing-timing{min-width:0;max-width:100%}
.drawing-forecast h2{font-size:26px;font-weight:400;line-height:1.5;margin:0 0 10px;letter-spacing:.035em}
.drawing-count{display:flex;align-items:baseline;justify-content:center;gap:14px;line-height:1;margin:0;color:#705c44;white-space:nowrap}
.drawing-count strong{font-size:clamp(112px,10vw,180px);font-weight:400;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.drawing-count i{font-size:clamp(42px,4vw,64px);font-style:normal;font-weight:300;color:#a6957d;align-self:center}
.drawing-count .drawing-unit{font-size:28px;margin-left:2px;letter-spacing:0}
.drawing-timing{margin-top:20px}.drawing-dates{display:flex;justify-content:center;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px;line-height:1.7;color:var(--muted);font-variant-numeric:tabular-nums}.drawing-dates time{white-space:nowrap}.drawing-calendar{font-size:12px;margin-left:4px;white-space:nowrap}
.drawing-forecast-note{font-size:10px;line-height:1.8;margin:0 0 3px;color:var(--muted)}.drawing-pending{font-size:13px;padding:20px 0;color:var(--muted)}
/* A quiet screen mode for a continuously open showroom display. */
.schedule-intro-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap}.schedule-intro-actions>a{font-size:12px;min-height:40px;display:flex;align-items:center}.schedule-intro-actions button{border:1px solid var(--line);background:transparent;color:var(--ink);font-size:11px;padding:8px 12px;min-height:38px}#schedule-live-status{font-size:10px;color:var(--muted);white-space:nowrap}#schedule-live-status.is-stale{color:#9c4e30}#schedule-page-controls{display:flex;align-items:center;gap:14px}#schedule-page-controls button{min-width:32px}
.schedule-display .header,.schedule-display .footer,.schedule-display .schedule-bottom{display:none}.schedule-display .schedule-page{padding-top:0}.schedule-display .schedule-intro{padding:12px 0}.schedule-display .schedule-intro h1{font-size:26px}.schedule-display .schedule-intro-actions>a{display:none}.schedule-display .drawing-forecast{padding:38px 0 32px;margin-bottom:12px}.schedule-display .schedule-project{min-height:54px;padding:5px 0}.schedule-display .schedule-column-head{height:30px}.schedule-display .schedule-board{padding-bottom:12px}.schedule-display .schedule-board-foot{min-height:38px;padding:4px 0}.schedule-display .schedule-intro>div:first-child>span{font-size:10px}
/* Airport-board rhythm leaves the estimate above the board still. */
.schedule-project{position:relative;transform-origin:center center;backface-visibility:hidden}.schedule-list.is-flipping .schedule-project:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#87735c22;pointer-events:none}
.drawing-count.is-long strong{font-size:clamp(88px,8vw,150px)}.drawing-count.is-extra-long strong{font-size:clamp(68px,6vw,120px)}
@media(max-width:900px){.schedule-intro{flex-wrap:wrap}.schedule-intro-actions{gap:8px}.schedule-intro-actions>a{font-size:11px}.drawing-forecast h2{font-size:23px}}
@media(max-width:700px){.schedule-intro-actions{width:100%;justify-content:flex-start}.schedule-intro #schedule-live-status{display:inline;font-size:10px}.schedule-intro-actions .text-link{display:none}.drawing-forecast,.schedule-display .drawing-forecast{padding:28px 0 26px;margin-bottom:14px}.drawing-forecast h2{font-size:18px;letter-spacing:0;margin-bottom:12px}.drawing-count{gap:9px}.drawing-count strong{font-size:clamp(80px,21vw,112px)}.drawing-count i{font-size:34px}.drawing-count .drawing-unit{font-size:20px;margin-left:0}.drawing-count.is-long strong{font-size:62px}.drawing-count.is-extra-long strong{font-size:46px}.drawing-timing{margin-top:14px}.drawing-dates{font-size:12px;gap:5px}.drawing-calendar{font-size:11px;margin-left:3px}.schedule-display .schedule-intro{gap:4px}.schedule-display .schedule-project{min-height:48px}.schedule-display .schedule-board-foot{gap:4px}.schedule-display #schedule-page-controls{gap:5px}}
@media(max-height:800px) and (min-width:901px){.schedule-display .drawing-forecast{padding:24px 0}.schedule-display .drawing-count strong{font-size:128px}.schedule-display .drawing-count.is-long strong{font-size:105px}.schedule-display .drawing-count.is-extra-long strong{font-size:82px}.schedule-display .schedule-intro h1{font-size:24px}}

/* Public search stays available in the display view, away from the main number. */
.schedule-display .schedule-toolbar{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;border-bottom:0;padding:0 0 7px;gap:0}.schedule-display .schedule-filters{display:none}.schedule-display .schedule-toolbar form{width:224px}.schedule-display .schedule-toolbar input{height:36px;font-size:12px}.schedule-display .schedule-toolbar form button{min-height:36px}
@media(max-width:700px){.schedule-display .schedule-toolbar form{width:100%}.schedule-display .schedule-toolbar input{height:40px;font-size:16px}.schedule-display .schedule-toolbar form button{min-height:40px}}
@media(max-width:360px){.drawing-forecast h2{font-size:17px}}
/* Showroom screen: the first-draft estimate is the primary content. */
@media(min-width:701px){
 .schedule-display .schedule-page>.wrap{width:92%;max-width:none}
 .schedule-display .drawing-forecast{min-height:52vh;box-sizing:border-box;justify-content:center;padding:28px 0;margin-bottom:10px}
 .schedule-display .drawing-forecast h2{font-size:clamp(28px,2.25vw,56px);line-height:1.4;margin-bottom:12px;letter-spacing:.02em}
 .schedule-display .drawing-count{gap:clamp(14px,1.4vw,34px)}
 .schedule-display .drawing-count strong{font-size:clamp(160px,min(19vw,32vh),460px);line-height:.98;letter-spacing:-.055em}
 .schedule-display .drawing-count.is-long strong{font-size:clamp(118px,min(14vw,28vh),350px)}
 .schedule-display .drawing-count.is-extra-long strong{font-size:clamp(90px,min(10.5vw,25vh),270px)}
 .schedule-display .drawing-count i{font-size:clamp(54px,6vw,120px)}
 .schedule-display .drawing-count .drawing-unit{font-size:clamp(26px,2.5vw,55px)}
 .schedule-display .drawing-timing{margin-top:24px}
 .schedule-display .drawing-dates{font-size:clamp(18px,1.3vw,30px)}
 .schedule-display .drawing-calendar{font-size:.75em}
 .schedule-display .schedule-page{--row-columns:minmax(125px,1.05fr) minmax(210px,1.8fr) 90px}
 .schedule-display .schedule-row-title h2{font-size:16px}
 .schedule-display .schedule-step{height:27px;font-size:12px}
}
.schedule-step .step-label{display:none}
@media(max-width:550px){
 .schedule-column-heads{display:none}
 .schedule-project,.schedule-display .schedule-project{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:12px 0;min-height:105px}
 .schedule-row-title{grid-column:1;grid-row:1}
 .schedule-row-date{grid-column:2;grid-row:1}
 .schedule-row-date strong{font-size:13px}
 .schedule-progress{grid-column:1/-1;grid-row:2;padding-bottom:17px;gap:5px}
 .schedule-step{height:25px}
 .schedule-step .step-label{display:block;position:absolute;top:29px;font-size:10px;color:#80776b;line-height:1}
}

/* Keep full status words legible on compact desktop screens. */
@media(min-width:901px) and (max-width:1100px){
 .schedule-column-heads,.schedule-list{grid-template-columns:1fr}
 .schedule-column-head:nth-child(2){display:none}
}

.schedule-list{align-content:start}

/* Eight milestones keep installation and handover separate. */
@media(min-width:551px) and (max-width:1400px){.schedule-column-heads,.schedule-list{grid-template-columns:1fr}.schedule-column-head:nth-child(2){display:none}}

/* Full order sub-statuses wrap inside their own milestone instead of overlapping neighbours. */
.schedule-step.current{height:auto;min-height:36px;align-self:stretch;white-space:normal;padding:3px 2px;box-sizing:border-box}
.schedule-step.current>span:not(.step-label){min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25;text-align:center;font-size:10px}
.schedule-progress{align-items:stretch}
.schedule-step:not(.current){align-self:center}
