/* Festival 1.2.22 — shared appearance; existing functional styles stay in place. */
body.festival-layout{--bg:#0b0c0e;--bg3:#15161a;--bg4:#1c1e24;--text:#f6f1e6;--muted:#b9b0a0;--gold:#c4b08a;--gold2:#a89068;--sand:#ead9b6;--line:rgba(212,175,90,.14);--line2:rgba(212,175,90,.26);--gold-soft:rgba(196,176,138,.12);background:var(--bg)!important;color:var(--text)!important;font-family:Inter,'Segoe UI',system-ui,sans-serif!important}
body.festival-layout .app{display:block!important;grid-template-columns:none!important}
body.festival-layout .main{width:100%!important;max-width:1920px!important;margin:auto!important;padding:0 32px 45px!important;min-width:0!important}
body.festival-layout .sidebar{position:fixed!important;inset:0 auto 0 0!important;width:min(390px,94vw)!important;height:100dvh!important;z-index:150!important;display:none!important;overflow-y:auto!important;background:#101114!important;border-right:1px solid var(--line2)!important;box-shadow:20px 0 70px #0009!important;padding:18px!important}
body.festival-layout .sidebar.open{display:flex!important}
body.festival-layout .sidebar.open+.nav-scrim{display:block!important;position:fixed!important;inset:0!important;z-index:149!important;background:#0009!important}
body.festival-layout .sidebar .menu-close{display:inline-flex!important;margin-left:auto}
body.festival-layout .sidebar .userbox{margin-top:20px!important;flex-shrink:0}
body.festival-layout .sidebar .nav{flex:1 0 auto!important;overflow:visible!important}
body.festival-layout .sidebar .brand{padding:0!important;flex-shrink:0}
body.festival-layout #menuBtn{display:none!important}
body.festival-layout #festivalChrome{display:block;border-bottom:1px solid var(--line2);margin-bottom:28px}
#festivalChrome[hidden]{display:none!important}
body.festival-layout .festival-brandbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 0}
body.festival-layout .festival-brand{background:none;border:0;color:var(--sand);display:flex;align-items:center;gap:12px;text-align:left;font:inherit;font-weight:650;font-size:20px;cursor:pointer;padding:0;min-width:0}
body.festival-layout .festival-brand img{width:38px;height:38px;border-radius:9px}
body.festival-layout .festival-brand small{display:block;font-size:12px;font-weight:400;color:var(--muted);overflow-wrap:anywhere;margin-top:2px}
body.festival-layout .festival-tabs{display:flex;gap:30px;flex-wrap:wrap}
body.festival-layout .festival-tabs button{display:flex;align-items:center;gap:8px;min-height:46px;font:inherit;font-size:14px;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:10px 0}
body.festival-layout .festival-tabs button[aria-current=page]{color:var(--sand);border-color:var(--gold)}
body.festival-layout .festival-tabs svg{height:17px;width:17px}
body.festival-layout .topbar{display:flex!important;align-items:start!important;gap:20px!important;min-height:0!important;padding:0 0 22px!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;position:static!important}
body.festival-layout .topbar h2{font-family:inherit!important;color:var(--text)!important;font-weight:550!important;font-size:30px!important;line-height:1.25!important;letter-spacing:-.03em!important}
body.festival-layout .topbar>.row:first-child{display:flex!important;grid-template-columns:none!important;min-width:0!important}
body.festival-layout .card,body.festival-layout .ro-panel,body.festival-layout .ro17-panel,body.festival-layout .modal,body.festival-layout .sheet{background:var(--bg3)!important;border-color:var(--line2)!important;border-radius:12px!important;box-shadow:none!important}
body.festival-layout .btn{border-radius:8px!important;box-shadow:none!important;font-family:inherit!important;text-shadow:none!important}
body.festival-layout .btn.primary{background:var(--sand)!important;border-color:var(--sand)!important;color:#2a1c10!important}
body.festival-layout .btn:not(.primary):not(.danger){background:var(--bg3);color:var(--text)}
body.festival-layout :is(.hint,.ro-muted,.topbar p,.ro17-panel-title p,.ro17-form-section small,.ro17-field-row small,.ro17-rule-tr span:nth-child(2),.ro17-build-steps small,.ro17-summary-list span,.ro17-review-grid span,.ro17-detail-facts span,.festival-stat-list small){color:var(--muted)!important}
body.festival-layout :is(h1,h2,h3,h4,label,td){color:var(--text)}
body.festival-layout td{color:var(--text)!important}
body.festival-layout th{color:var(--muted)!important}
body.festival-layout input,body.festival-layout select,body.festival-layout textarea{border-radius:7px!important;border-color:var(--line2)!important;background-color:var(--bg3)!important;color:var(--text)!important}
body.festival-layout :is(.ro17-section-tabs,.ro17-filter-tabs,.ro-mock-tab,.ro-pill){border-radius:8px!important}
body.festival-layout .festival-home{max-width:1500px;margin:auto}
body.festival-layout .festival-welcome{padding:4px 0 21px}
body.festival-layout .festival-eyebrow{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
body.festival-layout .festival-welcome h1{font-family:inherit;font-size:36px;font-weight:500;letter-spacing:-.04em;line-height:1.2;margin:0 0 9px}
body.festival-layout .festival-welcome p{font-size:15px;color:var(--muted);margin:0}
body.festival-layout .festival-news-preview{padding:0!important;margin:0 0 26px!important}
body.festival-layout .festival-news-preview>.ro-panel-head{padding:12px 18px;margin:0!important;border-bottom:1px solid var(--line)}
body.festival-layout .festival-news-preview h3{font-size:15px!important;margin:0}
body.festival-layout .festival-news-preview>p{padding:8px 18px}
body.festival-layout .festival-news-row{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) 18px;align-items:center;gap:15px;padding:13px 18px;background:transparent;border:0;border-bottom:1px solid var(--line);text-align:left;font:inherit;color:var(--text);cursor:pointer}
body.festival-layout .festival-news-row:hover{background:var(--gold-soft)}
body.festival-layout .festival-news-row strong{font-size:14px;font-weight:500;overflow-wrap:anywhere;display:block}
body.festival-layout .festival-news-row small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
body.festival-layout .festival-news-state{font-size:11px;color:var(--sand)}
body.festival-layout .festival-more-news{font:inherit;font-size:12px;color:var(--sand);border:0;background:none;padding:12px 18px;cursor:pointer}
body.festival-layout .festival-focus{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:6px 0 25px;margin-bottom:10px;border-bottom:1px solid var(--line2)}
body.festival-layout .festival-focus h2{font-size:25px;line-height:1.3;font-weight:500;margin:0 0 8px}
body.festival-layout .festival-focus p{font-size:14px;color:var(--muted);margin:0}
body.festival-layout .festival-focus>.btn{flex-shrink:0}
body.festival-layout .festival-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-bottom:25px}
body.festival-layout .festival-shortcuts button{font:inherit;display:flex;gap:15px;justify-content:space-between;align-items:center;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:17px 0;color:var(--text);cursor:pointer}
body.festival-layout .festival-shortcuts strong{display:block;font-size:14px;font-weight:500}
body.festival-layout .festival-shortcuts small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
body.festival-layout .festival-home-details{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
body.festival-layout .festival-home-details>*{grid-column:auto!important;min-width:0!important}
body.festival-layout .festival-home-details .ro-panel{padding:20px!important}
body.festival-layout .festival-home-details .ro-panel h3{font-size:18px!important}
body.festival-layout .festival-home>.ro-next-shift{padding:20px!important;margin:0 0 24px}
body.festival-layout .festival-statistics,body.festival-layout .festival-events{margin:16px 0;border-top:1px solid var(--line2);padding-top:15px;min-width:0}
body.festival-layout .festival-statistics>summary,body.festival-layout .festival-events>summary{font-size:15px;color:var(--sand);cursor:pointer;padding:8px 0;min-height:44px}
body.festival-layout .festival-statistics .ro-stats-wrap{margin-top:14px}
body.festival-layout .festival-vacancies{width:min(660px,95vw)}
body.festival-layout .festival-vacancy-area{display:flex;align-items:center;gap:15px;flex-wrap:wrap;width:100%;font:inherit;text-align:left;border:0;border-bottom:1px solid var(--line2);background:none;color:var(--text);padding:18px 0;cursor:pointer}
body.festival-layout .festival-vacancy-area span{color:var(--muted);font-size:13px;flex:1}
body.festival-layout .festival-vacancies>[data-close]{margin-top:20px}
/* The continuous plan keeps its established scrolling and fixed area labels. */
body.festival-layout .ro-plan-layout{display:flex!important;flex-direction:column!important;gap:20px!important}
body.festival-layout .ro-plan-layout>.ro-plan-board{width:100%!important;min-width:0;order:0!important;margin:0!important}
body.festival-layout .festival-plan-detail{display:flex;flex-direction:column;gap:24px;order:1}
body.festival-layout .festival-plan-detail>.ro-plan-editor-col{position:static!important;width:100%!important;max-width:none!important;min-width:0!important;align-self:stretch!important;display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}
body.festival-layout .festival-plan-detail>.ro-plan-candidates-card{min-width:0!important;width:100%!important;box-sizing:border-box;align-self:stretch;order:-1!important}
body.festival-layout .ro-plan-foot-grid{order:2!important}
body.festival-layout .ro-plan-editor-card,body.festival-layout .ro-plan-candidates-card{padding:18px!important}
body.festival-layout .ro-plan-table-head{display:flex!important;flex-wrap:wrap!important;gap:12px!important}
body.festival-layout .ro-plan-continue{margin-left:0!important}
body.festival-layout .ro-plan-table-head h2{font-size:19px!important;line-height:1.4!important}
body.festival-layout .ro-plan-table-head small{font-size:12px;color:var(--muted)}
body.festival-layout .ro-score-dialog .ro-score-part{background:transparent;border-bottom:1px solid var(--line2);border-radius:0!important;padding:14px 0}
body.festival-layout .ro-score-dialog .ro-score-total{overflow-wrap:anywhere}
body.festival-layout .ro-person-card .ro-person-hero{background:var(--bg3)!important}
body.festival-layout .ro-person-card .ro-person-jumps{display:flex;flex-wrap:wrap;gap:6px}
body.festival-layout .ro-person-card .ro-person-jumps .btn{font-size:12px!important}
body.festival-layout .festival-person-scoring{padding:15px;border:1px solid var(--line2);border-radius:10px;margin-bottom:15px}
body.festival-layout .festival-person-scoring h4{margin:0 0 5px}
body.festival-layout .festival-person-fold{margin:10px 0}
body.festival-layout .festival-person-fold>summary{font-weight:500}
/* Notices use the same list/detail principle without changing publishing permissions. */
body.festival-layout .festival-news-tools{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
body.festival-layout .festival-news-tools input[type=search]{max-width:360px}
body.festival-layout .festival-inbox{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:24px;align-items:start}
body.festival-layout .festival-news-list{background:var(--bg3);border:1px solid var(--line2);border-radius:10px;overflow:hidden}
body.festival-layout .festival-news-list button{font:inherit;display:block;text-align:left;background:transparent;color:var(--text);width:100%;border:0;border-bottom:1px solid var(--line);padding:17px;cursor:pointer}
body.festival-layout .festival-news-list button[aria-pressed=true]{background:var(--gold-soft);box-shadow:inset 3px 0 var(--gold)}
body.festival-layout .festival-news-list strong{display:block;font-weight:500;font-size:14px;overflow-wrap:anywhere;margin:6px 0}
body.festival-layout .festival-news-list small{font-size:11px;color:var(--muted)}
body.festival-layout .festival-news-detail{min-width:0}
body.festival-layout .festival-news-detail .ro205-news-card{margin:0!important}
body.festival-layout .festival-news-detail .ro205-news-body{white-space:pre-wrap;overflow-wrap:anywhere}
body.festival-layout .festival-news-back{display:none}
body.festival-layout .festival-news-empty{padding:20px;color:var(--muted)}
body.festival-layout button:focus-visible{outline:2px solid var(--gold)!important;outline-offset:3px}
@media(max-width:1200px){body.festival-layout .festival-plan-detail{grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr);gap:16px}body.festival-layout .ro-plan-table{min-width:0!important}body.festival-layout .ro-plan-table th,body.festival-layout .ro-plan-table td{white-space:normal!important;padding:9px 6px!important}}
@media(max-width:900px){body.festival-layout .main{padding:0 16px 30px!important}body.festival-layout #festivalChrome{margin-bottom:22px}body.festival-layout .festival-brandbar{padding:15px 0}body.festival-layout .festival-tabs{gap:20px}body.festival-layout .festival-tabs button{font-size:13px}body.festival-layout .festival-plan-detail{grid-template-columns:1fr}body.festival-layout .festival-plan-detail>.ro-plan-editor-col{order:0!important}body.festival-layout .festival-plan-detail>.ro-plan-candidates-card{order:-1!important}body.festival-layout .topbar{flex-direction:column!important;padding-bottom:18px!important}body.festival-layout .topbar h2{font-size:25px!important}body.festival-layout .festival-inbox{grid-template-columns:1fr}body.festival-layout .festival-news-back{display:inline-flex;margin-bottom:14px}body.festival-layout .festival-inbox:not(.has-selection) .festival-news-detail{display:none}body.festival-layout .festival-inbox.has-selection .festival-news-list{display:none}}
@media(max-width:600px){body.festival-layout .festival-tabs svg{display:none}body.festival-layout .festival-tabs{justify-content:space-between;gap:12px}body.festival-layout .festival-tabs button{font-size:12px;min-width:0}body.festival-layout .festival-brand{font-size:17px}body.festival-layout .festival-brand small{font-size:11px}body.festival-layout .festival-brand img{width:32px;height:32px}body.festival-layout .festival-welcome h1{font-size:29px}body.festival-layout .festival-focus{display:block}body.festival-layout .festival-focus h2{font-size:22px}body.festival-layout .festival-focus>.btn{margin-top:16px}body.festival-layout .festival-shortcuts,body.festival-layout .festival-home-details{grid-template-columns:1fr!important}body.festival-layout .festival-news-row{grid-template-columns:44px minmax(0,1fr) 14px;padding:13px;gap:10px}body.festival-layout .festival-news-preview>.ro-panel-head{padding:12px 13px;flex-wrap:wrap}body.festival-layout .festival-news-row strong{font-size:13px}body.festival-layout .festival-vacancy-area{display:grid;grid-template-columns:1fr auto;gap:6px}body.festival-layout .festival-vacancy-area span{grid-column:1}body.festival-layout .festival-vacancy-area svg{grid-column:2;grid-row:1/3}body.festival-layout .festival-person-fold table,body.festival-layout .festival-person-fold tbody{display:block;min-width:0!important;width:100%}body.festival-layout .festival-person-fold tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}body.festival-layout .festival-person-fold td{display:block;min-width:0;border:0!important;padding:0!important;white-space:normal!important}body.festival-layout .festival-person-fold td:nth-child(n+3){grid-column:1/-1}body.festival-layout .festival-person-fold td:last-child{display:flex;gap:8px;flex-wrap:wrap}}
@media print{body.festival-layout #festivalChrome,body.festival-layout .festival-shortcuts{display:none!important}body.festival-layout .main{padding:0!important}body.festival-layout .festival-inbox{display:block}body.festival-layout .festival-news-list{display:none}}
body.festival-layout .festival-plan-detail>.ro-plan-editor-col,body.festival-layout .festival-plan-detail>.ro-plan-candidates-card{grid-area:auto!important;grid-column:auto!important;grid-row:auto!important}
@media(max-width:900px){body.festival-layout .festival-plan-detail>.ro-plan-editor-col{grid-template-columns:minmax(0,1fr)}}
body.festival-layout .ro-mock-panel,body.festival-layout .ro176-advanced,body.festival-layout .ro205-news-card,body.festival-layout .ro17-conflict-detail{background:var(--bg3)!important;border-color:var(--line2)!important;box-shadow:none!important;border-radius:12px!important}
body.festival-layout .ro-plan-tools,body.festival-layout .ro-plan-editor-card,body.festival-layout .ro-plan-candidates-card,body.festival-layout .ro-plan-editor-card .pick-bar,body.festival-layout .ro-plan-board{background:var(--bg3)!important;border-color:var(--line2)!important}
body.festival-layout .btn:not(.primary):not(.danger){background:var(--bg3)!important;color:var(--text)!important;border-color:var(--line2)!important}
body.festival-layout .ro-panel-head{flex-wrap:wrap;gap:12px}
body.festival-layout .ro-panel-head>div{min-width:0;flex:1 1 170px}
body.festival-layout .ro-panel-head h3{word-break:normal!important;overflow-wrap:normal!important}
body.festival-layout .ro-note,body.festival-layout .ro-plan-daynav .cmd-day{background:var(--bg3)!important;border-color:var(--line2)!important}
body.festival-layout .ro-plan-foot-grid{grid-template-columns:1fr 1fr!important;width:100%!important}
@media(max-width:900px){body.festival-layout .ro-plan-foot-grid{grid-template-columns:1fr!important}}
body.festival-layout .modal-bg{z-index:200!important}
body.festival-layout .toast{z-index:250!important}
body.festival-layout #content :is(.ro-mock-panel,.ro176-advanced,.ro205-news-card,.ro17-conflict-detail,.ro17-form-editor,.ro17-form-preview,.ro17-rule-editor,.ro17-rule-list,.ro176-festival-side>section,.card){background:var(--bg3)!important;border-color:var(--line2)!important;box-shadow:none!important}
body.festival-layout #content .festival-news-tools>input[type=search]{width:360px!important;max-width:100%!important;flex:0 1 360px!important}
body.festival-layout .festival-person-fold>section>h4{display:none}
body.festival-layout .ro-person-card .ro-person-jumps{display:flex!important;flex-wrap:wrap!important;gap:6px!important}
body.festival-layout .ro-person-card .ro-person-jumps .btn{flex:0 1 auto!important;width:auto!important;min-height:36px!important;padding:7px 10px!important}
/* 1.2.22: stable personal routes, additional organization routes and a complete directory. */
body.festival-layout .festival-header-actions{display:flex;gap:9px;align-items:center;flex-shrink:0}
body.festival-layout .festival-header-actions .btn{min-height:44px;gap:7px}
body.festival-layout .festival-mobile-news{display:none}
body.festival-layout :is(.festival-staff-tabs,.festival-context-nav){display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:10px 0;border-top:1px solid var(--line)}
body.festival-layout .festival-staff-tabs>span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding-right:8px}
body.festival-layout :is(.festival-staff-tabs,.festival-context-nav,.festival-mobile-news) button{font:inherit;font-size:13px;background:none;border:0;color:var(--muted);display:flex;align-items:center;gap:7px;min-height:44px;padding:7px 0;cursor:pointer}
body.festival-layout :is(.festival-staff-tabs,.festival-context-nav,.festival-mobile-news) button[aria-current=page]{color:var(--sand);text-decoration:underline;text-underline-offset:7px}
body.festival-layout .festival-context-nav{padding:0 0 14px;margin-bottom:22px;border-top:0;border-bottom:1px solid var(--line2)}
body.festival-layout .festival-context-nav .nav-ico{display:none}
body.festival-layout .festival-personal-hub{margin:0 0 26px;border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:var(--bg3)}
body.festival-layout .festival-swap-promo{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px;background:var(--gold-soft)}
body.festival-layout .festival-swap-promo h2{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:550;margin:0 0 8px}
body.festival-layout .festival-swap-promo p{color:var(--muted);font-size:14px;line-height:1.5;margin:0}
body.festival-layout .festival-promo-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
body.festival-layout .festival-personal-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:8px 22px}
body.festival-layout .festival-personal-links button{font:inherit;display:flex;gap:12px;align-items:center;background:none;border:0;text-align:left;color:var(--text);padding:12px 0;cursor:pointer}
body.festival-layout .festival-personal-links strong{display:block;font-size:14px;font-weight:550}
body.festival-layout .festival-personal-links small{display:block;font-size:12px;line-height:1.4;color:var(--muted);margin-top:4px}
body.festival-layout .festival-visible-stats{margin:24px 0}
body.festival-layout .festival-directory>label{display:block;font-size:14px;margin-bottom:8px}
body.festival-layout .festival-directory>input{width:min(600px,100%);min-height:46px}
body.festival-layout .festival-feature-group{margin:24px 0 30px}
body.festival-layout .festival-feature-group h3{font-size:17px;font-weight:550;margin:0 0 12px}
body.festival-layout .festival-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body.festival-layout .festival-feature-grid button{display:flex;align-items:center;gap:12px;background:var(--bg3);color:var(--text);text-align:left;font:inherit;border:1px solid var(--line2);border-radius:10px;padding:18px;cursor:pointer;min-width:0}
body.festival-layout .festival-feature-grid button:hover{background:var(--gold-soft)}
body.festival-layout .festival-feature-grid button>span{flex:1;min-width:0}
body.festival-layout .festival-feature-grid strong{display:block;font-size:14px;font-weight:550}
body.festival-layout .festival-feature-grid small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:5px}
body.festival-layout .nav-ico{flex-shrink:0}
body.festival-layout .festival-feature-grid [hidden],body.festival-layout .festival-feature-group[hidden]{display:none!important}
body.festival-layout .festival-tabs .nav-badge{margin-left:0}
body.festival-layout [data-festival-view=overview][aria-current=page]{outline:1px solid var(--gold)}
@media(min-width:901px){body.festival-layout #mobilePager{display:none!important}}
@media(max-width:1100px){body.festival-layout .festival-swap-promo{align-items:start;flex-direction:column}body.festival-layout .festival-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 body.festival-layout .main{padding-bottom:calc(100px + env(safe-area-inset-bottom))!important}
 body.festival-layout #mobilePager.festival-bottom-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;position:fixed!important;bottom:0!important;left:0!important;right:0!important;z-index:140!important;background:#101114!important;border-top:1px solid var(--line2)!important;padding:5px 4px calc(5px + env(safe-area-inset-bottom))!important;gap:0!important}
 body.festival-layout .festival-bottom-nav button{min-width:0!important;min-height:58px!important;font-size:12px!important;color:var(--muted)!important;position:relative!important;padding:7px 1px!important}
 body.festival-layout .festival-bottom-nav button[aria-current=page]{color:var(--sand)!important;background:var(--gold-soft)!important}
 body.festival-layout .festival-bottom-nav .nav-badge{position:absolute!important;top:1px!important;right:8px!important;min-width:17px!important;height:17px!important;font-size:10px!important;margin:0!important}
 body.festival-layout .festival-tabs{display:none}
 body.festival-layout .festival-mobile-news{display:flex;border-top:1px solid var(--line);justify-content:flex-end}
 body.festival-layout .festival-mobile-news button{color:var(--sand)}
 body.festival-layout .festival-header-actions .btn{font-size:12px!important;padding:9px!important}
 body.festival-layout .festival-header-actions [data-festival-view=overview] .nav-ico{display:none}
 body.festival-layout .festival-staff-tabs{gap:4px 15px;padding:5px 0}
 body.festival-layout .festival-staff-tabs .nav-ico{display:none}
 body.festival-layout .festival-staff-tabs>span{flex-basis:100%;padding:3px 0 0}
}
@media(max-width:600px){
 body.festival-layout .festival-brandbar{flex-wrap:wrap;gap:12px;padding-bottom:10px}
 body.festival-layout .festival-brand{flex:1 1 160px}
 body.festival-layout .festival-header-actions{width:100%;justify-content:space-between}
 body.festival-layout .festival-mobile-news{position:absolute;right:16px;top:14px;border:0}
 body.festival-layout .festival-mobile-news button{font-size:12px}
 body.festival-layout .festival-mobile-news .nav-ico{display:none}
 body.festival-layout .festival-brand{padding-right:85px}
 body.festival-layout .festival-personal-links{grid-template-columns:1fr;gap:0;padding:4px 16px}
 body.festival-layout .festival-personal-links button+button{border-top:1px solid var(--line)}
 body.festival-layout .festival-swap-promo{padding:18px 16px;gap:16px}
 body.festival-layout .festival-promo-actions{flex-direction:column;width:100%}
 body.festival-layout .festival-promo-actions .btn{justify-content:center}
 body.festival-layout .festival-feature-grid{grid-template-columns:1fr}
 body.festival-layout .festival-context-nav{gap:4px 15px}
 body.festival-layout .festival-context-nav button{font-size:12px}
}
@media print{body.festival-layout #mobilePager,body.festival-layout .festival-context-nav,body.festival-layout .festival-personal-hub{display:none!important}}
body.festival-layout .ro-stats-wrap,body.festival-layout .ro-stat{background:var(--bg3)!important;border-color:var(--line2)!important}
body.festival-layout #mobilePager button{border-color:transparent!important;box-shadow:none!important}
body.festival-layout #mobilePager button[aria-current=page]{border-color:var(--gold)!important}
body.festival-layout.ro-keyboard-open #mobilePager.festival-bottom-nav{display:none!important}
@media(max-width:600px){body.festival-layout .festival-visible-stats .ro-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}body.festival-layout .festival-visible-stats .ro-stat{min-width:0!important;padding:13px!important}body.festival-layout .festival-visible-stats .ro-stat strong{font-size:25px!important}}
body.festival-layout .toast{pointer-events:none}
body.festival-layout .toast :is(button,a){pointer-events:auto}
@media(max-width:900px){html:has(body.festival-layout){scroll-padding-bottom:90px}body.festival-layout .main{scroll-padding-bottom:90px}body.festival-layout #content :is(button,input,select,textarea){scroll-margin-bottom:90px}}
/* 1.2.23: role-specific home pages and persistent personal receipts. */
body.festival-layout .festival-for-you{margin:0 0 24px;padding:20px!important;border-left:3px solid var(--gold)!important}
body.festival-layout .festival-for-you h2{font-size:21px;font-weight:550;margin:0}
body.festival-layout .festival-personal-event{padding:17px 0;border-top:1px solid var(--line2);display:flex;gap:20px;justify-content:space-between}
body.festival-layout .festival-personal-event h3{font-size:16px!important;margin:4px 0 8px!important;line-height:1.4}
body.festival-layout .festival-personal-event p{font-size:14px;line-height:1.6;max-width:80ch;margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}
body.festival-layout .festival-personal-event time{font-size:12px;color:var(--muted)}
body.festival-layout .festival-event-state{font-size:11px;color:var(--sand)}
body.festival-layout .festival-personal-event.is-read .festival-event-state{color:var(--muted)}
body.festival-layout .festival-event-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
body.festival-layout :is(.festival-my-overview,.festival-self-organise,.festival-orga-actions){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}
body.festival-layout .festival-my-overview>.ro-panel{margin:0;padding:20px!important}
body.festival-layout .festival-my-hours h2{font-size:30px;margin:8px 0 12px}
body.festival-layout .festival-my-hours small{font-size:15px;font-weight:400;color:var(--muted)}
body.festival-layout .festival-opportunity{background:var(--bg3);border:1px solid var(--line2);border-top:3px solid var(--gold);border-radius:12px;padding:22px;display:flex;flex-direction:column;align-items:start;gap:12px;min-width:0}
body.festival-layout .festival-opportunity h2{font-size:21px;font-weight:550;display:flex;align-items:center;gap:10px;margin:0}
body.festival-layout .festival-opportunity p{font-size:14px;line-height:1.6;color:var(--muted);margin:0;flex:1}
body.festival-layout #festivalOwnSwaps{display:flex;gap:8px;flex-wrap:wrap}
body.festival-layout .festival-admin-phases{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
body.festival-layout .festival-admin-phases>span{font-size:13px;color:var(--muted)}
body.festival-layout .festival-admin-phases nav{display:flex;gap:8px;flex-wrap:wrap}
body.festival-layout .festival-admin-phases small{font-size:12px;color:var(--muted)}
body.festival-layout :is(.festival-orga-tools,.festival-update-tabs){display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
body.festival-layout .festival-optional-personal{margin-top:24px;border-top:1px solid var(--line2);padding-top:12px}
body.festival-layout .festival-optional-personal summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:14px;color:var(--muted)}
body.festival-layout .festival-optional-personal>.ro-panel{margin-top:18px;max-width:650px}
body.festival-layout .festival-update-list{padding:8px 20px!important}
body.festival-layout .festival-admin-home>.ro-stats-wrap{margin:0 0 24px}
@media(max-width:900px){body.festival-layout #mobilePager.festival-five-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}body.festival-layout .festival-five-nav button>span:not(.nav-badge){white-space:normal;line-height:1.15;min-height:28px;display:flex;align-items:center;justify-content:center}body.festival-layout .festival-five-nav button{font-size:11px!important}body.festival-layout .festival-personal-event{display:block}body.festival-layout .festival-event-actions{margin-top:12px}body.festival-layout .festival-header-actions{flex-wrap:wrap}body.festival-layout .festival-header-actions [data-festival-view=updates]{gap:6px!important}}
@media(max-width:600px){body.festival-layout :is(.festival-my-overview,.festival-self-organise,.festival-orga-actions){grid-template-columns:1fr}body.festival-layout .festival-opportunity{padding:18px}body.festival-layout .festival-for-you{padding:16px!important}body.festival-layout .festival-admin-phases nav{display:grid;grid-template-columns:1fr 1fr;width:100%}body.festival-layout .festival-admin-phases button{justify-content:center}body.festival-layout .festival-header-actions{gap:5px}body.festival-layout .festival-header-actions .btn{padding:8px!important}}
body.festival-layout .festival-home-return{position:sticky;top:0;z-index:145;display:flex;align-items:center;min-height:58px;padding:6px 0;background:var(--bg);border-bottom:1px solid var(--line2)}
body.festival-layout .festival-home-return button{min-height:44px;color:var(--sand)!important;font-weight:600}
body.festival-layout .festival-home-return[hidden]{display:none!important}
body.festival-layout .main{scroll-padding-top:70px}
html:has(body.festival-layout){scroll-padding-top:70px}
@media print{body.festival-layout .festival-home-return{display:none!important}}
body.festival-layout .festival-home-messages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
body.festival-layout .festival-home-message{min-width:0;padding:18px 20px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
body.festival-layout .festival-home-message header h3{font-size:17px!important;line-height:1.4!important;margin:0 0 6px!important}
body.festival-layout .festival-home-message time{font-size:11px;color:var(--muted)}
body.festival-layout .festival-home-message>p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:14px;margin:14px 0;color:var(--text);max-height:none;overflow:visible}
body.festival-layout .festival-home-message footer{display:flex;flex-wrap:wrap;gap:8px}
body.festival-layout .festival-home-message footer .btn{font-size:11px!important;min-height:40px}
@media(max-width:900px){body.festival-layout .festival-home-messages{grid-template-columns:1fr}body.festival-layout .festival-home-message{padding:16px}}
body.festival-layout #festivalChrome{position:relative}
body.festival-layout .festival-home-return{gap:10px}
body.festival-layout .festival-home-return [data-return-profile]{margin-left:auto}
@media(max-width:900px){body.festival-layout .festival-home-return [data-return-plans]{display:none}body.festival-layout .festival-home-return .btn{font-size:12px!important;padding:8px!important}body.festival-layout .festival-five-nav [data-direct-view=shifts] span{font-size:10px!important}}
@media(max-width:600px){body.festival-layout .festival-header-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}body.festival-layout .festival-header-actions .btn{justify-content:center}}
