/* TAO Talent | Admin Master Set Times | isolated styles */
.schedule-root{width:100%;min-width:0;color:#1f2937}
.schedule-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.schedule-draft-indicator{background:#eaf0f9;border:1px solid #c8d7ea;color:#26456f;border-radius:20px;padding:10px 15px;font-size:11px;font-weight:700;white-space:nowrap}
.schedule-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}
.schedule-month-nav{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e5e9f0;border-radius:10px;padding:6px 9px;min-height:42px}
.schedule-month-nav strong{min-width:142px;text-align:center;font-size:13px}
.schedule-month-nav button,.schedule-filters button,.schedule-refresh{border:0;background:#f3f5f9;border-radius:6px;color:#263347;padding:9px 13px;cursor:pointer;font-size:12px}
.schedule-month-nav button{font-size:20px;padding:2px 10px}
.schedule-filters{display:flex;gap:5px}
.schedule-filters button.chosen{background:#18263f;color:#fff}
.schedule-refresh{margin-left:auto;background:#fff;border:1px solid #e5e9f0}
.schedule-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px}
.schedule-overview>div{border:1px solid #e7ecf1;border-radius:10px;background:white;padding:15px;font-size:11px;color:#808a98}
.schedule-overview b{display:block;font-size:20px;color:#162235;margin-bottom:5px;font-weight:750}
.schedule-success,.schedule-error{padding:12px 15px;border-radius:7px;font-size:12px;margin:10px 0}
.schedule-success{background:#e7f6ec;color:#24633e;border:1px solid #b7ddc5}
.schedule-error{background:#fff0f0;color:#a0293c;border:1px solid #e4bec5}
.schedule-grid-card{border:1px solid #e0e5ed;border-radius:11px;background:white;overflow:hidden}
.schedule-grid-intro{padding:16px 18px;display:flex;gap:12px;justify-content:space-between;align-items:center}
.schedule-grid-intro strong{color:#223248;font-size:14px}
.schedule-grid-intro span{font-size:11px;color:#8390a1}
.schedule-horizontal{overflow:auto;width:100%;max-height:calc(100vh - 370px);min-height:410px;position:relative}
.schedule-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-size:11px}
.schedule-grid th,.schedule-grid td{border-right:1px solid #e6eaf0;border-bottom:1px solid #e6eaf0;vertical-align:top}
.schedule-grid thead th{position:sticky;z-index:5;text-align:center;white-space:nowrap;font-size:11px;font-weight:700}
.schedule-grid thead tr:first-child th{top:0;height:39px}
.schedule-grid thead tr:nth-child(2) th{top:39px;height:34px}
.schedule-date-head{left:0;top:0!important;z-index:8!important;min-width:90px;width:90px;background:#17233a;color:#fff}
.schedule-venue-group{color:white;background:#17233a;letter-spacing:.2px}
.schedule-venue-group.dayclub{background:#355c5d}
.schedule-room-head{min-width:193px;width:193px;background:#eaf0f7;color:#36465e}
.schedule-date-cell{position:sticky;left:0;z-index:3;min-width:90px;width:90px;background:#f7f9fc;padding:13px 12px;text-align:left}
.schedule-date-cell strong,.schedule-date-cell span{display:block}
.schedule-date-cell strong{color:#26354a}
.schedule-date-cell span{color:#8591a1;margin-top:4px;font-size:11px}
.schedule-grid tr:nth-child(even) .schedule-date-cell{background:#eef3fa}
.schedule-cell{width:193px;max-width:193px;padding:0;background:#fff}
.schedule-grid tr:nth-child(even) .schedule-cell{background:#fafbfe}
.schedule-cell-btn{display:flex;flex-direction:column;text-align:left;align-items:stretch;gap:4px;width:193px;min-height:79px;padding:10px 9px;border:0;background:transparent;color:#334155;cursor:pointer;font-size:11px;font-weight:400;white-space:normal}
.schedule-cell-btn:hover,.schedule-cell-btn:focus-visible{background:#eef4fb;outline:2px solid #8caccf;outline-offset:-2px}
.schedule-headliner{font-size:12px;font-weight:800;line-height:1.3;color:#17263f}
.schedule-time{font-size:10px;color:#56657a}
.schedule-dj-line{display:block;border-top:1px dashed #dbe2eb;padding-top:5px;margin-top:4px}
.schedule-dj-line b,.schedule-dj-line small{display:block;line-height:1.4}
.schedule-dj-line b{font-weight:700;color:#24344d}
.schedule-dj-line small{font-size:10px;color:#68788d}
.schedule-add{margin:auto;color:#8a95a8;font-size:10px}
.schedule-status{align-self:flex-start;display:inline-block;margin-top:4px;border-radius:4px;font-size:9px;font-weight:700;padding:3px 6px;background:#fff1d2;color:#896522}
.schedule-status.confirmed{background:#e7f5e9;color:#247245}
.schedule-status.canceled{background:#ffe7e7;color:#983e47}
.schedule-footer{padding:12px 18px;color:#718096;font-size:11px;border-top:1px solid #e8edf3}
.schedule-empty{padding:35px;color:#637086}
.schedule-lower{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}
.schedule-tile{background:white;border:1px solid #e1e6ed;border-radius:10px;padding:20px}
.schedule-tile h3{font-size:14px;color:#26344a;margin:0 0 11px}
.schedule-tile p{font-size:12px;line-height:1.6;color:#667389;margin:8px 0}
.schedule-activity{max-height:178px;overflow:auto}
.schedule-activity>div{border-top:1px solid #f0f2f5;padding:7px 0;font-size:11px;color:#4e5b71}
.schedule-activity small{display:block;color:#8c97a7;font-size:10px;margin-top:2px}
.schedule-modal-backdrop{position:fixed;inset:0;z-index:100;background:#111c2ac4;display:flex;justify-content:center;align-items:center;padding:20px}
.schedule-modal{width:min(840px,100%);max-height:92vh;background:white;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 24px 70px #0004}
.schedule-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 25px;border-bottom:1px solid #e6eaf0}
.schedule-modal-head small{font-size:10px;color:#8491a4}
.schedule-modal-head h2{font-size:22px;margin:4px 0 0;color:#18263f}
.schedule-modal-head button{background:#f0f4f7;color:#4b596b;border:0;border-radius:6px;font-size:24px;width:36px;height:36px;cursor:pointer}
.schedule-modal-body{padding:20px 25px;overflow-y:auto}
.schedule-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.schedule-modal label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#47566b}
.schedule-modal input,.schedule-modal select{border:1px solid #ced8e3;border-radius:6px;min-height:39px;padding:9px 10px;font-size:12px;color:#23344b;background:white;width:100%}
.schedule-support-head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 11px}
.schedule-support-head h3{font-size:15px;margin:0;color:#24344a}
.schedule-support-head button,.schedule-add-segment{background:#edf3fa;border:1px solid #cfdceb;color:#253e60;font-size:11px;padding:8px 12px;border-radius:6px;cursor:pointer;font-weight:700}
.schedule-assignment{border:1px solid #dae3ed;padding:16px;border-radius:8px;margin:12px 0;background:#fafcff}
.schedule-assignment-head{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:end}
.schedule-remove{align-self:end;color:#a34152;border:0;background:transparent;cursor:pointer;font-size:11px;padding:9px}
.schedule-segment{display:grid;grid-template-columns:1fr 1fr auto;gap:11px;align-items:end;margin-top:12px}
.schedule-add-segment{margin:12px 0}
.schedule-hint{font-size:12px;color:#768398}
.schedule-assignment-notes{margin-top:10px}
.schedule-warning{background:#fff7e4;border:1px solid #f1d595;border-radius:7px;color:#7c5b24;padding:14px;font-size:11px;margin-top:14px}
.schedule-warning ul{padding-left:22px;margin:8px 0}
.schedule-warning li{margin:5px 0}
.schedule-warning small{font-size:10px;color:#886b38}
.schedule-draft-note{font-size:10px;color:#637187;background:#edf3fa;padding:11px;border-radius:6px;margin-top:14px}
.schedule-modal-actions{padding:15px 25px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #e4e9f0}
.schedule-modal-actions button{border-radius:6px;border:0;font-size:12px;font-weight:700;cursor:pointer;padding:11px 17px}
.schedule-cancel{color:#40536b;background:#eef2f6}
.schedule-save{background:#172d4c;color:#fff}
.schedule-save:disabled{opacity:.65;cursor:wait}
@media(max-width:800px){.schedule-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-lower{grid-template-columns:1fr}.schedule-toolbar{align-items:flex-start}.schedule-refresh{margin-left:0}.schedule-heading{flex-direction:column}.schedule-form-grid{grid-template-columns:1fr}.schedule-segment{grid-template-columns:1fr 1fr auto}.schedule-modal-backdrop{padding:8px}.schedule-modal-body{padding:15px}}
@media(max-width:520px){.schedule-modal-head{padding:15px}.schedule-segment{grid-template-columns:1fr 1fr}.schedule-segment .schedule-remove{grid-column:span 2}.schedule-filters{width:100%;overflow:auto}.schedule-grid-intro{flex-direction:column;align-items:flex-start}}

/* Read-only coworker schedule: same Excel-style grid, no interactive editing. */
.schedule-viewer-cell{cursor:default!important;user-select:text;}
.schedule-viewer-cell:hover{filter:none!important;}

/* Phase 1.1: Excel-speed, directly editable date/room cells. */
.schedule-grid .schedule-cell-is-editing{background:#f8fbff!important;min-width:310px;width:310px;max-width:310px;position:relative;z-index:7;box-shadow:inset 0 0 0 2px #c5a474}
.schedule-inline-editor{width:310px;box-sizing:border-box;padding:10px 9px 12px;color:#223148;background:#f8fbff;font-size:11px}
.schedule-inline-top,.schedule-inline-title,.schedule-inline-actions{display:flex;align-items:center;justify-content:space-between;gap:6px}
.schedule-inline-top{margin-bottom:10px;color:#886522;font-size:10px;letter-spacing:.45px}
.schedule-inline-top button{border:0;border-radius:4px;font-size:19px;color:#586a7e;background:#ecf0f5;width:25px;height:25px;cursor:pointer}
.schedule-inline-group{border-top:1px solid #e3e9f0;padding:8px 0 6px}
.schedule-inline-title{font-size:11px;font-weight:800;color:#1b2d47;margin-bottom:8px}
.schedule-inline-title button{background:#e5edf7;border:1px solid #c4d4e6;border-radius:5px;padding:5px 9px;color:#234368;cursor:pointer;font-size:10px;font-weight:700}
.schedule-inline-performer{border:1px solid #e1e7ef;background:#fff;border-radius:6px;padding:6px;margin-bottom:7px;position:relative}
.schedule-inline-row{display:flex;align-items:center;gap:4px;min-width:0}
.schedule-inline-row>input{min-width:0;flex:1}
.schedule-inline-row input,.schedule-inline-kind,.schedule-quick-time-row select{font:inherit;color:#20304a;border:1px solid #cbd6e3;border-radius:5px;padding:6px 5px;background:#fff;box-sizing:border-box;min-height:32px}
.schedule-inline-row input{width:100%;font-size:11px}
.schedule-inline-kind{margin-top:5px;width:100%;background:#fbfcfe;min-height:27px;font-size:10px}
.schedule-inline-remove,.schedule-quick-remove-time{border:0;color:#ae4651;background:transparent;cursor:pointer;font-size:17px;padding:3px}
.schedule-inline-remove{width:21px;flex:none}
.schedule-time-rows{margin-top:6px}
.schedule-quick-time-row{display:grid;grid-template-columns:20px minmax(0,1fr) 8px minmax(0,1fr) auto;gap:4px;align-items:center;margin-top:5px;min-width:0}
.schedule-quick-time-row select{min-width:0!important;width:100%!important;font-size:10px;padding:4px 1px;text-align:center;letter-spacing:-.2px;min-height:30px}
.schedule-quick-time-label{font-size:9px;color:#7d8999}
.schedule-quick-dash{font-size:11px;text-align:center;color:#8290a2}
.schedule-quick-remove-time{font-size:13px}
.schedule-inline-tiny-add{font-size:10px;background:none;border:0;color:#355f8a;cursor:pointer;padding:6px 0 2px;text-align:left}
.schedule-inline-tiny-add:disabled{opacity:.45;cursor:default}
.schedule-inline-empty{font-size:10px;color:#8a95a7;margin-bottom:8px}
.schedule-dj-picker{position:relative;min-width:0;width:100%;flex:1}
.schedule-dj-picker-line{display:flex;align-items:stretch;border:1px solid #cad5e1;border-radius:5px;background:white;overflow:hidden}
.schedule-dj-picker-line input{border:0!important;background:white!important;width:100%;min-width:0!important;flex:1;font-size:11px}
.schedule-dj-chevron{width:24px;border:0;border-left:1px solid #e3e8ef;background:#f4f7fb;color:#435876;font-size:16px;cursor:pointer}
.schedule-dj-options{position:absolute;top:calc(100% + 2px);left:0;right:0;max-height:200px;overflow-y:auto;z-index:35;background:#fff;box-shadow:0 10px 25px #0d1c3440;border:1px solid #b7cadc;border-radius:6px;padding:3px}
.schedule-dj-option{display:block;border:0;width:100%;background:white;font-size:11px;text-align:left;padding:7px;cursor:pointer;color:#233552;border-radius:3px}
.schedule-dj-option:hover,.schedule-dj-option.highlight,.schedule-dj-option[aria-selected="true"]{background:#dfeaf6}
.schedule-dj-options-empty{display:block;padding:9px;font-size:11px;color:#8995a8}
.schedule-inline-warnings{border:1px solid #e8d19e;border-radius:6px;background:#fff6df;color:#765e2d;padding:8px;line-height:1.45;font-size:10px;margin:8px 0}
.schedule-inline-warnings>div{margin-top:5px}
.schedule-inline-notes{border-top:1px solid #e3e9f0;margin:8px 0;padding-top:10px;font-size:10px;color:#58708b}
.schedule-inline-notes summary{cursor:pointer;font-weight:700}
.schedule-inline-notes textarea,.schedule-bottom-notes textarea{margin-top:7px;width:100%;box-sizing:border-box;border:1px solid #cbd6e3;border-radius:5px;padding:8px;font-size:11px;resize:vertical}
.schedule-inline-actions{margin-top:10px}
.schedule-inline-actions button{border:0;border-radius:5px;padding:9px 11px;cursor:pointer;font-size:10px;font-weight:750}
.schedule-inline-full{background:#eaf0f7;color:#354964}
.schedule-inline-save{background:#182c49;color:white}
.schedule-inline-private{display:block;margin-top:7px;color:#8090a4;font-size:9px;line-height:1.4}
.schedule-modal-top-actions{display:flex;gap:6px;align-items:center}
.schedule-modal-head .schedule-back-quick{width:auto!important;height:34px!important;font-size:11px!important;padding:0 10px;font-weight:700}
.schedule-modal .schedule-time-rows{margin-top:12px}
.schedule-modal .schedule-quick-time-row{grid-template-columns:35px minmax(0,1fr) 14px minmax(0,1fr) auto;gap:9px;max-width:600px}
.schedule-modal .schedule-quick-time-row select{min-height:38px;font-size:12px;letter-spacing:normal}
.schedule-modal .schedule-quick-time-label{font-size:11px}
.schedule-modal .schedule-dj-picker input{min-height:38px}
.schedule-modal .schedule-dj-picker{min-width:230px}
.schedule-bottom-notes{display:block;margin-top:22px!important;border-top:1px solid #e6ecf1;padding-top:15px}
.schedule-bottom-notes textarea{font-size:12px}
@media(max-width:700px){.schedule-grid .schedule-cell-is-editing,.schedule-inline-editor{min-width:288px;width:288px;max-width:288px}}

/* V5 · venue-specific identity, compact grid zoom, optional Special Shows. */
.schedule-toolbar-right{display:flex;align-items:center;gap:9px;margin-left:auto;flex-wrap:wrap}
.schedule-toolbar-right .schedule-refresh{margin-left:0}
.schedule-zoom{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid #dbe2eb;border-radius:9px;background:#fff}
.schedule-zoom button{border:0;border-radius:6px;background:#f0f3f7;color:#26364c;min-width:28px;min-height:29px;cursor:pointer;font-size:12px}
.schedule-zoom button:disabled{opacity:.4;cursor:not-allowed}
.schedule-zoom span{color:#20304b;font-size:11px;min-width:39px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.schedule-special-add{background:#192f4b;color:#fff;font-size:11px;font-weight:700;cursor:pointer;border:1px solid #192f4b;padding:9px 11px;border-radius:7px}
.schedule-grid .schedule-room-head{min-width:calc(193px * var(--grid-zoom,1));width:calc(193px * var(--grid-zoom,1));font-size:calc(11px * var(--grid-zoom,1));overflow-wrap:anywhere;white-space:normal}
.schedule-grid .schedule-cell:not(.schedule-cell-is-editing){width:calc(193px * var(--grid-zoom,1));max-width:calc(193px * var(--grid-zoom,1))}
.schedule-grid .schedule-cell-btn{width:calc(193px * var(--grid-zoom,1));min-height:calc(79px * var(--grid-zoom,1));font-size:calc(11px * var(--grid-zoom,1));padding:calc(10px * var(--grid-zoom,1)) calc(9px * var(--grid-zoom,1))}
.schedule-grid .schedule-headliner{font-size:calc(12px * var(--grid-zoom,1))}
.schedule-grid .schedule-dj-line small,.schedule-grid .schedule-time{font-size:calc(10px * var(--grid-zoom,1))}
.schedule-grid .schedule-dj-line b{font-size:calc(11px * var(--grid-zoom,1))}
.schedule-grid .schedule-add{font-size:calc(10px * var(--grid-zoom,1))}
.schedule-grid .schedule-date-head,.schedule-grid .schedule-date-cell{min-width:calc(90px * var(--grid-zoom,1));width:calc(90px * var(--grid-zoom,1));padding-left:calc(12px * var(--grid-zoom,1))}
.schedule-grid .schedule-date-cell strong{font-size:calc(11px * var(--grid-zoom,1))}
.schedule-grid .schedule-date-cell span{font-size:calc(10px * var(--grid-zoom,1))}
.schedule-grid .schedule-venue-group{font-size:calc(11px * var(--grid-zoom,1));padding:6px 4px;white-space:normal;line-height:1.3}
.schedule-grid .schedule-cell-is-editing,.schedule-grid .schedule-cell-is-editing .schedule-inline-editor{width:335px!important;min-width:335px!important;max-width:335px!important}
.schedule-support-identity{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.schedule-support-identity>select{width:100%;padding:5px 6px;border:1px solid #d0d9e4;border-radius:5px;font-size:10px;background:#f6f8fc;color:#384860}
.schedule-guest-identity{display:flex;flex-direction:column;gap:5px;width:100%}
.schedule-guest-identity input{width:100%;box-sizing:border-box;border:1px solid #cbd6e3;border-radius:5px;padding:7px 6px;min-height:31px;font-size:11px}
.schedule-special-cell,.schedule-grid .schedule-special-cell{min-width:calc(245px * var(--grid-zoom,1));width:calc(245px * var(--grid-zoom,1));max-width:none}
.schedule-special-list{padding:7px;display:flex;flex-direction:column;gap:8px}
.schedule-special-item{padding:7px;border:1px solid #dae0e9;border-left:3px solid #9f91bb;border-radius:6px;background:#f9fafc}
.schedule-special-title{font-size:11px;color:#27364d;display:block;margin-bottom:3px;overflow-wrap:anywhere}
.schedule-special-item>small{font-size:10px;color:#7a8698;display:block}
.schedule-grid .schedule-special-item .schedule-cell-btn{width:100%;padding:6px 2px;min-height:33px;background:none}
.schedule-special-item .schedule-inline-editor{background:#fff}
.schedule-special-more{font-size:10px;color:#43546c;border:1px dashed #c1cbda;background:#f4f7fb;border-radius:5px;padding:7px 6px;cursor:pointer}
.schedule-special-dialog{max-width:530px}
.schedule-special-fields{display:flex;flex-direction:column;gap:17px}
.schedule-special-fields p{color:#6c7788;font-size:12px;line-height:1.55;margin:0}
.schedule-grid .schedule-cell-is-editing{z-index:9}
@media(max-width:900px){.schedule-toolbar-right{width:100%;margin-left:0}.schedule-grid .schedule-cell-is-editing,.schedule-grid .schedule-cell-is-editing .schedule-inline-editor{width:310px!important;min-width:310px!important;max-width:310px!important}}
.schedule-special-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.schedule-special-title-row button{background:none;border:0;color:#9e6974;font-size:15px;cursor:pointer;padding:0 3px}
.schedule-special-title-row button:hover{color:#a92c4b}
.schedule-symbolic-note{display:block;margin:5px 0 1px;color:#967446;font-size:9px;line-height:1.4}

/* V5.1 — FLOATING QUICK EDITOR. The grid must NEVER grow just because an editor opens. */
.schedule-above-grid{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:2px 0 9px}
.schedule-above-grid>span{font-size:11px;color:#738199;font-weight:600}
.schedule-above-grid .schedule-zoom{box-shadow:0 1px 3px rgba(23,35,58,.05)}
.schedule-horizontal{max-height:calc(100vh - 310px);min-height:410px}
.schedule-grid .schedule-cell.schedule-cell-is-editing{
  width:calc(193px * var(--grid-zoom,1))!important;
  min-width:0!important;
  max-width:calc(193px * var(--grid-zoom,1))!important;
  position:relative;z-index:1!important;background:#f1f7ff!important;
  box-shadow:inset 0 0 0 2px #c6a36c;
}
.schedule-grid .schedule-cell.schedule-special-cell{max-width:none!important}
.schedule-floating-editor{
  position:fixed;z-index:9999;box-sizing:border-box;
  background:#fff;border:1.5px solid #c9a66e;border-radius:12px;
  box-shadow:0 18px 54px rgba(15,27,47,.26),0 4px 15px rgba(15,27,47,.12);
  color:#1b2c44;max-height:calc(100vh - 24px);display:flex;flex-direction:column;
  overflow:hidden;
}
.schedule-floating-editor .schedule-inline-editor{width:100%!important;max-width:none!important;
  min-width:0!important;box-sizing:border-box;padding:0;font-size:12px;
  background:transparent;display:flex;flex-direction:column;min-height:0}
.schedule-floating-editor .schedule-inline-top{
  flex:0 0 auto;background:linear-gradient(90deg,#fffdf8,#fff);padding:13px 15px;
  border-bottom:1px solid #e9e1d8;margin:0;color:#243248;
}
.schedule-floating-editor .schedule-inline-top strong{font-size:14px;letter-spacing:0;color:#182c47;display:block;line-height:1.4}
.schedule-floating-editor .schedule-inline-top small{display:block;font-size:9px;color:#ad803d;
  letter-spacing:1px;margin-top:3px;font-weight:750}
.schedule-floating-editor .schedule-inline-top button{background:#f1f3f6;color:#536179;width:28px;height:28px;
  border-radius:6px;font-size:19px}
.schedule-floating-editor .schedule-float-content{overflow-y:auto;overflow-x:hidden;min-height:0;
  padding:4px 14px 10px;flex:1;overscroll-behavior:contain}
.schedule-floating-editor .schedule-inline-group{padding:10px 0 6px;border:0}
.schedule-floating-editor .schedule-inline-group+.schedule-inline-group{border-top:1px solid #e7edf4}
.schedule-floating-editor .schedule-inline-title{font-size:12px;font-weight:800;margin:0 0 9px;color:#24334d}
.schedule-floating-editor .schedule-inline-title button{background:#f5f1e9;color:#70501c;border-color:#ead9b9;
  border-radius:6px;padding:6px 9px;font-size:11px}
.schedule-floating-editor .schedule-inline-performer{display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:start;gap:9px;
  padding:9px 10px;background:#fbfcff;border:1px solid #e0e7ef;border-radius:8px;margin-bottom:7px}
.schedule-floating-editor .schedule-inline-name-stack{min-width:0;display:flex;flex-direction:column;gap:3px}
.schedule-floating-editor .schedule-inline-row{display:flex;align-items:flex-start;gap:4px;min-width:0}
.schedule-floating-editor .schedule-inline-row input,.schedule-floating-editor .schedule-inline-kind,
.schedule-floating-editor .schedule-quick-time-row select{min-height:32px;font-size:11px;
  border:1px solid #cbd6e4;border-radius:6px;box-sizing:border-box;color:#203149;background:white}
.schedule-floating-editor .schedule-inline-row input{padding:7px 9px}
.schedule-floating-editor .schedule-inline-kind{margin:0;min-height:26px;padding:3px 7px;font-size:10px;color:#55687f;
  background:#f8fafc}
.schedule-floating-editor .schedule-inline-remove{min-width:18px;width:18px;padding:3px 1px;color:#a46164}
.schedule-floating-editor .schedule-time-rows{min-width:0;margin:0}
.schedule-floating-editor .schedule-quick-time-row{display:grid;
  grid-template-columns:minmax(0,1fr) 9px minmax(0,1fr) 12px;
  gap:3px;align-items:center;margin:1px 0 4px}
.schedule-floating-editor .schedule-quick-time-label{display:none}
.schedule-floating-editor .schedule-quick-time-row select{padding:5px 2px;font-size:10px;min-width:0;
  width:100%;height:32px;text-align:center;letter-spacing:-.15px}
.schedule-floating-editor .schedule-quick-dash{font-size:12px;color:#8795a8}
.schedule-floating-editor .schedule-inline-tiny-add{padding:0 2px;margin:0;color:#2b6292;
  font-size:10px;display:block}
.schedule-floating-editor .schedule-quick-remove-time{padding:0;color:#ad6570}
.schedule-floating-editor .schedule-inline-empty{padding:2px 0 7px;color:#8996a8;font-size:11px}
.schedule-quick-support-identity{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.schedule-quick-support-identity .schedule-dj-picker{width:100%}
.schedule-quick-support-identity .schedule-dj-picker-line{border-radius:6px}
.schedule-floating-editor .schedule-dj-picker-line input{padding:6px 8px;min-height:32px!important;font-size:11px}
.schedule-one-time-toggle{border:0;background:none;color:#57718f;cursor:pointer;align-self:flex-start;
  font-size:10px;text-decoration:none;padding:0 2px}
.schedule-one-time-toggle:hover{text-decoration:underline}
.schedule-floating-editor .schedule-guest-identity input{min-height:30px;font-size:11px}
.schedule-floating-editor .schedule-dj-options{max-height:170px;z-index:10020}
.schedule-floating-editor .schedule-inline-notes{margin:8px 0 0;padding-top:10px}
.schedule-floating-editor .schedule-inline-notes summary{font-size:11px}
.schedule-floating-editor .schedule-inline-actions{background:#fff;padding:11px 14px;border-top:1px solid #e7edf4;
  margin:0;display:flex;gap:6px;justify-content:flex-end;flex:0 0 auto}
.schedule-floating-editor .schedule-inline-actions small{color:#8492a3;font-size:10px;margin-right:auto;align-self:center}
.schedule-floating-editor .schedule-inline-actions button{font-size:11px;padding:9px 11px;border-radius:6px}
.schedule-floating-editor .schedule-inline-save{background:#182b47;color:#fff}
.schedule-floating-editor .schedule-inline-full{background:#f0f3f8;color:#42536b}
@media(max-width:670px){
  .schedule-floating-editor{left:12px!important;width:calc(100vw - 24px)!important;}
  .schedule-floating-editor .schedule-inline-performer{grid-template-columns:1fr;gap:4px}
  .schedule-floating-editor .schedule-quick-time-row{grid-template-columns:minmax(0,1fr) 9px minmax(0,1fr) 12px}
  .schedule-above-grid{justify-content:flex-end}
}


/* V5.2: one permanent off-property Special Show column. */
.schedule-special-head{background:#111318!important;color:#fff!important;}
.schedule-special-room-head{background:#2b3038!important;color:#fff!important;}
.schedule-special-cell{background:#fafbfe;}
.schedule-special-cell .schedule-special-list{min-height:calc(79px * var(--grid-zoom,1));
  align-items:stretch;justify-content:flex-start;}
.schedule-special-cell .schedule-special-more{display:block;width:100%;min-height:35px;
  background:#f8fafc;color:#273a52;border:1px dashed #aebbc9;border-radius:6px;
  font-size:11px;text-align:center;font-weight:650;}
.schedule-special-cell .schedule-special-more:hover{background:#edf2f8;border-color:#879bad;}
.schedule-special-blank{display:block;padding:17px 5px;text-align:center;color:#9ba5b1;}

/* Visible note field: no disclosure arrow or extra editor click. */
.schedule-floating-editor .schedule-quick-notes{display:flex;flex-direction:column;gap:5px;
  border-top:1px solid #e7edf4;margin:7px 0 0;padding:11px 0 4px;color:#263952;}
.schedule-floating-editor .schedule-quick-notes span{font-size:11px;font-weight:800;}
.schedule-floating-editor .schedule-quick-notes textarea{display:block;width:100%;margin:0;
  resize:vertical;min-height:43px;max-height:115px;line-height:1.4;
  padding:9px 10px;background:#fff;border:1px solid #cbd6e3;border-radius:6px;
  color:#24354a;font:inherit;font-size:11px;box-sizing:border-box;}
.schedule-floating-editor .schedule-quick-notes textarea:focus{outline:2px solid #a9c4e5;outline-offset:1px;}

/* Accessible Excel-style note: only the gold corner shows until hovered,
   focused with the keyboard, or tapped on a mobile device. No editor opens. */
.schedule-grid .schedule-cell.schedule-has-note,.schedule-special-item.schedule-has-note{position:relative;}
.schedule-note-wrap{position:absolute;top:0;right:0;z-index:8;width:27px;height:27px;display:block;}
.schedule-note-trigger{display:block;position:absolute;inset:0;width:27px;height:27px;
  padding:0;margin:0;border:0;background:transparent;cursor:help;outline-offset:-1px;}
.schedule-note-triangle{position:absolute;right:0;top:0;width:0;height:0;
  border-top:14px solid #c9a26a;border-left:14px solid transparent;pointer-events:none;}
.schedule-note-trigger:focus-visible{outline:2px solid #2e638f;border-radius:3px;}
.schedule-note-tooltip{display:none;position:absolute;top:26px;right:0;
  width:max-content;max-width:min(300px,calc(100vw - 48px));min-width:155px;
  box-sizing:border-box;background:#17243a;color:#fff!important;
  border:1px solid #344963;border-radius:7px;padding:10px 12px;
  box-shadow:0 7px 22px rgba(16,28,46,.26);font-size:11px!important;
  font-weight:500!important;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;
  max-height:180px;overflow-y:auto;z-index:11;text-align:left;pointer-events:auto;}
.schedule-note-wrap:hover .schedule-note-tooltip,
.schedule-note-wrap:focus-within .schedule-note-tooltip{display:block;}
.schedule-grid .schedule-cell.schedule-has-note:hover,
.schedule-grid .schedule-cell.schedule-has-note:focus-within,
.schedule-special-item.schedule-has-note:hover,
.schedule-special-item.schedule-has-note:focus-within{z-index:9;}

/* V5.3 — quick searchable headliner list, two ready-to-use support segments. */
.schedule-inline-title-actions{display:flex;gap:6px;align-items:center}
.schedule-floating-editor .schedule-inline-title-actions button{padding:5px 8px}
.schedule-floating-editor .schedule-directory-btn{background:#f3f5f8!important;color:#53667f!important;border:1px solid #d5dfea!important}
.schedule-headliner-picker{width:100%;min-width:0;flex:1}
.schedule-headliner-picker .schedule-dj-picker-line{min-height:32px}
.schedule-headliner-picker .schedule-dj-picker-line input{width:100%!important;min-width:0!important;flex:1!important;padding:7px 9px!important}
.schedule-headliner-picker .schedule-dj-options{max-height:180px;overflow:auto}
.schedule-support-optional{font-size:10px;color:#8492a3;margin:-3px 0 6px;line-height:1.4}
.schedule-headliner-manager-backdrop{z-index:10050}
.schedule-headliner-manager{max-width:530px}
.schedule-headliner-manager .schedule-modal-body{display:flex;flex-direction:column;gap:11px}
.schedule-headliner-manager .schedule-modal-body textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:130px;font:inherit;font-size:13px;color:#26374e;padding:11px;border-radius:7px;border:1px solid #cbd6e4;line-height:1.6;background:#fff}
.schedule-headliner-manager .schedule-directory-intro{font-size:12px;color:#546882;line-height:1.6;margin:0}
.schedule-headliner-manager .schedule-directory-count{font-size:10px;color:#76859a}
.schedule-floating-editor .schedule-quick-time-row select:invalid{color:#718096}

/* V5.4: viewport-stationary quick editor; scroll the body without losing header/actions. */
.schedule-floating-editor {
  position:fixed!important;
  top:50%!important;
  left:50%!important;
  transform:translate(-50%,-50%);
  width:min(580px,calc(100vw - 24px))!important;
  max-height:calc(100dvh - 24px);
  min-height:0;
  overscroll-behavior:contain;
}
.schedule-floating-editor .schedule-inline-editor {max-height:calc(100dvh - 24px);}
.schedule-floating-editor .schedule-float-content {
  overflow-y:auto!important;
  overscroll-behavior:contain;
  flex:1 1 auto;
}
/* Clear, subdued autosave feedback: green = synced, amber = pending, red = failed. */
.schedule-floating-editor .schedule-inline-actions {justify-content:space-between;}
.schedule-autosave-status {display:flex;gap:7px;align-items:center;line-height:1.4;
  font-size:10px;color:#68798d;min-width:0;flex:1;overflow-wrap:anywhere;}
.schedule-autosave-dot {font-size:11px;flex:0 0 auto;color:#97a5b6;}
.schedule-autosave-status.pending .schedule-autosave-dot,
.schedule-autosave-status.incomplete .schedule-autosave-dot,
.schedule-autosave-status.saving .schedule-autosave-dot{color:#c39137;}
.schedule-autosave-status.saved .schedule-autosave-dot{color:#2f9272;}
.schedule-autosave-status.error,.schedule-autosave-status.error .schedule-autosave-dot{color:#b34749;}
.schedule-floating-editor .schedule-autosave-retry {background:#fff3ee;border:1px solid #e8b3a4;
  color:#943e31;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:11px;font-weight:700;}
.schedule-floating-editor .schedule-inline-save {background:#182b47;color:white;white-space:nowrap;}
@media (max-width:670px){
  .schedule-floating-editor {left:50%!important;width:calc(100vw - 24px)!important;}
  .schedule-floating-editor .schedule-inline-actions {padding:9px 11px;}
  .schedule-autosave-status {font-size:9px;}
}


/* V5.5: venue opening patterns are visual only; cells remain interactive. */
.schedule-grid .schedule-cell.schedule-normally-closed,
.schedule-grid tr:nth-child(even) .schedule-cell.schedule-normally-closed{background:#A7B0BE!important;}
.schedule-grid .schedule-cell.schedule-normally-closed .schedule-cell-btn{color:#414B5B!important;}
.schedule-grid .schedule-cell.schedule-normally-closed .schedule-add{color:#525D6D!important;}
.schedule-grid .schedule-cell.schedule-normally-closed .schedule-cell-btn:hover,
.schedule-grid .schedule-cell.schedule-normally-closed .schedule-cell-btn:focus-visible{background:#D8DDE5!important;}
.schedule-dj-option.schedule-dj-unavailable,
.schedule-dj-option.schedule-dj-unavailable span{color:#B42334!important;font-weight:700;}
.schedule-dj-option.schedule-dj-unavailable.highlight,
.schedule-dj-option.schedule-dj-unavailable:hover{background:#FCE9EB!important;}
.schedule-dj-blackout-tag{display:block;color:#AA2634;font-size:10px;margin-top:2px;font-weight:500;}
.schedule-booked-blackout{font-size:10px;color:#A22130;font-weight:700;}
.schedule-grid .schedule-cell.schedule-talent-cancelled,
.schedule-grid .schedule-special-item.schedule-talent-cancelled{background:#FFF9F9!important;box-shadow:inset 0 0 0 1px #CA8A94;}
.schedule-grid .schedule-cell.schedule-talent-cancelled .schedule-cell-btn,
.schedule-grid .schedule-cell.schedule-talent-cancelled .schedule-cell-btn *,
.schedule-grid .schedule-special-item.schedule-talent-cancelled .schedule-cell-btn,
.schedule-grid .schedule-special-item.schedule-talent-cancelled .schedule-cell-btn *{
  color:#B42334!important;font-weight:700!important;
}
.schedule-cancel-label{color:#B42334!important;font-size:10px;font-weight:800;letter-spacing:.06em;padding:3px 0 0;}
.schedule-talent-actions{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:12px;border-top:1px solid #E8DBDF;padding-top:10px;}
.schedule-talent-toggle{border:1px solid #D58F9A;border-radius:6px;background:#FFF9FA;color:#A51C31;
  font-size:12px;font-weight:700;padding:8px 11px;cursor:pointer;}
.schedule-talent-toggle:hover{background:#FBE8EB;}
.schedule-talent-toggle.schedule-talent-is-cancelled{border-color:#ACC8B2;background:#F2F9F3;color:#275B3C;}
.schedule-talent-toggle:disabled{opacity:.55;cursor:wait;}
.schedule-talent-caption{font-size:10px;color:#6A7484;}

/* V5.6 — optional one-click clear, kept low-key next to Done. */
.schedule-floating-editor .schedule-clear-draft{
  background:#fff!important;border:1px solid #D5DDE7!important;color:#657388!important;
  font-weight:650!important;white-space:nowrap;
}
.schedule-floating-editor .schedule-clear-draft:hover{background:#F5F7FB!important;color:#3F4F65!important;}
.schedule-floating-editor .schedule-clear-draft:disabled{opacity:.45;cursor:not-allowed;}
@media(max-width:540px){
  .schedule-floating-editor .schedule-inline-actions{flex-wrap:wrap;gap:6px;}
  .schedule-floating-editor .schedule-autosave-status{flex-basis:100%;}
}


/* V5.7 · Modern Clean. Pure presentation; never changes shift times or data. */
.schedule-grid .schedule-headliner{display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  font-weight:750;line-height:1.3;min-width:0;max-width:100%;margin:0 0 2px;}
.schedule-grid .schedule-headliner .schedule-performer-name{display:block;
  font-size:calc(14px * var(--grid-zoom,1));font-weight:800;
  letter-spacing:-.008em;line-height:1.3;color:#142640;overflow-wrap:anywhere;}
.schedule-grid .schedule-dj-line{display:flex;flex-direction:column;align-items:flex-start;
  min-width:0;max-width:100%;gap:4px;margin-top:7px;padding-top:7px;
  border-top:1px dashed #dce3ec;}
.schedule-grid .schedule-dj-line .schedule-performer-name{display:block;
  font-size:calc(11.5px * var(--grid-zoom,1));font-weight:700;
  line-height:1.3;color:#28374d;overflow-wrap:anywhere;}
.schedule-grid .schedule-time-pill{display:inline-block;align-self:flex-start;
  max-width:100%;box-sizing:border-box;padding:4px 8px;margin:0;
  background:#dbeafe;color:#24466e;font-weight:650;
  border-radius:12px;font-size:calc(10.5px * var(--grid-zoom,1));
  line-height:1.4;font-variant-numeric:tabular-nums;white-space:normal;
  overflow-wrap:anywhere;text-align:left;}
.schedule-grid .schedule-special-item .schedule-time-pill{max-width:100%;}
.schedule-grid .schedule-cell-btn{gap:2px;}
/* A cancelled show keeps every DJ visible; cancelled text remains bold red. */
.schedule-grid .schedule-cell.schedule-talent-cancelled .schedule-time-pill,
.schedule-grid .schedule-special-item.schedule-talent-cancelled .schedule-time-pill{
  color:#B42334!important;font-weight:750!important;}

/* V5.7 WIDE GRID — let the schedule own the workspace, without changing the DJ
   blackout calendar, roster, authentication, or any schedule data behavior. */
@media (min-width:761px) {
  /* :has() scopes all layout changes to the Master Set Times page only. */
  .app-shell:has(.schedule-root) {
    grid-template-columns:205px minmax(0,1fr);
  }
  .app-shell:has(.schedule-root) .sidebar {padding-left:11px;padding-right:11px;}
  .app-shell:has(.schedule-root) .sidebar-brand {margin-left:10px;margin-right:5px;}
  .app-shell:has(.schedule-root) .side-nav {padding-left:11px;padding-right:9px;}
  .content:has(.schedule-root) {
    box-sizing:border-box;
    max-width:none;
    width:100%;
    margin:0;
    padding:24px clamp(14px,1.2vw,24px) 36px;
  }
  .app-shell:has(.schedule-root) .topbar {
    padding-inline:clamp(14px,1.2vw,24px);
  }
}

/* Tighter chrome above the grid: visible table space matters most. */
.schedule-root .heading.schedule-heading {margin:2px 0 14px;}
.schedule-root .heading.schedule-heading h1 {margin-top:5px;margin-bottom:5px;}
.schedule-root .schedule-toolbar {margin:8px 0 9px;}
.schedule-root .schedule-above-grid {margin:0 0 7px;}
.schedule-root .schedule-grid-intro {padding:12px 15px;min-height:44px;}

/* Taller scrollable monthly grid; headers and left date column remain sticky.
   On shorter viewports the page may scroll, rather than clipping performer rows. */
.schedule-root .schedule-horizontal {
  height:clamp(585px,calc(100dvh - 230px),1060px);
  max-height:none;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
}

/* Slightly roomier room columns.  At 70% zoom, the additional workspace width
   keeps approximately the same venues in view, but with more legible entries. */
.schedule-root .schedule-grid .schedule-room-head {
  width:calc(210px * var(--grid-zoom,1))!important;
  min-width:calc(210px * var(--grid-zoom,1))!important;
  max-width:calc(210px * var(--grid-zoom,1))!important;
}
.schedule-root .schedule-grid .schedule-cell:not(.schedule-cell-is-editing):not(.schedule-special-cell) {
  width:calc(210px * var(--grid-zoom,1))!important;
  min-width:calc(210px * var(--grid-zoom,1))!important;
  max-width:calc(210px * var(--grid-zoom,1))!important;
}
.schedule-root .schedule-grid .schedule-cell-btn {
  width:calc(210px * var(--grid-zoom,1));
  min-height:calc(89px * var(--grid-zoom,1));
  font-size:clamp(10px,calc(11px * var(--grid-zoom,1)),14px);
}
.schedule-root .schedule-grid .schedule-date-head,
.schedule-root .schedule-grid .schedule-date-cell {
  min-width:max(75px,calc(90px * var(--grid-zoom,1)));
  width:max(75px,calc(90px * var(--grid-zoom,1)));
}
.schedule-root .schedule-grid .schedule-headliner .schedule-performer-name {
  font-size:clamp(12px,calc(14px * var(--grid-zoom,1)),20px);
}
.schedule-root .schedule-grid .schedule-dj-line .schedule-performer-name {
  font-size:clamp(10.5px,calc(11.5px * var(--grid-zoom,1)),17px);
}
.schedule-root .schedule-grid .schedule-time-pill {
  font-size:clamp(10px,calc(10.5px * var(--grid-zoom,1)),16px);
}
.schedule-root .schedule-grid .schedule-venue-group {
  font-size:clamp(10px,calc(11px * var(--grid-zoom,1)),15px);
}
.schedule-root .schedule-grid .schedule-room-head {
  font-size:clamp(10px,calc(11px * var(--grid-zoom,1)),15px);
}
.schedule-root .schedule-grid .schedule-add {
  font-size:clamp(9px,calc(10px * var(--grid-zoom,1)),14px);
}
.schedule-root .schedule-grid .schedule-special-cell {
  min-width:calc(270px * var(--grid-zoom,1));
  width:calc(270px * var(--grid-zoom,1));
}
.schedule-root .schedule-grid .schedule-special-cell .schedule-cell-btn {
  width:100%;
}

/* Keep the grid usable without a massive fixed-height panel on mobile. */
@media (max-width:760px) {
  .content:has(.schedule-root) {padding:16px 10px 28px;}
  .schedule-root .schedule-horizontal {
    height:clamp(380px,calc(100dvh - 190px),720px);
  }
  .schedule-root .schedule-grid .schedule-room-head,
  .schedule-root .schedule-grid .schedule-cell:not(.schedule-cell-is-editing):not(.schedule-special-cell),
  .schedule-root .schedule-grid .schedule-cell-btn {
    width:calc(193px * var(--grid-zoom,1))!important;
    min-width:calc(193px * var(--grid-zoom,1))!important;
  }
}


/* V5.8 · Optional Fit Month overview and 40–60% zoom levels. */
.schedule-zoom .schedule-fit-month-btn{
  white-space:nowrap;min-width:83px;padding:5px 9px;margin-left:5px;
  background:#edf3fa;color:#23486b;border:1px solid #d4e0ed;font-weight:750;
}
.schedule-zoom .schedule-fit-month-btn.is-active{
  background:#203856;color:#fff;border-color:#203856;
}
.schedule-zoom .schedule-fit-month-btn:hover{filter:brightness(.96)}
/* The standard grid (including 40% zoom) never hides the performers or times. */
.schedule-horizontal.schedule-fit-month{
  /* Row height calculated from actual viewport and days in the month in React. */
}
.schedule-fit-month .schedule-grid tbody tr{
  height:var(--fit-month-row-height)!important;
  max-height:var(--fit-month-row-height)!important;
}
.schedule-fit-month .schedule-grid tbody td,
.schedule-fit-month .schedule-grid tbody th{
  height:var(--fit-month-row-height)!important;
  max-height:var(--fit-month-row-height)!important;
  padding:0!important;vertical-align:middle!important;
}
.schedule-fit-month .schedule-grid tbody td{overflow:hidden;}
.schedule-fit-month .schedule-grid .schedule-cell-btn{
  height:var(--fit-month-row-height)!important;min-height:0!important;
  max-height:var(--fit-month-row-height)!important;width:100%!important;
  padding:0 4px!important;gap:3px!important;display:flex;flex-direction:row!important;
  align-items:center!important;white-space:nowrap!important;
  overflow:hidden!important;
}
.schedule-fit-month .schedule-grid .schedule-headliner,
.schedule-fit-month .schedule-grid .schedule-dj-line{
  display:inline-flex!important;flex-direction:row!important;align-items:center!important;
  flex:0 1 auto;min-width:0;max-width:100%;margin:0!important;padding:0!important;
  border:0!important;overflow:hidden;white-space:nowrap;
}
.schedule-fit-month .schedule-grid .schedule-headliner .schedule-performer-name,
.schedule-fit-month .schedule-grid .schedule-dj-line .schedule-performer-name{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:clamp(8px,calc(11px * var(--grid-zoom,1)),10px)!important;
  line-height:1.1;min-width:0;
}
/* Full set times remain in the browser tooltip and reappear in standard zoom. */
.schedule-fit-month .schedule-grid .schedule-time-pill,
.schedule-fit-month .schedule-grid .schedule-booked-blackout{
  display:none!important;
}
.schedule-fit-month .schedule-grid .schedule-date-cell{
  padding:0 3px!important;white-space:nowrap!important;text-align:left;
}
.schedule-fit-month .schedule-grid .schedule-date-cell strong,
.schedule-fit-month .schedule-grid .schedule-date-cell span{
  display:inline!important;font-size:9px!important;line-height:1!important;
  margin:0 0 0 3px!important;
}
.schedule-fit-month .schedule-grid .schedule-add{font-size:9px!important;margin:auto!important;white-space:nowrap;}
.schedule-fit-month .schedule-grid .schedule-dj-line{border-left:1px solid #d5deeb!important;padding-left:3px!important;}
.schedule-fit-month .schedule-grid .schedule-cancel-label{
  font-size:8px!important;padding:0!important;margin:0!important;
  white-space:nowrap;text-overflow:ellipsis;overflow:hidden;
}
.schedule-fit-month .schedule-grid .schedule-note-wrap{z-index:7;}
.schedule-fit-month .schedule-grid .schedule-special-list{
  display:flex;flex-direction:row;gap:2px;align-items:center;
  height:var(--fit-month-row-height)!important;min-height:0;padding:0 3px!important;
  overflow:hidden;
}
.schedule-fit-month .schedule-grid .schedule-special-item{
  display:flex;flex-direction:row;gap:3px;align-items:center;white-space:nowrap;
  padding:0 2px!important;margin:0!important;border:0!important;
  overflow:hidden;max-height:var(--fit-month-row-height);
}
.schedule-fit-month .schedule-grid .schedule-special-title-row strong,
.schedule-fit-month .schedule-grid .schedule-special-item small{
  font-size:9px!important;margin:0!important;white-space:nowrap!important;
}
.schedule-fit-month .schedule-grid .schedule-special-item .schedule-cell-btn{
  max-width:160px!important;flex:0 1 auto;
}
.schedule-fit-month .schedule-grid .schedule-special-more{
  font-size:8px;padding:1px 3px;white-space:nowrap;max-height:var(--fit-month-row-height);
}
@media(max-width:760px){
  /* On smaller screens let very dense months scroll slightly if necessary. */
  .schedule-above-grid{flex-wrap:wrap;justify-content:flex-end;}
}
/* In Fit Month, empty dates are visually quiet so actual booked cells stand out. */
.schedule-fit-month .schedule-grid .schedule-add{font-size:0!important;}
.schedule-fit-month .schedule-grid .schedule-add::before{
  content:'+';font-size:12px;font-weight:550;color:#7d899a;
}
.schedule-fit-month .schedule-grid .schedule-viewer-cell .schedule-add::before{content:'·';}
.schedule-fit-month .schedule-grid .schedule-special-title-row button{display:none;}


/* V5.8 visual refinement · distinct property dividers and fine date-row rules.
   The venue-start class is computed from the visible rooms, so dividers stay
   aligned in All Properties, Nightclubs, Dayclubs and Fit Month views. */
.schedule-root .schedule-grid .schedule-venue-divider {
  border-left:4px solid #111827!important;
}
.schedule-root .schedule-grid .schedule-date-head,
.schedule-root .schedule-grid .schedule-date-cell {
  border-right:2px solid #111827!important;
}
.schedule-root .schedule-grid tbody tr > th,
.schedule-root .schedule-grid tbody tr > td {
  border-bottom:1px solid #788594!important;
}
/* Preserve thin horizontal lines even at the smallest fit-month row height. */
.schedule-root .schedule-fit-month .schedule-grid tbody tr > th,
.schedule-root .schedule-fit-month .schedule-grid tbody tr > td {
  border-bottom-width:1px!important;
}

/* V5.8.1 · Make the sticky date labels legible at EVERY normal zoom setting.
   Schedule rooms & performers continue zooming; the date index does not. */
.schedule-root .schedule-grid .schedule-date-head,
.schedule-root .schedule-grid .schedule-date-cell {
  width:98px!important;
  min-width:98px!important;
  max-width:98px!important;
  box-sizing:border-box;
}
.schedule-root .schedule-grid .schedule-date-head {
  font-size:11px!important;
  padding:5px 7px!important;
}
.schedule-root .schedule-grid .schedule-date-cell {
  padding:4px 8px!important;
  vertical-align:middle!important;
}
.schedule-root .schedule-grid .schedule-date-cell strong {
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:750;
}
.schedule-root .schedule-grid .schedule-date-cell span {
  font-size:11px!important;
  line-height:1.2!important;
  margin-top:2px!important;
}
/* Fit Month keeps a single-line date label, at a readable, NON-scaling size. */
.schedule-root .schedule-fit-month .schedule-grid .schedule-date-cell {
  padding:0 5px!important;
  white-space:nowrap!important;
  overflow:hidden;
}
.schedule-root .schedule-fit-month .schedule-grid .schedule-date-cell strong,
.schedule-root .schedule-fit-month .schedule-grid .schedule-date-cell span {
  display:inline!important;
  font-size:11px!important;
  line-height:1!important;
  margin:0 3px 0 0!important;
}
/* Slimmer property boundary: 2.5px instead of V5.8's 4px.
   Interior room dividers & horizontal date rules remain unchanged. */
.schedule-root .schedule-grid .schedule-venue-divider {
  border-left:2.5px solid #111827!important;
}


/* V5.8.2 — make the standard Master Grid about 85px taller on desktop.
   Keep Fit Month unchanged so its JavaScript-computed 28–31 rows still fit.
   All venue columns, dividers, date fonts, zoom settings, and data behaviors remain unchanged. */
@media (min-width:761px) {
  .schedule-root .schedule-horizontal:not(.schedule-fit-month) {
    height:clamp(640px, calc(100dvh - 145px), 1145px);
  }
}
/* V5.9 — public TAO headline suggestions. Purely informational, never bookings. */
.schedule-dj-option.schedule-official-option{background:#f2f7fc;border-left:3px solid #bd995f;padding-left:7px;}
.schedule-dj-option.schedule-official-option.highlight,.schedule-dj-option.schedule-official-option:hover{background:#e3edf8;}
.schedule-official-tag{display:block;font-size:10px;color:#7b5a25;margin-top:3px;letter-spacing:.005em;}
.schedule-editor-tao-hint{display:block;flex-basis:100%;font-size:10px;color:#775b2e;font-weight:500;line-height:1.35;margin-top:4px;}
.schedule-inline-title:has(.schedule-editor-tao-hint){flex-wrap:wrap;}
.schedule-tao-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 9px;margin:0 0 6px;color:#51627a;font-size:11px;}
.schedule-tao-status span{font-weight:700;color:#354866;}
.schedule-tao-status small{font-size:10px;}
.schedule-tao-mismatch,.schedule-tao-change{display:inline-block;font-size:10px;font-weight:600;color:#755628;background:#fff3d9;border:1px solid #e3cea8;border-radius:4px;padding:2px 4px;margin:3px 2px 0;position:relative;z-index:2;}
.schedule-tao-change{background:#eef3fa;color:#536781;border-color:#cdd9e7;}
.schedule-fit-month .schedule-tao-mismatch,.schedule-fit-month .schedule-tao-change{font-size:8px;padding:0 2px;margin:1px 0 0;}
@media (max-width:800px){.schedule-tao-status{font-size:10px;padding:3px 5px;gap:5px;}}

/* V5.10 — Per-room collapsible Master Grid columns. Presentation only.
   Room header buttons control their own column; hidden shows remain in Supabase.
   At small zoom / Fit Month, the collapsed strips remain at a usable fixed width. */
.schedule-root .schedule-grid .schedule-room-head {
  padding:0!important;
}
.schedule-root .schedule-grid .schedule-room-collapse-control {
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;height:100%;min-height:31px;max-height:33px;
  border:0;padding:3px 5px;background:transparent;
  color:inherit;font:inherit;line-height:1.15;cursor:pointer;
}
.schedule-root .schedule-grid .schedule-room-collapse-control:hover,
.schedule-root .schedule-grid .schedule-room-collapse-control:focus-visible {
  background:#d9e5f3;outline:2px solid #7e9dc1;outline-offset:-2px;
}
.schedule-root .schedule-grid .schedule-room-collapse-label {
  display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;
}
.schedule-root .schedule-grid .schedule-room-collapse-icon {
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;border:1px solid #c3d1e1;border-radius:4px;
  background:#fff;color:#324f77;font-size:14px;font-weight:750;line-height:1;
}
.schedule-root .schedule-grid th.schedule-room-head.schedule-room-head-collapsed,
.schedule-root .schedule-grid th.schedule-room-head.schedule-special-room-head.schedule-room-head-collapsed {
  width:43px!important;min-width:43px!important;max-width:43px!important;
  overflow:hidden;box-sizing:border-box;
}
.schedule-root .schedule-grid .schedule-room-head-collapsed .schedule-room-collapse-control {
  flex-direction:column;gap:0;padding:1px 0;min-height:33px;
}
.schedule-root .schedule-grid .schedule-room-head-collapsed .schedule-room-collapse-label {
  max-width:39px;font-size:9px!important;font-weight:700;
}
.schedule-root .schedule-grid .schedule-room-head-collapsed .schedule-room-collapse-icon {
  border:0;background:transparent;width:14px;height:14px;font-size:14px;
}
.schedule-root .schedule-grid td.schedule-cell.schedule-col-collapsed:not(.schedule-cell-is-editing),
.schedule-root .schedule-grid td.schedule-cell.schedule-col-collapsed.schedule-special-cell {
  width:43px!important;min-width:43px!important;max-width:43px!important;
  overflow:hidden;box-sizing:border-box;padding:0!important;
}
.schedule-root .schedule-grid .schedule-collapsed-cell-button {
  display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  min-height:30px;border:0;padding:0;background:transparent;cursor:pointer;
}
.schedule-root .schedule-grid .schedule-collapsed-cell-button:hover,
.schedule-root .schedule-grid .schedule-collapsed-cell-button:focus-visible {
  background:#e2ecf8;outline:2px solid #799bc1;outline-offset:-2px;
}
.schedule-root .schedule-grid .schedule-collapsed-marker {
  font-size:11px;line-height:1;color:#758399;
}
.schedule-root .schedule-grid .schedule-collapsed-marker.has-show {font-size:13px;color:#2775b4;}
.schedule-root .schedule-grid .schedule-collapsed-marker.is-cancelled {color:#bd2849;}
.schedule-root .schedule-grid .schedule-venue-group.schedule-venue-all-collapsed {
  font-size:9px!important;overflow:hidden;text-overflow:clip;overflow-wrap:anywhere;
  white-space:normal;min-width:0;padding:4px 0!important;
}
.schedule-grid-intro-right {display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.schedule-grid-intro-right>span {font-size:11px;color:#8390a1;}
.schedule-grid-intro-right .schedule-expand-all {
  border:1px solid #cbd7e8;background:#edf3fb;color:#28476e;
  border-radius:6px;padding:6px 8px;cursor:pointer;
  font-size:10px;font-weight:700;white-space:nowrap;
}
.schedule-grid-intro-right .schedule-expand-all:hover,
.schedule-grid-intro-right .schedule-expand-all:focus-visible {background:#dae6f5;}
@media(max-width:760px){
  .schedule-root .schedule-grid th.schedule-room-head.schedule-room-head-collapsed,
  .schedule-root .schedule-grid td.schedule-cell.schedule-col-collapsed:not(.schedule-cell-is-editing),
  .schedule-root .schedule-grid td.schedule-cell.schedule-col-collapsed.schedule-special-cell {
    width:43px!important;min-width:43px!important;max-width:43px!important;
  }
  .schedule-grid-intro-right {justify-content:flex-start;}
}

/* Do not stretch collapsed columns just to fill the entire viewport. */
.schedule-root .schedule-horizontal.schedule-has-collapsed .schedule-grid {
  min-width:0!important;
}

/* V5.10.1 — Today navigation, isolated from all grid/column sizing rules. */
.schedule-root .schedule-month-nav .schedule-today-action{
  border:1px solid #d8c6a6;background:#fffaf1;color:#715527;
  border-radius:7px;padding:5px 10px;margin-left:7px;min-width:auto;
  font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer;
}
.schedule-root .schedule-month-nav .schedule-today-action:hover,
.schedule-root .schedule-month-nav .schedule-today-action:focus-visible{
  background:#f8eedc;outline:2px solid #d8c6a6;outline-offset:1px;
}
.schedule-root .schedule-grid tr.schedule-current-day > .schedule-date-cell{
  box-shadow:inset 4px 0 0 #c18c43;
  background:#fff5e5;color:#43321d;
}
.schedule-root .schedule-fit-month .schedule-grid tr.schedule-current-day > .schedule-date-cell{
  box-shadow:inset 3px 0 0 #c18c43;
}


/* V5.10.2 — FIT MONTH READABILITY ONLY.
   These rules are scoped to .schedule-fit-month: normal Master Grid
   dimensions, columns, row heights, editor behavior and data stay untouched. */

/* Names remain legible even though the overview itself uses compact columns. */
.schedule-root .schedule-fit-month .schedule-grid .schedule-headliner .schedule-performer-name,
.schedule-root .schedule-fit-month .schedule-grid .schedule-dj-line .schedule-performer-name {
  font-size:10px!important;
  line-height:1.12!important;
  letter-spacing:0!important;
  text-overflow:ellipsis;
}
.schedule-root .schedule-fit-month .schedule-grid .schedule-headliner .schedule-performer-name {
  font-weight:800!important;
}
.schedule-root .schedule-fit-month .schedule-grid .schedule-dj-line .schedule-performer-name {
  font-weight:650!important;
}

/* A subtle blue vertical marker distinguishes cells containing actual talent
   from empty dates. The existing closed-day gray/white fills are preserved. */
.schedule-root .schedule-fit-month .schedule-grid tbody td.schedule-cell:not(.schedule-col-collapsed):has(.schedule-headliner, .schedule-dj-line) {
  box-shadow:inset 3px 0 0 #6388b3;
}

/* Trace one date across all venue groups on hover or keyboard focus,
   without replacing normal/closed backgrounds or the black venue dividers. */
.schedule-root .schedule-fit-month .schedule-grid tbody tr:hover > td,
.schedule-root .schedule-fit-month .schedule-grid tbody tr:focus-within > td {
  outline:1px solid rgba(77,116,161,.50);
  outline-offset:-1px;
}
.schedule-root .schedule-fit-month .schedule-grid tbody tr:hover > th.schedule-date-cell,
.schedule-root .schedule-fit-month .schedule-grid tbody tr:focus-within > th.schedule-date-cell {
  background:#e5eefb!important;
  color:#1d3d66!important;
}
/* Today always keeps its gold highlight, including on hover. */
.schedule-root .schedule-fit-month .schedule-grid tbody tr.schedule-current-day:hover > th.schedule-date-cell,
.schedule-root .schedule-fit-month .schedule-grid tbody tr.schedule-current-day:focus-within > th.schedule-date-cell {
  background:#fff0d7!important;
}

/* V5.10.3 — compact performer rows, CSS-only pilot.
   Never alter table widths, header groups, sticky columns, editor cells,
   or Fit Month's existing one-line overview. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-headliner,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-dj-line {
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  column-gap:5px;
  row-gap:2px;
  width:100%;
  box-sizing:border-box;
}
/* Scale truly compact at 40% rather than forcing the normal 100% minimums. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-headliner .schedule-performer-name {
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
  font-size:clamp(9px,calc(14px * var(--grid-zoom,1)),20px);
  line-height:1.2;
  overflow-wrap:break-word;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-dj-line .schedule-performer-name {
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
  font-size:clamp(9px,calc(11.5px * var(--grid-zoom,1)),17px);
  line-height:1.2;
  overflow-wrap:break-word;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-time-pill {
  flex:0 1 auto;
  max-width:100%;
  font-size:clamp(8px,calc(10.5px * var(--grid-zoom,1)),16px);
  line-height:1.2;
  padding:clamp(1px,calc(4px * var(--grid-zoom,1)),4px) clamp(3px,calc(8px * var(--grid-zoom,1)),8px);
  border-radius:6px;
  overflow-wrap:normal;
  word-break:normal;
}
/* Tighten internal gaps only at small zoom; preserve the default row height. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell:not(.schedule-cell-is-editing) .schedule-dj-line {
  margin-top:clamp(2px,calc(7px * var(--grid-zoom,1)),7px);
  padding-top:clamp(2px,calc(7px * var(--grid-zoom,1)),7px);
}


/* V5.10.4 — time badges in a right-aligned vertical group, normal grid only.
   Preserve the V5.10 table sizing and the Fit Month overview unchanged. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid
  .schedule-cell:not(.schedule-cell-is-editing) :is(.schedule-headliner,.schedule-dj-line) {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, auto);
  align-items:start;
  column-gap:5px;
  row-gap:0;
  width:100%;
  min-width:0;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid
  .schedule-cell:not(.schedule-cell-is-editing) :is(.schedule-headliner,.schedule-dj-line) .schedule-performer-name {
  grid-column:1;
  min-width:0;
  overflow-wrap:break-word;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid
  .schedule-cell:not(.schedule-cell-is-editing) .schedule-time-stack {
  grid-column:2;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-self:end;
  gap:2px;
  max-width:100%;
  min-width:0;
  text-align:right;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid
  .schedule-cell:not(.schedule-cell-is-editing) .schedule-time-stack .schedule-time-pill {
  display:block;
  flex:none;
  align-self:flex-end;
  width:max-content;
  max-width:100%;
  text-align:right;
  overflow-wrap:anywhere;
  white-space:normal;
}
/* The grid's compact Fit Month overview intentionally hides time badges. */
.schedule-root .schedule-fit-month .schedule-grid .schedule-time-stack {
  display:none!important;
}


/* V5.10.6 TEST — visual-only compact workspace + hover navigation.
   No changes to .schedule-grid column widths, Fit Month or zoom calculations. */
@media (min-width: 761px) {
  .app-shell:has(.schedule-root) {
    grid-template-columns: 66px minmax(0,1fr) !important;
  }
  .app-shell:has(.schedule-root) .sidebar {
    width:66px; min-width:66px; padding:24px 8px 16px;
    position:sticky; top:0; overflow:hidden;
    z-index:120; transition: width 160ms ease, box-shadow 160ms ease;
    white-space:nowrap;
  }
  .app-shell:has(.schedule-root) .sidebar:hover,
  .app-shell:has(.schedule-root) .sidebar:focus-within {
    width:205px; overflow:visible;
    box-shadow: 8px 0 22px rgba(13,21,38,.22);
  }
  .app-shell:has(.schedule-root) .sidebar-brand {
    width:32px; height:45px; overflow:hidden;
    margin:1px 7px 63px !important;
    font-size:0; letter-spacing:0;
  }
  .app-shell:has(.schedule-root) .sidebar-brand::before {
    content:'T';display:grid;place-items:center;
    width:31px;height:31px;border:1px solid #c5a678;
    border-radius:7px;color:#e6c68d;font:800 18px Manrope,sans-serif;
  }
  .app-shell:has(.schedule-root) .sidebar-brand small {display:none;}
  .app-shell:has(.schedule-root) .sidebar:hover .sidebar-brand,
  .app-shell:has(.schedule-root) .sidebar:focus-within .sidebar-brand {
    font-size:20px;letter-spacing:-1px;width:auto;height:auto;overflow:visible;
    margin:2px 10px 76px !important;
  }
  .app-shell:has(.schedule-root) .sidebar:hover .sidebar-brand::before,
  .app-shell:has(.schedule-root) .sidebar:focus-within .sidebar-brand::before {display:none;}
  .app-shell:has(.schedule-root) .sidebar:hover .sidebar-brand small,
  .app-shell:has(.schedule-root) .sidebar:focus-within .sidebar-brand small {display:block;}
  .app-shell:has(.schedule-root) .side-section {visibility:hidden;}
  .app-shell:has(.schedule-root) .sidebar:hover .side-section,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-section {visibility:visible;}
  .app-shell:has(.schedule-root) .side-nav {
    font-size:19px; padding:11px 9px !important; width:48px;
    justify-content:flex-start; gap:11px; overflow:hidden;
  }
  .app-shell:has(.schedule-root) .side-nav span {display:none;}
  .app-shell:has(.schedule-root) .sidebar:hover .side-nav,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-nav {
    width:100%;font-size:13px; padding:13px 11px !important;overflow:visible;
  }
  .app-shell:has(.schedule-root) .sidebar:hover .side-nav span,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-nav span {display:inline;}
  .app-shell:has(.schedule-root) .sidebar-bottom {padding:19px 1px 0;gap:8px;}
  .app-shell:has(.schedule-root) .sidebar-bottom > div:nth-child(2),
  .app-shell:has(.schedule-root) .sidebar-bottom .logout {display:none;}
  .app-shell:has(.schedule-root) .sidebar:hover .sidebar-bottom > div:nth-child(2),
  .app-shell:has(.schedule-root) .sidebar:hover .sidebar-bottom .logout,
  .app-shell:has(.schedule-root) .sidebar:focus-within .sidebar-bottom > div:nth-child(2),
  .app-shell:has(.schedule-root) .sidebar:focus-within .sidebar-bottom .logout {display:block;}
  .app-shell:has(.schedule-root) .sidebar .side-nav:focus-visible {outline:2px solid #dbb77a;outline-offset:2px;}
}
/* Reduce empty chrome above the grid; controls remain in the natural tab order. */
.content:has(.schedule-root) {padding-top:12px !important;}
.schedule-root .heading.schedule-heading {margin:0 0 6px;gap:6px;}
.schedule-root .heading.schedule-heading h1 {margin:2px 0 3px;line-height:1.12;}
.schedule-root .heading.schedule-heading p {line-height:1.3;}
.schedule-root .schedule-toolbar {margin:5px 0 4px;gap:9px;}
.schedule-root .schedule-tao-status {margin-top:2px;margin-bottom:3px;}
.schedule-root .schedule-above-grid {margin:2px 0 6px;gap:9px;justify-content:flex-end;flex-wrap:wrap;}
.schedule-root .schedule-above-grid .schedule-toolbar-right {margin:0 auto 0 0;gap:6px;}
.schedule-root .schedule-above-grid .schedule-refresh {padding:8px 11px;}
.schedule-root .schedule-grid-intro {padding:9px 14px;min-height:38px;}
.schedule-save-safety-strip {display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  font-size:11px;color:#3e536c;background:#edf4fa;border:1px solid #cddfea;
  border-radius:7px;padding:7px 10px;margin:4px 0 7px;}
.schedule-save-safety-strip .schedule-safety-state.saved {color:#217656;font-weight:700;}
.schedule-save-safety-strip .schedule-safety-state.pending,
.schedule-save-safety-strip .schedule-safety-state.saving,
.schedule-save-safety-strip .schedule-safety-state.incomplete {color:#826116;font-weight:700;}
.schedule-save-safety-strip .schedule-safety-conflicts {color:#865b08;font-weight:700;}
.schedule-save-safety-strip.has-error {background:#fff0ed;border-color:#eab6a7;color:#a43425;}
.schedule-save-safety-strip button {margin-left:auto;border:1px solid #b14636;background:white;color:#9f3123;border-radius:5px;padding:5px 9px;font-weight:700;}
@media (max-width: 900px) {
  .schedule-root .schedule-above-grid .schedule-toolbar-right {margin-right:auto;width:auto;}
}

/* V5.10.7 — compact toolbar layout only; grid widths and cell rules unchanged. */
.schedule-root .schedule-above-grid {
  display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;
  gap:4px;margin:0 0 5px;padding:0;
}
.schedule-root .schedule-above-grid .schedule-toolbar-right {
  display:flex;justify-content:flex-end;width:auto;margin:0;gap:6px;
}
.schedule-root .schedule-zoom-row {
  display:flex;align-items:center;justify-content:flex-end;gap:9px;
}
.schedule-root .schedule-zoom-row > span {font-size:11px;color:#738199;font-weight:600;}
.schedule-root .schedule-toolbar {
  display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;
  gap:9px;margin:2px 0 5px;padding:0;
}
.schedule-root .schedule-tao-status {padding:2px 0;margin:1px 0 3px;}
.schedule-root .schedule-above-grid .schedule-refresh {padding:7px 10px;}
@media (max-width:760px) {
  .schedule-root .schedule-above-grid {align-items:stretch;}
  .schedule-root .schedule-above-grid .schedule-toolbar-right {justify-content:flex-end;}
  .schedule-root .schedule-zoom-row {justify-content:flex-end;flex-wrap:wrap;}
}

/* V5.10.8 — single bottom toolbar aligned directly above the grid.
   Left: month and property filters. Right: all zoom controls. */
.schedule-root .schedule-above-grid {margin-bottom:2px;}
.schedule-root .schedule-toolbar {
  display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;
  gap:9px;margin:2px 0 4px;padding:0;min-width:0;
}
.schedule-root .schedule-toolbar .schedule-zoom-row {
  display:flex;align-items:center;justify-content:flex-end;
  gap:9px;margin-left:auto;flex:0 0 auto;white-space:nowrap;
}
.schedule-root .schedule-toolbar .schedule-month-nav,
.schedule-root .schedule-toolbar .schedule-filters {flex:0 0 auto;}
@media (max-width:1050px) {
  .schedule-root .schedule-toolbar {flex-wrap:wrap;}
  .schedule-root .schedule-toolbar .schedule-zoom-row {margin-left:auto;}
}


/* V5.10.9 — tighten the workspace header and group public headliner status
   directly below the right-side action buttons. Grid sizing is unchanged. */
.schedule-root .heading.schedule-heading { margin:0 0 2px !important; gap:5px; }
.schedule-root .heading.schedule-heading h1 { margin:1px 0 2px; }
.schedule-root .heading.schedule-heading p { margin:0; }
.schedule-root .schedule-above-grid {
  display:flex; justify-content:flex-end; align-items:flex-end;
  margin:0 0 3px !important; padding:0; gap:0;
}
.schedule-root .schedule-tools-stack {
  display:flex; flex-direction:column; align-items:flex-end;
  gap:2px; min-width:0; max-width:100%;
}
.schedule-root .schedule-tools-stack .schedule-toolbar-right {
  margin:0; display:flex; justify-content:flex-end; gap:6px;
}
.schedule-root .schedule-tools-stack .schedule-tao-status {
  margin:0 !important; padding:0 1px !important;
  display:flex; justify-content:flex-end; align-items:center;
  gap:7px; line-height:1.2; text-align:right;
  flex-wrap:wrap; max-width:100%;
}
.schedule-root .schedule-toolbar {
  margin:2px 0 3px !important; gap:9px; padding:0;
}
.schedule-root .schedule-grid-intro { min-height:35px; padding:7px 13px; }
@media (max-width:760px) {
  .schedule-root .schedule-tools-stack { align-items:stretch; }
  .schedule-root .schedule-tools-stack .schedule-toolbar-right,
  .schedule-root .schedule-tools-stack .schedule-tao-status { justify-content:flex-end; }
}


/* V5.10.11 — hover follows the real table cell, not the shorter inner button.
   Important: no grid width, row height, zoom, or JS changes. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell:not(.schedule-cell-is-editing):hover,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell:not(.schedule-cell-is-editing):focus-within {
  background:#dbeafe!important;
  box-shadow:inset 0 0 0 2px #8caccf!important;
}
/* Closed-day cells also highlight as a complete cell; the status shading returns on exit. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell.schedule-normally-closed:not(.schedule-cell-is-editing):hover,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell.schedule-normally-closed:not(.schedule-cell-is-editing):focus-within {
  background:#dbeafe!important;
}
/* Prevent the original short button hover rectangle from masking the full-cell effect. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell:not(.schedule-cell-is-editing):hover > .schedule-cell-btn,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell:not(.schedule-cell-is-editing):focus-within > .schedule-cell-btn {
  background:transparent!important;
  outline:none!important;
}


/* V5.10.13: modest vertical-space cleanup above the grid only.
   Do not change table widths, venue headers, row heights, hover, or zoom. */
@media (min-width: 901px) {
  .content:has(.schedule-root) {padding-top:9px;}
  .schedule-root .heading.schedule-heading {margin-bottom:0 !important; gap:3px;}
  .schedule-root .heading.schedule-heading .eyebrow {margin-bottom:1px;}
  .schedule-root .heading.schedule-heading h1 {margin:0 0 1px;}
  .schedule-root .schedule-above-grid {margin-bottom:0 !important;}
  .schedule-root .schedule-tools-stack {gap:1px;}
  .schedule-root .schedule-toolbar {margin:1px 0 2px !important;}
}

/* V5.10.14: Selection follows the whole cell, including taller booking rows.
   Only a focused grid cell receives keyboard-navigation styling. */
.schedule-root .schedule-grid .schedule-cell.schedule-cell-keyboard-selected:not(.schedule-cell-is-editing) {
  box-shadow:inset 0 0 0 2px #2e78c4!important;
  position:relative;
}
.schedule-root .schedule-grid .schedule-cell.schedule-cell-keyboard-selected:not(.schedule-cell-is-editing) .schedule-cell-btn:focus-visible {
  outline:none;
}

/* V5.10.15.2: read-only history overlay. Existing table widths and zoom remain unchanged. */
.schedule-history-trigger {white-space:nowrap;}
.schedule-history-overlay {position:fixed;inset:0;z-index:1800;background:rgba(12,20,36,.32);display:flex;justify-content:flex-end;}
.schedule-history-panel {width:min(470px,96vw);height:100%;background:#fff;color:#192c45;display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,.18);font:inherit;}
.schedule-history-head {padding:17px 20px;border-bottom:1px solid #d9e0e9;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.schedule-history-head strong {display:block;font-size:18px;}.schedule-history-head small {display:block;color:#687d96;margin-top:4px;}
.schedule-history-head button {border:0;background:#eef2f7;border-radius:7px;padding:6px 11px;cursor:pointer;font-size:20px;}
.schedule-history-controls {padding:12px 16px;display:flex;flex-wrap:wrap;gap:7px;border-bottom:1px solid #e6eaf0;}
.schedule-history-controls button {border:1px solid #cbd6e4;background:white;border-radius:6px;padding:7px 9px;cursor:pointer;font-size:12px;}
.schedule-history-controls button.active {background:#182941;color:white;border-color:#182941;}
.schedule-history-controls button:disabled {opacity:.45;cursor:not-allowed;}
.schedule-history-scope {padding:10px 16px;margin:0;color:#425a78;background:#f4f7fb;font-size:12px;}
.schedule-history-error {color:#a22432;padding:12px;margin:0;}
.schedule-history-list {flex:1;overflow:auto;padding:12px 16px;}
.schedule-history-event {border-bottom:1px solid #e2e9f1;padding:11px 3px;line-height:1.5;font-size:12px;}
.schedule-history-event b {display:block;font-size:13px;}.schedule-history-event div {color:#52667d;margin:3px 0;}
.schedule-history-event small {color:#74879a;}
.schedule-history-foot {border-top:1px solid #e2e9f1;padding:10px 16px;font-size:11px;color:#667993;}

/* V5.10.16: isolated notification PREVIEW and export buttons; no grid sizing changes */
.schedule-notification-trigger,.schedule-print-trigger {white-space:nowrap;}
.schedule-notice-overlay {position:fixed;inset:0;z-index:1850;background:rgba(12,20,36,.32);display:flex;justify-content:flex-end;}
.schedule-notice-panel {width:min(440px,96vw);height:100%;background:#fff;color:#192c45;display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,.18);font:inherit;}
.schedule-notice-demo {margin:15px;background:#fff6df;border:1px solid #e6c67f;color:#6a4b17;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.5;}
.schedule-notice-list {overflow:auto;flex:1;padding:0 15px 15px;}
.schedule-notice-event {padding:12px;border:1px solid #dee6ee;border-radius:9px;margin:0 0 10px;background:white;}
.schedule-notice-event.priority-urgent {border-left:5px solid #be333d;background:#fff4f4;}
.schedule-notice-event.priority-important {border-left:5px solid #b57b1a;background:#fffaec;}
.schedule-notice-event.priority-standard {border-left:5px solid #a5b3c5;}
.schedule-notice-event.is-read {opacity:.68;}
.schedule-notice-event.priority-urgent:not(.is-read) {box-shadow:0 0 0 1px rgba(190,51,61,.12);}
.schedule-notice-event-top {display:flex;justify-content:space-between;align-items:center;gap:8px;}
.schedule-notice-event-top strong {font-size:13px;}
.schedule-notice-event-top span {font-size:9px;font-weight:800;letter-spacing:.04em;}
.schedule-notice-event p {font-size:12px;line-height:1.5;margin:8px 0;color:#465b73;}
.schedule-notice-event-actions {display:flex;gap:7px;}
.schedule-notice-event-actions button {font-size:11px;border:1px solid #cbd6e4;background:#fff;border-radius:6px;padding:6px 9px;cursor:pointer;}


/* V5.10.16.1: notification bell in sidebar navigation after DJ Roster.
   Respects existing sidebar collapse/expand styles; no grid layout changes. */
.app-shell .sidebar .side-nav.schedule-sidebar-notifications{display:flex;align-items:center;cursor:pointer}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications .schedule-sidebar-bell-icon{display:inline-flex!important;align-items:center;justify-content:center;min-width:17px;font-size:20px;line-height:1}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications:focus-visible{outline:2px solid #eac47c;outline-offset:2px}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications:hover{background:#283c59}

/* V5.10.16.2: Venue selection before printing; no changes to scheduling grid */
.schedule-print-picker{background:#fff;border-radius:14px;width:min(560px,calc(100vw - 28px));max-height:min(88vh,780px);overflow:auto;box-shadow:0 18px 60px rgba(15,30,51,.32);border:1px solid #d7e0ea}
.schedule-print-picker .schedule-modal-head{padding:16px 18px}
.schedule-print-picker-help{margin:13px 18px;color:#61718a;font-size:12px;line-height:1.5}
.schedule-print-picker-actions{display:flex;gap:8px;margin:6px 18px 12px}
.schedule-print-picker-actions button{border:1px solid #d5dfec;background:#f5f8fc;border-radius:7px;padding:8px 11px;color:#243c5b;font-weight:700;cursor:pointer;font-size:12px}
.schedule-print-venue-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 18px}
.schedule-print-venue-choice{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #d9e1ed;background:#f9fbfe;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;color:#24354c}
.schedule-print-venue-choice:has(input:checked){background:#eff5ff;border-color:#a2bee3}
.schedule-print-venue-choice input{accent-color:#173b73;width:15px;height:15px;flex:none}
.schedule-print-venue-dot{height:12px;width:12px;border-radius:3px;flex:none}
.schedule-print-picker .schedule-modal-actions{padding:13px 18px;border-top:1px solid #d8e0eb;margin-top:12px}
@media(max-width:570px){.schedule-print-venue-list{grid-template-columns:1fr}}


/* V5.10.16.3 — Force the notification glyph to remain visible in collapsed navigation.
   We use a pseudo-element when collapsed so the existing generic span-hiding
   rules cannot accidentally hide the bell. Expanded mode uses the original icon. */
@media (min-width:761px) {
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications {
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:48px !important; min-height:45px; padding:10px 4px !important;
    font-size:0 !important; overflow:visible !important;
  }
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications::before {
    content:'🔔'; display:block !important; width:25px; height:26px;
    font-family:'Segoe UI Emoji','Apple Color Emoji',sans-serif;
    font-size:21px !important; line-height:26px; text-align:center;
    opacity:1; visibility:visible;
  }
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications > span,
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications > .schedule-sidebar-bell-icon {
    display:none !important;
  }
  .app-shell:has(.schedule-root) .sidebar:hover .side-nav.schedule-sidebar-notifications::before,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-nav.schedule-sidebar-notifications::before {
    content:none !important; display:none !important;
  }
  .app-shell:has(.schedule-root) .sidebar:hover .side-nav.schedule-sidebar-notifications > .schedule-sidebar-bell-icon,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-nav.schedule-sidebar-notifications > .schedule-sidebar-bell-icon {
    display:inline-flex !important;
  }
}
/* Keep the venue picker centered and properly styled, including when other app
   styles specify generic panel/section layouts. The PDF itself is untouched. */
.schedule-root .schedule-print-picker-backdrop {
  position:fixed !important; inset:0 !important; z-index:900 !important;
  display:flex !important; justify-content:center !important; align-items:center !important;
  padding:18px !important; background:rgba(12,24,42,.62) !important;
}
.schedule-root .schedule-print-picker {
  display:block !important; box-sizing:border-box !important;
  position:relative !important; width:min(570px,calc(100vw - 36px)) !important;
  max-height:min(86vh,800px) !important; overflow:auto !important;
  padding:0 !important; margin:auto !important; background:#fff !important;
  border:1px solid #d7e0ea !important; border-radius:14px !important;
  box-shadow:0 18px 60px rgba(15,30,51,.32) !important;
  color:#1e314c !important;
}
.schedule-root .schedule-print-picker .schedule-print-venue-list {
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important; margin:0 18px !important;
}
.schedule-root .schedule-print-picker .schedule-print-venue-choice {
  display:flex !important; align-items:center !important; gap:8px !important;
  min-width:0; padding:10px !important; border:1px solid #d9e1ed !important;
  background:#f9fbfe !important; border-radius:8px !important;
  color:#24354c !important; font-size:12px !important; font-weight:600 !important;
}
.schedule-root .schedule-print-picker .schedule-print-venue-choice > span:last-child {
  min-width:0; overflow-wrap:anywhere;
}
@media(max-width:600px){
  .schedule-root .schedule-print-picker .schedule-print-venue-list {grid-template-columns:1fr !important;}
}

/* V5.10.17 — consistent monochrome outline bell, centered like other sidebar icons. */
.app-shell .sidebar .side-nav.schedule-sidebar-notifications .schedule-sidebar-bell-icon {color:#aebed2!important;font-size:0!important;min-width:18px!important;height:18px;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications .schedule-sidebar-bell-icon svg{width:18px;height:18px;display:block;stroke:currentColor;}
@media(min-width:761px){
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications::before{
    content:''!important;display:block!important;width:18px!important;height:18px!important;
    background:#aebed2!important;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/svg%3E") center/contain no-repeat!important;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/svg%3E") center/contain no-repeat!important;
  }
}
.schedule-notice-watch{margin:0 15px 14px;padding:12px;border:1px solid #cbd8e7;background:#f5f9fe;border-radius:9px;display:flex;flex-direction:column;gap:8px;}
.schedule-notice-watch strong{font-size:13px;color:#152d4b;}
.schedule-notice-watch p,.schedule-notice-watch small{font-size:11px;line-height:1.45;color:#526983;margin:0;}
.schedule-notice-watch select{width:100%;padding:9px;border-radius:7px;border:1px solid #bacbdd;background:#fff;color:#1b3554;font-size:12px;}
.schedule-notice-watch-actions{display:flex;gap:7px;flex-wrap:wrap;}
.schedule-notice-watch-actions button,.schedule-notice-section-title button{border:1px solid #cad7e7;background:white;border-radius:7px;padding:7px 10px;color:#243c5b;font-size:11px;cursor:pointer;}
.schedule-notice-watch button:disabled,.schedule-notice-section-title button:disabled{opacity:.45;cursor:default;}
.schedule-notice-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 10px;font-size:12px;color:#162d4b;}
.schedule-notice-empty{font-size:12px;color:#687c95;padding:5px 0 13px;}
.schedule-notice-event small{color:#76899f;font-size:10px;}


/* V5.10.18 — conservative layout polish; NO grid cell sizing changes. */
@media(min-width:761px){
  .app-shell .topbar{height:50px!important;min-height:50px!important;padding-block:0!important}
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications{
    justify-content:flex-start!important;align-items:center!important;
    width:48px!important;min-height:45px!important;padding:11px 9px!important;
  }
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications::before{
    display:block!important;flex:0 0 18px!important;width:18px!important;height:18px!important;
    margin:0!important;position:static!important;transform:none!important;
  }
}
/* Simple success notices float above the page instead of adding a full row.
   Error alerts stay visible in the editor; no save logic is modified. */
.app-shell .app-notice{
  position:fixed!important;right:22px!important;top:76px!important;
  width:min(350px,calc(100vw - 36px))!important;
  padding:10px 12px!important;margin:0!important;z-index:800!important;
  background:#e9f6ed!important;border:1px solid #b6dbbf!important;
  border-radius:9px!important;color:#24623c!important;
  box-shadow:0 8px 25px rgba(18,37,58,.15)!important;
}
.app-shell .app-notice button{margin-left:12px!important;color:inherit!important}
.schedule-root .schedule-success{
  position:fixed!important;top:76px!important;right:22px!important;
  width:min(350px,calc(100vw - 36px))!important;
  padding:10px 12px!important;margin:0!important;z-index:790!important;
  box-shadow:0 8px 25px rgba(18,37,58,.15)!important;
}
/* Avoid intrusive green/toast background on errors. The existing error messages
   and autosave warnings keep their strong contrast. */
.schedule-root .schedule-error{position:relative!important}
@media(max-width:760px){.app-shell .app-notice,.schedule-root .schedule-success{top:66px!important;right:12px!important}}

/* V5.10.18.1: Permanent app-level bell, same SVG dimensions as other nav icons.
   Disable legacy MasterSchedule-injected emoji/mask pseudo-elements. */
.app-shell .sidebar .side-nav.schedule-sidebar-notifications::before {content:none!important;display:none!important;-webkit-mask:none!important;mask:none!important;}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications {display:flex!important;align-items:center!important;gap:10px!important;}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications .sidebar-nav-icon {display:block!important;visibility:visible!important;width:17px!important;height:17px!important;min-width:17px!important;flex:0 0 17px!important;color:inherit!important;}
@media(min-width:761px){
 .app-shell .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications {justify-content:flex-start!important;box-sizing:border-box!important;width:48px!important;padding:11px 9px!important;}
 .app-shell .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications .sidebar-nav-icon{display:block!important;}
}
.tao-roster-calendar-link{border:0;background:none;padding:0;margin:0;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;}
.tao-roster-calendar-link:hover,.tao-roster-calendar-link:focus-visible{color:#245f9c;text-decoration-color:currentColor;}


/* V5.10.18.2 — Remove obsolete CSS-generated bell on collapsed Master Grid sidebar.
   The sole bell is now the SVG rendered in App.js. Higher specificity than
   the old :has(.schedule-root) ::before rules is required. */
@media (min-width:761px) {
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications::before,
  .app-shell:has(.schedule-root) .sidebar:hover .side-nav.schedule-sidebar-notifications::before,
  .app-shell:has(.schedule-root) .sidebar:focus-within .side-nav.schedule-sidebar-notifications::before {
    content:none !important;
    display:none !important;
    background:none !important;
    -webkit-mask:none !important;
    mask:none !important;
  }
  .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications .sidebar-nav-icon {
    display:block !important;
    visibility:visible !important;
  }
}

/* V5.10.19 — persistent TEST-only notifications; no grid geometry changes. */
.tao-notification-badge {display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#56718b;color:#fff;font-size:10px;font-weight:800;line-height:1;flex:none;margin-left:auto;}
.app-shell .sidebar:not(:hover):not(:focus-within) .tao-notification-badge {position:absolute;top:1px;right:0;min-width:15px;height:15px;padding:0 3px;font-size:9px;}
.app-shell .side-nav.schedule-sidebar-notifications {position:relative;}
.schedule-notice-test-tools {margin:0 15px 12px;background:#f5f8fc;border:1px solid #dce5ef;border-radius:9px;padding:12px;display:flex;flex-direction:column;gap:9px;}
.schedule-notice-test-tools strong {font-size:13px;color:#21354c;}
.schedule-notice-test-tools small {font-size:11px;color:#66798d;}
.schedule-notice-test-actions {display:flex;flex-wrap:wrap;gap:7px;}
.schedule-notice-test-actions button,.schedule-notice-list-heading button {border:1px solid #c9d6e7;border-radius:6px;padding:7px 9px;color:#233c5d;background:white;cursor:pointer;font-size:11px;font-weight:600;}
.schedule-notice-test-actions button:disabled {opacity:.45;cursor:not-allowed;}
.schedule-notice-list-heading {display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;gap:8px;}
.schedule-notice-list-heading strong {font-size:13px;}
.schedule-notice-error {margin:0 15px 12px;border-radius:7px;background:#fff1f1;border:1px solid #e7a3a3;color:#8d1d25;padding:10px 12px;font-size:12px;line-height:1.4;}
.schedule-notice-done {font-size:11px;color:#26744c;font-weight:700;align-self:center;}
.schedule-notice-event.is-acknowledged {box-shadow:none;}
.schedule-notice-event-actions {flex-wrap:wrap;align-items:center;margin-top:8px;}

.tao-notification-badge.has-urgent{background:#bd3540;}
.schedule-notice-event.priority-urgent:not(.is-acknowledged){opacity:1;border-left-color:#be333d;background:#fff4f4;}


/* V5.10.20 — DJ blackout clarity and subtle linked-account indicators. */
.app-shell .dot.ua-nightclub, .app-shell .type-dot.ua-nightclub {background:#143e75!important;border-color:#143e75!important;}
.app-shell .dot.ua-dayclub, .app-shell .type-dot.ua-dayclub {background:#a8dff5!important;border:1px solid #75bfdc!important;}
.app-shell .dot.ua-all-day, .app-shell .type-dot.ua-all-day {background:#101820!important;border-color:#101820!important;}
.app-shell .tao-roster-link-status{display:inline-flex;gap:7px;align-items:center;white-space:nowrap;font-size:12px;}
.app-shell .tao-account-dot{height:8px;width:8px;border-radius:50%;flex:none;display:inline-block;}
.app-shell .tao-account-dot.connected{background:#2d9867;}
.app-shell .tao-account-dot.unlinked{background:#abb6c6;}
.app-shell .tao-blackout-feedback{border:1px solid #b5deca!important;background:#effaf2!important;color:#24533d!important;border-radius:8px!important;}
.app-shell .day .dj-chip{white-space:normal;overflow-wrap:break-word;}

/* V5.10.21 — DJ blackout usability. Does not change Master Grid styles. */
.app-shell .dot.ua-nightclub,.app-shell .type-dot.ua-nightclub{background:#d23c43!important;border-color:#d23c43!important}
.tao-blackout-mini-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:5px;font-size:12px;color:#63758d}
.tao-blackout-mini-stats strong{color:#1c314c;font-weight:800}
.tao-blackout-date-help{display:block;margin:6px 0 0;color:#667990;font-size:11px;line-height:1.4;font-weight:400}
.tao-blackout-modal-backdrop{position:fixed;inset:0;background:rgba(10,21,36,.48);z-index:1500}
.app-shell .form-panel.tao-blackout-edit-modal{position:fixed!important;z-index:1501!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:min(480px,calc(100vw - 26px))!important;max-height:calc(100dvh - 32px)!important;overflow-y:auto!important;margin:0!important;background:#fff!important;border-radius:13px!important;padding:23px!important;box-shadow:0 24px 90px rgba(9,22,44,.28)!important}
.tao-blackout-modal-close{position:absolute;top:11px;right:11px;width:32px;height:32px;border:1px solid #d9e1eb;border-radius:7px;background:#f3f6fa;color:#324962;cursor:pointer;font-size:23px;line-height:1}
.tao-blackout-edit-modal .panel-label{margin-right:35px}
.tao-blackout-edit-modal .text-button.cancel{margin-top:12px}
@media(max-width:760px){.app-shell .form-panel.tao-blackout-edit-modal{padding:17px!important;max-height:calc(100dvh - 15px)!important}}

/* V5.10.22 — DJ portal, mobile first. Scoped to avoid impacting Master Grid. */
.tao522-portal{max-width:1600px;margin:0 auto;padding:4px 0 64px;color:#17243a}
.tao522-heading{margin-bottom:20px}.tao522-heading small{font-size:10px;letter-spacing:1.4px;font-weight:750;color:#ad8650}.tao522-heading h1{font-size:clamp(27px,3vw,39px);letter-spacing:-.9px;margin:5px 0}.tao522-heading p{color:#71809a;margin:0}
.tao522-summary{display:flex;gap:12px;margin:0 0 18px}.tao522-summary>div{flex:1;max-width:270px;background:#fff;border:1px solid #dfe5ee;border-radius:12px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.tao522-summary small{font-size:10px;letter-spacing:.45px;color:#65778e;font-weight:700}.tao522-summary strong{font-size:23px;color:#192c43}
.tao522-calendar-panel,.tao522-list,.tao522-form-panel{background:#fff;border:1px solid #dee5ef;border-radius:12px;padding:18px;margin-bottom:14px}.tao522-monthbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.tao522-monthbar h2,.tao522-form-panel h2,.tao522-list h2{font-size:21px;margin:0}.tao522-monthbar>div{display:flex;gap:6px}.tao522-monthbar button{background:#fff;border:1px solid #dce3ee;border-radius:6px;padding:8px 12px;cursor:pointer;color:#253e61}
.tao522-weekdays,.tao522-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.tao522-weekdays span{text-align:center;color:#7b8ba4;font-size:11px;padding:11px 0}.tao522-month-grid{border-top:1px solid #e4eaf1;border-left:1px solid #e4eaf1}.tao522-date,.tao522-blank{min-height:110px;border-right:1px solid #e4eaf1;border-bottom:1px solid #e4eaf1;overflow:hidden}.tao522-daynum{display:block;padding:8px 9px;font-size:12px;color:#586980}.tao522-event{width:100%;border:0;border-radius:0;display:flex;flex-direction:column;gap:3px;padding:8px 9px;text-align:left;margin:0;min-height:43px;overflow-wrap:anywhere;font-size:11px;color:#17243a;line-height:1.3}.tao522-event small{font-size:9px;font-weight:800;letter-spacing:.25px}.tao522-event strong{font-size:11px}.tao522-event span{font-size:10px}.tao522-event:is(button){cursor:pointer}.tao522-event:is(button):focus-visible{outline:3px solid #2054a8;outline-offset:-3px}.tao522-confirmed{background:#d8f0e3;color:#16573d}.tao522-pending{background:#faebc6;color:#75520b}.tao522-ua-nightclub{background:#f9d8dc;color:#a42035}.tao522-ua-dayclub{background:#d9f3fd;color:#155e80}.tao522-ua-all_day{background:#111b29;color:white}.tao522-legend,.tao522-test-caption{font-size:11px;color:#71809a;padding:12px 0}.tao522-secondary{border:1px solid #c8d5e4;border-radius:7px;padding:10px;background:#fff;color:#263954;font-weight:650;cursor:pointer}.tao522-offercard{width:100%;display:block;text-align:left;margin:0 0 10px;padding:16px;background:#fff;border:1px solid #dfe5ed;border-left:5px solid #b6c1cf;border-radius:8px;color:#22334b;cursor:pointer}.tao522-offercard.status-confirmed{border-left-color:#269568}.tao522-offercard.status-pending{border-left-color:#d5a13c}.tao522-offercard-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.tao522-status{text-transform:uppercase;font-size:10px;color:#65778e;font-weight:800}.tao522-times{display:block;margin-top:9px;color:#266b4d}.tao522-offercard small{display:block;margin-top:8px}.tao522-empty{padding:30px;text-align:center;color:#6e7e94}
.tao522-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(10,21,38,.62);display:flex;align-items:center;justify-content:center;padding:16px}.tao522-dialog{width:min(440px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 25px 100px rgba(0,0,0,.3)}.tao522-dialog header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2e7ee;padding:16px 20px}.tao522-dialog header button{border:none;background:#f0f3f6;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:22px}.tao522-offer-details{padding:20px}.tao522-offer-details h3{margin:0 0 12px}.tao522-offer-details p{line-height:1.5}.tao522-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.tao522-actions button{min-height:46px;border-radius:8px;font-weight:800;cursor:pointer}.tao522-accept{color:#fff;background:#197349;border:1px solid #197349}.tao522-decline{color:#8a2734;background:#fff;border:1px solid #dfadb3}.tao522-alert,.tao522-success{padding:12px 14px;border-radius:8px;margin:8px 0 14px;font-size:13px}.tao522-alert{background:#fff0f0;color:#95283b;border:1px solid #efb2b5}.tao522-success{background:#e5f5ec;color:#226a48;border:1px solid #b0ddc3}.tao522-form-panel form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.tao522-form-panel label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:12px}.tao522-form-panel input,.tao522-form-panel select{border:1px solid #cbd5e3;border-radius:7px;padding:10px;min-width:0;color:#25344b;background:white}.tao522-form-panel form button{grid-column:1/-1;border-radius:7px;background:#152944;color:white;padding:12px;cursor:pointer}.tao522-admin-row{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;border-top:1px solid #e6ebf2;gap:16px}.tao522-admin-row p{margin:5px 0;color:#65758b;font-size:12px}.tao522-admin-row button{background:#fff;border:1px solid #d6c8c8;color:#8d3030;padding:8px;border-radius:7px;cursor:pointer}
.tao522-mobile-nav{display:none}
@media(max-width:760px){
 .tao522-portal{padding:0 0 94px}.tao522-heading{margin-bottom:12px}.tao522-heading h1{font-size:27px}.tao522-heading p{font-size:13px}.tao522-summary>div{padding:10px 12px;gap:6px}.tao522-summary small{font-size:9px}.tao522-summary strong{font-size:22px}.tao522-calendar-panel,.tao522-list,.tao522-form-panel{padding:10px;border-radius:10px}.tao522-monthbar h2{font-size:18px}.tao522-monthbar button{padding:8px}.tao522-date,.tao522-blank{min-height:75px}.tao522-daynum{font-size:11px;padding:5px}.tao522-event{padding:5px 3px;min-height:36px;gap:2px;font-size:9px}.tao522-event small{font-size:8px}.tao522-event strong{font-size:9px}.tao522-event span{font-size:9px}.tao522-weekdays span{font-size:10px}.tao522-offercard{padding:15px}.tao522-form-panel form{grid-template-columns:repeat(2,minmax(0,1fr))}.tao522-form-panel form label:first-child{grid-column:1/-1}.tao522-mobile-nav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:1100;grid-template-columns:repeat(4,minmax(0,1fr));background:#101e33;box-shadow:0 -4px 20px rgba(0,0,0,.22);padding:9px 8px calc(9px + env(safe-area-inset-bottom))}.tao522-mobile-nav button{border:0;background:transparent;color:#bbc9db;display:flex;align-items:center;flex-direction:column;gap:5px;padding:7px 2px;font-size:11px;min-height:45px}.tao522-mobile-nav button.selected{color:#e1be80}.tao522-mobile-nav svg{width:20px;height:20px}
}
/* Let colored events fill their date cell, instead of reverting to dots or narrow strips. */
.tao522-date{display:flex;flex-direction:column}.tao522-event{flex:1 0 auto}.tao522-date:has(.tao522-event) .tao522-daynum{background:#fff}

/* V5.10.23 — deliberately scoped grid offer controls; preserve established grid geometry. */
.schedule-dj-picker-line .schedule-account-connected,.schedule-dj-picker-line .schedule-account-unlinked{white-space:nowrap;font-size:10px;align-self:center}
.schedule-account-connected{color:#13805e;font-weight:700}.schedule-account-unlinked{color:#747f8b;font-weight:600}
.schedule-dj-option .schedule-account-connected,.schedule-dj-option .schedule-account-unlinked{margin-left:auto;font-size:10px}
.schedule-grid-offer-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:4px 0 6px;font-size:11px}
.schedule-grid-offer-controls button,.schedule-venue-offer-button{border:1px solid #a6b6ca;border-radius:6px;padding:5px 9px;background:white;color:#1c314d;font-weight:700;cursor:pointer;font-size:11px}
.schedule-grid-offer-controls button.schedule-offer-send,.schedule-offer-send{background:#163d6d;color:white;border:1px solid #163d6d;border-radius:6px;padding:7px 12px;font-weight:700;cursor:pointer}
.schedule-grid-offer-controls button:disabled{opacity:.45;cursor:not-allowed}
.schedule-grid-offer-state{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.schedule-grid-offer-state small{color:#64748b}
.schedule-grid-offer-warn{color:#a85c00!important;font-weight:700}
.schedule-offer-status{border-radius:40px;background:#f6e6b3;padding:3px 7px;font-size:10px;color:#805400;font-weight:700}
.schedule-offer-status.offer-confirmed{background:#d8f3e4;color:#17643e}
.schedule-venue-group .schedule-venue-offer-button{display:inline-block;margin-left:8px;background:rgba(255,255,255,.92);color:#18304e;vertical-align:middle;font-size:10px;padding:3px 5px;border:0;white-space:nowrap}
.schedule-offer-backdrop{position:fixed;inset:0;background:rgba(10,19,31,.66);z-index:30000;display:flex;align-items:center;justify-content:center;padding:15px}
.schedule-offer-modal{width:min(610px,100%);max-height:min(86vh,800px);overflow:auto;background:#fff;color:#152339;border-radius:13px;padding:19px;box-shadow:0 12px 45px #0004}
.schedule-offer-modal header,.schedule-offer-modal footer,.schedule-offer-summary{display:flex;align-items:center;justify-content:space-between;gap:10px}
.schedule-offer-modal header strong{font-size:17px}.schedule-offer-modal header button{font-size:23px;border:0;background:transparent;cursor:pointer}
.schedule-offer-modal p{font-size:12px;color:#607087}.schedule-offer-summary{padding:10px;background:#f4f7fb;border-radius:7px;margin:10px 0}
.schedule-offer-review-list{max-height:45vh;overflow:auto}.schedule-offer-review-row{padding:10px 2px;border-bottom:1px solid #e5eaf1;display:flex;align-items:center;justify-content:space-between;gap:14px}
.schedule-offer-review-row small{display:block;color:#718092;margin-top:3px}.schedule-offer-ready{color:#16704b;font-weight:700;font-size:11px}.schedule-offer-skipped{color:#aa463b;font-size:11px;text-align:right}
.schedule-offer-modal footer{justify-content:flex-end;padding-top:15px}.schedule-offer-modal footer button{border-radius:6px;padding:9px 14px;cursor:pointer}

.tao523-change-banner,.tao523-update-flag{color:#925b10;font-weight:700}.tao523-change-banner{border-radius:7px;padding:9px;background:#fff1c8;font-size:13px}

/* V5.10.23.1 — consistently stack venue offer buttons below venue names. */
.schedule-root .schedule-grid th.schedule-venue-group > span { display:block; text-align:center; }
.schedule-root .schedule-grid th.schedule-venue-group > button.schedule-venue-offer-button {
  display:block; margin:5px auto 0; max-width:95%; box-sizing:border-box;
  padding:3px 8px; border:1px solid rgba(255,255,255,.48);
  border-radius:5px; background:rgba(255,255,255,.94); color:#17314f;
  font-size:10px; line-height:1.2; font-weight:700; letter-spacing:0;
  white-space:nowrap; text-align:center; cursor:pointer;
}
.schedule-root .schedule-grid th.schedule-venue-group > button.schedule-venue-offer-button:hover { background:#fff; }
.schedule-root .schedule-grid th.schedule-venue-group.schedule-venue-all-collapsed > button.schedule-venue-offer-button {
  font-size:8px; padding:2px 1px; white-space:normal; overflow-wrap:anywhere;
}

/* V5.10.24 — Support DJ status is strictly a NAME highlight, not a cell fill. */
.schedule-root .schedule-grid .schedule-dj-line .schedule-performer-name.schedule-name-highlight,
.schedule-root .schedule-special-item .schedule-performer-name.schedule-name-highlight{
 display:inline-block!important;flex:0 1 auto;align-self:flex-start;width:fit-content;max-width:100%;
 padding:2px 4px;border-radius:3px;line-height:1.22!important;
 box-decoration-break:clone;-webkit-box-decoration-break:clone;
}
.schedule-name-assigned{background:#b9ebc8!important;color:#15522a!important;}
.schedule-name-pending{background:#ffdf70!important;color:#654700!important;}
.schedule-name-declined{background:#ffbb83!important;color:#74300a!important;}
.schedule-name-confirmed{background:transparent!important;}
/* No status highlight may override the existing cancelled-show red text. */
.schedule-root .schedule-talent-cancelled .schedule-performer-name,
.schedule-root .schedule-talent-cancelled .schedule-name-highlight{
 background:transparent!important;color:#b42334!important;
}
.schedule-dj-picker-line{position:relative;}
.schedule-inline-name-hint{position:absolute;left:8px;top:50%;transform:translateY(-50%);z-index:2;
 max-width:calc(100% - 125px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 padding:1px 4px;border-radius:3px;font-size:11px;font-weight:750;pointer-events:none;}
.schedule-dj-picker-line .schedule-account-connected,
.schedule-dj-picker-line .schedule-account-unlinked{margin-left:auto;padding:0 8px 0 10px;flex:0 0 auto;}
.schedule-dj-options .schedule-dj-option{display:flex!important;align-items:center;justify-content:space-between;gap:16px;}
.schedule-dj-option>span:first-child{min-width:0;flex:1;}
.schedule-dj-option .schedule-account-connected,.schedule-dj-option .schedule-account-unlinked{margin-left:auto;white-space:nowrap;flex-shrink:0;text-align:right;}
.schedule-grid-offer-controls button.schedule-manual-confirm-button{background:#f6f8fc;border-color:#839ab6;color:#25466e;}
.schedule-manual-confirmed{color:#256d4f;font-weight:700;font-size:11px;line-height:1.45;}
/* Compact, always-expanded READ-THE-GRID legend. No how-to/button instructions. */
.schedule-reference-lower{align-items:start;}
.schedule-legend-title{display:block;color:#293a53;font-size:12px;margin:2px 0 11px;}
.schedule-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-bottom:19px;}
.schedule-legend-item{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:#53647a;font-size:11px;}
.schedule-legend-name{display:inline-block;white-space:nowrap;border-radius:3px;padding:3px 7px;font-weight:750;font-size:11px;color:#26354c;}
.schedule-legend-warnings{display:flex;flex-direction:column;gap:10px;}
.schedule-legend-warnings>div{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#60728a;}
.schedule-legend-warnings b{font-size:11px;}
.schedule-legend-red{color:#b42334;font-weight:750;}
.schedule-attention-clear{color:#206544!important;font-weight:650;}
.schedule-attention-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto;}
.schedule-attention-row{border:1px solid #e3e8ef;background:#fff;border-radius:7px;text-align:left;padding:9px 11px;
 display:grid;grid-template-columns:minmax(85px,auto) minmax(0,1fr) auto;align-items:center;gap:10px;color:#293950;cursor:pointer;}
.schedule-attention-row:hover{background:#f3f7fc;border-color:#a8bacf;}
.schedule-attention-kind{font-size:10px;font-weight:800;color:#8e4a16;white-space:nowrap;}
.schedule-attention-row.attention-conflict .schedule-attention-kind{color:#b42334;}
.schedule-attention-description{min-width:0;overflow-wrap:anywhere;font-size:11px;}
.schedule-attention-row small{color:#7c899a;white-space:nowrap;font-size:10px;}
/* Sidebar notification counter stays centered in both expanded and collapsed modes. */
.app-shell .sidebar .side-nav.schedule-sidebar-notifications .tao-notification-badge{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 box-sizing:border-box!important;min-width:20px!important;height:20px!important;
 padding:0 5px!important;line-height:1!important;font-size:10px!important;
 text-align:center!important;border-radius:999px!important;flex-shrink:0!important;margin-left:auto!important;
}
@media(max-width:760px){
 .schedule-legend-grid{grid-template-columns:1fr;}
 .schedule-attention-row{grid-template-columns:1fr;gap:4px;}
 .app-shell .sidebar .side-nav.schedule-sidebar-notifications .tao-notification-badge{min-width:18px!important;height:18px!important;}
}
@media(min-width:761px){
 .app-shell .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications .tao-notification-badge{
   position:absolute!important;top:2px!important;right:1px!important;
   min-width:15px!important;height:15px!important;font-size:9px!important;padding:0 3px!important;
 }
}
/* V5.10.24 DJ portal — full lineups and explicit two-step action controls. */
.tao524-booking-card{border:1px solid #dce4ee;border-left:5px solid #c7d0db;border-radius:10px;
 background:#fff;padding:15px;margin:13px 0;color:#22344d;}
.tao524-booking-card.status-pending{border-left-color:#c99a34;}
.tao524-booking-card.status-confirmed{border-left-color:#229368;}
.tao524-booking-card.status-declined{border-left-color:#d87732;background:#fffdfa;}
.tao524-booking-meta{font-size:12px;color:#64768c;margin:4px 0 13px;}
.tao524-lineup{display:flex;flex-direction:column;gap:7px;}
.tao524-own-set{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;
 padding:10px 12px;background:#edf6f3;border:1px solid #b4d9c8;border-radius:7px;}
.tao524-own-set>span{color:#39715d;font-size:10px;font-weight:850;letter-spacing:.5px;}
.tao524-own-set>strong{color:#184c3b;font-size:13px;font-variant-numeric:tabular-nums;}
.tao524-lineup-title{display:block;font-size:11px;margin-top:6px;color:#425774;letter-spacing:.3px;text-transform:uppercase;}
.tao524-lineup-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #edf0f4;}
.tao524-lineup-row>div{display:flex;flex-direction:column;gap:1px;}
.tao524-lineup-row strong{font-weight:700;font-size:12px;}
.tao524-lineup-row small{font-size:10px;color:#138259;}
.tao524-lineup-row>span{font-size:11px;color:#334660;font-variant-numeric:tabular-nums;text-align:right;}
.tao524-lineup-row.is-own{background:#e9f6ef;margin:0 -6px;padding:7px 6px;border-radius:5px;}
.tao524-lineup-unavailable{font-size:12px;color:#67798d;margin:4px 0;}
.tao524-action-area{margin-top:14px;}
.tao524-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.tao524-actions button{min-height:46px;border-radius:7px;font-size:13px;font-weight:800;cursor:pointer;padding:10px 8px;}
.tao524-action-area button:disabled{opacity:.5;cursor:not-allowed;}
.tao524-confirm-prompt{background:#f5f8fc;border:1px solid #ccdae9;border-radius:8px;padding:12px;}
.tao524-confirm-prompt strong{font-size:13px;}
.tao524-confirm-prompt p{font-size:12px;color:#52657e;line-height:1.45;margin:6px 0 12px;}
.tao524-back{color:#304967;background:#fff;border:1px solid #bfd0e3;}
.tao524-declined-section{border-top:1px solid #e6ecf3;margin-top:25px;padding-top:18px;}
.tao524-declined-section>p{font-size:12px;color:#68758a;}
.tao524-declined-note{font-size:12px;color:#9d4a19;background:#fff0e4;padding:9px;border-radius:7px;}
.tao524-details-trigger{border:0;color:#526f92;background:transparent;font-size:11px;padding:8px 0 0;cursor:pointer;}
.tao524-booking-card .tao523-change-banner{display:flex;flex-direction:column;gap:8px;padding:10px;margin:12px 0;color:#8b5a12;}
.tao524-booking-card .tao523-change-banner button{background:#fff;border:1px solid #d4ac54;border-radius:6px;padding:9px;color:#764a0d;cursor:pointer;}
@media(max-width:420px){
 .tao524-booking-card{padding:12px;}
 .tao524-own-set>strong{font-size:12px;}
 .tao524-lineup-row{align-items:flex-start;}
 .tao524-lineup-row>span{max-width:52%;}
}

.schedule-root .schedule-grid .schedule-performer-name.schedule-name-highlight.schedule-name-confirmed{padding:0!important;}

.schedule-manual-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.schedule-grid-offer-controls button.schedule-manual-cancel{font-size:10px;color:#8b303b;border-color:#e8bdc1;background:#fff8f8;}

/* V5.10.24.2 — compact mobile-first offers and declined-history rows. */
.tao525-portal-compact .tao522-heading{margin-bottom:10px}
.tao525-portal-compact .tao522-summary{margin:0 0 10px;gap:8px}
.tao525-portal-compact .tao522-summary>div{padding:8px 12px;max-width:240px;min-height:42px;border-radius:8px}
.tao525-portal-compact .tao522-summary strong{font-size:19px}
.tao525-portal-compact .tao522-list{padding:12px 14px;margin-bottom:12px}
.tao525-portal-compact .tao522-list h2{font-size:17px;margin:0 0 8px}
.tao525-portal-compact .tao524-booking-card{padding:11px 13px;margin:7px 0;border-radius:7px}
.tao525-portal-compact .tao522-offercard-top{margin-bottom:2px}
.tao525-portal-compact .tao524-booking-meta{margin:3px 0 7px;font-size:11px}
.tao525-lineup{display:grid;gap:3px}
.tao525-lineup-title{font-size:10px;color:#4d6180;letter-spacing:.35px;margin:3px 0 1px}
.tao525-lineup-row{display:flex;justify-content:space-between;align-items:center;gap:9px;
 min-height:28px;padding:3px 7px;border-radius:5px;background:#f8fafc;border:1px solid #edf0f5}
.tao525-lineup-row.is-own{background:#e5f4eb;border-color:#b8dfca}
.tao525-lineup-person{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;min-width:0}
.tao525-lineup-person>strong{font-size:11px;font-weight:740;line-height:1.25}
.tao525-lineup-person>small{font-size:9px;color:#65748a}
.tao525-time-pills{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:3px;min-width:0}
.tao525-time-pill{display:inline-block;white-space:nowrap;border-radius:4px;background:#dce9fa;
 color:#174273;font-size:10px;font-weight:750;font-variant-numeric:tabular-nums;padding:3px 5px;line-height:1.2}
.tao525-lineup-row.is-own .tao525-time-pill{background:#cbe7d8;color:#175d40}
.tao525-lineup-unavailable{font-size:10px;color:#78879b;margin:3px 0}
.tao525-portal-compact .tao524-action-area{margin-top:7px}
.tao525-portal-compact .tao524-actions{gap:7px}
.tao525-portal-compact .tao524-actions button{min-height:36px;padding:6px 9px;font-size:12px}
.tao525-portal-compact .tao524-confirm-prompt{padding:9px;margin-top:6px}
.tao525-portal-compact .tao524-confirm-prompt strong{font-size:12px}
.tao525-portal-compact .tao524-confirm-prompt p{margin:3px 0 7px}
.tao525-portal-compact .tao524-booking-card .tao523-change-banner{padding:8px;margin:8px 0;gap:5px;font-size:11px}
.tao525-portal-compact .tao524-booking-card .tao523-change-banner button{padding:6px}
.tao525-portal-compact .tao524-declined-section{margin-top:13px;padding-top:12px}
.tao525-portal-compact .tao524-declined-section>p{font-size:10px;margin:0 0 8px}
.tao525-declined-list{display:flex;flex-direction:column;gap:5px}
.tao525-declined-row{background:#fff;border:1px solid #e0e7ef;border-left:3px solid #d57937;
 border-radius:6px;overflow:hidden}
.tao525-declined-row summary{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(110px,1fr) auto 16px;
 align-items:center;gap:8px;min-height:48px;padding:7px 10px;cursor:pointer;list-style:none}
.tao525-declined-row summary::-webkit-details-marker{display:none}
.tao525-declined-row summary:hover{background:#fafbfd}
.tao525-declined-venue{display:flex;flex-direction:column;gap:2px;min-width:0}
.tao525-declined-venue strong{font-size:11px;color:#263b54;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tao525-declined-venue small{font-size:10px;color:#6c7b90;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tao525-declined-badge{font-size:9px;font-weight:850;color:#9c4a16;background:#fff0e4;padding:5px 7px;border-radius:4px;text-transform:uppercase}
.tao525-details-icon{color:#73859e;font-size:17px;transition:transform .16s}
.tao525-declined-row[open] .tao525-details-icon{transform:rotate(180deg)}
.tao525-declined-expanded{padding:6px 10px 10px;border-top:1px solid #edf0f5;background:#fcfdff}
.tao525-declined-lock{font-size:10px;color:#995223;margin:8px 0 0}
.tao525-portal-compact .tao522-test-caption{padding:7px 0;font-size:10px}
@media(max-width:700px){
 .tao525-declined-row summary{grid-template-columns:minmax(90px,1fr) minmax(100px,1fr) auto 12px;gap:5px;padding:7px}
 .tao525-time-pill{font-size:9px;padding:2px 4px}
 .tao525-lineup-row{padding:5px}
 .tao525-lineup-person>strong{font-size:10px}
 .tao525-declined-venue strong{font-size:10px}
 .tao525-declined-venue small{font-size:9px}
 .tao525-declined-badge{font-size:8px;padding:4px}
 .tao525-portal-compact .tao522-list{padding:9px}
}
@media(max-width:420px){
 .tao525-declined-row summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:5px}
 .tao525-details-icon{display:none}
 .tao525-lineup-row{align-items:flex-start}
 .tao525-lineup-row .tao525-time-pills{max-width:54%}
}


/* V5.10.24.3 — DJ's own set-time chips mirror their booking status. */
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-assigned .schedule-time-pill,
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-assigned small {background:#b9ebc8!important;color:#15522a!important}
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-pending .schedule-time-pill,
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-pending small {background:#ffdf70!important;color:#654700!important}
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-declined .schedule-time-pill,
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-declined small {background:#ffbb83!important;color:#74300a!important}
.schedule-root .schedule-grid .schedule-dj-line .schedule-time-status-confirmed .schedule-time-pill{background:#dceafb!important;color:#275680!important}
.schedule-root .schedule-talent-cancelled .schedule-time-stack small{background:transparent!important;color:#b42334!important}
.schedule-root .schedule-quick-times-assigned .schedule-quick-time-row select{background:#ecfaee;border-color:#93cf9d}
.schedule-root .schedule-quick-times-pending .schedule-quick-time-row select{background:#fff5cf;border-color:#e4bf57}
.schedule-root .schedule-quick-times-declined .schedule-quick-time-row select{background:#fff0e3;border-color:#e9a46c}
.schedule-root .schedule-confirmed-cancel{background:#fff0f1!important;border:1px solid #c8747b!important;color:#a12635!important;border-radius:5px!important;padding:6px!important;font-size:11px!important}
/* A cancelled confirmed shift stays explicitly RED in the DJ's own calendar. */
.tao522-event.tao522-cancelled{background:#f6d8dd!important;color:#9b2333!important;border-left:3px solid #bf3343!important}
.tao526-cancel-alerts{background:#fff0f1;border:1px solid #edb5bd;border-left:4px solid #c73b4d;
  border-radius:7px;margin:10px 0;padding:9px 12px;display:flex;flex-direction:column;gap:5px;color:#932b3b;font-size:11px}
.tao526-cancel-alerts strong{font-size:12px}.tao526-cancel-alerts p{margin:0;line-height:1.4}
.tao526-cancelled-warning{padding:7px;background:#fff0f1;color:#9a2234;font-size:11px;font-weight:800;border-radius:4px;margin:5px 0}
.tao526-cancelled-list{margin-top:14px;border-top:1px solid #e6e9ef;padding-top:9px}
.tao526-cancelled-list h2{font-size:14px;margin:5px 0 9px}
.tao526-cancelled-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:1px solid #efd5d8;
 border-left:3px solid #ca4052;border-radius:6px;padding:6px 10px;margin-bottom:5px;color:#8b2839;font-size:11px}
.tao526-cancelled-row span{color:#6c768a}.tao526-cancelled-row b{color:#b6293b;margin-left:auto}
.tao526-cancelled-row button{border:1px solid #ddb2b6;border-radius:4px;background:#fff;color:#962438;padding:5px 10px;cursor:pointer}


/* V5.10.24.4 — venue-colored DJ calendar, compact full lineups, explicit cancellation.
   No green confirmed-cell fill; only pending bookings keep a gold background. */
.tao522-calendar-panel .tao522-event.tao522-confirmed{
 background:#fff!important;color:#1c324e!important;border-left:3px solid var(--tao527-venue-color,#263c55)}
.tao522-calendar-panel .tao522-event.tao522-pending{
 background:#faebc6!important;color:#59430d!important;border-left:3px solid #d2a141}
.tao522-calendar-panel .tao522-event.tao522-cancelled{
 background:#f6d8dd!important;color:#902738!important;border-left:3px solid #bf3343!important}
.tao522-calendar-panel .tao527-calendar-booking{
 gap:4px;min-width:0;padding:7px 8px;align-items:flex-start;text-align:left;flex:1 0 auto}
.tao527-calendar-booking .tao527-shift-label{color:#647185;letter-spacing:.15px;font-size:9px}
.tao527-calendar-booking .tao527-venue-chip{
 display:inline-block;max-width:100%;width:auto;line-height:1.3;box-sizing:border-box;
 padding:3px 5px;border-radius:4px;background:var(--tao527-venue-color,#263c55);
 color:var(--tao527-venue-label,#fff);font-size:10px;overflow-wrap:anywhere}
.tao527-calendar-booking .tao527-person{
 display:inline-block;width:auto;max-width:100%;padding:2px 4px;border-radius:3px;
 background:var(--tao527-venue-tint,#e7edf3);color:var(--tao527-venue-ink,#263c55);
 font-size:10px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.tao527-calendar-booking .tao525-time-pills{
 align-self:flex-start;justify-content:flex-start;max-width:100%;gap:3px}
.tao527-calendar-booking .tao525-time-pill{font-size:9px;color:#273d5c;background:#e6eef9;padding:2px 4px}
.tao527-calendar-lineup{
 display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box;
 margin-top:3px;padding-top:4px;border-top:1px solid #dce5ed}
.tao527-calendar-other{
 display:flex;align-items:baseline;justify-content:space-between;gap:5px;
 width:100%;font-size:9px;line-height:1.25;color:#465b77;min-width:0}
.tao527-calendar-other-name{font-weight:730;overflow-wrap:anywhere;min-width:0;flex:1}
.tao527-calendar-other-time{text-align:right;font-weight:650;white-space:normal;min-width:0;flex:1}
.tao527-calendar-booking .tao527-cancel-text{
 color:#902738;font-weight:850;font-size:10px;letter-spacing:.15px}
.tao527-calendar-booking .tao527-pending-hint{font-size:9px;font-weight:730;color:#77500b}
.tao522-calendar-panel .tao522-event.tao522-cancelled .tao527-person{
 background:#f2b7c1;color:#852134}
.tao522-calendar-panel .tao522-event.tao522-cancelled .tao525-time-pill{
 background:#ffeef1;color:#892536}
@media(max-width:900px){
 .tao522-calendar-panel .tao527-calendar-booking{padding:5px 4px;gap:3px}
 .tao527-calendar-lineup{gap:2px}
 .tao527-calendar-other{display:block;font-size:8px}
 .tao527-calendar-other-time{display:block;text-align:left}
}
@media(max-width:700px){
 .tao527-calendar-booking .tao527-venue-chip{font-size:9px;padding:2px 3px}
 .tao527-calendar-booking .tao527-person{font-size:9px;padding:1px 2px}
 .tao527-calendar-booking .tao525-time-pill{font-size:8px;padding:1px 2px;white-space:normal}
 /* The full lineup, including headliner times, remains one tap away on phones. */
 .tao527-calendar-lineup{display:none}
 .tao527-calendar-booking .tao527-shift-label{font-size:8px}
}

/* V5.10.24.5 — finishing the DJ experience without changing booking data or venue widths. */
/* Let vertical wheel scrolling pass through to the page when the monthly grid is at an edge. */
.schedule-root .schedule-horizontal{
  overscroll-behavior-y:auto!important;
  overscroll-behavior-x:contain!important;
}
/* Desktop offers should not stretch across the full administration-width content area. */
.tao525-portal-compact{max-width:910px;margin-left:0;margin-right:auto;}
.tao525-portal-compact .tao522-list{width:100%;max-width:910px;box-sizing:border-box;}
.tao525-portal-compact .tao526-cancel-alerts{box-sizing:border-box;max-width:910px;}
/* Mirror the small sidebar notification badge, but only when there are pending DJ offers. */
.app-shell .sidebar .side-nav.tao-dj-pending-nav .tao-notification-badge,
.app-shell .sidebar .side-nav .tao-dj-pending-count{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  margin-left:auto!important;min-width:20px;height:20px;box-sizing:border-box;
  padding:0 5px;border-radius:999px;line-height:1;font-size:10px;font-weight:800;
  background:#D8E9FA;color:#244F7A;flex-shrink:0;
}
/* Compact three-tab mobile DJ navigation with a non-obstructive Offers count. */
@media(max-width:760px){
  .tao522-mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .tao522-mobile-nav button{position:relative;}
  .tao-dj-mobile-offer-badge{position:absolute;top:2px;right:calc(50% - 24px);
    display:flex;align-items:center;justify-content:center;min-width:16px;height:16px;
    border-radius:999px;padding:0 3px;background:#F5D782;color:#14253F;
    font-size:9px;font-weight:850;line-height:1;box-sizing:border-box;}
}
/* Visually separate dayclub and nightclub bookings inside a single date cell. */
.tao528-day-night-divider{
  align-self:stretch;flex:0 0 auto;border-top:2px dotted #1D2533;
  margin:6px 5px;width:auto;height:0;box-sizing:border-box;
}
.tao528-person-status{display:flex;align-items:center;flex-wrap:wrap;gap:4px;max-width:100%;}
.tao528-person-status .tao527-person{flex:0 1 auto;min-width:0;}
.tao527-calendar-booking .tao528-ack-badge{
  display:inline-block;background:#FFE17B;color:#604300;border:1px solid #D4A539;
  border-radius:3px;padding:2px 4px;font-size:9px;font-weight:850;
  letter-spacing:0;line-height:1.25;white-space:normal;
}
.tao528-time-separator{display:inline-block;color:#24334C;font-weight:850;font-size:11px;
  line-height:1.2;margin:0 2px;white-space:nowrap;}
@media(max-width:700px){
  .tao525-portal-compact{max-width:100%;}
  .tao528-day-night-divider{margin:4px 3px;}
  .tao527-calendar-booking .tao528-ack-badge{font-size:8px;padding:1px 3px;}
  .tao528-time-separator{font-size:9px;margin:0;}
}


/* V5.10.24.6 — compact DJ Calendar booking like the administrator Master Grid.
   Name and own set times share a row; the venue name is a little larger. */
.tao522-calendar-panel .tao527-calendar-booking .tao529-own-row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:4px;width:100%;min-width:0;max-width:100%;box-sizing:border-box;
}
.tao522-calendar-panel .tao529-own-row .tao528-person-status{
  display:flex;align-items:center;gap:3px;flex:0 1 auto;
  min-width:0;max-width:55%;overflow-wrap:anywhere;
}
.tao522-calendar-panel .tao529-own-row .tao525-time-pills{
  display:flex;align-items:center;justify-content:flex-end;align-self:flex-start;
  flex:1 1 0;min-width:0;max-width:68%;gap:2px;
}
.tao522-calendar-panel .tao529-own-row .tao525-time-pill{font-size:9px;padding:2px 3px;}
.tao522-calendar-panel .tao527-calendar-booking .tao527-venue-chip{
  font-size:11.5px;line-height:1.28;font-weight:820;padding:3px 5px;
}
@media(max-width:900px){
  .tao522-calendar-panel .tao527-calendar-booking .tao527-venue-chip{font-size:10.5px;}
  .tao522-calendar-panel .tao529-own-row{gap:3px;}
  .tao522-calendar-panel .tao529-own-row .tao525-time-pill{font-size:8.5px;padding:1px 2px;}
}
@media(max-width:700px){
  /* Tiny seven-day cells cannot fit two columns legibly. Keep full details one tap away. */
  .tao522-calendar-panel .tao527-calendar-booking .tao527-venue-chip{font-size:10px;}
  .tao522-calendar-panel .tao529-own-row{gap:2px;flex-wrap:wrap;}
  .tao522-calendar-panel .tao529-own-row .tao528-person-status{max-width:100%;}
  .tao522-calendar-panel .tao529-own-row .tao525-time-pills{max-width:100%;justify-content:flex-start;flex-basis:100%;}
}


/* V5.10.24.7 — the separator is a continuation of the booking color,
   not a white strip between the dayclub and nightclub bookings. */
.tao522-calendar-panel .tao528-day-night-divider{
  position:relative;width:100%;height:12px;min-height:12px;flex:0 0 12px;
  margin:0!important;padding:0;border:0!important;box-sizing:border-box;
}
.tao522-calendar-panel .tao528-day-night-divider::after{
  content:"";position:absolute;left:5px;right:5px;top:5px;
  border-top:2px dotted #17202B;pointer-events:none;
}
/* Only the current DJ's name and current DJ's set-time pills get one identical
   booking-status highlight, regardless of other performer times. */
.tao522-calendar-panel .tao527-calendar-booking.tao522-confirmed .tao529-own-row{
  --tao530-own-bg:var(--tao527-venue-tint,#E7EDF3);--tao530-own-ink:var(--tao527-venue-ink,#263C55);
}
.tao522-calendar-panel .tao527-calendar-booking.tao522-pending .tao529-own-row{
  --tao530-own-bg:#FFE17B;--tao530-own-ink:#654700;
}
.tao522-calendar-panel .tao527-calendar-booking.tao522-cancelled .tao529-own-row{
  --tao530-own-bg:#F2B7C1;--tao530-own-ink:#852134;
}
.tao522-calendar-panel .tao527-calendar-booking .tao529-own-row .tao527-person,
.tao522-calendar-panel .tao527-calendar-booking .tao529-own-row .tao525-time-pill{
  background:var(--tao530-own-bg,#E6EEF9)!important;
  color:var(--tao530-own-ink,#263C55)!important;
  font-weight:800!important;
}
/* Acknowledgement applies only to still-active bookings. */
.tao527-calendar-booking .tao528-ack-badge{font-size:9px;line-height:1.25;max-width:100%;}
/* Test-only cancellation history cleanup: separated from actual booking actions. */
.tao530-test-cleanup{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:10px;margin:8px 0 12px;padding:9px 12px;border:1px solid #e1d8c5;border-radius:8px;
  background:#fbf8f0;color:#35445b;font-size:12px;}
.tao530-test-cleanup>div:first-child{display:flex;flex-direction:column;gap:2px;}
.tao530-test-cleanup small{font-size:10px;color:#65768a;}
.tao530-test-cleanup button{border:1px solid #c8d2de;border-radius:6px;padding:7px 10px;
  font-size:11px;font-weight:750;background:#fff;color:#243752;cursor:pointer;}
.tao530-test-cleanup button:disabled{opacity:.55;cursor:wait;}
.tao530-test-cleanup .tao530-cleanup-confirm{display:flex;align-items:center;justify-content:flex-end;
  flex-wrap:wrap;gap:8px;max-width:600px;}
.tao530-cleanup-confirm span{color:#835222;font-size:11px;flex:1 1 200px;}
.tao530-test-cleanup .tao530-cleanup-confirm-action{background:#863D37;color:#fff;border-color:#863D37;}
@media(max-width:700px){.tao530-test-cleanup{align-items:flex-start;flex-direction:column}}

/* V5.10.24.8 — compact notices and test cleanup, aligned above the DJ calendar.
   Never hide historic cancellations; the authenticated test-only RPC owns cleanup. */
.tao531-calendar-actions{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;
  gap:7px;margin:4px 0 9px;font-size:11px;}
.tao531-notice-wrap,.tao531-cleanup-wrap{position:relative;max-width:100%;}
.tao531-notice-trigger,.tao531-cleanup-start,.tao531-cleanup-confirm button{
  border-radius:6px;padding:6px 9px;background:#fff;border:1px solid #d7dee9;
  color:#34455e;font-size:11px;font-weight:750;cursor:pointer;}
.tao531-notice-trigger{color:#96293a;border-color:#efc3c9;background:#fff6f7;}
.tao531-cleanup-start{background:#fbf8f0;color:#684f28;border-color:#e7dcc9;}
.tao531-notice-list{position:absolute;z-index:20;right:0;top:calc(100% + 5px);
  width:min(440px,85vw);max-height:190px;overflow:auto;background:#fffafa;color:#7f2e3a;
  border:1px solid #eac0c5;box-shadow:0 8px 25px #17243a22;border-radius:7px;padding:8px 10px;}
.tao531-notice-list p{font-size:10.5px;line-height:1.45;margin:4px 0;
  border-bottom:1px solid #f1e3e6;padding-bottom:5px;}
.tao531-cleanup-confirm{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:5px;
  padding:5px 7px;border-radius:7px;background:#fbf8f0;border:1px solid #e7dcc9;}
.tao531-cleanup-confirm>span{font-size:10.5px;max-width:220px;color:#685b44;}
.tao531-cleanup-confirm .tao531-cleanup-final{background:#8b3742;border-color:#8b3742;color:white;}
@media(max-width:700px){.tao531-calendar-actions{justify-content:flex-end;}
  .tao531-cleanup-confirm{max-width:90vw;}}
/* Catch actual headliner/support overlap before saving an incorrect draft. */
.schedule-root .schedule-quick-time-row.schedule-time-clash select{
  border:2px solid #c63c4d!important;background:#fff3f3!important;color:#832a35!important;}
.schedule-root .schedule-overlap-warning{padding:9px 11px;margin:9px 0;background:#fff1f2;
  color:#96283a;border:1px solid #d96270;border-left:4px solid #ba2b3e;border-radius:6px;
  font-size:11px;line-height:1.45;}
.schedule-root .schedule-overlap-warning strong{display:block;margin-bottom:4px;font-size:12px;}

/* V5.10.24.8.1 — Inline Blackout Dates management on the DJ Calendar.
   No separate DJ Blackout Dates navigation or click-to-open modal for new entries. */
.tao532-calendar-layout{
  display:grid;grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:16px;width:100%;min-width:0;
}
.tao532-calendar-layout>.tao522-calendar-panel{min-width:0;margin:0;box-sizing:border-box;}
.tao532-blackout-rail{min-width:0;display:flex;flex-direction:column;gap:12px;align-self:start;}
.tao532-blackout-date-card,
.app-shell .tao532-blackout-form:not(.tao-blackout-edit-modal),
.tao532-blackout-entries{
  box-sizing:border-box;background:#fff;border:1px solid #dfe6ef;border-radius:11px;padding:16px;
  width:100%;min-width:0;margin:0;
}
.tao532-blackout-rail .panel-label{font-weight:800;letter-spacing:1.1px;color:#8a98b0;font-size:10px;margin-bottom:9px;}
.tao532-blackout-rail h3{margin:0 0 13px;color:#15243b;font-size:16px;font-weight:750;}
.tao532-blackout-date-card .muted{margin:7px 0 0;color:#8694a8;font-size:13px;line-height:1.4;}
.tao532-blackout-selected{display:flex;flex-direction:column;gap:6px;}
.tao532-blackout-current{display:flex;align-items:center;gap:7px;color:#425670;font-size:12px;}
.app-shell .tao532-blackout-form form{display:flex;flex-direction:column;gap:12px;}
.app-shell .tao532-blackout-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:750;color:#334762;}
.app-shell .tao532-blackout-form :is(input,select,textarea){
  box-sizing:border-box;width:100%;min-width:0;border:1px solid #d2dce9;
  border-radius:7px;background:#fff;padding:10px;color:#21344e;
  font:inherit;font-size:12px;font-weight:500;
}
.app-shell .tao532-blackout-form textarea{resize:vertical;line-height:1.4;}
.app-shell .tao532-blackout-form form>button[type=submit]{
  margin-top:2px;min-height:42px;border:0;border-radius:7px;background:#18283f;color:#fff;
  font-size:12px;font-weight:800;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;padding:0 13px;
}
.app-shell .tao532-blackout-form form>button:disabled{opacity:.6;cursor:wait;}
.app-shell .tao532-blackout-form .tao-blackout-feedback{margin-top:0!important;padding:9px 10px;font-size:11px;line-height:1.4;}
.tao532-blackout-entries-heading{font-size:12px;color:#1a2d49;margin-bottom:11px;}
.tao532-blackout-entries>.muted{color:#7f8da2;font-size:12px;}
.tao532-blackout-list{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow-y:auto;}
.tao532-blackout-entry{display:flex;justify-content:space-between;align-items:start;gap:6px;padding:7px 0;border-top:1px solid #ecf0f5;}
.tao532-blackout-entry-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere;}
.tao532-blackout-entry-info strong{font-size:11px;color:#233750;}
.tao532-blackout-entry-info small{font-size:10px;color:#708099;line-height:1.3;}
.tao532-blackout-entry-actions{display:flex;gap:4px;align-items:center;flex-shrink:0;}
.tao532-blackout-entry-actions button{background:#fff;border:1px solid #dbe3ee;border-radius:5px;padding:4px 6px;font-size:10px;color:#24446d;cursor:pointer;}
.tao532-blackout-entry-actions button.danger{color:#a43b47;border-color:#edcbd1;}
.tao532-date-picker{display:block;width:max-content;min-width:24px;border:0;background:transparent;
  border-radius:5px;cursor:pointer;text-align:left;color:#586980;
  padding:8px 9px;font-size:12px;line-height:1.15;}
.tao532-date-picker:hover,.tao532-date-picker:focus-visible{background:#e8f1fd;color:#1c5185;outline:2px solid #95b8e7;outline-offset:0;}
@media(max-width:1190px){
  .tao532-calendar-layout{grid-template-columns:minmax(0,1fr);gap:12px;}
  .tao532-blackout-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .tao532-blackout-entries{grid-column:1/-1;}
}
@media(max-width:760px){
  .tao532-blackout-rail{grid-template-columns:minmax(0,1fr);gap:10px;}
  .tao532-blackout-entries{grid-column:auto;}
  .tao532-blackout-date-card,.app-shell .tao532-blackout-form:not(.tao-blackout-edit-modal),.tao532-blackout-entries{padding:13px;}
  .tao532-date-picker{padding:5px;min-width:22px;font-size:11px;}
  .tao522-mobile-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

/* V5.10.24.8.1 — DJ-set-time acknowledgement is sourced from
   acknowledged_revision == latest revision; no separate local-only state. */
.schedule-root .schedule-dj-change-ack{
  display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;
  font-size:10px;font-weight:700;color:#287051;line-height:1.35;
  padding:2px 6px;background:#eaf7ef;border:1px solid #c8e6d3;border-radius:5px;
}


/* V5.10.24.8.2 — whole-cell click target (including the empty bottom area).
   Keyboard users retain the existing inner button and arrow/Enter handling. */
.schedule-root .schedule-horizontal .schedule-grid tbody td.schedule-cell:not(.schedule-special-cell):not(.schedule-col-collapsed):not(:has(.schedule-viewer-cell)) {cursor:pointer;}
.schedule-root .schedule-horizontal .schedule-grid tbody td.schedule-col-collapsed {cursor:pointer;}

/* DJ Pending Offers: small, non-destructive archive control for declined items. */
.tao533-declined-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:5px;}
.tao533-declined-heading h2{margin:0!important;}
.tao533-declined-clear,.tao533-declined-confirm button{
  font-size:11px;font-weight:700;line-height:1.3;border-radius:6px;
  border:1px solid #d4dce8;background:#f7f9fd;color:#34506b;
  padding:7px 10px;cursor:pointer;white-space:nowrap;
}
.tao533-declined-clear:hover,.tao533-declined-confirm button:hover{background:#eaf0fa;}
.tao533-declined-confirm{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.tao533-declined-confirm span{font-size:11px;color:#6b7587;}
.tao533-declined-confirm .tao533-declined-confirm-button{background:#b95230;color:#fff;border-color:#b95230;}
.tao533-declined-confirm .tao533-declined-confirm-button:hover{background:#a94829;}
.tao533-declined-clear:disabled,.tao533-declined-confirm button:disabled{opacity:.55;cursor:wait;}

/* TAO Talent V5.10.25 — Liaison Schedule: mirrors the structure of Master Set Times. */
.sidebar-liaison-icon{flex:none;}
.content:has(.liaison-root){padding-top:12px!important;}
.liaison-root{color:#172941;font-size:12px;max-width:none;min-width:0;}
.liaison-root button,.liaison-root select,.liaison-root input,.liaison-root textarea{font:inherit;}
.liaison-root button{cursor:pointer;}
.liaison-page-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin:4px 0 20px;}
.liaison-page-head h1{margin:3px 0 4px;font-size:35px;line-height:1.14;font-weight:780;letter-spacing:-1.3px;color:#172942;}
.liaison-page-head p{margin:0;color:#70829b;font-size:12px;}
.liaison-page-head .schedule-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.25px;font-weight:800;color:#ac8652;}
.liaison-private-pill{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #cbdaf2;background:#f0f5ff;border-radius:30px;padding:8px 13px;color:#315584;font-size:11px;font-weight:700;}
.liaison-toolbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:8px 0 9px;padding:7px;background:#fff;border:1px solid #e1e7f0;border-radius:9px;}
.liaison-month-nav,.liaison-view-tabs,.liaison-toolbar-right,.liaison-filter,.liaison-zoom{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.liaison-month-nav{border:1px solid #e6ebf2;border-radius:6px;padding:3px;gap:8px;}
.liaison-month-nav strong{min-width:115px;text-align:center;font-weight:750;}
.liaison-toolbar button,.liaison-options button{border:1px solid #dce5ef;border-radius:6px;padding:7px 9px;color:#294369;background:#fff;font-size:11px;font-weight:650;}
.liaison-toolbar button:hover,.liaison-options button:hover{background:#eef4fa;}
.liaison-month-nav button:last-child{color:#8b621f;background:#fff7e9;border-color:#e6c79c;}
.liaison-view-tabs button{border:0;}
.liaison-view-tabs .selected,.liaison-filter .chosen,.liaison-zoom .chosen{background:#172a47;color:#fff;border-color:#172a47;}
.liaison-view-tabs .selected:hover,.liaison-filter .chosen:hover{background:#172a47;}
.liaison-toolbar-right{margin-left:auto;}
.liaison-options{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 8px;}
.liaison-zoom span{color:#8191a5;font-size:10px;}
.liaison-zoom b{padding:0 3px;font-size:12px;}
.liaison-grid-wrap{border:1px solid #d9e2ef;border-radius:8px;overflow:auto;max-height:calc(100vh - 260px);min-height:470px;background:#fff;overscroll-behavior-y:auto;}
.liaison-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;table-layout:fixed;}
.liaison-grid th,.liaison-grid td{padding:0;border-right:1px solid #d2dce9;border-bottom:1px solid #c8d3df;box-sizing:border-box;}
.liaison-grid thead th{position:sticky;z-index:7;}
.liaison-grid thead tr:first-child th{top:0;height:37px;}
.liaison-grid thead tr:nth-child(2) th{top:37px;height:31px;}
.liaison-date-head{position:sticky!important;left:0;top:0!important;z-index:11!important;background:#14243e;color:#fff;min-width:93px;width:93px;letter-spacing:.3px;}
.liaison-venue-head{text-align:center;font-size:11px;padding:8px 3px!important;font-weight:780;white-space:nowrap;}
.liaison-room-head{background:#e9eff6;color:#3d4d65;font-weight:750;text-align:center;font-size:10px;white-space:nowrap;}
.liaison-room-head button{display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid #b5c5d9;background:#fff;border-radius:4px;margin-left:6px;font-size:11px;color:#365675;}
.liaison-group-start{border-left:2px solid #15263b!important;}
.liaison-date-cell{width:93px;min-width:93px;padding:7px 9px!important;position:sticky;left:0;z-index:5;background:#f3f6fa;text-align:left;vertical-align:top;cursor:pointer;}
.liaison-date-cell strong{display:block;font-size:12px;color:#182940;}
.liaison-date-cell small{display:block;font-size:11px;color:#71849e;margin-top:3px;}
.liaison-pto-note{display:block;max-width:88px;font-size:9px;color:#8d6477;background:#fcf0f3;padding:3px 4px;margin-top:6px;border-radius:3px;font-weight:700;overflow-wrap:anywhere;}
.liaison-grid-cell{position:relative;min-width:calc(158px * var(--liaison-zoom));width:calc(158px * var(--liaison-zoom));height:66px;vertical-align:top;background:#fff;}
.liaison-grid-cell.liaison-unbooked{background:#a7b1bf;}
.liaison-grid-cell.liaison-collapsed{width:30px;min-width:30px;max-width:30px;}
.liaison-collapsed-date{display:grid;place-items:center;width:100%;min-height:66px;border:0;background:transparent;color:#8993a3;font-size:12px;}
.liaison-collapsed-date.has-event{color:#2a608a;font-size:16px;}
.liaison-collapsed-date:hover,.liaison-collapsed-date:focus-visible{background:#d6e8f8;}
.liaison-empty{min-height:66px;}
.liaison-cell-inside{position:relative;min-height:66px;display:flex;flex-direction:column;gap:5px;padding:9px 5px 7px;background:#fff;}
.liaison-artist{display:block;text-align:left;border:0;background:transparent;padding:0 10px 0 2px;min-height:16px;line-height:1.25;font-size:calc(12px * var(--liaison-zoom));font-weight:800;color:#192945;white-space:normal;overflow-wrap:anywhere;}
.liaison-artist:hover,.liaison-artist:focus-visible{text-decoration:underline;text-decoration-color:#88a3c5;}
.liaison-inline-row{display:flex;align-items:center;gap:3px;min-width:0;}
.liaison-person-icon{font-size:12px;color:#927347;line-height:1;}
.liaison-inline-select{appearance:auto;max-width:100%;min-width:0;width:100%;border:1px solid #f2dec4;background:#fff4e3;border-radius:5px;color:#364563;padding:3px 3px;font-size:calc(12px * var(--liaison-zoom))!important;font-weight:750;line-height:1.3;}
.liaison-inline-select:focus{outline:2px solid #7598cd;}
.liaison-note-corner{position:absolute;top:0;right:0;border-style:solid;border-width:0 15px 15px 0;border-color:transparent #ea9630 transparent transparent;pointer-events:none;}
.liaison-mismatch{position:absolute;top:1px;right:16px;color:#b67925;font-weight:950;font-size:12px;z-index:1;}
.liaison-hover-note{display:none;position:absolute;z-index:14;bottom:calc(100% - 1px);left:4px;width:max-content;max-width:260px;min-width:135px;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 11px;color:#24344a;border:1px solid #d5c097;background:#fff9e9;border-radius:6px;box-shadow:0 4px 20px rgba(16,30,51,.18);line-height:1.5;}
.liaison-cell-inside.has-note:hover .liaison-hover-note,.liaison-cell-inside.has-note:focus-within .liaison-hover-note{display:block;}
.liaison-cell-history-control{position:absolute;bottom:0;right:1px;border:0;background:transparent;color:#9eacc0;font-size:11px;opacity:0;}
.liaison-cell-inside:hover .liaison-cell-history-control,.liaison-cell-history-control:focus-visible{opacity:1;}
.liaison-special-column{min-width:calc(160px * var(--liaison-zoom));}
.liaison-special-entry+ .liaison-special-entry{border-top:1px dashed #9baabb;}
.liaison-special-entry .liaison-cell-inside{min-height:63px;}
.liaison-fit .liaison-cell-inside,.liaison-fit .liaison-empty,.liaison-fit .liaison-collapsed-date{min-height:24px;padding-top:3px;padding-bottom:3px;}
.liaison-fit .liaison-grid-cell{height:28px;}
.liaison-fit .liaison-inline-select,.liaison-fit .liaison-artist{font-size:9px!important;}
.liaison-fit .liaison-cell-history-control{display:none;}
.liaison-footer{font-size:11px;color:#7486a0;margin-top:10px;line-height:1.5;}
.liaison-counts{background:#fff;border:1px solid #e0e6ef;border-radius:9px;padding:12px;margin-top:8px;}
.liaison-counts>p{margin:0 0 12px;color:#63738b;}
.liaison-counts-scroll{overflow-x:auto;}
.liaison-counts table{border-collapse:collapse;width:100%;min-width:720px;font-size:12px;}
.liaison-counts th,.liaison-counts td{border:1px solid #dce4eb;padding:8px 7px;text-align:center;}
.liaison-counts thead{background:#e6ecf5;}
.liaison-counts tbody th{text-align:left;font-weight:750;white-space:nowrap;}
.liaison-tally-total,.liaison-grand-total{background:#e9edf5;font-weight:850;color:#152d4b;}
.liaison-modal-screen{position:fixed;z-index:2500;inset:0;display:flex;justify-content:center;align-items:center;background:rgba(13,25,43,.53);padding:16px;}
.liaison-modal{background:#fff;border-radius:12px;width:min(520px,100%);max-height:92vh;overflow-y:auto;padding:21px;box-shadow:0 24px 80px rgba(9,22,44,.3);}
.liaison-cell-modal{width:min(590px,100%);}
.liaison-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border-bottom:1px solid #e6edf4;padding-bottom:13px;margin-bottom:16px;}
.liaison-modal-head h2{font-size:21px;margin:0;color:#182942;}
.liaison-modal-head small{font-size:10px;color:#8c9cad;}
.liaison-modal-head button{font-size:21px;border:0;background:#eff2f7;width:31px;height:31px;border-radius:6px;}
.liaison-modal label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#374b67;margin:12px 0;}
.liaison-modal :is(input,select,textarea){border:1px solid #cddaea;border-radius:6px;padding:10px;color:#1b2d49;background:#fff;width:100%;box-sizing:border-box;font-size:12px;}
.liaison-modal input[readonly]{background:#f3f6fa;color:#76869d;}
.liaison-modal-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin:16px 0 8px;}
.liaison-modal-actions button,.liaison-team-form button,.liaison-pto-form button{border:1px solid #cddaea;border-radius:6px;background:#fff;color:#233d60;font-weight:750;padding:10px 12px;}
.liaison-modal-actions button[type=submit],.liaison-team-form button,.liaison-pto-form button{background:#182b48;color:#fff;}
.liaison-team-form{display:flex;align-items:center;gap:8px;}
.liaison-team-form input{min-width:0;}
.liaison-staff-list{margin-top:12px;max-height:280px;overflow:auto;}
.liaison-staff-list>div{border-bottom:1px solid #e9edf3;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 0;font-size:12px;}
.liaison-staff-list button{border:1px solid #d5dee9;background:#fff;border-radius:5px;padding:4px 7px;color:#66758c;}
.liaison-history{border-top:1px solid #e6edf4;margin-top:16px;padding-top:12px;}
.liaison-history h3{font-size:12px;}
.liaison-history-row{background:#f8fafc;border:1px solid #e7ecf3;padding:8px;border-radius:6px;margin-bottom:7px;}
.liaison-history-row strong,.liaison-history-row small{display:inline-block;font-size:10px;margin-right:8px;}
.liaison-history-row small{color:#8190a3;}
.liaison-history-row p{font-size:10px;overflow-wrap:anywhere;line-height:1.4;color:#5c6f87;margin:5px 0 0;}
.liaison-history>button{border:1px solid #c6d3e2;border-radius:5px;background:#fff;color:#355679;padding:8px 10px;}
.schedule-liaison-visibility{display:inline-flex;align-items:center;gap:5px;color:#405673;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;}
.schedule-liaison-visibility input{accent-color:#294c7e;}
.schedule-cell:has(.schedule-liaison-footer){position:relative;}
.schedule-cell:has(.schedule-liaison-footer)>.schedule-cell-btn{padding-bottom:24px;}
.schedule-liaison-footer{display:block;position:absolute;bottom:3px;left:4px;right:4px;font-size:10px;font-weight:800;color:#525d8e;background:#e5e8f8;border-radius:3px;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.schedule-special-item>.schedule-liaison-footer{position:relative;left:auto;right:auto;bottom:auto;margin-top:3px;}
/* DJ calendar compact top bar: more room for actual calendar on desktop. */
.tao522-portal .tao522-heading{margin-bottom:9px;}
.tao522-portal .tao522-heading h1{margin-top:3px;margin-bottom:3px;}
.tao522-portal .tao522-summary{margin-bottom:5px;}
.tao522-portal .tao531-calendar-actions{margin-top:0;margin-bottom:6px;}
.tao522-portal .tao522-success{padding-top:7px;padding-bottom:7px;margin:5px 0 7px;}
@media(max-width:950px){
 .liaison-page-head h1{font-size:27px;}
 .liaison-grid-wrap{max-height:calc(100vh - 265px);}
 .liaison-page-head{margin-bottom:12px;}
 .liaison-toolbar-right{margin-left:0;}
 .liaison-inline-select{font-size:11px!important;}
}
@media(max-width:700px){
 .liaison-root .liaison-private-pill{display:none;}
 .liaison-toolbar,.liaison-options{gap:6px;}
 .liaison-page-head h1{font-size:25px;}
 .liaison-grid-wrap{max-height:65vh;min-height:380px;}
 .liaison-date-head,.liaison-date-cell{min-width:60px;width:60px;}
 .liaison-date-cell{padding:5px!important;}
 .liaison-pto-note{font-size:8px;max-width:60px;}
 .liaison-modal{padding:13px;}
}
@media print{
 .content:has(.liaison-root) {padding:0!important;}
 .liaison-root .liaison-toolbar,.liaison-root .liaison-options,.liaison-root .liaison-footer,
 .liaison-root .liaison-private-pill{display:none!important;}
 .liaison-grid-wrap{max-height:none;overflow:visible;border:0;}
 .liaison-grid th{position:static!important;}
 .liaison-grid-cell{min-width:110px;width:110px;}
 .liaison-cell-history-control,.liaison-mismatch{display:none;}
}


/* V5.10.25.1 - full Liaison Grid, compact management controls, navbar polish */
.liaison-root{width:100%;max-width:none;min-width:0;}
.liaison-grid-wrap{min-height:540px;overflow:auto;max-height:calc(100vh - 250px);}
.liaison-grid{min-width:100%;width:max-content;}
.liaison-grid-cell{vertical-align:top;}
.liaison-cell-inside .liaison-artist,.liaison-cell-inside .liaison-inline-select{font-size:calc(12px * var(--liaison-zoom,1))!important;}
.liaison-grid thead th{white-space:nowrap;}
.schedule-root .schedule-heading{margin-bottom:9px!important;}
.schedule-root .schedule-heading h1{margin-bottom:0!important;}
.schedule-legend-memo{margin:14px 0 0;color:#75879c;font-size:11px;line-height:1.45;}
/* Badge is right-aligned with Notifications rather than overlapping its bell. */
.app-shell .sidebar .side-nav.schedule-sidebar-notifications{position:relative!important;display:flex!important;gap:10px!important;align-items:center!important;}
.app-shell .sidebar .side-nav.schedule-sidebar-notifications>.tao-notification-badge{
  display:inline-flex!important;position:static!important;top:auto!important;right:auto!important;
  transform:none!important;box-sizing:border-box!important;margin-left:auto!important;
  align-items:center!important;justify-content:center!important;
  min-width:18px!important;width:auto!important;height:18px!important;
  padding:0 5px!important;line-height:18px!important;font-size:10px!important;
  border-radius:999px!important;flex:0 0 auto!important;
}
@media(min-width:761px){
 .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications>.tao-notification-badge{
    position:absolute!important;left:auto!important;right:2px!important;top:1px!important;
    min-width:15px!important;height:15px!important;line-height:15px!important;font-size:9px!important;padding:0 3px!important;
 }
}
/* Notification Center - readable, tightly stacked alerts. */
.schedule-notice-panel{width:min(390px,96vw)!important;}
.schedule-notice-panel .schedule-history-head{padding:11px 14px!important;}
.schedule-notice-panel .schedule-history-head strong{font-size:16px!important;}
.schedule-notice-panel .schedule-history-head small{font-size:10px!important;}
.schedule-notice-toggle-tests{margin:8px 12px 10px auto;border:1px solid #d9e2ed;border-radius:6px;padding:5px 8px;background:#f6f8fc;color:#64748b;font-size:10px;cursor:pointer;}
.schedule-notice-panel .schedule-notice-test-tools{margin:0 12px 9px;padding:9px;gap:5px;}
.schedule-notice-panel .schedule-notice-test-tools>small{font-size:9px;}
.schedule-notice-panel .schedule-notice-list{padding:0 11px 8px;}
.schedule-notice-panel .schedule-notice-list-heading{margin:0 0 7px;}
.schedule-notice-panel .schedule-notice-event{padding:9px 10px!important;border-radius:6px!important;margin:0 0 6px!important;}
.schedule-notice-panel .schedule-notice-event-top strong{font-size:11px;line-height:1.3;}
.schedule-notice-panel .schedule-notice-event-top span{font-size:8px;}
.schedule-notice-panel .schedule-notice-event p{margin:4px 0!important;font-size:10px!important;line-height:1.38!important;}
.schedule-notice-panel .schedule-notice-event small{font-size:9px!important;}
.schedule-notice-panel .schedule-notice-event-actions{margin-top:6px!important;gap:6px;}
.schedule-notice-panel .schedule-notice-event-actions button{font-size:10px!important;padding:4px 6px!important;}
.schedule-notice-panel .schedule-history-foot{padding:6px 12px;font-size:9px;}
/* DJ Roster edit + guarded delete */
.tao-roster-actions{white-space:nowrap;}
.tao-roster-actions button{border:1px solid #cbd8e7;background:#fff;color:#28466b;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:700;margin-right:5px;cursor:pointer;}
.tao-roster-actions button.danger{color:#a63242;border-color:#e4b5bc;}
.tao-roster-modal-backdrop{position:fixed;z-index:2700;inset:0;background:rgba(13,27,48,.48);display:flex;align-items:center;justify-content:center;padding:18px;}
.tao-roster-modal{background:#fff;border-radius:11px;padding:22px;width:min(460px,100%);box-shadow:0 20px 60px rgba(8,20,40,.3);color:#1d304d;}
.tao-roster-modal h2{font-size:20px;margin:0 0 12px;}
.tao-roster-modal p{font-size:12px;line-height:1.5;color:#566881;}
.tao-roster-modal label{display:block;font-size:12px;font-weight:750;margin:10px 0;}
.tao-roster-modal input{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:10px;border:1px solid #cbd7e7;border-radius:6px;font-size:13px;}
.tao-roster-explain{background:#fff7e9;padding:9px;border-radius:6px;border:1px solid #f1dfbe;}
.tao-roster-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}
.tao-roster-modal-actions button{padding:9px 13px;background:#f7f9fc;color:#28456a;border:1px solid #c9d5e4;border-radius:6px;font-weight:750;cursor:pointer;}
.tao-roster-modal-actions button[type=submit]{background:#193552;color:#fff;}
.tao-roster-modal-actions button.danger{background:#a93242;color:#fff;border-color:#a93242;}
.tao-roster-modal-actions button:disabled{opacity:.5;cursor:not-allowed;}

/* V5.10.25.2: one compact main-stage column per venue, paired names, spreadsheet navigation. */
.liaison-grid-wrap{min-height:480px;max-height:calc(100vh - 250px);overscroll-behavior-y:auto;}
.liaison-grid{width:max-content;min-width:100%;table-layout:fixed;}
.liaison-grid thead tr:first-child th{top:0;height:40px;}
.liaison-grid .liaison-date-head{top:0!important;}
.liaison-venue-head{position:sticky;top:0;min-width:calc(172px * var(--liaison-zoom,1));width:calc(172px * var(--liaison-zoom,1));padding:5px 7px!important;vertical-align:middle;line-height:1.35;}
.liaison-venue-head .liaison-venue-title{display:inline;white-space:normal;}
.liaison-venue-collapse{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:7px;padding:0;vertical-align:middle;background:#f6f8fb;border:1px solid rgba(21,42,70,.24);border-radius:3px;color:#324963;font-size:12px;font-weight:800;cursor:pointer;}
.liaison-venue-head.is-collapsed{min-width:31px;width:31px;max-width:31px;}
.liaison-venue-head.is-collapsed .liaison-venue-title{display:none;}
.liaison-venue-head.is-collapsed .liaison-venue-collapse{margin:0;}
.liaison-grid .liaison-grid-cell{min-width:calc(172px * var(--liaison-zoom,1));width:calc(172px * var(--liaison-zoom,1));height:43px;vertical-align:middle;cursor:cell;}
.liaison-grid .liaison-grid-cell.liaison-collapsed{min-width:31px;width:31px;max-width:31px;}
.liaison-grid .liaison-grid-cell:focus-visible,.liaison-grid .liaison-grid-cell.liaison-selected{outline:2px solid #6d99d4;outline-offset:-2px;position:relative;z-index:4;}
.liaison-grid .liaison-grid-cell:focus-visible{z-index:6;}
.liaison-grid .liaison-date-cell{padding:5px 8px!important;vertical-align:middle;min-height:43px;}
.liaison-grid .liaison-date-cell strong{font-size:11px;}
.liaison-grid .liaison-date-cell small{margin-top:1px;font-size:10px;}
.liaison-grid .liaison-date-cell .liaison-pto-note{margin-top:3px;}
.liaison-grid .liaison-cell-inside{display:block;min-height:41px;padding:2px;background:#fff;position:relative;}
.liaison-grid .liaison-empty{min-height:42px;}
.liaison-grid .liaison-collapsed-date{min-height:42px;}
.liaison-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;min-height:37px;}
.liaison-pair-half{position:relative;min-width:0;display:flex;align-items:center;}
.liaison-pair-headliner{border-right:1px dashed #dae2ed;}
.liaison-pair-value{display:block;width:100%;min-width:0;max-width:100%;padding:4px 4px;border:0;border-radius:2px;background:transparent;color:#172946;font-size:calc(12px * var(--liaison-zoom,1));font-weight:750;line-height:1.25;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:text;}
.liaison-pair-value:hover,.liaison-pair-value:focus-visible{background:#e9f1fb;outline:1px solid #9eb7d7;outline-offset:-1px;}
.liaison-pair-staff .liaison-pair-value{color:#2f5765;}
.liaison-pair-staff .liaison-pair-value.liaison-is-na{font-weight:650;color:#8d99aa;}
.liaison-inline-edit-wrap{position:relative;width:100%;min-width:0;}
.liaison-grid .liaison-live-input{width:100%;min-width:0;box-sizing:border-box;background:#fff;outline:2px solid #5285c4;border:0;border-radius:2px;padding:5px 3px;font-size:calc(12px * var(--liaison-zoom,1));font-weight:700;color:#162945;}
.liaison-choices{position:absolute;top:100%;left:0;min-width:190px;max-height:195px;overflow-y:auto;background:#fff;border:1px solid #b7c8df;box-shadow:0 10px 28px #182e4940;z-index:32;border-radius:4px;padding:3px;}
.liaison-choice{width:100%;display:block;border:0;background:#fff;padding:6px 7px;border-radius:3px;font-size:12px;color:#2a3d58;text-align:left;cursor:pointer;white-space:normal;}
.liaison-choice:hover,.liaison-choice:focus-visible,.liaison-choice.active{background:#e6f0fa;}
.liaison-grid .liaison-cell-history-control{display:flex;position:absolute;right:0;bottom:0;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:1px solid #d2deeb;border-radius:4px;background:#fff;color:#496d90;font-size:11px;opacity:0;cursor:pointer;z-index:5;}
.liaison-grid .liaison-cell-inside:hover .liaison-cell-history-control,.liaison-grid-cell:focus-within .liaison-cell-history-control{opacity:1;}
.liaison-grid .liaison-note-corner{z-index:3;border-width:0 12px 12px 0;}
.liaison-grid .liaison-mismatch{z-index:4;right:13px;font-size:10px;}
.liaison-grid .liaison-special-column{min-width:calc(195px * var(--liaison-zoom,1));width:calc(195px * var(--liaison-zoom,1));}
.liaison-grid .liaison-special-entry+.liaison-special-entry{border-top:1px dashed #9caec5;}
.liaison-grid .liaison-special-entry .liaison-cell-inside{min-height:40px;}
.liaison-fit .liaison-grid-cell{height:27px;}
.liaison-fit .liaison-pair{min-height:25px;}
.liaison-fit .liaison-cell-inside,.liaison-fit .liaison-empty,.liaison-fit .liaison-collapsed-date{min-height:25px;}
.liaison-fit .liaison-pair-value{font-size:9px!important;padding:2px 3px;}
.liaison-fit .liaison-cell-history-control{display:none;}
@media(max-width:700px){
 .liaison-grid .liaison-grid-cell{min-width:calc(145px * var(--liaison-zoom,1));width:calc(145px * var(--liaison-zoom,1));}
 .liaison-venue-head{min-width:calc(145px * var(--liaison-zoom,1));width:calc(145px * var(--liaison-zoom,1));}
 .liaison-pair-value{font-size:11px;}
}
/* V5.10.25.2: the familiar hover-collapse sidebar works on ALL pages, not
   only while Master Set Times is mounted. No page/route JavaScript changed. */
@media(min-width:761px){
 .app-shell{grid-template-columns:66px minmax(0,1fr)!important;}
 .app-shell .sidebar{width:66px!important;min-width:66px!important;padding:24px 8px 16px!important;position:sticky;top:0;z-index:120;overflow:hidden;white-space:nowrap;transition:width 160ms ease,box-shadow 160ms ease;}
 .app-shell .sidebar:hover,.app-shell .sidebar:focus-within{width:205px!important;min-width:205px!important;overflow:visible;box-shadow:8px 0 22px rgba(13,21,38,.22);}
 .app-shell .sidebar-brand{width:32px;height:45px;overflow:hidden;margin:1px 7px 63px!important;font-size:0;letter-spacing:0;}
 .app-shell .sidebar-brand::before{content:'T';display:grid;place-items:center;width:31px;height:31px;border:1px solid #c5a678;border-radius:7px;color:#e6c68d;font:800 18px Manrope,sans-serif;}
 .app-shell .sidebar-brand small{display:none;}
 .app-shell .sidebar:hover .sidebar-brand,.app-shell .sidebar:focus-within .sidebar-brand{font-size:20px;letter-spacing:-1px;width:auto;height:auto;overflow:visible;margin:2px 10px 76px!important;}
 .app-shell .sidebar:hover .sidebar-brand::before,.app-shell .sidebar:focus-within .sidebar-brand::before{display:none;}
 .app-shell .sidebar:hover .sidebar-brand small,.app-shell .sidebar:focus-within .sidebar-brand small{display:block;}
 .app-shell .side-section{visibility:hidden;}
 .app-shell .sidebar:hover .side-section,.app-shell .sidebar:focus-within .side-section{visibility:visible;}
 .app-shell .sidebar .side-nav{font-size:19px!important;padding:11px 9px!important;width:48px!important;justify-content:flex-start;gap:11px;overflow:hidden;position:relative;box-sizing:border-box;}
 .app-shell .sidebar .side-nav span:not(.tao-notification-badge){display:none;}
 .app-shell .sidebar:hover .side-nav,.app-shell .sidebar:focus-within .side-nav{width:100%!important;font-size:13px!important;padding:13px 11px!important;overflow:visible;}
 .app-shell .sidebar:hover .side-nav span:not(.tao-notification-badge),.app-shell .sidebar:focus-within .side-nav span:not(.tao-notification-badge){display:inline;}
 .app-shell .sidebar-bottom{padding:19px 1px 0!important;gap:8px;}
 .app-shell .sidebar-bottom>div:nth-child(2),.app-shell .sidebar-bottom .logout{display:none;}
 .app-shell .sidebar:hover .sidebar-bottom>div:nth-child(2),.app-shell .sidebar:hover .sidebar-bottom .logout,.app-shell .sidebar:focus-within .sidebar-bottom>div:nth-child(2),.app-shell .sidebar:focus-within .sidebar-bottom .logout{display:block;}
 .app-shell .sidebar .side-nav .sidebar-nav-icon{display:block!important;width:18px!important;height:18px!important;min-width:18px!important;flex:0 0 18px!important;}
 .app-shell .sidebar .side-nav.schedule-sidebar-notifications>.tao-notification-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;min-width:18px!important;height:18px!important;padding:0 5px!important;border-radius:9px!important;line-height:1!important;font-size:10px!important;text-align:center!important;margin-left:auto!important;flex-shrink:0!important;position:static!important;transform:none!important;}
 .app-shell .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications>.tao-notification-badge,
 .app-shell:has(.schedule-root) .sidebar:not(:hover):not(:focus-within) .side-nav.schedule-sidebar-notifications>.tao-notification-badge{position:absolute!important;right:0!important;left:auto!important;top:0!important;min-width:15px!important;width:auto!important;height:15px!important;padding:0 3px!important;font-size:9px!important;line-height:1!important;}
}


/* V5.10.25.3 — Two independently editable halves in every liaison date cell,
   shorter rows, centered collapse controls, and a full-width monthly grid. */
.app-shell .main:has(.liaison-root){min-width:0;max-width:none;width:100%;}
.app-shell .content:has(.liaison-root){width:100%;max-width:none!important;margin:0!important;padding:10px 12px 25px!important;box-sizing:border-box;}
.liaison-root{width:100%!important;max-width:none!important;}
.liaison-page-head{margin:0 0 10px!important;}
.liaison-page-head h1{font-size:29px!important;margin:2px 0 3px!important;}
.liaison-toolbar{margin:5px 0 6px!important;padding:5px 7px!important;}
.liaison-options{margin:0 0 5px!important;}
.liaison-grid-wrap{min-height:550px;max-height:calc(100vh - 218px);width:100%;}
.liaison-grid{min-width:100%!important;width:max-content;table-layout:fixed;}
.liaison-grid thead tr:first-child th{height:48px!important;}
.liaison-venue-head{height:48px!important;text-align:center!important;padding:4px 6px!important;white-space:normal!important;}
.liaison-venue-head .liaison-venue-title{display:block!important;width:100%;text-align:center;line-height:1.15;font-weight:800;}
.liaison-venue-head .liaison-venue-collapse{display:flex!important;justify-content:center;align-items:center;margin:4px auto 0!important;vertical-align:unset;}
.liaison-venue-head.is-collapsed .liaison-venue-collapse{margin:0 auto!important;}
.liaison-grid .liaison-grid-cell{height:37px;min-height:37px;vertical-align:middle;}
.liaison-grid .liaison-cell-inside{min-height:35px;padding:1px 2px!important;box-sizing:border-box;background:transparent;}
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-cell-inside{background:transparent!important;}
.liaison-pair{min-height:33px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.liaison-pair-half{min-width:0;align-self:stretch;display:flex;align-items:stretch;}
.liaison-pair-headliner{border-right:1px dashed rgba(42,67,102,.3);}
.liaison-pair-value{height:100%;min-height:33px;box-sizing:border-box;font-weight:700;display:flex;align-items:center;white-space:normal;overflow-wrap:anywhere;}
.liaison-grid .liaison-grid-cell.liaison-selected{outline:none!important;}
.liaison-grid .liaison-pair-value.liaison-half-selected{outline:2px solid #397cc9!important;outline-offset:-2px;background:#e8f1fc!important;position:relative;z-index:2;}
.liaison-pair-value.liaison-placeholder,.liaison-pair-value.liaison-is-na{color:#64758e!important;font-weight:600;}
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-pair-value{color:#334966;}
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-pair-value.liaison-placeholder,
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-pair-value.liaison-is-na{color:#45546a!important;}
.liaison-grid .liaison-grid-cell.liaison-collapsed,.liaison-grid .liaison-grid-cell.liaison-collapsed .liaison-collapsed-date{height:37px;min-height:37px;}
.liaison-grid .liaison-date-cell{padding:4px 7px!important;height:37px;}
.liaison-grid .liaison-date-cell small{margin-top:0;}
.liaison-special-placeholder .liaison-pair-half{font-size:10px;font-weight:600;color:#687991;padding:5px 4px;}
.liaison-pto-range{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.liaison-pto-range label{display:block;min-width:0;}
.liaison-pto-range input{width:100%;box-sizing:border-box;}
.liaison-counts-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;}
.liaison-counts-heading p{margin:0;}
.liaison-counts-heading label{display:flex;align-items:center;white-space:nowrap;font-size:11px;color:#466078;gap:5px;}
.liaison-person-cell{min-width:180px;}
.liaison-person-row{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.liaison-person-actions{display:flex;align-items:center;gap:2px;}
.liaison-person-actions button{font-size:11px;background:transparent;border:1px solid transparent;border-radius:4px;color:#6b7e94;padding:2px 5px;cursor:pointer;}
.liaison-person-actions button:hover{background:#e6effb;border-color:#b6c9df;}
.liaison-rename-form{display:flex;gap:4px;align-items:center;max-width:100%;}
.liaison-rename-form input{min-width:0;width:110px;border:1px solid #b6c5da;border-radius:4px;padding:4px;font-size:11px;}
.liaison-rename-form button{background:#fff;border:1px solid #ccd9e7;color:#25486b;border-radius:4px;padding:3px 5px;cursor:pointer;font-size:10px;}
.liaison-team-actions{display:flex;align-items:center;gap:5px;}
@media(max-width:700px){
 .app-shell .content:has(.liaison-root){padding:7px 6px 18px!important;}
 .liaison-pto-range{grid-template-columns:1fr;}
 .liaison-counts-heading{flex-wrap:wrap;}
 .liaison-grid-wrap{min-height:380px;max-height:68vh;}
 .liaison-page-head h1{font-size:25px!important;}
}
@media print{
 .liaison-root .liaison-pair-value.liaison-half-selected{background:transparent!important;outline:none!important;}
 .liaison-grid-wrap{max-height:none!important;overflow:visible!important;}
}

/* TAO Talent V5.10.25.4 — full-half selection, consistent edited-name fonts,
   and quieter placeholder labels on normally closed (gray) liaison cells. */
.liaison-grid .liaison-grid-cell .liaison-cell-inside{padding:0!important;height:100%;min-height:37px;}
.liaison-grid .liaison-grid-cell .liaison-pair{min-height:37px;height:100%;}
.liaison-grid .liaison-grid-cell .liaison-pair-half{min-height:37px;align-items:stretch;box-sizing:border-box;}
.liaison-grid .liaison-grid-cell .liaison-pair-half.liaison-half-selected{
  position:relative;z-index:2;
  background:#dcebf9!important;
  box-shadow:inset 0 0 0 2px #437dc3!important;
}
.liaison-grid .liaison-grid-cell .liaison-pair-value.liaison-half-selected{
  background:transparent!important;outline:0!important;box-shadow:none!important;
}
.liaison-grid .liaison-grid-cell .liaison-pair-value,
.liaison-grid .liaison-grid-cell .liaison-live-input{
  font-family:inherit!important;
  font-size:calc(12px * var(--liaison-zoom,1))!important;
  font-weight:700!important;
  line-height:1.25!important;
  letter-spacing:normal!important;
}
.liaison-grid .liaison-grid-cell .liaison-inline-edit-wrap{height:100%;display:flex;align-items:stretch;min-height:37px;}
.liaison-grid .liaison-grid-cell .liaison-live-input{
  height:100%;min-height:37px;box-sizing:border-box;
  border:0!important;outline:0!important;border-radius:0;
  background:transparent!important;color:#172946!important;padding:4px!important;
}
.liaison-grid .liaison-grid-cell .liaison-pair-half.liaison-half-selected:has(.liaison-live-input){z-index:12;}
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-pair-value.liaison-placeholder,
.liaison-grid .liaison-grid-cell.liaison-unbooked .liaison-pair-value.liaison-is-na:not(.liaison-explicit-na),
.liaison-grid .liaison-grid-cell .liaison-pair-value.liaison-placeholder{
  font-size:calc(10.5px * var(--liaison-zoom,1))!important;
  font-weight:500!important;color:#66758a!important;
}
.liaison-grid .liaison-grid-cell .liaison-pair-value.liaison-explicit-na{
  font-weight:650!important;color:#42566f!important;
}
.liaison-choices{max-height:min(355px,50vh);min-width:210px;}
.liaison-choice.liaison-guest-choice{color:#165b7d;border-top:1px solid #e4ebf4;margin-top:2px;font-style:italic;}
.liaison-counts-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.liaison-counts-add{background:#fff;border:1px solid #bfcfe2;color:#173b60;border-radius:5px;padding:7px 10px;font-size:11px;font-weight:750;cursor:pointer;}
.liaison-counts-add:hover{background:#eaf3ff;border-color:#7ba5d3;}
/* Hides only the visible time chips in the monthly Master Grid. The saved
   schedule data, editor, offer details and print/PDF are left unchanged. */
.schedule-root.schedule-hide-set-times .schedule-grid .schedule-time-stack{display:none!important;}
@media(max-width:700px){
 .liaison-counts-actions{width:100%;justify-content:space-between;}
 .liaison-choices{max-height:min(270px,48vh);}
}

/* V5.10.25.5: compact inline saved status in the liaison page heading. */
.liaison-page-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin:0 0 4px!important;}
.liaison-page-head h1{margin:1px 0!important;}
.liaison-page-head p{margin:1px 0 0!important;}
.liaison-header-right{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;max-width:50%;}
.liaison-save-inline{display:inline-flex;align-items:center;background:#eaf6ee;color:#276344;border:1px solid #b9ddc4;padding:4px 8px;border-radius:5px;font-size:10px;font-weight:600;line-height:1.3;}
.liaison-root>.liaison-toolbar{margin-top:3px!important;}
@media(max-width:850px){.liaison-header-right{max-width:55%;}.liaison-save-inline{max-width:100%;}}
@media(max-width:600px){.liaison-page-head{flex-wrap:wrap!important;}.liaison-header-right{max-width:100%;justify-content:flex-start;}}

/* V5.10.25.6 — make staff rows easy to scan without disturbing totals. */
.liaison-counts tbody tr:not(.liaison-grand-total):nth-child(even) > th,
.liaison-counts tbody tr:not(.liaison-grand-total):nth-child(even) > td{background:#f1f5fa;}
.liaison-choices .liaison-choice.active{background:#d9e9fc!important;color:#123c6c!important;font-weight:800;}

/* V5.10.25.6 — optional Excel-like NAME shortcuts on normally open white cells.
   Does not modify the Quick Editor, database or room/set-time presets. */
.schedule-root .schedule-grid .schedule-fast-layout{position:relative;display:flex;flex-direction:column;width:100%;min-height:calc(79px * var(--grid-zoom,1));box-sizing:border-box;}
.schedule-root .schedule-grid .schedule-fast-half{position:relative;flex:1 1 0;min-height:calc(38px * var(--grid-zoom,1));display:flex;min-width:0;align-items:stretch;}
.schedule-root .schedule-grid .schedule-fast-split .schedule-fast-headliner{border-bottom:1px dashed #aebdd0;}
.schedule-root .schedule-grid .schedule-fast-half.is-selected{outline:2px solid #458bd4;outline-offset:-2px;background:rgba(208,228,252,.55);z-index:2;}
.schedule-root .schedule-grid .schedule-fast-half-btn{border:0;background:transparent;color:#173451;cursor:text;padding:calc(5px * var(--grid-zoom,1)) calc(6px * var(--grid-zoom,1));min-width:0;width:100%;display:flex;align-items:center;gap:4px;text-align:left;font:inherit;font-size:calc(10px * var(--grid-zoom,1));font-weight:700;}
.schedule-root .schedule-grid .schedule-fast-half-btn:hover{background:rgba(227,241,255,.65);}
.schedule-root .schedule-grid .schedule-fast-half-btn:focus-visible{outline:2px solid #458bd4;outline-offset:-2px;}
.schedule-root .schedule-grid .schedule-fast-half-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;line-height:1.25;}
.schedule-root .schedule-grid .schedule-fast-half-name.schedule-fast-placeholder{color:#75869d;font-size:calc(10px * var(--grid-zoom,1));font-weight:550;}
.schedule-root .schedule-grid .schedule-fast-half-btn .schedule-time-stack{flex:0 0 auto;max-width:46%;display:flex;align-items:flex-end;gap:2px;}
.schedule-root .schedule-grid .schedule-fast-half-btn .schedule-time-pill{font-size:calc(8px * var(--grid-zoom,1));padding:1px 3px;white-space:nowrap;}
.schedule-root .schedule-grid .schedule-fast-open-editor{position:absolute;right:2px;top:2px;z-index:3;font-size:10px;color:#5a7090;opacity:0;border:1px solid #a8bad0;background:#fff;border-radius:4px;padding:1px 3px;cursor:pointer;}
.schedule-root .schedule-grid .schedule-fast-layout:hover .schedule-fast-open-editor,.schedule-root .schedule-grid .schedule-fast-open-editor:focus-visible{opacity:1;}
.schedule-root .schedule-grid .schedule-fast-edit-wrap{position:relative;width:100%;display:flex;min-width:0;padding:2px;align-items:center;box-sizing:border-box;z-index:10;}
.schedule-root .schedule-grid .schedule-fast-input{width:100%;box-sizing:border-box;border:1px solid #417ec4;border-radius:4px;background:white;color:#142844;font-weight:700;font-size:12px;padding:5px;min-width:0;}
.schedule-root .schedule-grid .schedule-fast-menu{position:absolute;left:0;top:100%;min-width:210px;max-height:min(280px,42vh);overflow-y:auto;z-index:35;background:white;border:1px solid #a7bcda;border-radius:6px;box-shadow:0 8px 20px #112d4850;padding:3px;}
.schedule-root .schedule-grid .schedule-fast-suggestion{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:10px;padding:7px;border:0;background:white;color:#1a395c;font-size:12px;cursor:pointer;}
.schedule-root .schedule-grid .schedule-fast-suggestion.is-selected,.schedule-root .schedule-grid .schedule-fast-suggestion:hover{background:#deedff;color:#133c6c;}
.schedule-root .schedule-grid .schedule-fast-suggestion small{font-size:9px;color:#647991;}
.schedule-fast-error{margin:5px 0;background:#fff0ed;border:1px solid #efa49b;color:#9d3b32;padding:7px 12px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;}
.schedule-fast-error button{background:white;border:1px solid #dba39b;border-radius:4px;color:#9d3b32;cursor:pointer;}
.schedule-fast-saving{font-size:11px;color:#526782;padding:5px 12px;}
.schedule-root.schedule-hide-set-times .schedule-fast-layout .schedule-time-stack{display:none!important;}

/* Keep the colored background strictly behind the NAME, never its entire half. */
.schedule-root .schedule-grid .schedule-fast-name-slot{flex:1 1 auto;min-width:0;line-height:1.25;overflow-wrap:anywhere;}
.schedule-root .schedule-grid .schedule-fast-half-name{display:inline;flex:none;max-width:100%;overflow-wrap:anywhere;}
.schedule-root .schedule-grid .schedule-fast-half-name.schedule-name-highlight{padding:1px 3px;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.schedule-root .schedule-grid .schedule-fast-support .schedule-time-status-assigned .schedule-time-pill{background:#b9ebc8!important;color:#15522a!important;}
.schedule-root .schedule-grid .schedule-fast-support .schedule-time-status-pending .schedule-time-pill{background:#ffdf70!important;color:#654700!important;}
.schedule-root .schedule-grid .schedule-fast-support .schedule-time-status-declined .schedule-time-pill{background:#ffbb83!important;color:#74300a!important;}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid .schedule-cell .schedule-fast-half-btn .schedule-time-pill{font-size:clamp(7px,calc(9px * var(--grid-zoom,1)),11px)!important;padding:1px 3px!important;line-height:1.3!important;}

/* Quick Editor stays discoverable with touch and keyboard access. */
.schedule-root .schedule-grid .schedule-fast-open-editor{opacity:.6;}
@media (hover:none){.schedule-root .schedule-grid .schedule-fast-open-editor{opacity:1;min-width:21px;min-height:21px;}}

/* V5.10.25.7 — one selection per split half; preserve the existing dotted
   separator. Do not use the legacy full-TD selection/hover for shortcut cells. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell-has-fast:not(.schedule-cell-is-editing),
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell-has-fast:not(.schedule-cell-is-editing):hover,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody td.schedule-cell-has-fast:not(.schedule-cell-is-editing):focus-within{
  background:#fff!important;box-shadow:none!important;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody tr:nth-child(even) td.schedule-cell-has-fast:not(.schedule-cell-is-editing),
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody tr:nth-child(even) td.schedule-cell-has-fast:not(.schedule-cell-is-editing):hover,
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid tbody tr:nth-child(even) td.schedule-cell-has-fast:not(.schedule-cell-is-editing):focus-within{
  background:#fafbfe!important;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast{position:relative;padding:0!important;}
/* The table cell may be taller than the shortcut's original min-height.
   An absolute inset lets the bottom Support DJ half fill the remaining space. */
.schedule-root .schedule-grid td.schedule-cell-has-fast::before{
  content:"";display:block;height:calc(79px * var(--grid-zoom,1));pointer-events:none;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-layout{
  position:absolute;inset:0;height:100%;min-height:0;box-sizing:border-box;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast:has(.schedule-liaison-footer) .schedule-fast-layout{bottom:24px;height:auto;}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-half{
  flex:1 1 50%;min-height:0;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-half-btn{
  height:100%;box-sizing:border-box;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-half.is-selected{
  outline:none!important;box-shadow:inset 0 0 0 2px #458bd4!important;
  background:#dcecff!important;z-index:2;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-half-btn:focus-visible{
  outline:0!important;
}
/* Pop the active dropdown ABOVE adjacent cells/edit pencils. It remains fully
   opaque so controls underneath never look like options in the list. */
.schedule-root .schedule-grid td.schedule-cell-has-fast:has(.schedule-fast-edit-wrap){z-index:90!important;overflow:visible!important;}
.schedule-root .schedule-grid .schedule-fast-edit-wrap{z-index:110!important;}
.schedule-root .schedule-grid .schedule-fast-menu{
  z-index:120!important;background:#fff!important;opacity:1!important;
  isolation:isolate;box-shadow:0 14px 28px #182d4c55;
}
.schedule-root .schedule-grid .schedule-fast-menu .schedule-fast-suggestion{
  background:#fff!important;position:relative;z-index:1;
}
.schedule-root .schedule-grid .schedule-fast-menu .schedule-fast-suggestion.is-selected,
.schedule-root .schedule-grid .schedule-fast-menu .schedule-fast-suggestion:hover{
  background:#deedff!important;
}
.schedule-root .schedule-grid .schedule-fast-tao-suggestion{
  font-size:9px;color:#a97721;white-space:nowrap;
}

/* V5.10.25.7.1 — Honest TAO feed status and manual refresh inside both headliner menus. */
.schedule-root .schedule-tao-refresh-row{padding:7px 9px;border-top:1px solid #dce4ef;display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#f7f9fc;color:#64748b;font-size:10px;line-height:1.35;}
.schedule-root .schedule-tao-refresh-row button{font:inherit;font-weight:700;color:#254c7c;background:#fff;border:1px solid #bdcede;border-radius:5px;padding:4px 7px;cursor:pointer;}
.schedule-root .schedule-tao-refresh-row button:disabled{cursor:wait;opacity:.7;}


/* V5.10.25.7.2 — leave an unobstructed gutter for the Quick Editor pencil.
   On compact zoomed cells the headliner time pills must end before the pencil,
   not beneath it. Only the inline headliner half gains this reserved room. */
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-headliner .schedule-fast-half-btn{
  padding-right:24px!important;
}
.schedule-root .schedule-grid td.schedule-cell-has-fast .schedule-fast-open-editor{
  right:3px;top:3px;z-index:4;
  background:#fff;box-shadow:0 0 0 1px #fff;
}


/* V5.10.25.7.3 — the private-name save status belongs to the toolbar,
   directly after History, not in a viewport-fixed toast overlay.
   It scrolls with its toolbar and never obscures schedule cells. */
.schedule-root .schedule-toolbar .schedule-zoom-row > .schedule-success-inline{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 1 230px!important;
  width:auto!important;
  max-width:230px!important;
  min-width:120px;
  height:auto!important;
  padding:6px 9px!important;
  margin:0!important;
  border:1px solid #b7ddc5!important;
  border-radius:6px!important;
  background:#e7f6ec!important;
  box-shadow:none!important;
  color:#24633e!important;
  font-size:10.5px!important;
  font-weight:650!important;
  line-height:1.25!important;
  white-space:normal!important;
  text-align:left;
  z-index:auto!important;
  box-sizing:border-box!important;
}
@media(max-width:1630px){
  .schedule-root .schedule-toolbar{flex-wrap:wrap!important;}
  .schedule-root .schedule-toolbar .schedule-zoom-row{
    flex-wrap:nowrap!important;
    row-gap:4px;
  }
}
@media(max-width:760px){
  .schedule-root .schedule-toolbar .schedule-zoom-row{flex-wrap:wrap!important;}
  .schedule-root .schedule-toolbar .schedule-zoom-row > .schedule-success-inline{
    flex:0 1 auto!important;max-width:100%!important;
  }
}

/* More legible performer names and time pills at typical 50–70% zoom.
   Only the MONTH grid display changes; Fit Month, Quick Editor and printed
   schedule formatting retain their original sizing and data. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-fast-half-name:not(.schedule-fast-placeholder){
  font-size:clamp(9px,calc(14px * var(--grid-zoom,1)),13.5px)!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:-.05px;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-fast-half-name.schedule-fast-placeholder{
  font-size:clamp(8px,calc(11px * var(--grid-zoom,1)),11px)!important;
  font-weight:600!important;
  line-height:1.2!important;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-time-pill{
  font-size:clamp(8px,calc(12.5px * var(--grid-zoom,1)),12px)!important;
  font-weight:750!important;
  padding:1px 3px!important;
  line-height:1.25!important;
}
/* Slight increase for already-booked classic cells, without affecting the
   expandable Quick Editor or compact Fit Month view. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell:not(.schedule-cell-has-fast):not(.schedule-cell-is-editing)
  :is(.schedule-headliner .schedule-performer-name,.schedule-dj-line .schedule-performer-name){
  font-size:clamp(9px,calc(12px * var(--grid-zoom,1)),12.5px)!important;
  font-weight:780!important;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell:not(.schedule-cell-has-fast):not(.schedule-cell-is-editing)
  .schedule-time-pill{
  font-size:clamp(8px,calc(10.5px * var(--grid-zoom,1)),11px)!important;
  font-weight:750!important;
}
@media(max-width:760px){
  .schedule-root .schedule-toolbar .schedule-zoom-row{
    flex:1 1 100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
  }
}


/* V5.10.25.7.3.1 — safety alignment for narrow 50% / 60% zoom cells.
   At a 105px-wide column, a larger name plus a full time pill cannot share
   one horizontal line; use a compact two-line stack instead. This does NOT
   change Fit Month, data, cell interaction, or normal >=70% zoom layout. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-name-slot {
  overflow:hidden;min-width:0;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-name:not(.schedule-fast-placeholder) {
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden!important;
  white-space:normal;
  max-height:2.4em;
}
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn {
  overflow:hidden;
}
.schedule-root .schedule-horizontal.schedule-compact-zoom .schedule-grid td.schedule-cell-has-fast::before {
  height:76px!important;
}
.schedule-root .schedule-horizontal.schedule-compact-zoom .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn {
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:0!important;
  padding:1px 3px 2px!important;
}
/* Keep the top-right pencil reserved, even while the compact line wraps. */
.schedule-root .schedule-horizontal.schedule-compact-zoom .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-headliner .schedule-fast-half-btn {
  padding-right:24px!important;
}
.schedule-root .schedule-horizontal.schedule-compact-zoom .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-fast-name-slot {
  width:100%;flex:0 1 auto;max-height:23px;
}
.schedule-root .schedule-horizontal.schedule-compact-zoom .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-time-stack {
  width:100%;max-width:100%!important;flex:0 0 auto!important;
  justify-content:flex-end!important;align-items:flex-end!important;
}

/* V5.10.25.7.3.2 — subtle grid NAME readability, requested at 70% zoom.
   Headliner and Support DJ names only: +about 1px at 70%; never grow
   set-time pills, columns, pencil, row heights, dropdowns, or Fit Month.
   Slightly tighter name line-height preserves the 7.3.1 split alignment. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell-has-fast
  .schedule-fast-half-btn .schedule-fast-half-name:not(.schedule-fast-placeholder){
  font-size:clamp(9.25px,calc(15.5px * var(--grid-zoom,1)),14.75px)!important;
  line-height:1.14!important;
}
/* Classic booked cells use their own performer-name markup. */
.schedule-root .schedule-horizontal:not(.schedule-fit-month) .schedule-grid td.schedule-cell:not(.schedule-cell-has-fast):not(.schedule-cell-is-editing)
  :is(.schedule-headliner .schedule-performer-name,.schedule-dj-line .schedule-performer-name){
  font-size:clamp(9.25px,calc(14.5px * var(--grid-zoom,1)),13.5px)!important;
}

/* V5.10.25.7.3.3 — small admin-only PDF resource section below grid legend.
   Do not alter grid geometry, zoom, time pills, or venue columns. */
.schedule-team-guides{margin-top:20px;padding-top:15px;border-top:1px solid #e0e8f1;min-width:0}
.schedule-team-guides-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.schedule-team-guides-head strong{font-size:12px;font-weight:850;color:#263852}
.schedule-team-guides-head small{font-size:10px;color:#8694a6}
.schedule-team-guides-links{display:flex;flex-direction:column;gap:7px}
.schedule-team-guide-link{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:1px solid #dce5ef;border-radius:7px;background:#f8fafc;text-decoration:none!important;color:#2c415b!important;font-size:10.8px;font-weight:700;line-height:1.35}
.schedule-team-guide-link:hover,.schedule-team-guide-link:focus-visible{background:#edf4fb;border-color:#9db8d5;outline-offset:2px}
.schedule-team-guide-link>b{font-size:10px;flex:0 0 auto;min-width:22px;color:#6b829f}
.schedule-team-guide-link>span:nth-child(2){min-width:0;flex:1;overflow-wrap:anywhere}
.schedule-team-guide-dl{flex:0 0 auto;font-size:15px;line-height:1;color:#42719f}
.schedule-team-guides-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.schedule-team-guides-foot small{color:#8a99aa;font-size:9px;line-height:1.4}
.schedule-creator-mark{font-family:inherit;font-size:9px;font-weight:750;color:#8293a5;opacity:.72;letter-spacing:.5px;user-select:none}
@media(max-width:500px){.schedule-team-guide-link{padding:11px 10px;min-height:39px}}
