/* Local CLUB operations component; existing brand and status tokens only. */
.ops-timeline{margin-top:28px;border:1px solid var(--club-border);border-radius:16px;background:var(--club-panel);padding:24px;min-width:0;color:var(--club-text)}
.ot-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}
.ot-heading h3{font-size:1.25rem;margin:4px 0 8px}.ot-heading p{margin:0;font-size:.8rem;color:var(--club-muted)}
.ot-heading .ot-eyebrow{font-size:.65rem;letter-spacing:.2em;color:var(--club-gold-bright)}
.ot-delivery{text-align:right;font-size:.8rem;color:var(--club-gold-bright);flex-shrink:0}.ot-delivery small{display:block;font-size:.7rem;color:var(--club-muted);margin-top:6px}
.ot-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:18px 0 22px;font-size:.72rem;color:var(--club-muted)}
.ot-scroll{overflow:auto;max-width:100%;border:1px solid var(--club-border);border-radius:10px;overscroll-behavior-x:contain}
.ot-scroll:focus-visible{outline:2px solid var(--club-gold-bright);outline-offset:3px}
.ot-chart{min-width:1040px;padding-right:12px;background:var(--club-panel)}
.ot-row{display:grid;grid-template-columns:155px minmax(610px,1fr) 230px;min-height:76px;border-bottom:1px solid var(--club-border)}
.ot-row:last-child{border-bottom:0}.ot-label{position:sticky;left:0;z-index:3;padding:16px 12px;background:var(--club-panel);border-right:1px solid var(--club-border);font-size:.78rem}
.ot-label strong,.ot-label small{display:block}.ot-label small{font-size:.64rem;font-weight:400;color:var(--club-muted);margin-top:5px}
.ot-track{position:relative;min-width:0;margin:0 18px}.ot-gridline{position:absolute;top:0;bottom:0;border-left:1px solid var(--club-border);pointer-events:none}
.ot-today{position:absolute;top:0;bottom:0;border-left:2px dashed var(--club-gold-bright);z-index:2;pointer-events:none}
.ot-axis{min-height:68px;background:var(--club-bg)}.ot-axis .ot-label{background:var(--club-bg)}
.ot-tick{position:absolute;top:13px;transform:translateX(-50%);text-align:center;font-size:.7rem;white-space:nowrap;color:var(--club-muted)}
.ot-tick:first-child{transform:none}.ot-tick:last-child{transform:translateX(-100%)}.ot-tick b,.ot-tick small{display:block}.ot-tick b{color:var(--club-gold-bright);margin-bottom:4px}
.ot-bar{position:absolute;top:24px;box-sizing:border-box;min-height:26px;border-radius:4px;padding:5px 7px;font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ot-manual{border:1px dashed var(--club-gold);color:var(--club-gold-bright);background:var(--club-bg)}
.ot-auto{background:var(--club-gold);color:var(--theme-on-accent);border:1px solid var(--club-gold)}
.ot-point{position:absolute;top:8px;transform:translateX(-50%);z-index:1;text-align:center;font-size:.63rem;white-space:nowrap;background:none;border:0;color:var(--club-gold-bright)}
.ot-point b{display:block;font-size:17px;line-height:30px}.ot-point span{display:block;padding:2px 4px;background:var(--club-panel)}
.ot-event{color:var(--club-text)}
.ot-result{padding:14px 10px 12px 14px;border-left:1px solid var(--club-border);font-size:.7rem;line-height:1.6;color:var(--club-muted)}
.ot-result>span{display:block}.ot-state-attention{border-left:3px double var(--club-gold-bright);color:var(--club-gold-bright)}.ot-state-attention>span:before{content:'! ';font-weight:700}
.ot-state-done>span:before{content:'✓ ';font-weight:700}.ot-state-done{color:var(--club-text)}
.ot-action{display:block;background:transparent;border:0;padding:4px 0 0;color:var(--club-gold-bright);font-size:.7rem;text-align:left;cursor:pointer}
.ot-footnote{font-size:.72rem!important;color:var(--club-muted);line-height:1.8;margin:12px 0 0}
.ot-simulator,.ot-membership{border-top:1px solid var(--club-border);margin-top:26px;padding-top:24px}.ops-timeline h4{font-size:1rem;margin:0 0 16px}
.ot-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.ot-controls label{display:grid;gap:6px;font-size:.74rem;min-width:220px;flex:1;color:var(--club-muted)}
.ot-controls input,.ot-controls select{width:100%;min-height:42px;box-sizing:border-box;background:var(--club-bg);color:var(--club-text);border:1px solid var(--club-border);border-radius:6px;padding:8px;font:inherit;color-scheme:dark}
.ot-presets{display:flex;flex-wrap:wrap;gap:8px}.ot-presets button{background:transparent;color:var(--club-gold-bright);border:1px solid var(--club-border);border-radius:20px;padding:7px 12px;font-size:.72rem;cursor:pointer}
.ot-presets button:hover{border-color:var(--club-gold)}.ot-sim-caption{font-size:.75rem;color:var(--club-muted);margin:16px 0 10px}
.ot-sim-chart{min-width:720px;padding:12px}.ot-sim-row{display:grid;grid-template-columns:90px minmax(330px,1fr) 260px;align-items:center;min-height:65px;font-size:.74rem;border-bottom:1px solid var(--club-border)}.ot-sim-row:last-child{border:0}
.ot-sim-track{position:relative;height:50px;margin-right:18px}.ot-sim-line{position:absolute;top:25px;height:2px;background:var(--club-gold)}.ot-sim-dot{position:absolute;top:15px;transform:translateX(-50%);font-size:17px;color:var(--club-gold-bright)}
.ot-sim-row small{display:block;color:var(--club-muted);font-size:.7rem;margin-top:5px}.ot-no-send{display:block;padding:15px;color:var(--club-muted)}
.ot-journey{list-style:none;display:flex;margin:18px 0!important;padding:0!important;gap:18px;overflow:auto}
.ot-journey li{position:relative;flex:1;min-width:130px;padding:12px 8px 12px 0;border-top:2px solid var(--club-border);font-size:.72rem}
.ot-journey li:not(:last-child):after{content:'→';position:absolute;right:-14px;top:-11px;font-size:16px;color:var(--club-gold)}
.ot-journey li b,.ot-journey li span{display:block}.ot-journey li span{color:var(--club-muted);margin-top:8px;line-height:1.7}.ot-journey li.is-recorded{border-top-color:var(--club-gold)}
.ot-member{padding:16px 0;border-top:1px solid var(--club-border)}.ot-member>strong{font-size:.82rem}.ot-member>small{font-size:.7rem;color:var(--club-muted)}
.ot-empty{font-size:.8rem;color:var(--club-muted);padding:14px;background:var(--club-bg);border-radius:8px}
@media(min-width:1450px){.club-shell:has(.ops-timeline){max-width:1760px}.club-layout:has(.ops-timeline){grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:760px){.ops-timeline{padding:15px}.ot-heading{display:block}.ot-delivery{text-align:left;margin-top:14px}.ot-controls{display:block}.ot-controls label{margin-bottom:12px;min-width:0}.ot-label{width:auto}.ot-legend{gap:8px 14px}.ot-journey{padding-bottom:8px!important}}

.ot-event-details{margin-top:20px}.ot-event-details>summary{cursor:pointer;color:var(--club-gold-bright);padding:12px 0;font-size:.85rem}.ot-sim-axis{color:var(--club-muted)}

/* Fit the actual console width, including browser zoom and the sidebar. */
.ops-timeline{container-type:inline-size}
.ot-scroll{overflow:visible;max-width:100%;min-width:0}
.ot-chart{min-width:0;padding-right:0}
.ot-row{grid-template-columns:minmax(105px,14%) minmax(0,1fr) minmax(145px,23%)}
.ot-label{position:static;min-width:0;overflow-wrap:anywhere}
.ot-result{min-width:0;overflow-wrap:anywhere}
.ot-track{margin-inline:36px}
.ot-point span{max-width:72px;white-space:normal;line-height:1.35}
.ot-point{width:72px;white-space:normal}
.ot-tick{font-size:.65rem}
.ot-heading>*{min-width:0}.ot-delivery{flex-shrink:1}
.ot-sim-chart{min-width:0}
.ot-sim-row{grid-template-columns:minmax(75px,12%) minmax(0,1fr) minmax(140px,28%)}
.ot-sim-row>*{min-width:0;overflow-wrap:anywhere}
.ot-sim-track{margin-inline:16px}
.ot-journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(145px,100%),1fr));overflow:visible}
.ot-journey li{min-width:0;overflow-wrap:anywhere}
@container (max-width:1000px){
 .ot-row{grid-template-columns:140px minmax(0,1fr)}
 .ot-track{min-height:76px}
 .ot-result{grid-column:2;border-left:0;padding-top:0;padding-bottom:14px}
 .ot-label{grid-row:span 2}
 .ot-axis .ot-label{grid-row:auto}
 .ot-axis .ot-result{display:none}
 .ot-sim-row{grid-template-columns:90px minmax(0,1fr)}
 .ot-sim-row>div:last-child{grid-column:2;padding:0 16px 12px}
 .ot-sim-axis>span{grid-column:2;padding:0 16px 8px}
 .ot-sim-axis .ot-sim-track{padding:0!important}
}
@container (max-width:600px){
 .ot-row{grid-template-columns:minmax(0,1fr)}
 .ot-label{grid-row:auto;border-right:0;padding:12px 12px 0}
 .ot-label strong{display:inline}.ot-label small{display:inline;margin-left:8px}
 .ot-track{min-height:80px;margin-inline:32px}
 .ot-result{grid-column:1;padding:0 12px 14px}
 .ot-axis .ot-label{display:none}
 .ot-axis .ot-track{min-height:64px;margin-inline:18px}
 .ot-axis .ot-tick{font-size:.62rem}
 .ot-heading{display:block}.ot-delivery{text-align:left;margin-top:12px}
 .ot-controls{display:block}.ot-controls label{min-width:0;margin-bottom:12px}
 .ot-sim-row{grid-template-columns:minmax(0,1fr);padding-top:12px}
 .ot-sim-row>div:last-child,.ot-sim-axis>span{grid-column:1}
 .ot-sim-axis>strong{display:none}
 .ot-sim-row>strong{padding-inline:8px}
 .ot-journey{grid-template-columns:minmax(0,1fr);gap:0}
 .ot-journey li{margin-left:7px;border-top:0;border-left:2px solid var(--club-border);padding:0 0 22px 18px}
 .ot-journey li.is-recorded{border-left-color:var(--club-gold)}
 .ot-journey li:not(:last-child):after{content:'↓';left:-7px;right:auto;top:auto;bottom:0;background:var(--club-panel)}
}
@container (max-width:600px){
 .ot-axis .ot-track{margin-inline:32px}
 .ot-tick:first-child,.ot-tick:last-child{transform:translateX(-50%)}
}

