@font-face{font-family:DM Sans;src:url('/fonts/dm-sans.woff2') format('woff2');font-weight:100 1000;font-display:swap}
@font-face{font-family:Cormorant;src:url('/fonts/cormorant.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--ink:#232921;--muted:#657066;--subtle:#848b80;--pine:#1b332a;--pine-deep:#162a23;--mint:#e7efe5;--paper:#f7f7f2;--white:#fff;--line:#e1e5dc;--gold:#a86d35;--warn:#9b4c35;--radius:12px;--sans:"DM Sans",Segoe UI,sans-serif;--serif:"Cormorant",Georgia,serif}
*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12}p{line-height:1.55}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #9b7548}.shell{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}.sidebar{background:var(--pine-deep);color:#e4ece3;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:23px 16px 16px}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;font:600 37px/.9 var(--serif);letter-spacing:-1.3px}.brand-mark{width:31px;height:31px;display:grid;place-items:center;transform:rotate(45deg);border:1px solid #aa9d71;border-radius:8px;color:#d9c388;flex:none}.brand-mark span{transform:rotate(-45deg);font:500 17px var(--sans)}.sidebar-caption{margin:0 7px;color:#a1b3a7;font-size:11px;letter-spacing:.07em}.workspace-switch{display:flex;align-items:center;justify-content:space-between;gap:7px;border:1px solid #3a4d42;border-radius:9px;background:#263c32;color:#f4f7ef;padding:9px 10px;text-align:left;min-height:43px}.workspace-switch span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-group{display:grid;gap:3px}.nav-link{border:0;text-align:left;background:none;color:#bacabf;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;font-size:13px}.nav-link:hover,.nav-link.active{background:#2e483b;color:#fff}.nav-link.active{font-weight:700}.nav-link .glyph{width:17px;height:19px;border:0;background:none;color:#a5c0ae;font-size:17px}.sidebar-foot{margin-top:auto;display:grid;gap:10px;padding:12px 5px 0;border-top:1px solid #3d5045}.user-row{display:flex;align-items:center;gap:10px}.user-initial{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#43604e;color:#fff;font-weight:700;flex:none}.user-meta{min-width:0;flex:1}.user-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.user-meta span{color:#afc0b6;font-size:11px}.quiet-icon{border:0;background:none;color:inherit;font-size:17px;padding:2px 6px}.main{min-width:0}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:0 34px;background:#fbfbf8}.crumbs{color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.crumbs strong{color:var(--ink);font-weight:650}.crumb-sep{padding:0 10px;color:#a6aea3}.page{max-width:1420px;margin:0 auto;padding:28px 34px 46px}.hero{position:relative;overflow:hidden;min-height:173px;padding:25px 30px;display:flex;justify-content:space-between;align-items:end;gap:18px;border-radius:15px;background:radial-gradient(ellipse at 90% 95%,#405543 0%,transparent 58%),#1b342a;color:#fcf8e9;margin-bottom:24px}.hero:before,.hero:after{content:"";position:absolute;border:1px solid #9d9c6f55;border-radius:48%;width:390px;height:250px;right:-115px;top:-88px;transform:rotate(-34deg);pointer-events:none}.hero:after{width:440px;height:300px;right:-140px;top:-110px}.hero>*{position:relative;z-index:1}.hero h1{font:600 clamp(38px,5vw,64px)/.95 var(--serif);letter-spacing:-.038em;margin:8px 0 10px}.hero .event-label{color:#e0c99d;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.hero p{color:#d5e0d5}.hero-actions,.row-actions,.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hero-actions{flex:none}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.section-head h1{font:650 43px/1 var(--serif);letter-spacing:-.02em}.section-head h2,.panel h2{font-size:17px;font-weight:750;letter-spacing:-.02em}.section-head p{margin-top:5px;color:var(--muted)}.panel{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:17px}.panel+.panel{margin-top:14px}.columns{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(250px,1fr);gap:19px;align-items:start}.columns .panel{margin-top:0}.stack{display:grid;gap:14px}.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:19px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 15px;display:flex;align-items:center;gap:11px}.stat strong{display:block;font-size:21px;line-height:1.08}.stat span:not(.glyph){font-size:12px;color:var(--muted)}.glyph{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#eff1eb;color:#49604f;font-weight:700;font-size:19px;flex:none}.glyph.green,.badge.green{background:#e7f0e6;color:#3e654c}.glyph.gold,.badge.gold{background:#f6eddb;color:#8a632d}.glyph.rose,.badge.rose{background:#f4e8e4;color:#985a4c}.glyph.blue,.badge.blue{background:#e8edf3;color:#496581}.badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:20px;padding:3px 8px;background:#eef0eb;color:#596457;font-weight:650;font-size:11px;line-height:1.5}.badge.dark{background:#30463b;color:#dfecd9}.button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border:1px solid transparent;border-radius:8px;text-decoration:none;font-weight:700;font-size:12px;white-space:nowrap;background:#eef0ea;color:#314138}.button:hover{filter:brightness(.96)}.button.primary{background:#294b3a;color:#fff;border-color:#294b3a}.button.secondary{background:#fff;border-color:#dce2d9;color:#38463b}.button.gold{background:#e9d0a2;color:#342e22}.button.ghost-light{background:#ffffff10;color:#fcf8e9;border-color:#ffffff45}.button.danger{background:#f8e9e4;color:#8d3d2f}.button.small{min-height:30px;padding:4px 8px;font-size:11px}.button.icon-only{width:29px;min-height:29px;padding:0;font-size:15px}.plain{border:0;background:none;color:var(--muted);padding:3px 7px}.event-grid,.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:12px}.event-card{min-height:120px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px}.event-card:hover{border-color:#83a18d}.event-card h2{font:700 28px/1.06 var(--serif);margin:9px 0 6px}.event-card p{color:var(--muted)}.timeline{display:grid}.program-row,.list-row{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 0;border-bottom:1px solid #edf0e9}.program-row:last-child,.list-row:last-child{border-bottom:0}.program-row[draggable=true]{cursor:grab}.program-row.drag-over{box-shadow:inset 0 2px #629275}.row-label{flex:1;min-width:0}.row-label strong{display:block;font-size:13px;overflow-wrap:anywhere}.row-label small,.muted{color:var(--muted)}.row-label small{display:block;font-size:11px}.row-index{font-variant-numeric:tabular-nums;color:#798277;font-size:11px;min-width:20px}.side-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #edf0e9}.side-meta:last-child{border-bottom:0}.side-meta strong{font-size:12px}.empty{padding:26px 10px;text-align:center;color:var(--muted);border:1px dashed #dce2d9;border-radius:9px}.empty strong{color:#435248}.empty p{font-size:12px;margin-top:4px}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:13px}.filter-bar input{max-width:285px}.media-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.media-thumb{height:115px;background:#e7ece4;display:grid;place-items:center;overflow:hidden}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-thumb .glyph{width:41px;height:41px}.media-info{padding:10px;overflow:hidden}.media-info strong{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.media-info .row-actions{margin-top:8px}.form-error{background:#faece7;color:#8c4136;border-radius:7px;padding:8px 11px;margin-top:11px}.message{padding:9px 12px;border:1px solid #dbe8db;background:#eef4ed;border-radius:8px;color:#3f5b48}.message.warn{background:#faf2e4;border-color:#ecdcbf;color:#7e5526}.message a{overflow-wrap:anywhere}input,select,textarea{width:100%;border:1px solid #d9e0d6;border-radius:7px;background:#fff;padding:8px 10px;color:var(--ink);min-height:36px}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:#315643}input[type=color]{padding:3px}input[type=range]{padding:0;border:0;accent-color:#355a46;min-height:26px}textarea{min-height:74px;resize:vertical}.field{display:grid;gap:5px;color:#37483d;font-weight:650;font-size:12px}.field small,.hint{color:var(--muted);font-weight:400;font-size:11px}.field+.field{margin-top:11px}.check{display:flex;gap:7px;align-items:center;font-weight:600;color:#465649}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .field+.field{margin:0}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input,.inline-form select{min-width:0}.inline-form>*{flex:1}.inline-form .button{flex:none}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th,td{padding:9px 8px;border-bottom:1px solid #edf0e9;vertical-align:top}th{color:var(--muted);font-weight:650}td{overflow-wrap:anywhere}.preview-media img,.preview-media video{max-height:60vh;margin:auto;border-radius:8px}.preview-media audio{width:100%}progress{width:100%;accent-color:#325944}
dialog{width:min(540px,calc(100% - 24px));max-height:calc(100% - 30px);padding:0;border:1px solid #d9e0d6;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 22px 75px #13241c33}dialog.wide{width:min(940px,calc(100% - 24px))}dialog::backdrop{background:#162a237a}.dialog-head,.dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:14px 18px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:18px}.dialog-head .plain{font-size:22px;line-height:1}.dialog-body{padding:15px 18px;max-height:70vh;overflow:auto}.dialog-foot{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end}.dialog-body>.message{margin-bottom:10px}#notices{position:fixed;right:17px;bottom:18px;z-index:10;display:grid;gap:7px;max-width:min(420px,calc(100vw - 34px))}.toast{border-radius:9px;background:#233e30;color:#fff;padding:9px 14px;box-shadow:0 6px 22px #172c2333}.toast.error{background:#843f33}.login{min-height:100vh;display:grid;grid-template-columns:minmax(350px,1fr) 1fr}.login-main{display:grid;align-items:center;justify-items:center;padding:25px}.login-inner{width:min(360px,100%)}.login h1{font:650 46px/.95 var(--serif);margin:18px 0 8px}.login form{margin-top:20px}.login form>.button{width:100%;margin-top:16px}.login-art{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 100% 70%,#425b4b 0%,transparent 62%),#1d352b;color:#e8dbbc;overflow:hidden;position:relative}.login-art:before,.login-art:after{content:"";position:absolute;width:520px;height:340px;border:1px solid #b9a57766;border-radius:48%;transform:rotate(-40deg)}.login-art:after{width:590px;height:405px}.login-art .brand{font-size:81px}.login .brand-mark{border-color:#9a804a;color:#9a804a}.login-art .brand-mark{width:49px;height:49px;border-color:#d1ad6d;color:#d1ad6d}.card-canvas{aspect-ratio:16/9;container-type:inline-size;position:relative;width:100%;overflow:hidden;background:#1b3028;isolation:isolate}.canvas-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.canvas-photo,.canvas-text{position:absolute}.canvas-photo{display:grid;place-items:center;overflow:hidden;border-radius:3%;background:#dedfcd;color:#465c4e}.portrait-img{width:100%;height:100%;object-fit:cover}.canvas-text{font-family:var(--serif);font-weight:650;line-height:.98;overflow-wrap:anywhere}.editor-handle{outline:1px dashed #f4d4a5;cursor:move;touch-action:none}.editor-handle:hover{outline:2px solid #ffcf81}.template-workspace{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:13px}.template-fields{display:grid;gap:7px;max-height:370px;overflow:auto}.field-controls{border:1px solid var(--line);padding:7px;border-radius:8px}.field-controls summary{cursor:pointer;font-weight:700}.field-controls .form-grid{margin-top:6px}.field-controls input,.field-controls select{min-height:29px;padding:4px}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:8px}.participant-card{position:relative;padding:0;text-align:left;border:1px solid #dce2d9;border-radius:9px;background:#fff;overflow:hidden;color:var(--ink)}.participant-card:hover{border-color:#527e62}.participant-card.is-live{box-shadow:0 0 0 2px #678975}.participant-card .participant-label{padding:7px 8px;display:block}.participant-label strong,.participant-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-label small{color:var(--muted)}.participant-card .badge{position:absolute;right:4px;top:4px}.live-layout{display:grid;grid-template-columns:minmax(195px,.83fr) minmax(320px,2fr) minmax(200px,1fr);gap:13px;align-items:start}.live-layout .panel{margin:0;padding:12px}.live-layout .stack{gap:12px}.program-cue{width:100%;border:0;background:#f2f4ee;border-radius:8px;display:flex;gap:8px;align-items:center;text-align:left;color:#2f4336;padding:6px;margin:4px 0;min-height:38px}.program-cue.active{background:#dceadf;font-weight:700}.program-cue .glyph{width:25px;height:25px;font-size:15px}.live-preview{border-radius:7px;overflow:hidden;margin:7px 0}.video-preview{color:#fff;display:grid;align-content:center;justify-items:center;gap:6px}.audio-range{display:flex;justify-content:space-between;gap:7px;align-items:center;color:#4f6255}.audio-range input{width:55%}.status-dot{display:inline-block;width:7px;height:7px;background:#b47841;border-radius:50%;margin-right:4px}.status-dot.online{background:#568264}.projector-body{height:100vh;background:#070908;overflow:hidden}.projector-body #projection{height:100%;display:grid;place-items:center;position:relative;overflow:hidden}.projection-layer{position:absolute;inset:0;display:grid;place-items:center;background:#070908}.projection-layer .card-canvas{width:min(100vw,177.7778vh);max-height:100vh}.projection-layer video{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.projection-controls{position:fixed;right:14px;bottom:12px;display:flex;align-items:center;gap:9px;padding:7px 9px;color:#f4f6ee;background:#19271ede;border:1px solid #506056;border-radius:9px;z-index:5}.projection-controls button{background:#ecf2e7;border:0;border-radius:5px;padding:5px 7px;color:#19271e}.projector-body:fullscreen .projection-controls{opacity:0;transition:opacity .15s}.projector-body:fullscreen .projection-controls:hover,.projector-body:fullscreen .projection-controls:focus-within,.projector-body:fullscreen .projection-controls.needs-attention{opacity:1}.pending-line{margin:4px 0;color:#805b2d}.subsection{margin:15px 0 8px;font-size:14px}.complete-entry{display:grid;gap:3px}.complete-entry>.button{justify-self:start}.live-error{margin-bottom:10px}.playing{font-weight:700;color:#325943}.meta-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}.team-account{display:grid;gap:5px}.loading{padding:28px;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1100px){.shell{grid-template-columns:190px minmax(0,1fr)}.page{padding:21px 22px}.topbar{padding:0 22px}.live-layout{grid-template-columns:minmax(165px,.75fr) minmax(280px,1.5fr)}.live-audio{grid-column:1/-1}.hero{min-height:148px}.hero-actions{flex:none}.columns{grid-template-columns:minmax(0,1.75fr) minmax(210px,1fr)}}
@media(max-width:760px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{height:auto;position:static;padding:11px 12px;gap:9px}.brand{font-size:30px}.sidebar-caption,.sidebar-foot,.nav-group+.nav-group .sidebar-caption{display:none}.nav-group{display:flex;flex-wrap:wrap}.nav-link{padding:4px 6px}.nav-link .glyph{display:none}.workspace-switch{min-height:30px}.topbar{height:auto;min-height:49px;padding:8px 13px}.page{padding:14px 12px}.hero{padding:17px;display:block}.hero-actions{margin-top:12px}.stat-strip{gap:5px}.stat{padding:7px 8px;gap:5px}.stat .glyph{display:none}.columns,.live-layout,.template-workspace{grid-template-columns:1fr}.live-audio{grid-column:auto}.login{grid-template-columns:1fr}.login-art{display:none}.row-actions{gap:3px}.section-head{align-items:flex-start}.section-head h1{font-size:36px}}
.field[hidden]{display:none}
.button[hidden]{display:none}
.transition-demo{position:relative;aspect-ratio:16/9;overflow:hidden;background:#070908;border-radius:8px;margin:10px 0}
.transition-demo[hidden]{display:none}
.preview-layer{position:absolute;inset:0}
.transition-sample{display:grid;place-items:center;color:#fcf8e9;font-size:18px}
#check-result>.message{margin-top:10px}

/* The live desk keeps the stage, programme and queues within the operator's window. */
.live-shell{height:100dvh;min-height:0;grid-template-columns:minmax(0,1fr);overflow:hidden}
.live-shell .sidebar,.live-shell .topbar{display:none}
.live-shell .main{min-height:0}
.live-page{height:100dvh;max-width:none;padding:10px 14px;display:flex;flex-direction:column;gap:9px;overflow:hidden}
.live-header{flex:none;margin:0;min-height:52px}
.live-header h1{font-size:clamp(22px,2.2vw,31px)}
.live-header p{font-size:11px}
.live-header .button{min-height:30px;padding:4px 8px}
.live-layout{flex:1;min-height:0;grid-template-columns:minmax(190px,.85fr) minmax(380px,2fr) minmax(210px,.95fr);align-items:stretch;gap:9px}
.live-layout .panel{padding:10px}
.live-side{display:contents}
.live-side-tabs{display:none}
.live-program{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-height:0}
.live-program .timeline{min-height:0;overflow:auto;flex:1}
.live-program .meta-row{flex:none}
.live-center{grid-column:2;grid-row:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:9px}
#live-visual{flex:none;min-height:0}
#live-visual .section-head{margin-bottom:5px}
#live-visual .live-preview{width:min(100%,74vh);margin:5px auto;position:relative;border:2px dashed transparent;background:#102219}
.live-dropzone.drop-ready{border-color:#a98a58}
.live-dropzone.drag-over{border-color:#50a374;box-shadow:0 0 0 4px #50a37444}
.drop-hint{display:none;position:absolute;inset:auto 8px 8px;padding:6px 10px;background:#14261edb;color:#fff;border-radius:6px;text-align:center;pointer-events:none;font-weight:700}
.live-dropzone.drop-ready .drop-hint{display:block}
#live-visual>p{font-size:11px}
.live-stage-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.live-stage-actions .hint{flex:1;min-width:140px}
.live-stage-actions .button{min-height:27px;padding:3px 7px}
#live-queue{flex:1;min-height:0}
#live-queue .panel{height:100%;display:flex;flex-direction:column;min-height:0}
#live-queue .section-head{flex:none;margin-bottom:6px}
#live-queue .filter-bar{flex:none;margin-bottom:4px}
#live-queue .filter-bar input{max-width:none}
#live-queue .subsection{flex:none;margin:4px 0;font-size:12px}
#live-queue .pending-list{flex:1;min-height:45px;overflow:auto}
#live-queue .category-grid{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:6px}
#live-queue .participant-card{width:100%;cursor:grab}
#live-queue .participant-card:active{cursor:grabbing}
#live-queue .participant-card.is-selected{box-shadow:0 0 0 2px #a87932}
#live-queue .participant-label{padding:3px 5px;font-size:11px}
#live-queue .complete-entry>.button{min-height:25px;padding:2px 5px}
.completed-group{flex:none;max-height:40%;overflow:auto;border-top:1px solid var(--line);margin-top:5px}
.completed-group summary,.playlist-details summary{cursor:pointer;font-weight:700;padding:6px 0}
.completed-group .category-grid{padding:4px 0}
.live-audio{grid-column:3;grid-row:1;display:flex;flex-direction:column;min-height:0;overflow:auto}
.live-audio .subsection{margin:7px 0 3px}
.live-audio .audio-range{margin-top:7px}
.playlist-details{margin-top:8px;border-top:1px solid var(--line)}
.playlist-details .timeline{max-height:35vh;overflow:auto}
@media(max-width:1100px){
  .live-layout{grid-template-columns:minmax(180px,.85fr) minmax(350px,2fr)}
  .live-side{grid-column:1;display:flex;flex-direction:column;min-height:0}
  .live-side-tabs{display:flex;gap:5px;margin-bottom:7px}
  .live-side-tabs .button{flex:1}
  .live-side[data-tab="program"] .live-audio,.live-side[data-tab="music"] .live-program{display:none}
  .live-program,.live-audio{flex:1;min-height:0;grid-column:auto}
  .live-center{grid-column:2}
}
@media(max-width:660px){
  .live-page{padding:7px}
  .live-header{align-items:center;gap:4px}
  .live-header h1{font-size:18px}
  .live-header p{font-size:10px}
  .live-header .row-actions{justify-content:flex-end}
  .live-header .button{font-size:10px;padding:3px 5px}
  .live-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
  .live-center{grid-column:1;grid-row:1}
  .live-side{grid-column:1;grid-row:2;max-height:26vh;overflow:hidden}
  .live-side .panel{overflow:auto}
  #live-visual .live-preview{width:min(100%,48vh)}
}
