:root{--bg:#0d0d0f;--panel:#171719;--panel2:#202024;--line:#303036;--text:#f7f7f5;--muted:#9c9ca5;--pink:#e71283;--yellow:#d9da00;--blue:#50b7ff;--danger:#ff676d;--radius:14px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}a{color:inherit}.btn{border:1px solid var(--line);background:#242428;color:#fff;border-radius:9px;padding:10px 13px;font-size:12px;font-weight:900;letter-spacing:.04em;text-decoration:none}.btn:hover{background:#2d2d32}.btn.primary{background:var(--pink);border-color:var(--pink)}.btn.accent{background:var(--yellow);border-color:var(--yellow);color:#111}.btn.ghost{background:transparent}.btn.danger{color:#ffaaaa}.btn.subtle{background:rgba(255,103,109,.08)}.wide{width:100%}.eyebrow,.login-badge{display:inline-flex;background:var(--yellow);color:#111;padding:6px 9px;border-radius:6px;font-size:10px;font-weight:1000;letter-spacing:.14em}.alert{padding:12px 14px;border-radius:10px;margin:14px 0;font-size:13px;font-weight:700}.alert.warning{background:rgba(217,218,0,.1);border:1px solid rgba(217,218,0,.3);color:#efef91}.alert.error{background:rgba(255,103,109,.1);border:1px solid rgba(255,103,109,.35);color:#ffb0b3}.alert.success{background:rgba(80,200,120,.1);border:1px solid rgba(80,200,120,.3);color:#b5efc7}.icon-btn,.tiny-btn{border:0;background:transparent;color:var(--muted);font-size:18px}.icon-btn.big{font-size:30px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(231,18,131,.2),transparent 35%),#0d0d0f}.login-card{width:min(440px,100%);background:#171719;border:1px solid var(--line);border-radius:22px;padding:32px}.login-card h1{font-size:38px;margin:18px 0 7px}.login-form{display:grid;gap:16px;margin-top:24px}.login-form label,.user-create-form label{display:grid;gap:7px;font-size:13px;font-weight:800}.login-form input,.user-create-form input,.user-reset-form input{border:1px solid var(--line);background:#101012;color:#fff;border-radius:9px;padding:12px;outline:none}.login-form input:focus,input:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(231,18,131,.14)}
.live-strip{height:44px;display:flex;align-items:center;justify-content:center;gap:28px;background:#050506;border-bottom:1px solid #252529;font-size:12px;font-weight:800;letter-spacing:.03em}.live-strip b{color:var(--yellow);font-size:17px;margin-right:4px}.app-page{min-height:100vh;height:auto;overflow-y:auto;overflow-x:hidden}.app-shell{min-height:calc(100vh - 44px);height:auto;display:grid;grid-template-columns:255px minmax(0,1fr);align-items:start}.sidebar{display:flex;flex-direction:column;min-height:0;height:calc(100vh - 44px);position:sticky;top:44px;overflow:hidden;padding:18px 16px;background:#121214;border-right:1px solid var(--line)}.brand{display:flex;gap:11px;align-items:center;margin-bottom:20px}.brand-mark{width:40px;height:40px;border-radius:11px;background:var(--pink);display:grid;place-items:center;font-weight:1000}.brand strong{display:block}.brand span{display:block;font-size:10px;color:var(--muted)}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 2px 10px;font-size:10px;font-weight:900;letter-spacing:.12em;color:#aaa}.doc-list{display:grid;gap:7px;overflow:auto}.doc-item{border:1px solid transparent;background:transparent;color:#fff;border-radius:9px;text-align:left;padding:10px}.doc-item:hover,.doc-item.active{background:#222226;border-color:#34343a}.doc-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-item span{font-size:10px;color:var(--muted)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;font-size:10px;color:var(--muted);display:grid;gap:6px}.sidebar-footer a{color:#fff;text-decoration:none}.workspace{min-width:0;min-height:calc(100vh - 44px);display:flex;flex-direction:column}.topbar{position:sticky;top:44px;z-index:12;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px 18px;padding:14px 18px;border-bottom:1px solid var(--line);background:#141416}.title-wrap{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;align-items:center}.title-wrap .eyebrow{grid-row:1/span 2}.doc-title{background:transparent;border:1px solid transparent;color:#fff;font-size:21px;font-weight:1000;min-width:0}.save-status{font-size:10px;color:var(--muted)}.tabs{display:flex;align-items:center;gap:5px}.tab{border:1px solid var(--line);background:#1e1e22;color:#aaa;padding:9px 11px;border-radius:8px;font-size:10px;font-weight:1000}.tab.active{background:var(--yellow);color:#111;border-color:var(--yellow)}.toolbar{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.workgrid{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 255px;align-items:start}.content{min-height:0;overflow:visible;padding:18px 20px 48px}.mini-sidebar{border-left:1px solid var(--line);background:#111113;min-height:0;max-height:calc(100vh - 190px);position:sticky;top:180px;overflow:auto;padding:14px}.mini-title{font-size:10px;font-weight:1000;letter-spacing:.12em;color:#aaa;margin:4px 4px 10px}.mini-playlist{display:grid;gap:5px}.mini-row{position:relative;width:100%;border:1px solid #28282d;background:#19191c;color:#fff;border-radius:8px;text-align:left;padding:7px 30px 7px 32px;min-height:48px}.mini-row>b{position:absolute;left:8px;top:8px;color:#666;font-size:10px}.mini-row span{display:block;font-size:9px;font-weight:1000;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-row small{display:block;color:#aaa;font-size:9px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-row em{position:absolute;right:7px;top:7px;background:var(--yellow);color:#111;font-size:9px;font-style:normal;font-weight:1000;padding:3px 5px;border-radius:5px}.mini-row.text{border-color:#696900;background:rgba(217,218,0,.07)}.mini-row.weather{border-color:#28516d;background:rgba(80,183,255,.08)}.mini-empty{font-size:11px;padding:10px}.hint-bar{max-width:1100px;margin:0 auto 12px;background:#151517;border:1px dashed #333;border-radius:10px;padding:9px 11px;font-size:11px;color:#aaa}.blocks{max-width:1100px;margin:0 auto;display:grid;gap:9px}.block{display:grid;grid-template-columns:38px 68px minmax(0,1fr) auto;border:1px solid #2c2c31;border-left:5px solid var(--pink);background:#18181b;border-radius:12px;overflow:hidden;min-height:68px}.drag-handle{display:grid;place-items:center;color:#777;background:#121214;cursor:grab}.block-type{display:grid;place-items:center;border-right:1px solid #2c2c31;font-size:9px;font-weight:1000;color:#aaa}.block-main{position:relative;display:grid;grid-template-columns:1fr 1fr;min-width:0}.block-main.one{display:block}.field-wrap{position:relative;border-right:1px solid #2c2c31}.field-label{position:absolute;left:12px;top:8px;font-size:8px;color:#777;font-weight:900;text-transform:uppercase}.song-input{width:100%;height:100%;min-height:66px;border:0;background:transparent;color:#fff;padding:22px 12px 8px;font-size:15px;font-weight:1000;text-transform:uppercase;outline:none}.text-block{border-left-color:var(--yellow);background:linear-gradient(90deg,rgba(217,218,0,.13),#18181b 42%)}.text-block .block-type{color:#f3f38d}.text-editor{display:block;width:100%;min-height:70px;overflow:hidden;resize:none;border:0;background:transparent;color:#fff;padding:15px;font-size:17px;line-height:1.5;outline:none}.weather-block{border-left-color:var(--blue);background:linear-gradient(90deg,rgba(80,183,255,.12),#18181b 45%)}.weather-block .block-type{color:#9bd7ff}.weather-main{padding:13px 16px}.weather-main strong{font-size:13px;color:#bde5ff}.weather-main p{margin:5px 0 6px;font-size:14px;line-height:1.45}.weather-main small{color:#7aa8c4}.block-actions{display:flex;align-items:center;gap:2px;padding:0 7px;border-left:1px solid #29292e}.block-actions button{width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#888}.block-actions button:hover{background:#29292e;color:#fff}.top25-badge{position:absolute;right:9px;top:9px;background:var(--yellow);color:#111;border-radius:7px;padding:5px 7px;font-size:11px;font-weight:1000;box-shadow:0 4px 12px rgba(0,0,0,.3)}.top25-badge span{font-size:7px;display:block}.empty-state{max-width:600px;margin:9vh auto;text-align:center;border:1px dashed #333;border-radius:17px;padding:44px;background:#141416}.empty-state p{color:var(--muted)}
.chart-head{max-width:900px;margin:0 auto 15px;display:flex;justify-content:space-between;align-items:flex-end}.chart-head h2{font-size:30px;margin:10px 0 4px}.chart-head p{margin:0;color:var(--muted);font-size:11px}.chart-list{max-width:900px;margin:auto;display:grid;gap:7px}.chart-row{display:grid;grid-template-columns:62px 1fr;align-items:center;border:1px solid #2c2c31;background:#18181b;border-radius:10px;padding:10px 12px}.chart-row>b{font-size:20px;color:var(--yellow)}.chart-row strong{display:block;text-transform:uppercase}.chart-row span{display:block;color:#aaa;font-size:12px;text-transform:uppercase;margin-top:2px}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:20px;z-index:30}.modal-card{width:min(940px,100%);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#18181b;border:1px solid #38383f;border-radius:18px}.modal-head{display:flex;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #303036}.modal-head h2{margin:9px 0 3px}.modal-head p{margin:0;color:var(--muted);font-size:11px}.import-progress{margin:14px 22px 0;padding:11px;background:#232327;border-radius:9px}.import-rows{overflow:auto;padding:14px 22px;display:grid;gap:7px}.import-row{display:grid;grid-template-columns:32px 1fr 1fr 34px;gap:7px;align-items:center}.import-row input{border:1px solid #34343a;background:#101012;color:#fff;border-radius:8px;padding:10px;font-weight:900;text-transform:uppercase}.import-row button{border:0;background:transparent;color:#999;font-size:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid #303036}.toast{position:fixed;right:20px;bottom:20px;background:#fff;color:#111;padding:11px 14px;border-radius:9px;font-size:12px;font-weight:900;z-index:50}
.admin-page{padding:30px}.admin-shell{max-width:1000px;margin:auto}.admin-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.admin-header h1{font-size:38px;margin:10px 0 4px}.admin-header p{color:var(--muted)}.admin-card{border:1px solid var(--line);background:#171719;border-radius:15px;padding:20px;margin-bottom:14px}.user-create-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.user-list{display:grid;gap:8px}.user-row{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:center;border:1px solid #2d2d31;border-radius:9px;padding:10px}.user-name span{display:block;font-size:10px;color:var(--muted)}.user-reset-form{display:flex;gap:8px}.user-reset-form input{flex:1}
@media(max-width:1150px){.workgrid{grid-template-columns:minmax(0,1fr) 210px}.app-shell{grid-template-columns:220px minmax(0,1fr)}}@media(max-width:900px){.mini-sidebar{display:none}.workgrid{display:block}.topbar{grid-template-columns:1fr}.tabs{grid-column:1}.app-shell{grid-template-columns:200px minmax(0,1fr)}}@media(max-width:700px){.live-strip{gap:10px;font-size:9px;position:static}.app-page{min-height:100vh;height:auto;overflow-y:auto}.app-shell{min-height:0;height:auto;display:block}.sidebar{position:static;height:auto;min-height:auto;overflow:visible}.doc-list{display:flex;overflow:auto}.doc-item{min-width:170px}.workspace{min-height:70vh}.topbar{position:sticky;top:0;z-index:10}.block{grid-template-columns:32px 55px minmax(0,1fr);padding-bottom:38px;position:relative}.block-main{grid-template-columns:1fr}.field-wrap{border-bottom:1px solid #29292e}.block-actions{position:absolute;bottom:0;left:87px;right:0;height:38px;justify-content:flex-end}.top25-badge{position:static;margin:7px}.user-create-form,.user-row{grid-template-columns:1fr}.user-reset-form{display:grid}.admin-header{display:grid;gap:12px}}
@media print{.live-strip,.sidebar,.toolbar,.tabs,.mini-sidebar,.hint-bar,.block-actions,.drag-handle{display:none!important}.app-shell,.workgrid{display:block;height:auto}.workspace,.content{overflow:visible;background:#fff}.topbar{display:block;background:#fff;border:0}.doc-title{color:#111;font-size:27px}.blocks{max-width:none}.block{grid-template-columns:70px 1fr;border:1px solid #bbb;border-left:5px solid #111;background:#fff;break-inside:avoid}.block-type{color:#222}.song-input,.text-editor,.weather-main{color:#111}.field-label{color:#666}.top25-badge{box-shadow:none;border:1px solid #111}.text-block{background:#fff}.weather-block{background:#fff}.view-panel.hidden{display:none!important}}
/* v3: uren, bewerkbaar weer, hitlijst-trends en instellingen */
.hour-block{border-left-color:var(--accent,var(--yellow));background:linear-gradient(90deg,rgba(217,218,0,.2),#1a1a1d 55%);grid-template-columns:38px 68px minmax(0,1fr) auto;min-height:62px;margin-top:16px}.hour-label{display:grid;place-items:center;border-right:1px solid var(--line);font-size:9px;font-weight:1000;color:var(--yellow)}.hour-main{display:flex;align-items:baseline;gap:12px;padding:13px 16px}.hour-main strong{font-size:26px;letter-spacing:.02em}.hour-main span{font-size:11px;color:var(--muted);text-transform:uppercase}.mini-row.hour{border-color:rgba(217,218,0,.55);background:rgba(217,218,0,.13)}.mini-row.hour span{color:var(--yellow);font-size:12px}.weather-heading{display:block;width:100%;border:0;background:transparent;color:#bde5ff;font-size:14px;font-weight:1000;padding:0 0 5px;outline:none;text-transform:uppercase}.weather-editor{display:block;width:100%;min-height:74px;overflow:hidden;resize:none;border:0;background:transparent;color:var(--text);font-size:16px;line-height:1.5;padding:2px 0 6px;outline:none}.weather-foot{display:flex;justify-content:space-between;gap:12px;align-items:center}.refresh-weather{border:1px solid rgba(80,183,255,.35);background:rgba(80,183,255,.08);color:#bde5ff;border-radius:7px;padding:6px 8px;font-size:9px;font-weight:1000}.chart-badges{position:absolute;right:9px;top:8px;display:flex;gap:5px;align-items:flex-start}.chart-badges .top25-badge{position:static}.chart-actions{display:flex;gap:8px}.chart-search-wrap{max-width:900px;margin:0 auto 12px}.chart-search{width:100%;border:1px solid var(--line);background:#111113;color:#fff;border-radius:10px;padding:12px 14px;outline:none}.chart-row{grid-template-columns:62px minmax(0,1fr) auto}.chart-track{min-width:0}.chart-movement{min-width:120px;text-align:right}.chart-movement small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.trend{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:1000}.trend.up{background:rgba(72,202,122,.14);color:#8bf0ad}.trend.down{background:rgba(255,103,109,.14);color:#ff9da1}.trend.same{background:rgba(255,255,255,.07);color:#bbb}.trend.new{background:var(--yellow);color:#111}.trend.unknown{color:#777}.import-hour{display:flex;align-items:center;gap:10px;border-top:2px solid var(--yellow);padding:14px 4px 5px;margin-top:10px}.import-hour b{font-size:22px;color:var(--yellow)}.import-hour span{font-size:9px;font-weight:1000;color:var(--muted)}.color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.color-field{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:8px;font-size:12px;font-weight:800}.color-field>div{display:flex;align-items:center;gap:10px}.color-field input[type=color]{width:58px;height:38px;border:0;background:transparent}.color-field code{color:var(--muted)}.settings-actions{grid-column:1/-1}.inline-form{margin-top:10px}
@media(max-width:700px){.hour-block{grid-template-columns:32px 55px minmax(0,1fr);padding-bottom:38px}.hour-main strong{font-size:22px}.weather-foot{align-items:flex-start;flex-direction:column}.chart-badges{position:static;padding:7px}.chart-row{grid-template-columns:50px 1fr}.chart-movement{grid-column:2;text-align:left;min-width:0}.color-grid{grid-template-columns:1fr}}
@media print{.hour-block{grid-template-columns:70px 1fr!important;margin-top:18px}.hour-main{color:#111}.weather-heading,.weather-editor{color:#111}.refresh-weather{display:none!important}.chart-badges{position:static}}
/* v4 dashboard */
.dashboard-page{min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(231,18,131,.13),transparent 32%),var(--bg)}
.dash-topbar{height:72px;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:0 28px;background:rgba(13,13,15,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.dash-brand{display:flex;align-items:center;gap:11px;text-decoration:none}.dash-brand>span:last-child{display:grid}.dash-brand small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.dash-nav{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.dash-nav a{text-decoration:none;color:#bbb;border:1px solid transparent;padding:9px 11px;border-radius:9px;font-size:11px;font-weight:900}.dash-nav a:hover{border-color:var(--line);background:var(--panel2);color:#fff}.dash-user{display:flex;align-items:center;gap:10px}.dash-user>div{display:grid;gap:1px;text-align:right}.dash-user strong{font-size:12px}.dash-user a:not(.dash-avatar){font-size:9px;color:var(--muted);text-decoration:none}.dash-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;border:2px solid var(--yellow);display:block}.dash-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.dashboard-shell{width:min(1500px,100%);margin:0 auto;padding:26px 28px 54px}.dash-hero{position:relative;overflow:hidden;min-height:320px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(120deg,rgba(231,18,131,.28),rgba(217,218,0,.09) 52%,rgba(80,183,255,.13)),#171719;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:end;padding:34px}.dash-hero.has-photo:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(10,10,12,.92) 0%,rgba(10,10,12,.72) 46%,rgba(10,10,12,.35) 100%),var(--dash-photo);background-size:cover;background-position:center}.dash-hero>*{position:relative;z-index:1}.dash-hero h1{font-size:clamp(38px,5vw,72px);line-height:.98;margin:15px 0 12px;max-width:900px;letter-spacing:-.04em}.dash-hero-copy>p{font-size:19px;color:#ddd;margin:0 0 28px}.dash-clock{display:flex;align-items:baseline;gap:16px}.dash-clock strong{font-size:34px;letter-spacing:.03em}.dash-clock span{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.07em}.dash-live-card{justify-self:end;width:100%;background:rgba(10,10,12,.78);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:20px;backdrop-filter:blur(8px)}.dash-live-card>span{font-size:9px;font-weight:1000;color:var(--yellow);letter-spacing:.13em}.dash-live-card strong{display:block;font-size:23px;margin:8px 0 5px;text-transform:uppercase}.dash-live-card small{color:#bbb}
.dash-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.dash-link-card{min-height:150px;position:relative;overflow:hidden;display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;text-decoration:none;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:22px;transition:transform .15s ease,border-color .15s ease}.dash-link-card:hover{transform:translateY(-2px);border-color:#515159}.dash-link-card>span{font-size:13px;color:var(--muted);font-weight:1000}.dash-link-card>div small{font-size:9px;font-weight:1000;letter-spacing:.13em}.dash-link-card h2{font-size:23px;margin:5px 0}.dash-link-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.dash-link-card>b{font-size:28px}.dash-link-card.pink{box-shadow:inset 5px 0 0 var(--pink)}.dash-link-card.pink small,.dash-link-card.pink>b{color:var(--pink)}.dash-link-card.yellow{box-shadow:inset 5px 0 0 var(--yellow)}.dash-link-card.yellow small,.dash-link-card.yellow>b{color:var(--yellow)}.dash-link-card.blue{box-shadow:inset 5px 0 0 var(--blue)}.dash-link-card.blue small,.dash-link-card.blue>b{color:var(--blue)}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:14px}.dash-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:20px;min-width:0}.dash-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.dash-panel-head h2{font-size:23px;margin:9px 0 0}.recent-tracks,.schedule-list{display:grid;gap:7px}.recent-track{display:grid;grid-template-columns:32px 54px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #2c2c31;background:#111113;border-radius:11px;padding:10px}.recent-track>b{color:#555;font-size:10px}.recent-track time{font-size:12px;font-weight:1000;color:var(--yellow)}.recent-track strong{display:block;text-transform:uppercase;font-size:13px}.recent-track span{display:block;color:var(--muted);text-transform:uppercase;font-size:10px;margin-top:2px}.schedule-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #2c2c31;border-left:4px solid #444;background:#111113;border-radius:11px;padding:10px 12px;opacity:.78}.schedule-row.current{border-left-color:var(--yellow);background:rgba(217,218,0,.08);opacity:1}.schedule-row.upcoming{border-left-color:var(--blue);opacity:1}.schedule-row.past{opacity:.48}.schedule-time{font-weight:1000;font-size:14px}.schedule-time span{display:block;color:var(--muted);font-size:9px;font-weight:700;margin-top:2px}.schedule-copy strong{display:block;text-transform:uppercase;font-size:13px}.schedule-copy small{color:var(--muted)}.schedule-status{font-size:9px;font-weight:1000;border:1px solid var(--line);padding:5px 7px;border-radius:999px}.schedule-row.current .schedule-status{background:var(--yellow);border-color:var(--yellow);color:#111}.dash-loading{padding:18px;color:var(--muted);text-align:center}
.admin-header-actions{display:flex;gap:8px}.dashboard-preview{width:100%;max-height:300px;object-fit:cover;border-radius:12px;border:1px solid var(--line);margin:10px 0 14px}.media-upload-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.media-upload-form input[type=file],.user-photo-form input[type=file],.profile-form input[type=file],.user-create-form input[type=file]{border:1px solid var(--line);background:#101012;color:#bbb;border-radius:9px;padding:8px;max-width:100%}.user-create-form.extended{grid-template-columns:1fr 1fr 1fr 1.2fr auto}.user-row.user-row-photo{grid-template-columns:52px 180px minmax(0,1fr) auto}.user-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--line)}.user-manage{display:grid;gap:7px}.user-photo-form{display:flex;gap:7px}.profile-card{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;align-items:start}.profile-large-avatar{width:170px;height:170px;border-radius:22px;object-fit:cover;border:2px solid var(--yellow)}.profile-form{display:grid;gap:14px}.profile-form label{display:grid;gap:7px;font-size:12px;font-weight:900}.profile-form input[type=text],.profile-form input:not([type=file]){border:1px solid var(--line);background:#101012;color:#fff;border-radius:9px;padding:12px}.profile-form small{color:var(--muted)}
@media(max-width:1100px){.dash-topbar{grid-template-columns:auto 1fr}.dash-user{grid-column:2;grid-row:1;justify-self:end}.dash-nav{grid-column:1/-1;display:none}.dash-hero{grid-template-columns:1fr}.dash-live-card{justify-self:start;max-width:520px}.dash-grid{grid-template-columns:1fr}.user-create-form.extended{grid-template-columns:1fr 1fr}.user-row.user-row-photo{grid-template-columns:52px minmax(0,1fr);}.user-row.user-row-photo>.user-manage,.user-row.user-row-photo>form{grid-column:2}}
@media(max-width:760px){.dash-topbar{height:auto;min-height:68px;padding:10px 14px;gap:10px}.dash-user>div{display:none}.dashboard-shell{padding:14px 12px 36px}.dash-hero{min-height:390px;padding:22px;border-radius:18px}.dash-hero h1{font-size:42px}.dash-hero-copy>p{font-size:16px}.dash-clock{align-items:flex-start;flex-direction:column;gap:4px}.dash-links{grid-template-columns:1fr}.dash-grid{display:block}.dash-panel{margin-bottom:12px;padding:14px}.schedule-row{grid-template-columns:65px minmax(0,1fr)}.schedule-status{grid-column:2;justify-self:start}.user-create-form.extended,.profile-card{grid-template-columns:1fr}.profile-large-avatar{width:120px;height:120px}.admin-header-actions{flex-wrap:wrap}.user-row.user-row-photo{grid-template-columns:50px minmax(0,1fr)}.user-photo-form,.user-reset-form{display:grid}}

/* v4 dashboard / profiel */
.dashboard-page{height:100vh;overflow:hidden;background:var(--bg);color:var(--text)}
.dash-topbar{height:72px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:0 24px;border-bottom:1px solid var(--line);background:rgba(15,15,17,.96)}
.dash-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.dash-brand>span:last-child{display:grid}.dash-brand b{font-size:13px;letter-spacing:.08em}.dash-brand small{font-size:9px;color:var(--muted)}
.dash-nav{display:flex;justify-content:center;gap:7px}.dash-nav a{text-decoration:none;border:1px solid transparent;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:900;text-transform:uppercase;color:#c5c5ca}.dash-nav a:hover{border-color:var(--line);background:var(--panel2);color:#fff}
.dash-user{display:flex;align-items:center;gap:10px}.dash-user>div{display:flex;align-items:center;gap:6px;font-size:10px}.dash-user strong{font-size:11px}.dash-user a{color:var(--muted);text-decoration:none}.dash-user a:hover{color:#fff}.dash-user span{color:#555}
.dash-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;border:2px solid var(--pink);display:block;flex:none}.dash-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.dashboard-shell{height:calc(100vh - 72px);max-width:1500px;margin:auto;padding:14px 20px 18px;display:grid;grid-template-rows:minmax(155px,1.05fr) minmax(105px,.72fr) minmax(220px,1.55fr);gap:12px;overflow:hidden}
.dash-hero{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:linear-gradient(120deg,rgba(231,18,131,.22),rgba(217,218,0,.08) 58%,var(--panel));display:flex;align-items:center;justify-content:space-between;padding:22px 28px;isolation:isolate}.dash-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.08),transparent 34%);z-index:-1}.dash-hero.has-photo:after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(10,10,12,.94) 0%,rgba(10,10,12,.68) 52%,rgba(10,10,12,.28)),var(--dash-photo);background-size:cover;background-position:center;z-index:-2}.dash-hero-copy h1{font-size:clamp(27px,3vw,46px);line-height:.98;margin:8px 0 7px}.dash-hero-copy p{margin:0;color:#d5d5d8;font-weight:700;font-size:13px}.dash-clock{display:flex;align-items:baseline;gap:10px;margin-top:16px}.dash-clock strong{font-size:27px;letter-spacing:.04em}.dash-clock span{font-size:9px;font-weight:900;color:var(--muted)}
.dash-live-card{min-width:280px;max-width:390px;background:rgba(10,10,12,.72);border:1px solid rgba(255,255,255,.13);border-radius:13px;padding:15px 17px;backdrop-filter:blur(8px)}.dash-live-card>span{font-size:8px;color:var(--yellow);font-weight:1000;letter-spacing:.12em}.dash-live-card strong{display:block;font-size:18px;margin:5px 0 3px}.dash-live-card small{color:#aaa;font-size:10px}
.dash-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dash-link-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:var(--panel);transition:.15s transform,.15s border-color}.dash-link-card:hover{transform:translateY(-2px);border-color:#666}.dash-link-card>span{font-size:10px;font-weight:1000;color:#777}.dash-link-card small{font-size:7px;font-weight:1000;letter-spacing:.13em}.dash-link-card h2{font-size:18px;margin:2px 0}.dash-link-card p{font-size:9px;color:var(--muted);margin:0}.dash-link-card>b{font-size:23px}.dash-link-card.pink small,.dash-link-card.pink>b{color:var(--pink)}.dash-link-card.yellow small,.dash-link-card.yellow>b{color:var(--yellow)}.dash-link-card.blue small,.dash-link-card.blue>b{color:var(--blue)}
.dash-grid{min-height:0;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:12px}.dash-panel{min-height:0;border:1px solid var(--line);border-radius:15px;background:var(--panel);padding:14px 16px;overflow:hidden;display:flex;flex-direction:column}.dash-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.dash-panel-head h2{font-size:16px;margin:3px 0 0}.recent-tracks,.schedule-list{min-height:0;overflow:auto;scrollbar-width:thin}.recent-track{display:grid;grid-template-columns:28px 48px minmax(0,1fr);align-items:center;gap:8px;padding:7px 2px;border-top:1px solid #29292d}.recent-track:first-child{border-top:0}.recent-track>b{color:var(--pink);font-size:9px}.recent-track time{font-size:9px;color:var(--muted)}.recent-track strong,.recent-track span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-track strong{display:block;font-size:11px;text-transform:uppercase}.recent-track span{display:block;font-size:9px;color:#aaa;text-transform:uppercase;margin-top:1px}
.schedule-row{display:grid;grid-template-columns:64px minmax(0,1fr) 52px;align-items:center;gap:9px;padding:7px 8px;border-top:1px solid #29292d;border-left:3px solid transparent}.schedule-row:first-child{border-top:0}.schedule-row.current{background:rgba(217,218,0,.08);border-left-color:var(--yellow)}.schedule-row.past{opacity:.47}.schedule-time{font-size:10px;font-weight:1000}.schedule-time span{display:block;font-size:8px;color:var(--muted);font-weight:700}.schedule-copy strong{display:block;font-size:11px}.schedule-copy small{display:block;font-size:9px;color:var(--muted);margin-top:1px}.schedule-status{text-align:right;font-size:8px;font-weight:1000;color:#777}.schedule-row.current .schedule-status{color:var(--yellow)}.dash-loading{font-size:11px;color:var(--muted);padding:16px 0}
.profile-shell{max-width:800px}.profile-card{display:grid;grid-template-columns:190px 1fr;gap:24px}.profile-preview{text-align:center}.profile-preview img{width:150px;height:150px;object-fit:cover;border-radius:50%;border:4px solid var(--pink);display:block;margin:0 auto 10px}.profile-preview strong,.profile-preview span{display:block}.profile-preview span{font-size:10px;color:var(--muted);margin-top:3px}.profile-form{display:grid;gap:12px;align-content:start}.profile-form label,.homepage-photo-settings label{display:grid;gap:6px;font-size:11px;font-weight:900}.profile-form input,.homepage-photo-settings input{width:100%;border:1px solid var(--line);background:#111113;color:#fff;border-radius:9px;padding:10px}.homepage-photo-settings{display:grid;grid-template-columns:220px 1fr auto;gap:14px;align-items:end}.homepage-photo-settings>img{width:220px;height:105px;object-fit:cover;border:1px solid var(--line);border-radius:10px}.homepage-photo-settings form{display:grid;gap:9px}
@media(max-width:900px){.dashboard-page{height:auto;min-height:100vh;overflow:auto}.dash-topbar{height:auto;grid-template-columns:1fr auto;padding:10px 14px}.dash-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow:auto}.dashboard-shell{height:auto;min-height:calc(100vh - 100px);display:block;overflow:visible;padding:12px}.dash-hero,.dash-links,.dash-grid{margin-bottom:12px}.dash-links{grid-template-columns:1fr}.dash-grid{grid-template-columns:1fr}.dash-panel{max-height:360px}.homepage-photo-settings{grid-template-columns:1fr}.homepage-photo-settings>img{width:100%;height:170px}.profile-card{grid-template-columns:1fr}.dash-live-card{min-width:0}}
@media(max-width:620px){.dash-topbar{grid-template-columns:1fr auto}.dash-user>div{display:none}.dash-hero{display:grid;gap:16px;padding:18px}.dash-live-card{width:100%}.dash-link-card p{display:none}.dash-brand small{display:none}}


/* v4.2 archief */
.archive-nav{margin-top:12px;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:8px;align-items:center;padding:10px 11px;border:1px solid #303036;border-radius:10px;background:#1b1b1f;color:#fff;text-decoration:none}.archive-nav:hover,.archive-nav.active{border-color:var(--yellow);background:rgba(217,218,0,.08)}.archive-nav>span{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;background:#29292e;color:var(--yellow)}.archive-nav b{display:block;font-size:11px;letter-spacing:.08em}.archive-nav small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.archive-nav>strong{color:var(--yellow)}
.archive-shell{grid-template-columns:300px minmax(0,1fr)}.archive-sidebar{top:0;height:100vh}.archive-title{padding:3px 2px 12px;border-bottom:1px solid var(--line)}.archive-title h2{margin:4px 0 5px;font-size:23px}.archive-title p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.archive-doc-list{margin-top:12px;flex:1;min-height:100px}.archive-topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line);background:#141416}.archive-topbar h1{margin:4px 0 3px}.archive-topbar p{margin:0;color:var(--muted);font-size:11px}.archive-content{padding:24px 24px 60px}.archive-blocks{max-width:1000px}.archive-view-block{display:grid;grid-template-columns:90px minmax(0,1fr);gap:0;border:1px solid #2c2c31;border-left:5px solid var(--pink);background:#18181b;border-radius:12px;overflow:hidden;min-height:68px}.archive-view-block .archive-kind{display:grid;place-items:center;border-right:1px solid #2c2c31;color:#aaa;font-size:9px;font-weight:1000;letter-spacing:.08em}.archive-view-block>div:last-child,.archive-view-block>p{padding:15px 17px;margin:0}.archive-view-block.hour-block{border-left-color:#8b8b94}.archive-view-block.hour-block>div:last-child{display:flex;align-items:baseline;gap:10px}.archive-view-block.hour-block strong{font-size:24px}.archive-view-block.hour-block span{color:var(--muted)}.archive-view-block.text-block{border-left-color:var(--yellow);background:linear-gradient(90deg,rgba(217,218,0,.12),#18181b 44%)}.archive-view-block.weather-block{border-left-color:var(--blue);background:linear-gradient(90deg,rgba(80,183,255,.10),#18181b 44%)}.archive-view-block p{line-height:1.55}.archive-song{display:grid;gap:4px}.archive-song strong,.archive-song span{text-transform:uppercase;font-weight:1000}.archive-song strong{font-size:15px}.archive-song span{font-size:14px;color:#ddd}
@media(max-width:700px){.archive-shell{display:block}.archive-sidebar{position:static;height:auto}.archive-doc-list{display:flex;overflow:auto}.archive-topbar{position:sticky;top:0;padding:14px;align-items:flex-start}.archive-topbar h1{font-size:22px}.archive-content{padding:14px}.archive-view-block{grid-template-columns:65px minmax(0,1fr)}}

/* v4.6: compacte live-kijkers + tabs rechts in dezelfde actiebalk */
.viewer-presence{display:flex;align-items:center;justify-content:flex-end;min-height:34px;padding-right:2px;max-width:240px}
.viewer-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:#1b1b1e;border:2px solid #141416;box-shadow:0 0 0 2px var(--yellow);margin-left:-7px;position:relative}
.viewer-avatar:first-child{margin-left:0}
.toolbar-tabs{margin-left:auto;display:flex;align-items:center;gap:5px}
@media(max-width:1100px){.toolbar-tabs{margin-left:0;width:100%;justify-content:flex-end}}
@media(max-width:700px){.viewer-presence{justify-content:flex-start;max-width:none}.toolbar-tabs{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.toolbar-tabs .tab{white-space:nowrap}}

/* v4.7 nieuws + afdrukfix */
.print-text-content{display:none}.song-news{grid-column:1/-1;margin-top:7px;padding-top:7px;border-top:1px dashed #34343a;display:flex;gap:8px;align-items:flex-start;font-size:10px;line-height:1.35;color:#c9c9ce}.song-news b{flex:0 0 auto;background:var(--blue);color:#071018;border-radius:4px;padding:2px 5px;font-size:8px;letter-spacing:.08em}.song-news span{min-width:0}.hour-block .block-actions .remove{display:none!important}
@media print{.text-editor,.weather-editor{display:none!important}.print-text-content{display:block!important;color:#111!important;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;line-height:1.45;font-size:14px;padding:3px 0 8px;min-height:0}.text-block,.weather-block{break-inside:auto!important;page-break-inside:auto!important}.text-block .block-main,.weather-main{min-width:0;overflow:visible!important}.song-news{color:#222!important;border-top:1px dashed #aaa!important}.song-news b{border:1px solid #444;background:#fff!important;color:#111!important}}


/* v4.8: artiest-specifiek internetnieuws + robuuste tekstblokken */
.text-block{height:auto!important;min-height:68px;align-items:stretch}
.text-block .block-main.one{height:auto!important;min-height:0;overflow:visible}
.text-editor{box-sizing:border-box;height:auto;min-height:70px;overflow:hidden!important;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.weather-editor{box-sizing:border-box;height:auto;overflow:hidden!important;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.song-news{text-decoration:none;cursor:pointer;border-radius:6px;padding:7px 6px 4px;margin-left:0;margin-right:0}
.song-news:hover{background:rgba(80,183,255,.08);color:#fff}
.song-news small{font-size:9px;color:#8e8e96;font-weight:700}
@media(max-width:700px){.text-block{padding-bottom:38px}.text-editor{font-size:16px;line-height:1.45}}


/* v4.16 stabiele herstelset */
.live-strip{
  position:sticky;
  top:0;
  z-index:70;
  flex:none;
}
.viewer-presence{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  min-height:34px;
  max-width:220px;
  overflow:hidden;
}
.viewer-presence:empty{display:none}
.viewer-avatar{
  display:block;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  max-width:30px!important;
  max-height:30px!important;
  object-fit:cover!important;
  border-radius:50%!important;
  border:2px solid #141416;
  box-shadow:0 0 0 2px var(--yellow);
  margin-left:-6px;
}
.viewer-avatar:first-child{margin-left:0}
.toolbar-tabs{margin-left:auto}
.hour-block .remove{display:none!important}

.news-list{max-width:900px;margin:auto;display:grid;gap:7px}
.news-row{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 24px;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:10px 13px;
  border:1px solid #2c2c31;
  border-radius:10px;
  background:#18181b;
  text-decoration:none;
}
.news-row:hover{border-color:#555;background:#1d1d21}
.news-row>b{color:var(--blue);font-size:10px}
.news-row>span{font-size:13px;font-weight:900;line-height:1.35}
.news-row>strong{text-align:right;color:var(--yellow);font-size:20px}

.text-block{height:auto!important;min-height:68px;align-items:stretch}
.text-block .block-main.one{height:auto!important;min-height:0;overflow:visible}
.text-editor,.weather-editor{
  box-sizing:border-box;
  height:auto;
  overflow:hidden!important;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.print-text-content{display:none}
.song-news{
  grid-column:1/-1;
  margin:7px 8px 6px;
  padding:7px 6px 4px;
  border-top:1px dashed #34343a;
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-size:10px;
  line-height:1.35;
  color:#c9c9ce;
  text-decoration:none;
  border-radius:6px;
}
.song-news:hover{background:rgba(80,183,255,.08);color:#fff}
.song-news b{flex:0 0 auto;background:var(--blue);color:#071018;border-radius:4px;padding:2px 5px;font-size:8px;letter-spacing:.08em}
.song-news small{font-size:9px;color:#8e8e96;font-weight:700}

@media(max-width:700px){
  .live-strip{position:sticky!important;top:0!important;z-index:70!important}
  .viewer-presence{max-width:140px}
  .viewer-avatar{
    width:28px!important;height:28px!important;
    min-width:28px!important;min-height:28px!important;
    max-width:28px!important;max-height:28px!important;
  }
  .toolbar-tabs{margin-left:0;width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
  .toolbar-tabs .tab{white-space:nowrap}
}

@media print{
  .text-editor,.weather-editor{display:none!important}
  .print-text-content{
    display:block!important;
    color:#111!important;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.45;
    font-size:14px;
    padding:3px 0 8px;
  }
  .text-block,.weather-block{break-inside:auto!important;page-break-inside:auto!important}
  .song-news{color:#222!important;border-top:1px dashed #aaa!important}
  .song-news b{border:1px solid #444;background:#fff!important;color:#111!important}
}


/* v4.17 - compactere muziekblokken zonder ARTIEST/TITEL-kopjes */
.song-input{
  padding:10px 12px !important;
  min-height:60px;
}
.field-label{display:none!important}

@media print{
  /* Nieuwsheadline blijft online zichtbaar, maar nooit in afdruk/PDF. */
  .song-news{display:none!important}
}


/* v4.18 - actuele Sterren NL Paradeplaat */
.paradeplaat-label{
  grid-column:1/-1;
  margin:6px 8px 2px;
  padding:7px 10px;
  border-radius:7px;
  background:var(--yellow);
  color:#111;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.18em;
  text-align:center;
}
@media print{
  .paradeplaat-label{
    border:2px solid #111!important;
    background:#fff!important;
    color:#111!important;
  }
}

/* v4.19 - actuele Paradeplaat badge */
.paradeplaat-label{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-top:7px;
  padding:5px 9px;
  border-radius:6px;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* v4.20 - verkeersinformatie elke minuut */
.traffic-updated{
  font-size:9px;
  line-height:1;
  opacity:.62;
  font-weight:700;
  white-space:nowrap;
}
.traffic-updated.stale{opacity:.4}
.traffic-clear{
  font-weight:1000;
  letter-spacing:.03em;
  white-space:nowrap;
}
.live-strip .hidden{display:none!important}
@media(max-width:700px){
  .traffic-updated{font-size:8px}
  .traffic-clear{font-size:10px;white-space:normal}
}


/* v4.21 - playlistoverzicht rechts alleen verticaal scrollen */
.mini-sidebar{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior-x:none;
  touch-action:pan-y;
}
.mini-playlist{
  max-width:100%;
  overflow-x:hidden;
}
.mini-row{
  max-width:100%;
}

/* v4.22 - alleen ANWB A-wegen */
.traffic-sentence{
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.traffic-sentence b{
  color:var(--yellow);
  font-size:14px;
  margin:0 2px;
}
@media(max-width:900px){
  .traffic-sentence{white-space:normal;text-align:center}
}

/* v4.25 - soepeler wisselen tussen draaiboeken */
.doc-item{
  transition:background .12s ease,border-color .12s ease,opacity .12s ease;
}
body.doc-switching .doc-item.active{
  opacity:.72;
}
body.doc-switching .doc-item.active::after{
  content:'…';
  float:right;
  color:var(--yellow);
  font-weight:1000;
}

/* v4.27 - verkeersbalk zonder handmatige refreshknop */
.live-strip{padding-right:18px}


/* v4.28 - drie-puntjesmenu bij Mijn draaiboeken */
.doc-list{overflow-x:visible}
.doc-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:stretch;
  gap:3px;
  border-radius:9px;
}
.doc-row.active{background:#222226}
.doc-row .doc-item{
  min-width:0;
  width:100%;
  margin:0;
}
.doc-more-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.doc-more{
  width:30px;
  height:30px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#aaa;
  font-weight:1000;
  letter-spacing:1px;
  cursor:pointer;
  line-height:1;
}
.doc-more:hover,
.doc-more[aria-expanded="true"]{
  background:#303034;
  color:#fff;
}
.doc-menu{
  position:absolute;
  right:0;
  top:34px;
  z-index:120;
  display:none;
  width:190px;
  padding:5px;
  border:1px solid #34343a;
  border-radius:9px;
  background:#1b1b1f;
  box-shadow:0 12px 32px rgba(0,0,0,.42);
}
.doc-menu.open{display:grid}
.doc-menu button{
  width:100%;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#fff;
  padding:9px 10px;
  text-align:left;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.doc-menu button:hover{background:#2a2a2f}
.doc-menu button:first-child{color:#f1db53}

@media print{
  .doc-menu,.doc-more{display:none!important}
}


/* v4.29 - Archief onderaan + kleinere drie-puntjesknop */
.sidebar .doc-list{
  flex:1 1 auto;
  min-height:0;
}
.sidebar .archive-nav{
  flex:0 0 auto;
  margin-top:10px;
  margin-bottom:10px;
}
.sidebar .sidebar-footer{
  margin-top:0;
}

.doc-row{
  grid-template-columns:minmax(0,1fr) 28px;
}
.doc-more{
  width:24px;
  height:24px;
  border-radius:6px;
  font-size:9px;
  letter-spacing:.4px;
}
.doc-menu{
  top:28px;
}

/* v4.31 - draaiboeken in sidebar weer compact */
.sidebar .doc-list{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-auto-rows:min-content;
  align-content:start;
  gap:7px;
  overflow-y:auto;
  overflow-x:visible;
}
.sidebar .doc-row{
  min-height:0 !important;
  height:auto !important;
  align-self:start;
  align-items:center;
}
.sidebar .doc-row .doc-item{
  min-height:0 !important;
  height:auto !important;
  padding:10px !important;
  display:block;
}
.sidebar .doc-row .doc-item strong{
  display:block;
  line-height:1.2;
}


/* v4.45 - PDF importknop + compactere, blokvaste afdrukversie */
@media print{
  @page{
    size:A4;
    margin:9mm 9mm 10mm;
  }

  html,body{
    background:#fff!important;
    color:#111!important;
    font-size:11px!important;
  }

  .app-page,
  .app-shell,
  .workspace,
  .content,
  .workgrid{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }

  .content{
    padding:0!important;
  }

  .topbar{
    position:static!important;
    padding:0 0 7px!important;
    margin:0 0 7px!important;
    border-bottom:1px solid #bbb!important;
  }

  .title-wrap{
    display:block!important;
  }

  .title-wrap .eyebrow,
  .save-status{
    display:none!important;
  }

  .doc-title{
    width:100%!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    font-size:18px!important;
    line-height:1.15!important;
    color:#111!important;
  }

  .blocks{
    max-width:none!important;
    gap:4px!important;
  }

  /* Geen enkel blok over twee pagina's laten doorlopen. */
  .block,
  .song-block,
  .text-block,
  .weather-block,
  .hour-block{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }

  .block{
    min-height:0!important;
    border-radius:5px!important;
    border-width:1px!important;
    border-left-width:4px!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    overflow:visible!important;
  }

  .drag-handle,
  .block-actions{
    display:none!important;
  }

  .block-type,
  .hour-label{
    grid-column:1!important;
    grid-row:1!important;
    min-height:0!important;
    padding:5px 4px!important;
    border-right:1px solid #bbb!important;
    font-size:8px!important;
    line-height:1.1!important;
  }

  .block-main,
  .weather-main,
  .hour-main{
    grid-column:2!important;
    grid-row:1!important;
    min-height:0!important;
  }

  .block-main{
    grid-template-columns:1fr 1fr!important;
  }

  .song-input{
    min-height:0!important;
    height:30px!important;
    padding:5px 8px!important;
    font-size:11px!important;
    line-height:1.1!important;
  }

  .field-wrap{
    min-height:0!important;
  }

  .text-block .block-main.one{
    display:block!important;
  }

  /* Tekst iets verder los van het gekleurde/linker lijntje. */
  .text-block .print-text-content{
    padding:7px 12px 7px 16px!important;
    font-size:11px!important;
    line-height:1.28!important;
  }

  .weather-main{
    padding:7px 10px 7px 14px!important;
  }

  .weather-heading{
    font-size:10px!important;
    min-height:0!important;
    padding:0 0 4px!important;
    border:0!important;
    color:#111!important;
  }

  .weather-print-text{
    padding:2px 0 3px!important;
    font-size:11px!important;
    line-height:1.28!important;
  }

  .weather-foot{
    margin-top:3px!important;
    font-size:8px!important;
  }

  .hour-block{
    margin-top:7px!important;
  }

  .hour-main{
    padding:5px 9px!important;
    display:flex!important;
    align-items:baseline!important;
    gap:8px!important;
  }

  .hour-main strong{
    font-size:14px!important;
  }

  .hour-main span{
    font-size:9px!important;
  }

  .top25-badge,
  .paradeplaat-label{
    position:static!important;
    margin:3px 7px 4px!important;
    padding:2px 5px!important;
    font-size:8px!important;
    box-shadow:none!important;
  }

  .song-news{
    display:none!important;
  }
}


/* v4.46 - zoeken in playlistoverzicht + dashboardtekst instellingen */
.mini-search-wrap{margin:0 0 10px}
.mini-search{
  width:100%;
  border:1px solid var(--line);
  background:#171719;
  color:#fff;
  border-radius:8px;
  padding:9px 10px;
  font-size:10px;
  font-weight:800;
  outline:none;
}
.mini-search::placeholder{color:#6f6f77}
.mini-search:focus{
  border-color:var(--yellow);
  box-shadow:0 0 0 2px rgba(217,218,0,.08);
}
.dashboard-message-form{display:grid;gap:10px}
.dashboard-message-form textarea{
  width:100%;
  min-height:100px;
  resize:vertical;
  border:1px solid var(--line);
  background:#111113;
  color:#fff;
  border-radius:10px;
  padding:12px 14px;
  font:inherit;
  line-height:1.5;
  outline:none;
}
.dashboard-message-form textarea:focus{border-color:var(--yellow)}
@media print{.mini-search-wrap{display:none!important}}


/* v4.47 - uploadbaar systeemlogo */
.login-logo-wrap{
  width:100%;
  height:92px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin:0 0 16px;
  overflow:hidden;
}
.login-logo{
  display:block;
  max-width:100%;
  max-height:92px;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:left center;
}
.dash-logo-wrap{
  width:58px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 58px;
  overflow:hidden;
}
.dash-logo{
  display:block;
  max-width:58px;
  max-height:42px;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:left center;
}
.site-logo-preview-wrap{
  width:100%;
  min-height:110px;
  max-height:220px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:14px;
  margin:10px 0 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#101012;
  overflow:hidden;
}
.site-logo-preview{
  display:block;
  max-width:100%;
  max-height:190px;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:left center;
}
@media(max-width:620px){
  .dash-logo-wrap{width:48px;height:36px;flex-basis:48px}
  .dash-logo{max-width:48px;max-height:36px}
}


/* v4.49 - dashboardfoto als hero-achtergrond */
.dash-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.dash-hero.has-photo{
  background:#171719!important;
}
.dash-hero.has-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:var(--dash-photo)!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  transform:scale(1.01);
}
.dash-hero.has-photo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(8,8,10,.58);
  pointer-events:none;
}
.dash-hero.has-photo .dash-hero-copy,
.dash-hero.has-photo .dash-live-card{
  position:relative;
  z-index:1;
}
.dash-hero.has-photo .dash-hero-copy>p{
  color:#f1f1f1;
}


/* v4.50 - fix zichtbaarheid dashboardachtergrond */
.dash-hero.has-photo{
  position:relative!important;
  isolation:isolate!important;
  background:#171719!important;
}
.dash-hero.has-photo::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background-image:var(--dash-photo)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  transform:none!important;
  pointer-events:none!important;
}
.dash-hero.has-photo::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:rgba(8,8,10,.58)!important;
  pointer-events:none!important;
}
.dash-hero.has-photo > *{
  position:relative!important;
  z-index:2!important;
}


/* v4.51 - dashboardfoto als echt IMG-element, niet meer via CSS-background */
.dash-hero{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.dash-hero-bg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  display:block!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero-overlay{
  position:absolute!important;
  inset:0!important;
  background:rgba(8,8,10,.58)!important;
  z-index:1!important;
  pointer-events:none!important;
}
.dash-hero > :not(.dash-hero-bg):not(.dash-hero-overlay){
  position:relative!important;
  z-index:2!important;
}
/* oude pseudo-achtergronden volledig uitschakelen */
.dash-hero.has-photo::before,
.dash-hero.has-photo::after{
  content:none!important;
  display:none!important;
}


/* v4.52 - dashboardfoto echt als achtergrond, zonder invloed op layout */
.dash-hero.has-photo{
  background-color:#171719!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.dash-hero.has-photo::before,
.dash-hero.has-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero-bg,
.dash-hero-overlay{
  display:none!important;
}


/* v4.54 - realtime veldvergrendeling / typindicator */
.field-wrap,
.block-main.one,
.weather-main,
.title-wrap{
  position:relative;
}
.collab-indicator{
  position:absolute;
  z-index:8;
  right:8px;
  top:6px;
  max-width:220px;
  padding:4px 7px;
  border-radius:6px;
  background:#29292e;
  border:1px solid #3b3b42;
  color:#d8d8dc;
  font-size:9px;
  font-weight:900;
  line-height:1.1;
  pointer-events:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 4px 14px rgba(0,0,0,.28);
}
.collab-indicator.typing{
  background:rgba(217,218,0,.14);
  border-color:rgba(217,218,0,.55);
  color:#f4f48a;
}
.text-block .collab-indicator{
  top:8px;
  right:10px;
}
.weather-main .collab-indicator{
  top:8px;
  right:10px;
}
.song-input.collab-locked,
.text-editor.collab-locked,
.weather-editor.collab-locked,
.weather-heading.collab-locked,
.doc-title.collab-locked{
  cursor:not-allowed!important;
  opacity:.68;
  box-shadow:inset 0 0 0 1px rgba(217,218,0,.38)!important;
}
.text-block:has(.text-editor.collab-locked){
  border-color:rgba(217,218,0,.55);
}
@media print{
  .collab-indicator{display:none!important}
}


/* v4.56 - dashboard overal responsive, ook op lage desktop-schermen */
.dashboard-page{
  min-height:100vh!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.dash-topbar{
  width:100%!important;
  min-width:0!important;
}
.dashboard-shell{
  width:min(1500px,calc(100% - 24px))!important;
  max-width:1500px!important;
  height:auto!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:clamp(12px,1.7vw,24px)!important;
  display:block!important;
  overflow:visible!important;
}
.dash-hero{
  width:100%!important;
  min-width:0!important;
  min-height:clamp(230px,24vw,340px)!important;
  height:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,390px)!important;
  gap:clamp(18px,3vw,42px)!important;
  align-items:center!important;
  padding:clamp(22px,3vw,42px)!important;
  margin:0 0 12px!important;
}
.dash-hero-copy{
  min-width:0!important;
  max-width:760px!important;
}
.dash-hero-copy h1{
  font-size:clamp(34px,4.2vw,64px)!important;
}
.dash-hero-copy>p{
  max-width:760px!important;
  font-size:clamp(13px,1.2vw,18px)!important;
  line-height:1.35!important;
}
.dash-live-card{
  width:100%!important;
  min-width:0!important;
  max-width:390px!important;
  justify-self:end!important;
}
.dash-links{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0 0 12px!important;
  position:relative!important;
  z-index:1!important;
}
.dash-link-card{
  min-width:0!important;
  height:auto!important;
  min-height:138px!important;
}
.dash-grid{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
  gap:12px!important;
  margin:0!important;
  position:relative!important;
  z-index:0!important;
}
.dash-panel{
  min-width:0!important;
  height:auto!important;
  min-height:250px!important;
  overflow:hidden!important;
}

/* Bij smallere laptops/tablets: hero en onderste panelen stapelen. */
@media(max-width:1050px){
  .dash-topbar{
    grid-template-columns:auto 1fr auto!important;
    gap:14px!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .dash-nav{
    gap:14px!important;
  }
  .dash-hero{
    grid-template-columns:minmax(0,1fr) minmax(260px,340px)!important;
  }
  .dash-grid{
    grid-template-columns:1fr!important;
  }
}

/* Onder 860px: alles onder elkaar, zodat nooit overlap ontstaat. */
@media(max-width:860px){
  .dash-topbar{
    height:auto!important;
    min-height:68px!important;
    grid-template-columns:1fr auto!important;
    padding:10px 14px!important;
  }
  .dash-nav{
    grid-column:1/-1!important;
    grid-row:2!important;
    justify-content:flex-start!important;
    overflow-x:auto!important;
    white-space:nowrap!important;
    padding-bottom:2px!important;
  }
  .dashboard-shell{
    width:100%!important;
    padding:12px!important;
  }
  .dash-hero{
    grid-template-columns:1fr!important;
    min-height:0!important;
    padding:22px!important;
  }
  .dash-live-card{
    justify-self:start!important;
    max-width:520px!important;
  }
  .dash-links{
    grid-template-columns:1fr!important;
  }
  .dash-link-card{
    min-height:112px!important;
  }
}

/* Kleine telefoon. */
@media(max-width:560px){
  .dash-user>div{display:none!important}
  .dash-hero{
    padding:18px!important;
    border-radius:18px!important;
  }
  .dash-hero-copy h1{
    font-size:36px!important;
  }
  .dash-clock{
    flex-wrap:wrap!important;
  }
  .dash-panel{
    min-height:0!important;
  }
}

/* Op lage desktop-schermen niet proppen in 100vh: gewoon netjes scrollen. */
@media(min-width:861px) and (max-height:760px){
  .dashboard-shell{
    padding-top:12px!important;
    padding-bottom:20px!important;
  }
  .dash-hero{
    min-height:220px!important;
    padding-top:24px!important;
    padding-bottom:24px!important;
  }
  .dash-link-card{
    min-height:118px!important;
  }
  .dash-panel{
    min-height:220px!important;
  }
}


/* v4.57 - Top 25 datum + dagelijkse refresh */
.chart-title-line{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.chart-title-line h2{
  margin-right:0!important;
}
.chart-date-badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 8px;
  border-radius:7px;
  background:rgba(217,218,0,.12);
  border:1px solid rgba(217,218,0,.38);
  color:var(--yellow);
  font-size:9px;
  line-height:1;
  font-weight:1000;
  letter-spacing:.08em;
  white-space:nowrap;
}
@media(max-width:620px){
  .chart-title-line{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
}


/* v4.53-complete - definitieve dashboardachtergrond */
.dash-hero.has-photo{
  background-color:#171719!important;
  background-image:
    linear-gradient(rgba(8,8,10,.58),rgba(8,8,10,.58)),
    var(--dash-photo)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.dash-hero.has-photo::before,
.dash-hero.has-photo::after{
  content:none!important;
  display:none!important;
}


/* v4.62 - playlistoverzicht minimaliseren */
.workgrid{
  transition:grid-template-columns .18s ease;
}
.workgrid.mini-collapsed{
  grid-template-columns:minmax(0,1fr) 44px!important;
}
.mini-sidebar{
  transition:width .18s ease,padding .18s ease;
}
.mini-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.mini-toggle{
  flex:0 0 28px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:7px;
  background:#1c1c20;
  color:#fff;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  padding:0;
}
.mini-toggle:hover{
  border-color:var(--yellow);
  color:var(--yellow);
}
.mini-sidebar.collapsed{
  padding:10px 7px!important;
  overflow:hidden!important;
}
.mini-sidebar.collapsed .mini-title,
.mini-sidebar.collapsed .mini-sidebar-body{
  display:none!important;
}
.mini-sidebar.collapsed .mini-head{
  justify-content:center;
}
.mini-sidebar.collapsed .mini-toggle{
  margin:0 auto;
}
@media(max-width:900px){
  .workgrid.mini-collapsed{display:block!important}
}


/* v4.63 - apart draaiboeklogo + stationsnaam op print */
.brand-mark.brand-mark-logo{
  overflow:hidden;
  padding:0;
  background:#111113;
  border:1px solid var(--line);
}
.brand-mark.brand-mark-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.draaiboek-logo-preview-wrap{
  width:112px;
  height:112px;
  margin:12px 0 14px;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#101012;
}
.draaiboek-logo-preview{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.station-name-form{
  display:flex;
  gap:10px;
  align-items:end;
  flex-wrap:wrap;
}
.station-name-form label{
  display:grid;
  gap:7px;
  min-width:min(360px,100%);
  font-size:13px;
  font-weight:800;
}
.station-name-form input{
  border:1px solid var(--line);
  background:#101012;
  color:#fff;
  border-radius:9px;
  padding:12px;
  outline:none;
}
.print-station-name{
  display:none;
}

@media print{
  .viewer-presence{
    display:none!important;
  }
  .print-station-name{
    display:block!important;
    color:#111!important;
    font-size:11px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    margin:0 0 3px!important;
  }
  .title-wrap{
    display:block!important;
  }
}


/* v4.64 - favicon preview + dashboard omslagfoto 50% opacity */
.favicon-preview-wrap{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  margin:10px 0 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#101012;
  overflow:hidden;
}
.favicon-preview{
  display:block;
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:8px;
}
.dash-hero{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
.dash-cover-photo{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:.5!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero.has-photo{
  background:#171719!important;
  background-image:none!important;
}
.dash-hero.has-photo::before,
.dash-hero.has-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero > :not(.dash-cover-photo){
  position:relative!important;
  z-index:1!important;
}


/* v4.65 - dashboard omslagfoto echt als achtergrond over het bovenste blok */
.dash-hero.has-cover-photo{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#171719!important;
}
.dash-hero.has-cover-photo::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background-image:var(--hero-cover)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  opacity:.5!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero.has-cover-photo::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg,rgba(10,10,12,.90) 0%,rgba(10,10,12,.66) 45%,rgba(10,10,12,.42) 100%)!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero.has-cover-photo > *{
  position:relative!important;
  z-index:1!important;
}
.dash-hero.has-cover-photo .dash-live-card{
  background:rgba(10,10,12,.78)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  backdrop-filter:blur(8px)!important;
}
.dash-hero.has-cover-photo .dash-hero-copy>p{
  color:#f0f0f0!important;
}
@media(max-width:860px){
  .dash-hero.has-cover-photo::after{
    background:linear-gradient(180deg,rgba(10,10,12,.78) 0%,rgba(10,10,12,.58) 48%,rgba(10,10,12,.80) 100%)!important;
  }
}


/* v4.66 - omslagfoto zichtbaar op 50% achter de volledige hero */
.dash-hero.has-cover-photo{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#171719!important;
  background-image:none!important;
}
.dash-hero.has-cover-photo::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background-image:var(--hero-cover)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  opacity:.50!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero.has-cover-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero.has-cover-photo > *{
  position:relative!important;
  z-index:2!important;
}
.dash-hero.has-cover-photo .dash-live-card{
  background:rgba(10,10,12,.74)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  backdrop-filter:blur(8px)!important;
}
.dash-hero.has-cover-photo .dash-hero-copy{
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}


/* v4.67 - definitieve inline dashboardachtergrond */
.dash-hero.has-cover-photo::before,
.dash-hero.has-cover-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero.has-cover-photo > *{
  position:relative!important;
  z-index:1!important;
}


/* v4.68 - instelbare opacity dashboardomslag */
.dash-hero.has-cover-photo{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#171719!important;
  background-image:none!important;
}
.dash-cover-layer{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  pointer-events:none!important;
}
.dash-hero.has-cover-photo::before,
.dash-hero.has-cover-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero.has-cover-photo > :not(.dash-cover-layer){
  position:relative!important;
  z-index:1!important;
}
.dash-hero.has-cover-photo .dash-live-card{
  background:rgba(10,10,12,.76)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  backdrop-filter:blur(8px)!important;
}
.dash-hero.has-cover-photo .dash-hero-copy{
  text-shadow:0 2px 12px rgba(0,0,0,.48);
}
.cover-opacity-form{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  gap:10px 14px;
  align-items:center;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.cover-opacity-form label{
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  font-weight:900;
}
.cover-opacity-form input[type=range]{
  width:100%;
  accent-color:var(--yellow);
}
.cover-opacity-scale{
  grid-column:1;
  display:flex;
  justify-content:space-between;
  margin-top:-7px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
}
.cover-opacity-form .btn{
  grid-column:2;
  grid-row:2/4;
}
@media(max-width:620px){
  .cover-opacity-form{
    grid-template-columns:1fr;
  }
  .cover-opacity-form .btn{
    grid-column:1;
    grid-row:auto;
    justify-self:start;
  }
}


/* v4.69 - omslagfoto als echt IMG-element, altijd achter de inhoud */
.dash-hero.has-cover-photo{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#171719!important;
  background-image:none!important;
}
.dash-hero.has-cover-photo::before,
.dash-hero.has-cover-photo::after{
  content:none!important;
  display:none!important;
}
.dash-hero.has-cover-photo > .dash-cover-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dash-hero.has-cover-photo > :not(.dash-cover-image){
  position:relative!important;
  z-index:2!important;
}


/* v4.70 - opacityschuif betrouwbaar + live preview */
.dash-hero.has-cover-photo > .dash-cover-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:var(--dashboard-cover-opacity,.5)!important;
  z-index:0!important;
  pointer-events:none!important;
}
.dashboard-preview{
  transition:opacity .12s ease;
}
.cover-opacity-form input[type=range]{
  cursor:pointer;
}

/* v4.72 - radioklokbouwer */
.dash-nav a.active{border-color:var(--line);background:var(--panel2);color:#fff}
.clock-shell{width:min(1500px,calc(100% - 24px));margin:0 auto;padding:20px 0 50px;display:grid;grid-template-columns:310px minmax(0,1fr);gap:14px}
.clock-library,.clock-editor-panel{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:18px;min-width:0}.clock-library{align-self:start;position:sticky;top:90px}
.clock-library-head,.clock-editor-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.clock-library h2{margin:7px 0 0}.clock-editor-head h1{margin:8px 0 5px;font-size:36px}.clock-editor-head p{margin:0;color:var(--muted);max-width:720px}.clock-save-actions{display:flex;gap:8px;flex-wrap:wrap}
.clock-list{display:grid;gap:7px;margin-top:16px}.clock-list-item{width:100%;text-align:left;border:1px solid var(--line);background:#111113;color:#fff;border-radius:10px;padding:11px 12px;cursor:pointer}.clock-list-item:hover,.clock-list-item.active{border-color:var(--yellow);background:rgba(217,218,0,.07)}.clock-list-item strong,.clock-list-item span{display:block}.clock-list-item span{color:var(--muted);font-size:9px;margin-top:4px}.clock-no-saved{padding:16px 4px;color:var(--muted);font-size:12px}
.clock-name-label{display:grid;gap:7px;margin:22px 0 14px;font-size:12px;font-weight:900}.clock-name-input{width:100%;max-width:620px;border:1px solid var(--line);background:#101012;color:#fff;border-radius:10px;padding:13px 14px;font-size:18px;font-weight:900;outline:none}.clock-name-input:focus{border-color:var(--yellow)}
.clock-add-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.clock-slots{display:grid;gap:8px}.clock-slot{display:grid;grid-template-columns:38px 46px minmax(0,1fr) 38px;align-items:stretch;border:1px solid var(--line);border-left:5px solid var(--pink);border-radius:12px;background:#151518;overflow:hidden;min-height:68px}.clock-slot.talk{border-left-color:var(--yellow);background:linear-gradient(90deg,rgba(217,218,0,.10),#151518 40%)}.clock-slot.weather{border-left-color:var(--blue);background:linear-gradient(90deg,rgba(80,183,255,.10),#151518 40%)}
.clock-drag{display:grid;place-items:center;background:#101012;color:#777;cursor:grab}.clock-slot-number{display:grid;place-items:center;border-right:1px solid var(--line);font-size:10px;color:var(--muted);font-weight:1000}.clock-slot-main{padding:11px 13px;min-width:0}.clock-slot-main strong{display:block;font-size:12px;letter-spacing:.08em}.clock-slot-main span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.clock-talk-text{width:100%;min-height:68px;margin-top:7px;border:1px solid var(--line);background:#101012;color:#fff;border-radius:8px;padding:9px 10px;resize:vertical;font:inherit;line-height:1.35;outline:none}.clock-talk-text:focus{border-color:var(--yellow)}.clock-remove{border:0;border-left:1px solid var(--line);background:transparent;color:#888;font-size:20px;cursor:pointer}.clock-remove:hover{color:#fff;background:#25252a}.clock-empty{border:1px dashed var(--line);border-radius:12px;padding:28px;text-align:center;color:var(--muted);display:grid;gap:5px}.clock-empty strong{color:#fff}
.clock-status{grid-column:2;font-size:9px;font-weight:1000;color:var(--yellow);letter-spacing:.06em}.new-doc-modal-card{width:min(650px,100%)}.new-doc-clock-body{padding:18px 22px;display:grid;gap:14px}.new-doc-clock-body label{display:grid;gap:7px;font-size:12px;font-weight:900}.new-doc-clock-body select{border:1px solid var(--line);background:#101012;color:#fff;border-radius:9px;padding:12px}.new-doc-clock-preview{border:1px solid var(--line);background:#111113;border-radius:11px;padding:14px}.new-doc-clock-preview>strong{display:block;margin-bottom:10px}.clock-preview-sequence{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.clock-preview-sequence span{padding:5px 7px;border-radius:6px;background:#25252a;font-size:9px;font-weight:1000}.clock-preview-sequence span.track{border-left:3px solid var(--pink)}.clock-preview-sequence span.talk{border-left:3px solid var(--yellow)}.clock-preview-sequence span.weather{border-left:3px solid var(--blue)}.clock-preview-sequence b{color:#666;font-size:9px}
@media(max-width:900px){.clock-shell{grid-template-columns:1fr;padding:12px}.clock-library{position:static}.clock-editor-head{display:grid}}@media(max-width:600px){.clock-slot{grid-template-columns:32px 36px minmax(0,1fr) 34px}.clock-editor-panel,.clock-library{padding:13px}.clock-editor-head h1{font-size:30px}}@media print{.clock-status{display:none!important}}


/* v4.73 - klokbediening altijd zichtbaar tijdens scrollen */
.clock-sticky-controls{
  position:sticky;
  top:78px;
  z-index:40;
  margin:-2px -2px 14px;
  padding:10px 2px 12px;
  background:linear-gradient(180deg,var(--panel) 0%,var(--panel) 88%,rgba(23,23,25,.94) 100%);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 18px rgba(0,0,0,.18);
}
.clock-sticky-controls .clock-name-label{
  margin:14px 0 12px;
}
.clock-sticky-controls .clock-add-buttons{
  margin-bottom:0;
}
@media(max-width:900px){
  .clock-sticky-controls{
    top:0;
    z-index:60;
    padding-top:12px;
  }
}


/* v4.74 - klok per uur + kopiëren + EINDE UUR */
.clock-slot.endhour{
  border-left-color:#ff7a00;
  background:linear-gradient(90deg,rgba(255,122,0,.14),#151518 48%);
}
.clock-slot.endhour .clock-slot-main strong{color:#ffb05c}
.clock-hour-label{
  margin:14px 0 4px;
  padding:7px 10px;
  border-radius:8px;
  background:var(--panel2);
  border:1px solid var(--line);
  color:var(--yellow);
  font-size:10px;
  font-weight:1000;
  letter-spacing:.09em;
}
.clock-hour-label:first-child{margin-top:0}
.end-hour-btn{
  border-color:rgba(255,122,0,.55)!important;
  color:#ffc183!important;
}
.end-hour-btn:hover{background:rgba(255,122,0,.12)!important}
.clock-preview-sequence span.endhour{
  border-left:3px solid #ff7a00;
  color:#ffc183;
}


/* v4.75 - Nederlandstalige Top 1000 koppeling */
.top1000-badge{
  display:flex;
  align-items:center;
  gap:6px;
  width:max-content;
  padding:4px 7px;
  border-radius:6px;
  background:rgba(231,18,131,.14);
  border:1px solid rgba(231,18,131,.42);
  color:#ff70bd;
  font-size:10px;
  font-weight:1000;
}
.top1000-badge span{font-size:7px;letter-spacing:.07em;color:#ddd}
.top1000-list{max-height:none}
.top1000-row .chart-track strong{font-size:12px}
.mini-row em.top1000-mini{
  background:rgba(231,18,131,.13);
  color:#ff70bd;
}
@media print{
  .top1000-badge{display:none!important}
}


/* v4.76 - dashboard: precies drie hoofdkoppen */
@media(min-width:861px){
  .dash-links{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}


/* v4.77 - Top 1000 dezelfde lijstweergave als Top 25 */
.top1000-list{
  max-width:900px!important;
  margin:auto!important;
  display:grid!important;
  gap:7px!important;
}
.top1000-row{
  display:grid!important;
  grid-template-columns:62px minmax(0,1fr) auto!important;
  align-items:center!important;
  border:1px solid #2c2c31!important;
  background:#18181b!important;
  border-radius:10px!important;
  padding:10px 12px!important;
  min-height:62px!important;
}
.top1000-row>b{
  font-size:20px!important;
  color:var(--yellow)!important;
}
.top1000-row .chart-track strong{
  display:block!important;
  text-transform:uppercase!important;
  font-size:14px!important;
  line-height:1.2!important;
}
.top1000-row .chart-track span{
  display:block!important;
  color:#aaa!important;
  font-size:12px!important;
  text-transform:uppercase!important;
  margin-top:2px!important;
}
.top1000-row .chart-movement{
  min-width:120px!important;
  text-align:right!important;
}
@media(max-width:700px){
  .top1000-row{grid-template-columns:50px 1fr!important}
  .top1000-row .chart-movement{grid-column:2!important;text-align:left!important;min-width:0!important}
}


/* v4.80 - nieuws laden mag de draaiboekpositie nooit verschuiven */
#blocks,
#blocks .block,
.song-news{
  overflow-anchor:none;
}


/* v4.81 - live backtiming naar NOS op het hele uur */
.backtime-strip{
  position:sticky;
  top:44px;
  z-index:69;
  min-height:46px;
  display:grid;
  grid-template-columns:auto minmax(260px,1fr) auto;
  align-items:center;
  gap:14px;
  padding:7px 18px;
  background:#111114;
  border-bottom:1px solid var(--line);
  box-shadow:0 4px 16px rgba(0,0,0,.28);
}
.backtime-main{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.backtime-label{font-size:8px;font-weight:1000;letter-spacing:.12em;color:#aaa}
.backtime-main strong{font-size:24px;color:var(--yellow);letter-spacing:.04em}
.backtime-main span:last-child{font-size:9px;color:var(--muted);font-weight:900}
.backtime-status{font-size:10px;color:#ddd;font-weight:800;text-align:center}
.backtime-advice{justify-self:end;font-size:11px;font-weight:1000;color:#7fe49c;white-space:nowrap}
.backtime-strip.danger{background:#211113;border-bottom-color:#8e252d}
.backtime-strip.danger .backtime-main strong,
.backtime-strip.danger .backtime-advice{color:#ff5965}
.backtime-strip.safe .backtime-advice{color:#7fe49c}

/* Alles onder de twee vaste balken begint lager. */
.sidebar{top:90px!important;height:calc(100vh - 90px)!important}
.topbar{top:90px!important}
.mini-sidebar{top:226px!important;max-height:calc(100vh - 236px)!important}

.song-block.backtime-too-late{
  border-color:#a92b35!important;
  border-left-color:#ff3947!important;
  background:linear-gradient(90deg,rgba(255,57,71,.20),#231619 42%)!important;
}
.song-block.backtime-too-late .song-input{color:#ffb5ba!important}
.song-block.backtime-current{
  box-shadow:inset 0 0 0 1px var(--yellow),0 0 0 1px rgba(217,218,0,.15);
}
.song-actions{gap:4px!important}
.duration-input{
  width:52px;
  height:28px;
  border:1px solid #38383e;
  background:#111114;
  color:#bbb;
  border-radius:6px;
  padding:0 5px;
  font-size:9px;
  font-weight:900;
  text-align:center;
  outline:none;
}
.duration-input:focus{border-color:var(--yellow);color:#fff}
.backtime-now{
  width:34px!important;
  font-size:8px!important;
  font-weight:1000!important;
  border:1px solid #3b3b41!important;
}
.backtime-now.active{
  background:var(--yellow)!important;
  color:#111!important;
  border-color:var(--yellow)!important;
}
.import-row{grid-template-columns:34px minmax(120px,1fr) minmax(160px,1.4fr) 62px 34px!important}
.import-row .iduration{min-width:0;width:100%;border:1px solid var(--line);background:#101012;color:#fff;border-radius:7px;padding:7px;text-align:center}

@media(max-width:900px){
  .backtime-strip{grid-template-columns:1fr auto}
  .backtime-status{grid-column:1/-1;grid-row:2;text-align:left}
  .sidebar{top:90px!important}
  .topbar{top:90px!important}
}
@media(max-width:700px){
  .backtime-strip{
    top:44px;
    grid-template-columns:1fr auto;
    padding:6px 10px;
  }
  .backtime-main strong{font-size:20px}
  .backtime-status{display:none}
  .backtime-advice{font-size:9px}
  .topbar{top:90px!important}
  .sidebar{top:0!important;height:auto!important}
  .song-actions .duration-input{width:48px}
}
@media print{
  .backtime-strip,.duration-input,.backtime-now{display:none!important}
  .song-block.backtime-too-late{background:#fff!important;border-color:#bbb!important;border-left-color:#111!important}
  .song-block.backtime-too-late .song-input{color:#111!important}
}


/* v4.82 - muziekduur en resterende talktijd per uur */
.hour-title-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
}
.hour-title-line>div:first-child{
  min-width:100px;
}
.hour-time-summary{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.hour-time-summary>span{
  display:inline-flex!important;
  align-items:center;
  gap:5px;
  width:auto!important;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:rgba(255,255,255,.035);
  color:#aaa!important;
  font-size:8px!important;
  font-weight:1000!important;
  letter-spacing:.05em;
  white-space:nowrap;
}
.hour-time-summary b{
  color:#fff;
  font-size:10px;
}
.hour-time-summary .hour-talk-time{
  border-color:rgba(217,218,0,.28);
  background:rgba(217,218,0,.07);
  color:var(--yellow)!important;
}
.hour-time-summary .hour-talk-time b{
  color:var(--yellow);
}
.hour-time-summary .hour-missing-time{
  border-color:rgba(255,122,0,.38);
  background:rgba(255,122,0,.08);
  color:#ffb05c!important;
}
@media(max-width:760px){
  .hour-title-line{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .hour-time-summary{
    justify-content:flex-start;
  }
}
@media print{
  .hour-time-summary{
    font-size:8px!important;
  }
}


/* v4.83 - alleen countdown tot NOS Journaal, geen track-backtiming/tijden */
.backtime-strip.nos-countdown-only{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:6px 16px!important;
  background:#111114!important;
  border-bottom:1px solid var(--line)!important;
}
.backtime-strip.nos-countdown-only .backtime-main{
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:9px!important;
}
.backtime-strip.nos-countdown-only .backtime-main strong{
  color:var(--yellow)!important;
  font-size:24px!important;
}
.backtime-status,
.backtime-advice,
.duration-input,
.backtime-now,
.hour-time-summary{
  display:none!important;
}
.song-block.backtime-too-late,
.song-block.backtime-current{
  background:inherit!important;
  border-color:var(--line)!important;
  box-shadow:none!important;
}
.song-block.backtime-too-late .song-input{
  color:inherit!important;
}
.import-row{
  grid-template-columns:34px minmax(120px,1fr) minmax(160px,1.4fr) 34px!important;
}


/* v4.84 - NOS countdown gecentreerd + rode O */
.backtime-strip.nos-countdown-only{
  justify-content:center!important;
  text-align:center!important;
}
.backtime-strip.nos-countdown-only .backtime-main{
  width:100%!important;
  justify-content:center!important;
}
.backtime-label .nos-o{
  color:#e31b23!important;
}


/* v4.86 - harde rollback praatideeën */
.talk-ideas-toggle,
.talk-ideas-panel,
.talk-idea,
.talk-ideas-empty {
  display:none!important;
}


/* v4.87 - focusmodus */
.focus-mode-btn{
  width:42px!important;
  min-width:42px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.focus-mode-btn svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  vector-effect:non-scaling-stroke;
}
.focus-mode-btn.active{
  background:var(--yellow)!important;
  color:#111!important;
  border-color:var(--yellow)!important;
}
#blocks .block.focus-hidden{
  display:none!important;
}
body.focus-mode #miniSidebar{
  display:none!important;
}
body.focus-mode .workgrid{
  grid-template-columns:minmax(0,1fr)!important;
}
body.focus-mode #editorView{
  max-width:none!important;
}
body.focus-mode .hint-bar{
  opacity:.45;
}
@media print{
  .focus-mode-btn{display:none!important}
  #blocks .block.focus-hidden{display:flex!important}
}


/* v4.88 - focusmodus verbergt ook linker draaiboekbalk */
body.focus-mode .sidebar{
  display:none!important;
}
body.focus-mode .app-shell{
  grid-template-columns:1fr!important;
}
body.focus-mode .workspace{
  grid-column:1!important;
  width:100%!important;
}


/* v4.89 - NOS waarschuwing in de laatste minuut */
@keyframes nosFinalMinutePulse{
  0%,100%{
    background:#111114;
    box-shadow:0 4px 16px rgba(0,0,0,.28);
  }
  50%{
    background:#45151a;
    box-shadow:0 0 0 1px rgba(255,68,80,.35),0 4px 22px rgba(190,25,40,.28);
  }
}
.backtime-strip.nos-countdown-only.nos-final-minute{
  animation:nosFinalMinutePulse var(--nos-blink-ms,1400ms) ease-in-out infinite!important;
  border-bottom-color:#8f2c34!important;
}
.backtime-strip.nos-countdown-only.nos-final-minute .backtime-main strong{
  color:#ff5965!important;
}
@media (prefers-reduced-motion:reduce){
  .backtime-strip.nos-countdown-only.nos-final-minute{
    animation:none!important;
    background:#45151a!important;
  }
}


/* v4.90 - herstelmodus, snel invoegen, klok-uur kopiëren */
.undo-btn{
  width:38px!important;
  min-width:38px!important;
  padding:0!important;
  font-size:22px!important;
  line-height:1!important;
  font-weight:900!important;
}
.undo-btn:disabled{
  opacity:.28!important;
  cursor:not-allowed!important;
}

/* Snel invoegen tussen twee draaiboekitems */
.quick-insert{
  position:relative;
  height:12px;
  margin:-2px 0;
  z-index:8;
  display:flex;
  justify-content:center;
  align-items:center;
}
.quick-insert.focus-hidden{display:none!important}
.quick-insert-trigger{
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid #44454d;
  background:#17171b;
  color:#c8c8cc;
  font-size:15px;
  line-height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:scale(.78);
  transition:opacity .12s ease,transform .12s ease,border-color .12s ease;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
}
.quick-insert:hover .quick-insert-trigger,
.quick-insert:focus-within .quick-insert-trigger{
  opacity:1;
  transform:scale(1);
}
.quick-insert-trigger:hover{
  border-color:var(--yellow);
  color:var(--yellow);
}
.quick-insert-menu{
  position:absolute;
  top:22px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:5px;
  padding:6px;
  background:#111114;
  border:1px solid #3b3b42;
  border-radius:8px;
  box-shadow:0 10px 28px rgba(0,0,0,.46);
  z-index:80;
  white-space:nowrap;
}
.quick-insert-menu.hidden{display:none!important}
.quick-insert-menu button{
  border:1px solid #34343a;
  background:#1b1b1f;
  color:#eee;
  border-radius:6px;
  padding:6px 8px;
  font-size:8px;
  font-weight:1000;
  cursor:pointer;
}
.quick-insert-menu button:hover{
  border-color:var(--yellow);
  color:var(--yellow);
}

/* Kopieer compleet uur in de klokbouwer */
.clock-hour-label{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.clock-copy-hour{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
  color:#c9c9cf;
  border-radius:6px;
  padding:5px 8px;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.04em;
  cursor:pointer;
}
.clock-copy-hour:hover{
  border-color:var(--yellow);
  color:var(--yellow);
}
@media print{
  .undo-btn,.quick-insert{display:none!important}
}


/* v4.91 - NOS countdown nooit meeprinten */
@media print{
  .backtime-strip,
  .nos-countdown-only,
  #backtimeStrip{
    display:none!important;
  }
}


/* v4.92 - heel uur verwijderen in klokbouwer */
.clock-hour-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.clock-delete-hour{
  border:1px solid rgba(255,80,90,.38);
  background:rgba(255,80,90,.07);
  color:#ff818a;
  border-radius:6px;
  padding:5px 8px;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.04em;
  cursor:pointer;
}
.clock-delete-hour:hover{
  background:rgba(255,80,90,.14);
  border-color:#ff5965;
  color:#fff;
}
@media(max-width:700px){
  .clock-hour-label{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
  .clock-hour-actions{
    width:100%;
  }
}


/* v4.93 - laatst geladen artiestennieuws blijft staan; uurrefresh vervangt in-place */
.song-news-slot:empty{
  display:none;
}
.song-news-slot:not(:empty){
  margin-top:6px;
  min-height:26px;
  overflow-anchor:none;
}


/* v4.94 - compactere muziekblokken op afdruk/PDF */
@media print{
  .song-block{
    min-height:24px!important;
    margin:0!important;
    padding:0!important;
  }
  .song-block .block-type{
    padding:3px 3px!important;
    font-size:7px!important;
  }
  .song-block .block-main{
    min-height:24px!important;
    align-items:stretch!important;
  }
  .song-block .field-wrap{
    min-height:24px!important;
  }
  .song-block .song-input{
    height:24px!important;
    min-height:24px!important;
    padding:3px 7px!important;
    font-size:10px!important;
    line-height:1!important;
  }
  .song-block .chart-badges{
    margin:0!important;
    padding:0!important;
  }
  .song-block .top25-badge,
  .song-block .top1000-badge,
  .song-block .paradeplaat-label{
    margin:2px 5px 2px!important;
    padding:1px 4px!important;
    font-size:7px!important;
    line-height:1!important;
  }
  .blocks{
    gap:3px!important;
  }
}


/* v4.98 - Beller / prijswinnaar */
.quick-insert-tools{display:flex;align-items:center;justify-content:center;gap:5px}
.caller-insert-trigger{
  width:24px;height:24px;border-radius:50%;border:1px solid rgba(80,183,255,.42);
  background:#17171b;color:#9bd7ff;font-size:13px;line-height:1;display:flex;
  align-items:center;justify-content:center;opacity:0;transform:scale(.78);
  transition:opacity .12s ease,transform .12s ease,border-color .12s ease,background .12s ease;
  cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.28)
}
.quick-insert:hover .caller-insert-trigger,.quick-insert:focus-within .caller-insert-trigger{opacity:1;transform:scale(1)}
.caller-insert-trigger:hover{border-color:#9bd7ff;background:rgba(80,183,255,.12);color:#fff}

.caller-block{
  border-left-color:#50b7ff!important;
  background:linear-gradient(90deg,rgba(80,183,255,.16),#18181b 44%)!important
}
.caller-block .caller-icon{color:#9bd7ff!important;font-size:15px!important}
.caller-block-main{min-width:0;padding:11px 14px}
.caller-block-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.caller-block-head strong{color:#9bd7ff;font-size:9px;letter-spacing:.08em}
.caller-block-head b{color:#fff;font-size:15px}
.caller-block-head span{color:#aaa;font-size:11px;font-weight:800}
.caller-block-info{margin-top:6px;color:#ddd;font-size:13px;line-height:1.4;white-space:pre-wrap}
.mini-row.caller{border-color:rgba(80,183,255,.38)}
.mini-row.caller span{color:#9bd7ff}

.caller-modal-card{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 30px);overflow:auto}
.caller-section{padding:0 18px 18px}
.caller-section h3{margin:0 0 10px;font-size:10px;letter-spacing:.12em;color:var(--yellow)}
.caller-private{padding-top:17px;border-top:1px solid var(--line)}
.caller-private h3{color:#9bd7ff}
.caller-private-note{margin:-4px 0 12px;color:#888;font-size:10px}
.caller-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 12px}
.caller-grid label{display:grid;gap:6px;color:#aaa;font-size:9px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em}
.caller-grid input,.caller-grid textarea{
  width:100%;border:1px solid #36363c;background:#101012;color:#fff;border-radius:8px;
  padding:10px 11px;font:inherit;font-size:13px;text-transform:none;letter-spacing:0;outline:none
}
.caller-grid textarea{resize:vertical;min-height:88px;line-height:1.4}
.caller-grid input:focus,.caller-grid textarea:focus{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(217,218,0,.08)}
.caller-span-2{grid-column:1/-1}
.caller-address-row{
  display:grid;gap:4px;border:1px dashed #35353c;border-radius:8px;background:#141417;padding:9px 11px
}
.caller-address-row span{font-size:8px;font-weight:1000;color:#777;text-transform:uppercase}
.caller-address-row strong{font-size:12px;color:#aaa}
.caller-address-row strong.loading{color:#bbb}
.caller-address-row strong.found{color:#9bd7ff}
.caller-address-row strong.error{color:#ff818a}
.caller-mail-target input{border-color:rgba(217,218,0,.42)}
#callerFormMessage{margin:0 18px 14px}

@media(pointer:coarse){
  .caller-insert-trigger,.quick-insert-trigger{opacity:1!important;transform:scale(1)!important}
  .quick-insert{height:24px}
}
@media(max-width:620px){
  .caller-grid{grid-template-columns:1fr}
  .caller-span-2{grid-column:1}
  .caller-modal-card{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}
}
@media print{
  .caller-block{
    background:#fff!important;border-color:#bbb!important;border-left:4px solid #111!important
  }
  .caller-block-main{grid-column:2!important;grid-row:1!important;padding:5px 8px!important}
  .caller-block-head strong{color:#111!important;font-size:7px!important}
  .caller-block-head b{color:#111!important;font-size:10px!important}
  .caller-block-head span{color:#444!important;font-size:9px!important}
  .caller-block-info{color:#111!important;font-size:9px!important;margin-top:3px!important}
  .caller-insert-trigger{display:none!important}
}


/* v4.99 - Beller in + menu en conditioneel verplicht mailadres */
.caller-mail-target.required-mail{
  color:var(--yellow)!important;
}
.caller-mail-target.required-mail::after{
  content:'VERPLICHT BIJ POSTCODE + HUISNUMMER';
  display:block;
  margin-top:-2px;
  color:var(--yellow);
  font-size:8px;
  font-weight:1000;
  letter-spacing:.05em;
}
.quick-insert-menu [data-kind="caller"]{
  color:#9bd7ff;
  border-color:rgba(80,183,255,.35);
}
.quick-insert-menu [data-kind="caller"]:hover{
  border-color:#9bd7ff;
  color:#fff;
}


/* v5.01 - Belleroptie terug + aanpassen */
.caller-block .edit-caller{
  color:#9bd7ff!important;
}
.caller-block .edit-caller:hover{
  background:rgba(80,183,255,.12)!important;
  color:#fff!important;
}


/* v5.02 - gebruiker kiezen als ontvanger prijswinnaar */
.caller-grid select{
  width:100%;
  border:1px solid #36363c;
  background:#101012;
  color:#fff;
  border-radius:8px;
  padding:10px 11px;
  font:inherit;
  font-size:13px;
  outline:none;
}
.caller-grid select:focus{
  border-color:var(--yellow);
  box-shadow:0 0 0 2px rgba(217,218,0,.08);
}
.caller-mail-target small{
  color:#777;
  font-size:9px;
  font-weight:700;
  text-transform:none;
  letter-spacing:0;
}
.user-email-form{
  display:flex;
  gap:6px;
  align-items:center;
}
.user-email-form input[type=email]{
  min-width:180px;
}


/* v5.03 - rich text, inklapbare tekstblokken, compact nieuw-draaiboekscherm */
.rich-editor-shell{position:relative}
.rich-text-editor{
  display:block;width:100%;min-height:70px;border:0;background:transparent;color:#fff;
  padding:15px;font-size:17px;line-height:1.5;outline:none;white-space:pre-wrap;overflow-wrap:anywhere
}
.rich-text-editor:empty:before{content:attr(data-placeholder);color:#777;pointer-events:none}
.rich-toolbar{
  display:none;position:absolute;left:10px;top:8px;z-index:4;gap:5px;padding:4px;
  border:1px solid #37373d;border-radius:8px;background:#111114;box-shadow:0 4px 14px rgba(0,0,0,.3)
}
.rich-editor-shell:focus-within .rich-toolbar{display:flex}
.rich-toolbar button{
  width:30px;height:28px;border:1px solid #3a3a40;border-radius:6px;background:#1c1c20;
  color:#fff;cursor:pointer;font-size:13px
}
.rich-toolbar button:hover{border-color:var(--yellow);color:var(--yellow)}
.rich-editor-shell:focus-within .rich-text-editor{padding-top:45px}
.collapsed-text-preview{
  display:none;padding:9px 14px;color:#ccc;font-size:12px;line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.text-block.collapsed .rich-editor-shell{display:none}
.text-block.collapsed .collapsed-text-preview{display:none}
.text-block.collapsed{min-height:42px!important}
.text-block.collapsed .block-type{min-height:42px!important}
.toggle-text-collapse{font-size:13px!important;color:#bbb!important}
.toggle-text-collapse:hover{color:#fff!important;background:#29292e!important}
@media print{
  .rich-editor-shell,.collapsed-text-preview,.toggle-text-collapse{display:none!important}
  .text-block .print-text-content{display:block!important}
  .text-block.collapsed{min-height:0!important}
}

.new-doc-clock-body input[type=date]{border:1px solid var(--line);background:#101012;color:#fff;border-radius:9px;padding:12px;color-scheme:dark}
.text-block.collapsed .block-main{cursor:pointer}

.archive-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Het label NIEUW! gebruikt dezelfde plaats en vorm als Paradeplaat. */
.new-music-label{background:var(--pink);color:#fff}
@media print{.new-music-label{background:#fff!important;color:#111!important;border:2px solid #111!important}}

/* v5.07: labels achter de titel, of op een eigen regel bij een hitlijstnotering. */
.song-title-field{display:flex;align-items:center;flex-wrap:wrap;min-width:0;gap:0}
.song-title-field .song-input{flex:1 1 160px;width:auto;min-width:0;height:auto}
.song-status-labels{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;padding:4px 9px 4px 0;max-width:100%}
.song-status-labels .paradeplaat-label{display:inline-flex;grid-column:auto;width:auto;margin:0;padding:5px 9px;white-space:nowrap}
.song-title-field.has-chart-ranking .song-input{flex-basis:100%;padding-right:160px!important}
.song-title-field.has-chart-ranking .song-status-labels{flex-basis:100%;padding:0 12px 8px}
@media(max-width:700px){.song-title-field.has-chart-ranking .song-input{padding-right:12px!important}}

/* v5.11: houd het mobiele draaiboek binnen de schermbreedte. */
@media screen and (max-width:700px){
  html,body.app-page{width:100%;max-width:100%;overflow-x:clip}
  .app-shell,.sidebar,.workspace,.topbar,.workgrid,.content{
    width:100%;max-width:100%;min-width:0
  }
  .live-strip,.backtime-strip{width:100%;max-width:100%;min-width:0;overflow:hidden}
  .topbar{grid-template-columns:minmax(0,1fr)}
  .title-wrap{min-width:0;grid-template-columns:auto minmax(0,1fr)}
  .doc-title{width:100%;min-width:0}
  .toolbar{width:100%;min-width:0;max-width:100%}
  .toolbar-tabs{width:100%;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
  .toolbar-tabs .tab{flex:none}
  .blocks,.block,.block-main,.rich-editor-shell{min-width:0;max-width:100%}
}
@media print{
  .song-title-field .song-input{flex:1 1 120px;width:auto!important}
  .song-status-labels{padding:0 4px}
  .song-status-labels .paradeplaat-label{margin:1px 2px!important;padding:1px 4px!important;font-size:7px!important}
  .song-title-field.has-chart-ranking .song-input{padding-right:8px!important}
  .song-title-field.has-chart-ranking .song-status-labels{padding:0 4px 2px}
}

/* v5.12: gelijke regelafstand en blijvende markering van verplaatste platen. */
.rich-text-editor p,.rich-text-editor div{margin:0;padding:0;line-height:inherit}
.song-block.song-moved,.archive-view-block.song-moved{border-left-color:#ff8a24;background:linear-gradient(90deg,rgba(255,138,36,.18),#18181b 48%)}
@media print{.song-block.song-moved,.archive-view-block.song-moved{border-left-color:#111;background:#fff}}

/* v5.15: dunne NOS-balk direct onder ieder uurblok. */
.nos-hour-bar{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;width:100%;min-width:0;
  min-height:34px;padding:6px 14px;border:1px solid var(--line);border-left:5px solid #e31b23;
  border-radius:9px;background:#141416;font-size:11px;font-weight:800;line-height:1.3;
  overflow-wrap:anywhere;overflow-anchor:none;
}
.nos-hour-bar span{color:var(--muted);font-size:9px;letter-spacing:.06em}
@media screen{.hour-block.focus-hidden+.nos-hour-bar{display:none!important}}
@media print{
  .nos-hour-bar{min-height:17px;padding:3px 8px;border:1px solid #bbb;border-left:3px solid #111;border-radius:4px;background:#fff;color:#111;font-size:9px;break-inside:avoid}
  .nos-hour-bar span{color:#444;font-size:8px}
}
.talk-library-panel,.text-history-panel{position:absolute;z-index:20;left:42px;right:8px;top:calc(100% + 7px);padding:12px;background:#111114;border:1px solid #555560;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.42);text-align:left}.song-block,.text-block{position:relative}.talk-library-head{display:flex;align-items:center;gap:8px;border-bottom:1px solid #34343b;padding-bottom:8px;margin-bottom:8px}.talk-library-head strong{font-size:10px;letter-spacing:.1em;color:var(--yellow)}.talk-library-head span{font-size:10px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.talk-library-close{margin-left:auto;border:0;background:transparent;color:#aaa;font-size:18px;cursor:pointer}.talk-library-list{display:grid;gap:7px;max-height:260px;overflow:auto}.talk-library-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:8px;background:#1d1d22;border:1px solid #303038;border-radius:7px;cursor:grab}.talk-library-item:active{cursor:grabbing}.talk-library-copy{font-size:12px;line-height:1.4;white-space:pre-wrap;overflow:hidden;max-height:52px}.talk-library-item small{font-size:9px;color:#888}.talk-library-item button{grid-row:1/span 2;grid-column:2;align-self:center;border:1px solid #666600;background:rgba(217,218,0,.12);color:#f4f48a;border-radius:6px;padding:6px 8px;font-size:10px;cursor:pointer}.talk-library-empty,.talk-library-loading{font-size:11px;color:#aaa;padding:5px}.text-history-panel{left:106px;right:8px}.text-history{color:#c7c76a!important;font-size:16px!important}.song-block{cursor:pointer}.song-block input,.song-block button,.song-block a{cursor:auto}.song-block .block-actions,.song-block .drag-handle{cursor:default}
@media(max-width:700px){.talk-library-panel,.text-history-panel{left:6px;right:6px}.text-history-panel{left:6px}}

.talk-library-panel,.text-history-panel{position:relative;grid-column:1/-1;left:auto;right:auto;top:auto;margin:8px;max-width:100%;min-width:0}.talk-drop-target{outline:2px solid var(--yellow)}@media print{.talk-library-panel,.text-history-panel{display:none!important}}

/* Kleine Camelot-code direct achter de titel. */
.song-title-field .camelot-key,.archive-song .camelot-key{display:inline-flex;flex:none;align-items:center;margin:0 8px 0 2px;padding:3px 6px;border:1px solid #4a4a50;border-radius:5px;color:#c6c6cc;background:#242428;font-size:10px;font-weight:800;line-height:1.1;white-space:nowrap}
.song-title-field .camelot-key.hidden{display:none!important}
@media print{.song-title-field .camelot-key,.archive-song .camelot-key{background:transparent!important;color:#444!important;border-color:#888!important}}