/* Default overview: every operating and monthly money milestone in one view. */
.ops-timeline{margin-top:8px;padding:12px;border-radius:10px}
.oc-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ops-timeline .oc-heading h3{font-size:1rem;margin:0 0 4px}
.oc-heading p{font-size:.7rem;color:var(--club-muted);margin:0}
.oc-heading .button{width:auto;flex:none;white-space:nowrap}
.oc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.65rem;color:var(--club-muted);margin:10px 0 8px}
.oc-chart{border:1px solid var(--club-border);border-radius:6px;overflow:visible}
.oc-row{display:grid;grid-template-columns:132px minmax(0,1fr) 235px;min-height:27px;border-bottom:1px solid var(--club-border);align-items:stretch}
.oc-row:last-child{border:0}
.oc-row>button{font:inherit;font-size:.7rem;line-height:1.2;text-align:left;padding:5px 8px;background:transparent;border:0;color:var(--club-text);cursor:pointer;white-space:nowrap}
.oc-row>button:hover{color:var(--club-gold-bright);text-decoration:underline}
.oc-row>button:focus-visible{outline:2px solid var(--club-gold-bright);outline-offset:-2px}
.oc-track{position:relative;min-width:0;margin-inline:16px}
.oc-track>i{position:absolute;inset-block:0;border-left:1px solid var(--club-border)}
.oc-now{position:absolute;inset-block:0;border-left:1px dashed var(--club-gold-bright);z-index:2}
.oc-result{font-size:.65rem;padding:5px 8px;border-left:1px solid var(--club-border);color:var(--club-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-bar{position:absolute;top:10px;height:7px;min-width:2px;background:var(--club-gold);border-radius:2px}
.oc-bar.oc-manual{background:transparent;border:1px dashed var(--club-gold-bright)}
.oc-dot{position:absolute;top:5px;transform:translateX(-50%);color:var(--club-gold-bright);font-size:12px;line-height:18px;z-index:1}
.oc-finance{font-size:17px;font-weight:700}
.oc-axis{min-height:28px;color:var(--club-muted);font-size:.65rem;background:var(--club-bg)}
.oc-axis>span{padding:6px 8px}
.oc-axis .oc-track>span{position:absolute;top:6px;transform:translateX(-50%);white-space:nowrap;color:var(--club-gold-bright);font-size:.65rem}
.oc-axis .oc-track>span:first-child{transform:none}.oc-axis .oc-track>span:last-child{transform:translateX(-100%)}
.oc-note{font-size:.68rem!important;line-height:1.5;margin:8px 0;color:var(--club-muted)}
.oc-finance-details>summary,.ot-expanded-details>summary{cursor:pointer;color:var(--club-gold-bright);font-size:.72rem;padding:7px 0}
.oc-finance-details p,.oc-finance-details a,.oc-finance-details table{font-size:.74rem;line-height:1.6}
.oc-finance-details table{width:100%;border-collapse:collapse;table-layout:fixed}
.oc-finance-details th,.oc-finance-details td{padding:6px;border-bottom:1px solid var(--club-border);overflow-wrap:anywhere;text-align:left}
.ot-expanded-details[open]>.ot-heading{margin-top:18px}
.ops-timeline.ot-fullscreen{position:fixed;inset:12px;z-index:5000;margin:0;padding:16px;overflow:auto;background:var(--club-bg);box-shadow:var(--club-shadow)}
.ot-fullscreen .oc-chart{max-width:1600px;margin-inline:auto}
@container(max-width:850px){.oc-row{grid-template-columns:126px minmax(0,1fr) 155px}.oc-result{font-size:.6rem}.oc-heading{gap:6px}}
@container(max-width:580px){
 .oc-row{grid-template-columns:108px minmax(0,1fr);min-height:27px}
 .oc-result,.oc-axis>span:last-child{display:none}
 .oc-row>button{font-size:.64rem;padding:5px 4px}
 .oc-track{margin-inline:9px}
 .oc-heading{align-items:flex-start}.ops-timeline .oc-heading h3{font-size:.82rem}
 .oc-heading .button{font-size:.64rem;padding:6px 8px}
 .oc-legend{gap:4px 9px;font-size:.59rem}
 .oc-axis .oc-track>span{font-size:.56rem}
 .oc-axis .oc-track>span:nth-child(2){display:none}
 .oc-note{font-size:.63rem!important}
}
@media(max-height:700px){.ot-fullscreen .oc-row{min-height:24px}.ot-fullscreen .oc-bar{top:8px}.ot-fullscreen .oc-dot{top:3px}}

.ops-timeline{scroll-margin-top:100px}
.oc-finance small{position:absolute;left:15px;top:0;font-size:10px;white-space:nowrap;font-weight:400;background:var(--club-panel)}
.oc-finance.is-end small{left:auto;right:15px}
.oc-attention{color:var(--club-gold-bright)}
.ot-fullscreen .oc-row{min-height:40px}
.ot-fullscreen .oc-row>button{font-size:.85rem}.ot-fullscreen .oc-result{font-size:.75rem}
.ot-fullscreen .oc-bar{top:14px}.ot-fullscreen .oc-dot{top:9px}
@container(max-width:580px){
 .ot-fullscreen .oc-row{min-height:32px}
 .ot-fullscreen .oc-row>button{font-size:.68rem}
 .ot-fullscreen .oc-bar{top:12px}.ot-fullscreen .oc-dot{top:7px}
 .oc-axis .oc-track>span:nth-last-child(2){display:none}
}
@media(max-height:700px){.ot-fullscreen .oc-row{min-height:27px}.ot-fullscreen .oc-bar{top:10px}.ot-fullscreen .oc-dot{top:5px}}

 .ot-mobile-date{display:none}
/* On narrow screens, expose the dates and results instead of squeezing a chart. */
.oc-mobile-date{display:none}
.oc-chart-scroll{min-width:0}
@container(max-width:760px){
 .ops-timeline .oc-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .ops-timeline .oc-heading h3{font-size:16px;line-height:1.6}
 .ops-timeline .oc-heading p{font-size:12px}
 .ops-timeline .oc-heading .button{justify-self:start;min-height:44px;font-size:13px}
 .ops-timeline .oc-legend{display:none}
 .ops-timeline .oc-chart{margin-top:16px;border:0}
 .ops-timeline .oc-row{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:10px 0;border-bottom:1px solid var(--club-border)}
 .ops-timeline .oc-row>button{font-size:14px;font-weight:600;line-height:1.5;white-space:normal;min-height:44px;padding:8px 0;text-align:left;color:var(--club-gold-bright)}
 .ops-timeline .oc-mobile-date{display:block;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
 .ops-timeline .oc-result{display:block;padding:0 0 8px;border:0;white-space:normal;overflow:visible;font-size:12px;line-height:1.7}
 .ops-timeline :is(.oc-axis,.oc-track){display:none}
 .ops-timeline .oc-note{font-size:12px!important;line-height:1.7}
 .oc-finance-details>summary,.ot-expanded-details>summary{min-height:44px;font-size:13px;line-height:1.7;padding-block:12px}
 .oc-finance-details table,.oc-finance-details tbody{display:block}
 .oc-finance-details thead{display:none}
 .oc-finance-details tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-bottom:1px solid var(--club-border);padding:16px 0}
 .oc-finance-details td{display:block;padding:0;border:0;font-size:13px}
 .oc-finance-details td:before{content:attr(data-label);display:block;color:var(--club-muted);font-size:12px;margin-bottom:4px}
 .ot-expanded-details .ot-scroll{overflow:visible}
 .ot-expanded-details :is(.ot-chart,.ot-sim-chart){min-width:0;width:100%}
 .ot-expanded-details :is(.ot-axis,.ot-track,.ot-sim-axis,.ot-sim-track,.ot-legend){display:none}
 .ot-expanded-details .ot-row:not(.ot-axis){display:grid;grid-template-columns:minmax(0,1fr);padding:12px 0;gap:8px}
 .ot-expanded-details .ot-label{grid-row:auto;padding:0 12px;border:0;font-size:14px}
 .ot-expanded-details .ot-label small{display:block;margin:4px 0 0;font-size:12px}
 .ot-expanded-details .ot-mobile-date{display:block;margin:0;padding:0 12px;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
 .ot-expanded-details .ot-result{grid-column:1;padding:0 12px;font-size:13px;line-height:1.7}
 .ot-expanded-details .ot-action{min-height:44px;font-size:13px;white-space:normal;overflow-wrap:anywhere}
 .ot-expanded-details .ot-sim-row:not(.ot-sim-axis){display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0}
 .ot-expanded-details .ot-sim-row>strong{padding:0;font-size:14px}
 .ot-expanded-details .ot-sim-row>div:last-child{grid-column:1;padding:0;font-size:13px}
 .ot-expanded-details .ot-sim-row small{font-size:12px;line-height:1.7}
 .ot-expanded-details .ot-controls :is(input,select){font-size:16px;min-height:44px}
 .ot-expanded-details .ot-presets button{min-height:44px;font-size:13px}
}

@media(max-width:760px){
 .club-shell .ops-timeline.ot-fullscreen{inset:8px;padding:16px}
 .ot-fullscreen .oc-chart-scroll,.ot-fullscreen .oc-chart{min-width:0;max-width:100%}
}
