    body {
        margin: 0;
        padding: 20px;
        font-family: Arial, sans-serif;
        background: #f2eee6;
        color: #222;
    }
	#startScreen {
    position: fixed;
    inset: 0;
    background: #f2eee6;
    color: #222;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    padding: 24px 20px;
    box-sizing: border-box;
    z-index: 9999;
}

.startPanel {
    width: 820px;
    max-width: 94%;
    background: #fffdf8;
    border: 1px solid #999;
    padding: 24px 30px 28px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    text-align: center;
}

.intro-conversation {
    width: 100%;
    max-width: 760px;
    margin: 20px auto 28px;
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.speech-row {
    display: flex;
    align-items: flex-end;
    width: 100%;
    gap: 9px;
}

.exec-row { justify-content: flex-start; padding-right: 18%; box-sizing: border-box; }
.pa-row { justify-content: flex-end; padding-left: 18%; box-sizing: border-box; }

.speech-row .speaker {
    flex: 0 0 auto;
    min-width: 40px;
    padding-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.8px;
    color: #333;
    line-height: 1;
}

.exec-row .speaker { text-align: right; }
.pa-row .speaker { text-align: left; }

.speech-bubble {
    position: relative;
    width: auto;
    max-width: 620px;
    padding: 11px 15px 12px;
    border: 1px solid #777;
    background: #f8f3e9;
    color: #222;
    line-height: 1.38;
    text-align: left;
    box-shadow: 2px 3px 0 rgba(0,0,0,0.10);
}

.exec-bubble {
    border-radius: 12px 12px 12px 4px;
}

.pa-bubble {
    border-radius: 12px 12px 4px 12px;
    background: #eee7da;
}

.exec-bubble::before,
.pa-bubble::before {
    content: "";
    position: absolute;
    bottom: 8px;
    width: 10px;
    height: 10px;
    background: inherit;
    transform: rotate(45deg);
}

.exec-bubble::before {
    left: -6px;
    border-left: 1px solid #777;
    border-bottom: 1px solid #777;
}

.pa-bubble::before {
    right: -6px;
    border-right: 1px solid #777;
    border-top: 1px solid #777;
}

.start-menu {
    width: 360px;
    max-width: 100%;
    margin: 0 auto;
}

.startPanel h1 {
    margin-top: 0;
    margin-bottom: 12px;
}

.startPanel p {
    line-height: 1.5;
    color: #444;
    margin-bottom: 18px;
}

.startPanel input,
.startPanel select {
    display: block;
    width: 100%;
    margin: 10px 0;
    padding: 8px;
    background: #fff;
    color: #222;
    border: 1px solid #999;
    box-sizing: border-box;
}

.startPanel button {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 16px;
    background: #d8d1c2;
    color: #222;
    border: 1px solid #777;
    cursor: pointer;
}

.startPanel button:hover {
    background: #ccc3b2;
}

    h1, h2, h3 {
        margin-top: 0;
    }

    .wrap {
        max-width: 1400px;
        margin: 0 auto;
    }

    .panel {
        background: #fffdf8;
        border: 1px solid #999;
        padding: 12px;
        margin-bottom: 12px;
    }

    .ticker {
        background: #222;
        color: #e8dfc8;
        font-family: 'Courier New', monospace;
        font-size: 15px;
        letter-spacing: 0.5px;
        padding: 10px 14px;
        margin-bottom: 12px;
        border: 1px solid #000;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .equalizer {
        display: flex;
        align-items: flex-end;
        gap: 3px;
        height: 40px;
        width: 50px;
        vertical-align: middle;
        margin-right: 10px;
    }

    .eq-bar {
        flex: 1;
        background: #4a9d4a;
        transition: height 0.3s ease, background 0.3s ease;
        min-height: 2px;
    }

    .eq-bar.eq-red {
        background: #c0392b;
    }

    .bus-panel {
        background: #3a2020;
        color: #f0e0d0;
        border: 2px solid #1a0d0d;
    }

    .bus-panel h3 {
        color: #f0e0d0;
        margin-top: 0;
    }

    .bus-panel button {
        background: #6b3a3a;
        color: #f0e0d0;
        border: 1px solid #2a1515;
    }

    .bus-panel button:hover {
        background: #7d4444;
    }

    .length-calendar {
        max-width: 420px;
    }

    .booking-month-bar {
        display: grid;
        grid-template-columns: 42px 1fr 42px;
        align-items: center;
        gap: 6px;
        margin-bottom: 6px;
    }

    .booking-month-title {
        text-align: center;
        font-weight: 800;
        font-size: 14px;
    }

    .booking-month-nav {
        min-width: 0;
        padding: 5px 6px;
        font-weight: 900;
    }

    .booking-month-nav:disabled {
        opacity: 0.35;
        cursor: not-allowed;
    }

    .booking-month-grid {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 4px;
    }

    .booking-weekday {
        text-align: center;
        font-size: 10px;
        font-weight: 800;
        padding: 2px 0;
    }

    .length-day {
        background: #ece6d9;
        border: 1px solid #aaa;
        padding: 6px 2px;
        text-align: center;
        font-size: 11px;
        cursor: pointer;
        user-select: none;
    }

    .length-day:hover {
        background: #d8d1c2;
    }

    .length-day.length-blank {
        visibility: hidden;
        cursor: default;
        min-height: 30px;
    }

    .booking-day-number {
        display: inline-block;
        line-height: 1.2;
    }

    .length-day.selected {
        background: #4a9d4a;
        color: #fff;
        border-color: #2d6b2d;
    }

    .length-day.length-red {
        background: #c0392b;
        color: #fff;
        border-color: #7d2418;
        cursor: not-allowed;
    }

    .length-day.length-disabled {
        background: #d8d1c2;
        color: #999;
        cursor: not-allowed;
        opacity: 0.6;
    }

    .length-legend {
        font-size: 12px;
        margin-bottom: 6px;
    }

    .length-legend span {
        margin-right: 4px;
        vertical-align: middle;
    }

    .topbar {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 10px;
    }

    .stat {
        background: #ece6d9;
        border: 1px solid #aaa;
        padding: 10px;
    }

    .label {
        font-size: 12px;
        text-transform: uppercase;
        color: #555;
        margin-bottom: 4px;
    }

    .value {
        font-size: 18px;
        font-weight: bold;
    }

    .layout {
        display: grid;
        grid-template-columns: 2fr 1fr 1fr;
        gap: 12px;
    }

    .feed {
        min-height: 500px;
        max-height: 700px;
        overflow-y: auto;
        line-height: 1.4;
        background: #f9f6ee;
        border: 1px solid #bbb;
        padding: 10px;
    }

    .feed-entry {
        padding: 8px 0;
        border-bottom: 1px solid #ddd;
    }

    .feed-date {
        font-size: 12px;
        color: #666;
        margin-bottom: 2px;
    }

    .actions {
        display: grid;
        gap: 8px;
    }

    button {
        padding: 10px 12px;
        border: 1px solid #777;
        background: #d8d1c2;
        color: #222;
        cursor: pointer;
        text-align: left;
        font-size: 14px;
    }

    button:hover {
        background: #ccc3b2;
    }

    button:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    select, input, textarea {
        padding: 6px;
        font-size: 14px;
        width: 100%;
        box-sizing: border-box;
    }

    textarea {
        min-height: 90px;
        resize: vertical;
    }

    .subtext {
        font-size: 12px;
        color: #666;
        margin-top: 6px;
    }

    .notice {
        background: #efe7d5;
        border: 1px solid #c3b69a;
        padding: 10px;
        margin-bottom: 12px;
    }

    .small-list {
        max-height: 220px;
        overflow-y: auto;
        border: 1px solid #ccc;
        background: #faf8f2;
        padding: 8px;
    }

    .checkbox-list {
        max-height: 180px;
        overflow-y: auto;
        border: 1px solid #ccc;
        background: #faf8f2;
        padding: 8px;
    }

    .checkbox-row {
        margin-bottom: 6px;
    }

    hr {
        border: 0;
        border-top: 1px solid #ccc;
        margin: 10px 0;
    }

/* ===== OFFICE UI PASS — build 33 ===== */
body {
    padding: 0;
    background: #4d453a;
    background-image: linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 32px 32px;
}
.wrap { max-width: 1500px; padding: 18px; }
.wrap > h1 { margin: 0 0 10px; color: #efe6d3; font-family: Georgia, serif; letter-spacing: .5px; }
.ticker { display:none; }

.office-shell {
    position: relative;
    min-height: 600px;
    margin-bottom: 16px;
    border: 10px solid #2d2923;
    box-shadow: 0 12px 30px rgba(0,0,0,.38), inset 0 0 80px rgba(0,0,0,.18);
    overflow: hidden;
    background: #b7aa8d;
}
.office-wall {
    min-height: 480px;
    padding: 22px 28px 80px;
    background:
        linear-gradient(rgba(255,255,255,.06), rgba(0,0,0,.05)),
        repeating-linear-gradient(90deg,#b9ad92 0,#b9ad92 5px,#b5a98e 6px,#b5a98e 11px);
    box-sizing:border-box;
}
.office-band-strip {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    width:min(900px, 76%);
    margin:0 auto 20px;
    min-height:118px;
}
.office-member, .office-member-empty {
    min-height:112px;
    background:#e7dfca;
    border:7px solid #4b4034;
    box-shadow:4px 5px 0 rgba(0,0,0,.18);
    padding:7px;
    box-sizing:border-box;
}
.office-member-empty { opacity:.25; background:#827966; }
.office-member-inner { display:flex; align-items:center; gap:9px; height:100%; }
.office-member img, .office-portrait-placeholder { width:68px; height:86px; object-fit:cover; background:#777064; border:2px solid #2f2a24; flex:0 0 auto; }
.office-portrait-placeholder { display:flex;align-items:center;justify-content:center;font-size:28px;color:#d7cfbd; }
.office-member-copy { min-width:0; font-size:12px; line-height:1.25; }
.office-member-copy b { display:block; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.office-member .equalizer { width:46px; height:48px; margin:5px 0 0; }

.office-wall-grid { display:grid; grid-template-columns:minmax(520px, 2.5fr) minmax(230px, 1fr); gap:26px; align-items:start; }
.wall-calendar-frame, .platinum-frame {
    background:#eee8d8;
    border:8px solid #4c4134;
    box-shadow:5px 7px 0 rgba(0,0,0,.18);
    padding:10px;
}
.wall-label { font:700 13px/1 Arial,sans-serif; letter-spacing:1.4px; color:#3d382f; margin:0 0 8px; }
.office-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.office-cal-day { position:relative; min-height:48px; padding:5px; background:#faf7ee; border:1px solid #a79d89; box-sizing:border-box; font-size:11px; }
.office-cal-day.today { outline:3px solid #4f6f4a; outline-offset:-3px; }
.office-cal-num { font-weight:bold; font-size:13px; }
.office-cal-special { display:block; margin-top:1px; font:700 7px/1 Arial,sans-serif; letter-spacing:.35px; color:#6b4e31; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.office-cal-event { display:block; margin-top:2px; font-size:8px; line-height:1.05; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.office-cal-event.gig { font-weight:bold; }
.office-side-wall { display:grid; gap:22px; }
.platinum-dots { display:grid; grid-template-columns:repeat(2,54px); gap:12px; justify-content:center; padding:10px 0; }
.platinum-dot { width:50px;height:50px;border-radius:50%;background:#8e887b;border:3px solid #5c5549;box-shadow:inset 0 0 0 5px #cfc7b5; }
.platinum-dot.earned { background:radial-gradient(circle at 35% 30%,#fff,#c9c9c9 34%,#737373 70%); }

.office-desk { position:absolute; left:-4%; right:-4%; bottom:-78px; height:170px; background:linear-gradient(#705039,#493321); border-top:10px solid #302116; box-shadow:0 -7px 18px rgba(0,0,0,.28); transform:perspective(700px) rotateX(4deg); }
.desk-object { position:absolute; top:18px; background:#ddd2bb; border:3px solid #302820; box-shadow:3px 4px 0 rgba(0,0,0,.25); }
.desk-phone { left:12%; width:70px;height:48px;display:flex;align-items:center;justify-content:center;font-size:31px;background:#242321;color:#ddd; transform:rotate(-4deg); }
.desk-paper { right:13%; width:105px;height:62px;padding:8px;box-sizing:border-box;font:700 12px Georgia,serif;transform:rotate(3deg); }
.desk-nameplate { position:absolute; left:50%; top:24px; transform:translateX(-50%); background:#2c241d;color:#d9c28f;padding:8px 20px;border:2px solid #15110e;font:700 12px Georgia,serif;letter-spacing:1px; }

/* Existing engine controls become the lower management console, not the visual identity. */
.topbar { grid-template-columns:repeat(7,1fr); background:#d9d0bd; border:5px solid #3f382f; }
.topbar .stat { background:#ece5d5; }
.budget-graph-panel { position:absolute; z-index:4; width:250px; right:54px; top:355px; transform:rotate(1deg); border:7px solid #4c4134; box-shadow:5px 7px 0 rgba(0,0,0,.18); }
.budget-graph-panel h2 { font-size:13px; letter-spacing:1px; text-transform:uppercase; }
.notice { border-left:7px solid #8c2e2e; background:#eee5cf; }
.layout { grid-template-columns:1.6fr 1fr 1fr; }
.layout > .panel { box-shadow:3px 4px 0 rgba(0,0,0,.15); }

/* Pre-show chatter: CSS tour bus rebuilt from bus.svg geometry. */
.bus-panel {
    position:fixed;
    inset:0;
    z-index:8000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:rgba(0,0,0,.72);
}

/*
    SVG blueprint viewBox: 0 0 200 100
    Rear = left, front = right.
    Bus body: x 6.41 -> 191.06, y 10.69 -> 94.89.
*/
.bus-shell {
    position:relative;
    width:min(1120px, calc(100vw - 70px));
    aspect-ratio:2 / 1;
    min-height:0;
    box-sizing:border-box;
    background:transparent;
    box-shadow:none;
    overflow:visible;
}

/* Yellow coach body. */
.bus-shell::before {
    content:"";
    position:absolute;
    z-index:2;
    left:3.205%;
    right:4.47%;
    top:10.69%;
    bottom:5.11%;
    box-sizing:border-box;
    background:#ffe900;
    border:6px solid #0b0b0b;
    border-radius:56px 186px 0 0;
    box-shadow:0 18px 55px rgba(0,0,0,.65);
}

/*
    Rear sleeping/living quarter panel from the SVG.
    Kept yellow rather than reading as a passenger window.
    SVG: x 13.74, y 20.02, w 51.92, h 34.96.
*/
.bus-front-window {
    position:absolute;
    z-index:3;
    left:6.87%;
    top:20.02%;
    width:25.96%;
    height:34.96%;
    box-sizing:border-box;
    background:#ffe900;
    border:6px solid #0b0b0b;
    border-radius:0;
    transform:none;
}

/*
    Three passenger windows from the SVG:
    x 72.02 / 97.26 / 122.50
    each 18.87 wide, 34.96 high.
*/
.bus-windows {
    position:absolute;
    z-index:3;
    left:36.01%;
    top:20.02%;
    width:34.675%;
    height:34.96%;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:9.19%;
}

.bus-windows span {
    display:block;
    min-width:0;
    box-sizing:border-box;
    background:#f2f2f2;
    border:6px solid #0b0b0b;
}

/* Existing HTML still contains five spans; SVG uses three. */
.bus-windows span:nth-child(n+4) {
    display:none;
}

/*
    Double door from SVG:
    x 147.73, y 20.65, w 26.29, h 74.24.
*/
.bus-door {
    position:absolute;
    z-index:3;
    left:73.865%;
    top:20.65%;
    width:13.145%;
    height:74.24%;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#f2f2f2;
    border:6px solid #0b0b0b;
}

.bus-door span:first-child { border-right:3px solid #0b0b0b; }
.bus-door span:last-child { border-left:3px solid #0b0b0b; }

/*
    Front windscreen. The old class name is retained so index.html
    does not need changing.
    SVG: x 180.38 -> 191.05, y 20.03 -> 54.98.
*/
.bus-rear-window {
    position:absolute;
    z-index:3;
    left:90.19%;
    top:20.03%;
    width:5.335%;
    height:34.95%;
    box-sizing:border-box;
    display:block;
    background:#f2f2f2;
    border:6px solid #0b0b0b;
    border-radius:0 72px 0 0;
}

/*
    Wheels follow the SVG positions. They sit behind the body so only
    the small amount below the body line is visible.
*/
.bus-wheel {
    position:absolute;
    z-index:1;
    top:79.12%;
    width:10.49%;
    aspect-ratio:1 / 1;
    border-radius:50%;
    background:#080808;
    border:5px solid #080808;
    box-sizing:border-box;
    box-shadow:inset 0 0 0 22px #191919;
    clip-path:none;
}

.bus-wheel-front { left:9.34%; }
.bus-wheel-mid   { left:20.815%; }
.bus-wheel-rear  { left:83.595%; }

/* Chatter sits over the coach without changing the bus geometry. */
.bus-chatter-stage {
    position:absolute;
    z-index:5;
    inset:0;
    box-sizing:border-box;
    pointer-events:none;
}

.bus-pa-line {
    position:absolute;
    left:8%;
    top:48%;
    max-width:390px;
    padding:9px 14px;
    background:#111;
    color:#ffe900;
    border:3px solid #111;
    font:700 14px/1.2 Arial,sans-serif;
    transform:rotate(-1deg);
    pointer-events:auto;
}

.bus-options-box {
    position:absolute;
    left:8%;
    right:18%;
    top:56%;
    bottom:6%;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:10px;
    pointer-events:auto;
}

.bus-speech {
    position:relative;
    width:75%;
    min-height:52px;
    padding:11px 16px;
    box-sizing:border-box;
    border:4px solid #0b0b0b;
    border-radius:22px;
    background:#fff;
    color:#111;
    box-shadow:5px 5px 0 rgba(0,0,0,.24);
    font:700 16px/1.22 Arial,sans-serif;
    text-align:left;
    cursor:pointer;
    transition:transform .08s ease, box-shadow .08s ease;
}

.bus-speech:nth-child(odd) {
    align-self:flex-start;
}

.bus-speech:nth-child(even) {
    align-self:flex-end;
    text-align:right;
}

.bus-speech:before {
    content:"";
    position:absolute;
    bottom:-18px;
    width:0;
    height:0;
    border-style:solid;
}

.bus-speech:nth-child(odd):before {
    left:28px;
    border-width:18px 18px 0 0;
    border-color:#0b0b0b transparent transparent transparent;
}

.bus-speech:nth-child(even):before {
    right:28px;
    border-width:18px 0 0 18px;
    border-color:#0b0b0b transparent transparent transparent;
}

.bus-speech:hover {
    transform:translateY(-2px) rotate(-.2deg);
    box-shadow:7px 8px 0 rgba(0,0,0,.28);
    background:#fffbe0;
}

.bus-speech:focus-visible {
    outline:5px solid #d92626;
    outline-offset:3px;
}


@media (max-width: 980px) {
    .office-band-strip { width:100%; }
    .office-wall-grid { grid-template-columns:1fr; }
    .budget-graph-panel { position:static; width:auto; transform:none; }
    .layout { grid-template-columns:1fr; }
}

/* ===== MUSICIAN TV / VCR — build 34 ===== */
.legacy-band-ui { display:none !important; }
.office-member { cursor:pointer; }
.office-member:hover { transform:translateY(-2px); box-shadow:4px 7px 0 rgba(0,0,0,.22); }
.desk-filofax {
    left:24%; top:40px; width:92px; height:58px;
    padding:8px 6px; transform:rotate(6deg);
    background:#6d2f25; color:#eadfc8; border:3px solid #302820;
    font:700 11px/1 Georgia,serif; letter-spacing:1px; text-align:center;
}
.desk-filofax:hover { background:#7b382d; }

.musician-browser {
    position:fixed; inset:0; z-index:8500;
    display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.72);
}
.audition-stack { position:relative; width:min(650px, calc(100vw - 40px)); }
.audition-tv {
    width:82%; margin:0 auto; padding:30px 34px 38px;
    box-sizing:border-box; background:linear-gradient(145deg,#615b50,#3d3a34);
    border:8px solid #24221e; border-radius:26px 26px 18px 18px;
    box-shadow:0 18px 40px rgba(0,0,0,.5), inset 0 0 0 3px #777064;
}
.audition-screen {
    position:relative; aspect-ratio:4/3; overflow:hidden;
    background:radial-gradient(ellipse at center,#242b26 0,#111 78%);
    border:9px solid #171715; border-radius:22px;
    box-shadow:inset 0 0 28px #000;
    display:flex; align-items:center; justify-content:center;
}
.audition-screen img { width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.03); }
.audition-screen .audition-placeholder { font:700 82px Georgia,serif; color:#8e8b7e; }
.audition-screen .equalizer {
    position:absolute; left:18px; bottom:16px; width:58px; height:66px;
    padding:5px; margin:0; background:rgba(0,0,0,.58); border:1px solid rgba(255,255,255,.18);
}
.tv-controls { display:flex; justify-content:flex-end; gap:10px; margin-top:11px; }
.tv-controls span { display:block; width:12px; height:12px; border-radius:50%; background:#171715; border:2px solid #777064; }
.audition-vcr {
    margin:-8px auto 0; width:96%; min-height:116px; box-sizing:border-box;
    background:linear-gradient(#4a4945,#292927); border:7px solid #1c1c1b;
    box-shadow:0 14px 30px rgba(0,0,0,.48); padding:18px 18px 14px;
}
.vcr-display {
    height:36px; padding:8px 12px; box-sizing:border-box; overflow:hidden;
    background:#151c17; border:3px inset #5a5a55; color:#91c08a;
    font:700 15px/1 'Courier New',monospace; letter-spacing:.7px; white-space:nowrap; text-overflow:ellipsis;
}
.vcr-buttons { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-top:12px; }
.vcr-buttons button {
    text-align:center; padding:9px 5px; background:#696861; color:#eee8d9;
    border:3px outset #85847c; font:700 12px Arial,sans-serif;
}
.vcr-buttons button:active { border-style:inset; }
.vcr-buttons button:disabled { opacity:.3; }
.audition-close {
    display:block; margin:14px auto 0; padding:8px 18px; text-align:center;
    background:#c8c0ae; border:3px solid #2b2925; font-weight:bold;
}
@media (max-width:650px) {
    .vcr-buttons { grid-template-columns:repeat(2,1fr); }
    .audition-tv { width:92%; padding:20px 22px 28px; }
}

/* ===== OFFICE UI PASS — build 35 ===== */
/* The engine DOM remains intact. Only its player-facing presentation is replaced. */
.engine-hook-ui,
.legacy-player-layout { display:none !important; }

.office-shell { min-height:690px; }
.office-wall { min-height:560px; padding:18px 34px 105px 28px; }

/* Fixed four portrait spaces; overview owns the top-right corner. */
.office-band-strip {
    width:calc(100% - 315px);
    margin:0 295px 12px 0;
    gap:10px;
    min-height:102px;
}
.office-member, .office-member-empty { min-height:98px; border-width:5px; padding:5px; }
.office-member img, .office-portrait-placeholder { width:58px; height:74px; }
.office-member-copy b { font-size:13px; }
.office-member .equalizer { width:42px; height:40px; }

.office-overview-card {
    position:absolute; z-index:7; right:28px; top:18px; width:260px; max-height:150px;
    overflow:auto; box-sizing:border-box; background:#eee8d8; border:6px solid #4c4134;
    box-shadow:4px 5px 0 rgba(0,0,0,.18); padding:8px 10px;
    font-size:11px; line-height:1.25;
}
.office-overview-card .small-list { border:0; background:transparent; padding:0; max-height:none; overflow:visible; }
.office-overview-card hr { margin:4px 0; }
.office-status-box { padding:4px 0 6px; margin-bottom:5px; border-bottom:1px solid #a79d89; font-size:11px; }
.office-save-row { display:flex; gap:6px; margin-top:5px; }
.office-save-row button { padding:4px 7px; font-size:10px; text-align:center; flex:1; }

/* The feed is now a weekly strip. Monday naturally starts clean because renderFeed
   only shows entries dated from the current week's Monday onward. */
.office-feed-line {
    position:relative; display:grid; grid-template-columns:82px 1fr; gap:8px;
    align-items:stretch; height:84px; margin:0 285px 12px 0; padding:7px;
    box-sizing:border-box; background:#ddd3bc; border:4px solid #4c4134;
    box-shadow:3px 4px 0 rgba(0,0,0,.16);
}
.feed-title { display:flex; align-items:center; justify-content:center; font:700 11px/1.1 Arial,sans-serif; letter-spacing:1px; text-align:center; }
.office-feed-line .feed { min-height:0; max-height:none; height:62px; overflow-y:auto; padding:4px 8px; font-size:11px; line-height:1.2; background:#f7f2e6; }
.office-feed-line .feed-entry { display:grid; grid-template-columns:155px 1fr; gap:8px; padding:3px 0; }
.office-feed-line .feed-date { margin:0; font-size:9px; white-space:nowrap; }
.feed-empty { opacity:.6; padding:6px; font-style:italic; }

/* Smaller wall furniture makes room for the original partial door. */
.office-wall-grid { grid-template-columns:minmax(430px, 2.45fr) 210px; grid-template-rows:auto auto; column-gap:16px; row-gap:10px; margin-right:86px; }
.wall-calendar-frame { grid-column:1; grid-row:1; border-width:6px; padding:7px; }
.office-calendar { gap:2px; }
.office-cal-day { min-height:36px; padding:3px; font-size:9px; }
.office-cal-num { font-size:11px; }
.office-cal-event { margin-top:1px; font-size:8px; }
.office-side-wall { display:contents; }
#officeBudgetSlot { grid-column:1; grid-row:2; align-self:start; }
.platinum-frame { grid-column:2; grid-row:1; align-self:start; border-width:6px; padding:6px; transform:rotate(1.5deg) translateY(-9px); transform-origin:top center; }
.platinum-dots { grid-template-columns:repeat(2,54px); gap:8px; padding:4px 0; }

#officeBudgetSlot .budget-graph-panel {
    position:static; width:auto; margin:0; padding:6px; transform:none;
    border-width:6px; box-shadow:4px 5px 0 rgba(0,0,0,.18);
}
#officeBudgetSlot .budget-graph-panel h2 { margin:0 0 3px !important; font-size:10px; }
#officeBudgetSlot #budgetGraphBox svg { height:58px !important; }
#officeBudgetSlot #budgetGraphBox > div:last-child { font-size:8px !important; }

.office-general-actions { grid-column:2; grid-row:2; align-self:start; display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:-7px; }
.office-general-actions button { padding:6px 5px; font-size:10px; text-align:center; }
.office-general-actions span { grid-column:1 / -1; margin:0 !important; }
.office-general-actions span button { width:100%; margin-top:4px; }

.office-door {
    position:absolute; z-index:2; right:-46px; bottom:70px; width:132px; height:350px;
    background:linear-gradient(90deg,#4a3224,#694a34 18%,#76543b 78%,#533827);
    border-left:9px solid #2f2118; box-shadow:-6px 0 14px rgba(0,0,0,.28);
}
.office-door:before { content:""; position:absolute; left:16px; top:35px; bottom:35px; width:74px; border:4px solid rgba(47,33,24,.65); }
.door-handle {
    position:absolute; left:10px; top:183px; width:54px; height:34px; padding:0;
    background:transparent; border:0; box-shadow:none;
}
.door-handle:hover { background:transparent; }
.door-handle span { display:block; width:42px; height:8px; margin-left:8px; background:#b79a5a; border:2px solid #493d24; border-radius:4px; box-shadow:1px 2px 0 rgba(0,0,0,.3); }
.door-handle:after { content:"NEXT DAY"; position:absolute; left:-5px; top:22px; width:68px; font:700 8px Arial,sans-serif; color:#e5d9bd; text-shadow:1px 1px #000; letter-spacing:.5px; }

.office-desk { bottom:-52px; height:170px; z-index:6; }
.phone-zone { position:absolute; left:7%; top:8px; width:215px; height:92px; }
.phone-zone .desk-phone { left:0; top:7px; }
.phone-actions { position:absolute; left:77px; top:0; display:grid; grid-template-columns:1fr 1fr; gap:4px; width:138px; }
.phone-actions button { padding:5px 4px; font-size:9px; text-align:center; background:#c9c0ad; }
.desk-filofax { left:27%; top:29px; }

.desk-boombox {
    left:42%; top:18px; width:160px; height:66px; padding:8px; display:grid;
    grid-template-columns:42px 1fr 42px; align-items:center; gap:5px;
    background:#343432; color:#d7cfbd; transform:rotate(-1deg); text-align:center;
}
.desk-boombox:hover { background:#403f3c; }
.boom-speaker { width:34px; height:34px; border-radius:50%; background:radial-gradient(circle,#222 0 28%,#666 30% 36%,#1c1c1c 38% 65%,#666 67% 72%,#1b1b1b 74%); border:2px solid #111; }
.boom-deck { display:flex; align-items:center; justify-content:center; height:26px; border:2px inset #777; background:#191919; color:#a7c39b; font:700 9px 'Courier New',monospace; }

.desk-charts { position:absolute; right:16%; top:14px; display:flex; gap:7px; transform:rotate(2deg); }
.desk-charts button { width:68px; height:57px; padding:5px; background:#eee8d8; border:2px solid #554b3e; font:700 9px Georgia,serif; text-align:center; }
.desk-nameplate { top:88px; }

.office-notice-slot { position:absolute; z-index:8; left:30%; right:29%; bottom:6px; }
.office-notice-slot .notice { margin:0; padding:6px 9px; font-size:11px; border-left-width:5px; box-shadow:2px 2px 0 rgba(0,0,0,.15); }

/* Charts/library are virtual in-game overlays, not browser windows. */
.office-overlay {
    position:fixed; inset:0; z-index:8400; align-items:center; justify-content:center;
    background:rgba(0,0,0,.68);
}
.office-overlay-card {
    width:min(760px,calc(100vw - 48px)); max-height:80vh; overflow:auto;
    background:#e5dcc8; border:9px solid #342d25; box-shadow:0 20px 55px rgba(0,0,0,.55); padding:15px;
}
.overlay-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.overlay-header h2 { margin:0; font:700 22px Georgia,serif; }
.overlay-header button { padding:6px 9px; font-size:10px; text-align:center; }
.overlay-tabs { display:flex; gap:7px; margin:12px 0; border-bottom:2px solid #796e5c; padding-bottom:7px; }
.overlay-tabs button { padding:7px 12px; font-size:11px; text-align:center; }
.overlay-tabs button.active { background:#4d453a; color:#f0e7d3; }
.overlay-list-slot .small-list { max-height:55vh; background:#faf6ec; }

/* Existing engine action forms are simply presented as overlays now. */
.office-action-modal {
    position:fixed !important; z-index:8450; left:50%; top:50%; transform:translate(-50%,-50%);
    width:min(620px,calc(100vw - 48px)); max-height:82vh; overflow:auto;
    margin:0 !important; padding:18px !important; box-sizing:border-box;
    background:#eee6d4; border:8px solid #342d25; box-shadow:0 0 0 9999px rgba(0,0,0,.68), 0 20px 55px rgba(0,0,0,.55);
}
#activityPanel.office-action-modal { width:min(720px,calc(100vw - 48px)); }

@media (max-width:980px) {
    .office-shell { min-height:900px; }
    .office-band-strip { width:100%; margin-right:0; padding-right:0; }
    .office-overview-card { position:relative; right:auto; top:auto; width:auto; max-height:none; margin-bottom:10px; }
    .office-feed-line { margin-right:0; }
    .office-wall-grid { margin-right:54px; grid-template-columns:1fr; grid-template-rows:auto; }
    .wall-calendar-frame, #officeBudgetSlot, .platinum-frame, .office-general-actions { grid-column:1; grid-row:auto; }
    .platinum-frame { transform:rotate(1deg); }
    .office-door { right:-74px; }
    .phone-zone { left:4%; }
    .desk-filofax { left:31%; }
    .desk-boombox { left:47%; width:145px; }
    .desk-charts { right:9%; }
}

/* ===== OFFICE UI PASS — build 38 ===== */
/* Layout only: keep engine behaviour and ELEVEN untouched. */

/* THIS WEEK now lines up with the calendar rather than spanning into the side wall. */
.office-feed-line {
    margin-right:312px;
}

/* Lower wall: compact cash flow with chart post-its immediately beside it. */
#officeBudgetSlot {
    grid-column:1;
    grid-row:2;
    width:42%;
    justify-self:start;
    align-self:start;
}

.wall-charts {
    grid-column:1;
    grid-row:2;
    justify-self:start;
    align-self:start;
    margin-left:45%;
    display:flex;
    gap:10px;
    padding-top:4px;
    transform:rotate(-1deg);
}
.wall-charts button {
    width:72px;
    height:62px;
    padding:6px;
    background:#efe5a8;
    border:1px solid #b4a86b;
    box-shadow:2px 3px 2px rgba(0,0,0,.18);
    font:700 9px/1.15 Georgia,serif;
    text-align:center;
    transform:rotate(-2deg);
}
.wall-charts button + button {
    transform:rotate(2deg);
}

/* A little lower so the tilted frame no longer nicks the weekly board above. */
.platinum-frame {
    transform:rotate(1.5deg) translateY(-4px);
}

/* Desk ends with the calendar instead of stretching across the whole office. */
.office-desk {
    left:28px;
    right:346px;
}

/* Old desk chart styling is retained harmlessly for DEV/legacy DOM, but no chart
   controls are rendered on the normal desk now. */


/* ===== OFFICE DETAIL PASS — build 39 ===== */
/* The partial door now continues to the floor; the desk remains in front of it. */
.office-door { bottom:0; height:420px; }

/* Audition folder + VHS tapes replaces the Filofax, retaining the existing click hook. */
.desk-filofax {
    left:27%; top:24px; width:112px; height:72px;
    padding:0; overflow:visible;
    background:transparent; border:0; box-shadow:none;
    transform:rotate(5deg);
    color:#2b241d;
}
.desk-filofax:hover { background:transparent; transform:rotate(3deg) translateY(-2px); }
.desk-filofax:before,
.desk-filofax:after {
    content:""; position:absolute; z-index:0;
    width:58px; height:34px; top:28px;
    background:#292824; border:3px solid #151513; border-radius:2px;
    box-shadow:2px 3px 0 rgba(0,0,0,.28);
}
.desk-filofax:before { left:-24px; transform:rotate(-9deg); }
.desk-filofax:after { right:-26px; transform:rotate(8deg); }
.auditions-folder-label {
    position:absolute; z-index:2; left:5px; top:3px;
    width:102px; height:62px; box-sizing:border-box;
    padding:18px 7px 6px;
    background:#d6c8a4; border:3px solid #3a3227;
    box-shadow:3px 4px 0 rgba(0,0,0,.25);
    font:700 13px/1 Georgia,serif; letter-spacing:1px;
    transform:rotate(-3deg);
}
.auditions-folder-label:before {
    content:""; position:absolute; left:8px; top:-10px;
    width:42px; height:12px; background:#d6c8a4;
    border:3px solid #3a3227; border-bottom:0;
}
.auditions-folder-label:after {
    content:"VHS"; position:absolute; right:-24px; bottom:-2px;
    width:38px; height:20px; padding-top:6px; box-sizing:border-box;
    background:#34332f; border:2px solid #171715; color:#aaa28f;
    font:700 7px/1 Arial,sans-serif; letter-spacing:1px;
    transform:rotate(5deg); box-shadow:2px 2px 0 rgba(0,0,0,.25);
}


/* End-of-tour press roundup: a physical stack of magazines with every review on the front page. */
.tour-review-overlay { position:fixed; inset:0; z-index:8700; align-items:center; justify-content:center; background:rgba(0,0,0,.72); }
.magazine-stack { position:relative; width:min(680px,calc(100vw - 70px)); }
.magazine-back { position:absolute; inset:0; min-height:520px; border:4px solid #222; box-shadow:0 14px 35px rgba(0,0,0,.45); }
.magazine-back-one { background:#b52d2d; transform:rotate(3.2deg) translate(16px,-5px); }
.magazine-back-two { background:#d8c64d; transform:rotate(-4deg) translate(-17px,5px); }
.review-magazine { position:relative; min-height:500px; max-height:78vh; overflow:auto; box-sizing:border-box; padding:24px 30px 30px; background:#eee7d4; border:4px solid #222; box-shadow:0 18px 45px rgba(0,0,0,.58); transform:rotate(-.4deg); }
.review-kicker { font:900 13px Arial,sans-serif; letter-spacing:3px; border-bottom:5px solid #111; padding-bottom:7px; }
.review-magazine h2 { margin:9px 0 15px; font:900 30px Arial,sans-serif; text-transform:uppercase; }
.review-close { position:absolute; right:18px; top:17px; z-index:2; font-size:9px; padding:5px 8px; }
.tour-review-entry { display:grid; grid-template-columns:155px 105px 1fr; align-items:center; gap:13px; padding:13px 0; border-top:2px solid #837b6c; }
.tour-review-entry p { margin:0; font:italic 15px/1.3 Georgia,serif; }
.tour-review-rating { font:900 18px Arial,sans-serif; letter-spacing:1px; white-space:nowrap; }
.boiing-rating { font-size:21px; letter-spacing:3px; }
.press-masthead { display:inline-block; width:max-content; max-width:145px; padding:4px 7px; font-weight:900; line-height:1; box-sizing:border-box; }
.press-boiing { font:italic 900 23px Arial,sans-serif; background:#111; color:#f1d22e; transform:skew(-8deg); }
.press-woodenTongs { font:900 18px Georgia,serif; color:#eee; background:#4d2517; border:3px double #d9b27b; }
.press-stationaryBrick { font:900 17px Arial,sans-serif; color:#fff; background:#a31d25; letter-spacing:-1px; }
.press-tuneDestroyer { font:900 16px 'Courier New',monospace; color:#111; background:#fff; border:3px solid #111; transform:rotate(-1deg); }
.press-oldDiscordIndirect { font:900 15px Georgia,serif; color:#fff; background:#222; border-bottom:5px solid #888; }
.press-silence { font:900 20px Arial,sans-serif; color:#111; background:#efefef; border:3px solid #111; letter-spacing:3px; }

/* ===== DIARY HELP / BOOKING PASS — build 47 ===== */
.activity-title-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.activity-title-row h3 { margin:0 0 10px; }
.diary-help-button {
    width:28px;
    height:28px;
    min-width:28px;
    padding:0;
    border-radius:50%;
    font-weight:900;
    font-size:16px;
    line-height:26px;
    text-align:center;
}
.diary-help-bubble {
    position:relative;
    align-items:flex-start;
    gap:9px;
    margin:2px 8px 16px auto;
    width:min(520px,calc(100% - 28px));
    padding:12px 38px 12px 14px;
    box-sizing:border-box;
    background:#f5efe2;
    border:2px solid #4c4338;
    border-radius:14px;
    box-shadow:3px 4px 0 rgba(52,45,37,.2);
    font:700 13px/1.45 Georgia,serif;
}
.diary-help-bubble::after {
    content:"";
    position:absolute;
    right:18px;
    bottom:-11px;
    width:18px;
    height:18px;
    background:#f5efe2;
    border-right:2px solid #4c4338;
    border-bottom:2px solid #4c4338;
    transform:rotate(45deg);
}
.diary-help-bubble .speaker {
    flex:0 0 auto;
    font:900 11px/1.2 Arial,sans-serif;
    letter-spacing:.08em;
}
.diary-help-close {
    position:absolute;
    right:7px;
    top:6px;
    width:24px;
    height:24px;
    padding:0;
    line-height:20px;
    text-align:center;
}
.length-day.length-first-available {
    background:#74b66d;
    color:#fff;
    border-color:#3d7438;
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.28);
}
.length-day.length-first-available:hover { background:#66a85f; }


.venue-help-row {
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:5px;
}
.venue-help-row .diary-help-button {
    width:24px;
    height:24px;
    min-width:24px;
    font-size:14px;
    line-height:22px;
}
.venue-help-bubble {
    margin:2px 8px 12px 0;
}

/* RED TOP - full-page tabloid splash. Presentation only; Red Top remains mechanically inert. */
.red-top-overlay { position:fixed; inset:0; z-index:8800; align-items:center; justify-content:center; background:rgba(0,0,0,.74); padding:28px; box-sizing:border-box; }
.red-top-paper { position:relative; width:min(760px,calc(100vw - 70px)); max-height:84vh; overflow:auto; box-sizing:border-box; padding:24px 28px 22px; background:#e7e5ee; border:6px solid #111; box-shadow:0 20px 55px rgba(0,0,0,.62); transform:rotate(-.25deg); color:#111; }
.red-top-close { position:absolute; right:16px; top:13px; z-index:3; padding:5px 8px; font-size:9px; }
.red-top-masthead { display:inline-block; min-width:72%; background:#c9141d; border:5px solid #111; padding:10px 18px 8px; box-sizing:border-box; }
.red-top-name { color:#fff; font:900 58px/.88 Georgia,'Times New Roman',serif; letter-spacing:-3px; text-transform:uppercase; text-shadow:2px 2px 0 #111; }
.red-top-slogan { color:#fff; margin-top:8px; font:900 14px/1.05 Arial,sans-serif; letter-spacing:.4px; }
.red-top-rule { height:6px; background:#111; margin:18px 0 20px; }
.red-top-front { display:grid; grid-template-columns:190px 1fr; gap:24px; align-items:start; }
.red-top-front.no-portrait { grid-template-columns:1fr; }
.red-top-portrait-wrap { border:5px solid #111; background:#d5d2db; aspect-ratio:1/1; overflow:hidden; }
.red-top-portrait { display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(.15) contrast(1.08); }
.red-top-story h2 { margin:0 0 12px; font:900 38px/.94 Arial Black,Arial,sans-serif; letter-spacing:-1.4px; text-transform:uppercase; }
.red-top-story p { margin:0; font:700 19px/1.28 Georgia,'Times New Roman',serif; }
.red-top-footer { margin-top:24px; padding-top:9px; border-top:3px solid #111; font:900 11px Arial,sans-serif; letter-spacing:3px; text-align:right; }

/* Rear sleeping quarters: hide the two rearmost passenger windows.
   Existing markup remains untouched. */
.bus-window:nth-of-type(1),
.bus-window:nth-of-type(2),
.bus-windows .bus-window:nth-child(1),
.bus-windows .bus-window:nth-child(2) {
    visibility: hidden !important;
}

/* Remaining glazing sits on one clean horizontal line. */
.bus-window,
.bus-windows .bus-window {
    top: 0 !important;
    align-self: stretch !important;
}

/* Wheels remain on the coach but are concealed by the lower body/skirt. */
.bus-wheel,
.bus-wheel-left,
.bus-wheel-right,
.bus-wheels {
    z-index: -1 !important;
}

/* Give the bus bodywork a lower skirt so the tyres do not show. */
.bus-shell,
.bus-body {
    position: relative !important;
    z-index: 2 !important;
}


/* Rider request: small office alert button, opening a portrait decision card. */
.rider-alert-button {
    margin:0;
    padding:9px 16px;
    font-weight:900;
    letter-spacing:1.5px;
    border:3px solid #17130c;
    background:#f2e7bd;
    color:#17130c;
    box-shadow:3px 3px 0 rgba(0,0,0,.28);
    transform:rotate(-.5deg);
}
.rider-overlay {
    position:fixed;
    inset:0;
    z-index:8850;
    align-items:center;
    justify-content:center;
    padding:28px;
    box-sizing:border-box;
    background:rgba(0,0,0,.74);
}
.rider-popup-card {
    position:relative;
    width:min(620px, calc(100vw - 56px));
    padding:22px;
    box-sizing:border-box;
    background:#f2e7bd;
    color:#17130c;
    border:5px solid #17130c;
    box-shadow:10px 10px 0 rgba(0,0,0,.34);
    font-family:Arial, sans-serif;
    transform:rotate(-.2deg);
}
.rider-popup-heading {
    margin:0 42px 18px 0;
    padding-bottom:10px;
    border-bottom:3px solid #17130c;
    font-size:28px;
    line-height:1;
    font-weight:900;
    letter-spacing:3px;
}
.rider-popup-close {
    position:absolute;
    top:12px;
    right:12px;
    width:34px;
    height:34px;
    padding:0;
    border:3px solid #17130c;
    background:#eee3bd;
    color:#17130c;
    font:900 24px/26px Arial,sans-serif;
    text-align:center;
}
.rider-popup-body {
    display:grid;
    grid-template-columns:170px 1fr;
    gap:22px;
    align-items:start;
}
.rider-popup-portrait-wrap {
    width:170px;
    height:210px;
    overflow:hidden;
    box-sizing:border-box;
    border:4px solid #17130c;
    background:#777064;
}
.rider-popup-portrait,
.rider-popup-portrait-placeholder {
    width:100%;
    height:100%;
}
.rider-popup-portrait {
    display:block;
    object-fit:cover;
}
.rider-popup-portrait-placeholder {
    display:none;
    align-items:center;
    justify-content:center;
    color:#e9dfc9;
    font-size:64px;
    font-weight:900;
}
.rider-popup-name {
    margin-bottom:12px;
    font-size:25px;
    font-weight:900;
    text-transform:uppercase;
}
.rider-popup-request {
    min-height:56px;
    margin-bottom:14px;
    font-size:20px;
    line-height:1.25;
    font-weight:700;
}
.rider-popup-cost {
    margin-bottom:20px;
    font-size:16px;
}
.rider-popup-actions {
    display:flex;
    gap:12px;
}
.rider-popup-actions button {
    flex:1;
    margin:0;
    padding:11px 12px;
    font-weight:900;
}

/* ===== BUILD 65c — BUILD 61 OFFICE + TICKET SALES REGION ===== */
/* The Build 61 office composition is the visual baseline again. The only new wall
   furniture here is the advance ticket-sales graph. */
.ticket-sales-panel {
    grid-column:1;
    grid-row:2;
    width:32%;
    height:90px;
    justify-self:end;
    align-self:start;
    box-sizing:border-box;
    padding:6px;
    background:#eee8d8;
    border:6px solid #4c4134;
    box-shadow:4px 5px 0 rgba(0,0,0,.18);
    overflow:hidden;
}
.ticket-sales-title {
    margin:0 0 3px;
    font:700 10px/1 Arial,sans-serif;
    letter-spacing:1px;
    color:#3d382f;
}
.ticket-sales-graph {
    position:relative;
    height:calc(100% - 13px);
    font:7px/1 Arial,sans-serif;
    color:#4d453a;
}
.ticket-sales-graph svg {
    display:block;
    width:100%;
    height:55px;
    background:#fffdf8;
    border:1px solid #999;
    box-sizing:border-box;
}
.ticket-sales-scale {
    position:absolute;
    left:3px;
    top:2px;
    bottom:18px;
    z-index:2;
    pointer-events:none;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    font:700 6px/1 Arial,sans-serif;
    color:#70695c;
}
.ticket-sales-scale span { background:rgba(255,253,248,.82); padding-right:2px; }
.ticket-sales-legend { height:14px; overflow:hidden; white-space:nowrap; padding-top:2px; }
.ticket-legend-item {
    display:inline-flex;
    align-items:center;
    margin-right:6px;
    max-width:105px;
    overflow:hidden;
    text-overflow:ellipsis;
    vertical-align:top;
}
.ticket-legend-item i {
    width:7px;
    height:7px;
    flex:0 0 auto;
    margin-right:2px;
    border:1px solid rgba(0,0,0,.35);
}
.ticket-sales-empty {
    display:flex;
    align-items:center;
    justify-content:center;
    height:58px;
    opacity:.58;
    font-size:8px;
    text-align:center;
}

@media (max-width:980px) {
    .ticket-sales-panel {
        grid-column:1;
        grid-row:auto;
        width:100%;
        justify-self:stretch;
    }
}

/* ===== BUILD 65e — FIX 65d HEADER / WEEKLY FEED / HUMAN POST-ITS ===== */
.game-header-row {
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:10px;
}
.game-header-row h1 {
    flex:0 0 auto;
    margin:0;
}
.game-header-row .office-notice-slot {
    position:static;
    left:auto;
    right:auto;
    bottom:auto;
    z-index:auto;
    flex:1 1 auto;
    min-width:0;
}
.game-header-row .office-notice-slot .notice {
    margin:0;
    min-height:0;
    padding:7px 10px;
    box-sizing:border-box;
    font-size:12px;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    border-left-width:5px;
    box-shadow:2px 2px 0 rgba(0,0,0,.15);
}

/* Keep THIS WEEK inside its board and scroll the entries. */
.office-feed-line {
    overflow:hidden;
    min-height:0;
}
#officeFeedSlot {
    min-width:0;
    min-height:0;
    height:100%;
    overflow:hidden;
}
.office-feed-line .feed {
    box-sizing:border-box;
    width:100%;
    height:100%;
    max-height:100%;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-gutter:stable;
}
.office-feed-line .feed-entry,
.office-feed-line .feed-entry > * {
    min-width:0;
}

/* Deliberately imperfect chart-note placement. */
.wall-charts {
    gap:8px;
    transform:none;
}
.wall-charts button {
    transform:rotate(-6deg) translateY(2px);
    transform-origin:50% 12%;
}
.wall-charts button + button {
    transform:rotate(4deg) translateY(-2px) translateX(-1px);
}

@media (max-width:760px) {
    .game-header-row { display:block; }
    .game-header-row h1 { margin-bottom:7px; }
    .game-header-row .office-notice-slot .notice { white-space:normal; }
}
