:root{--bg:#0b0d10;--panel:#12161c;--panel2:#171c23;--line:#272e38;--text:#f3f5f7;--muted:#8f9aaa;--accent:#ff7a18;--accent2:#ff9d52;--danger:#ff5c64;--ok:#36d399;--shadow:0 18px 45px rgba(0,0,0,.25)}
:root[data-theme="light"]{--bg:#f4f6f8;--panel:#fff;--panel2:#f8fafc;--line:#dde3ea;--text:#1b2430;--muted:#697586;--shadow:0 16px 38px rgba(30,41,59,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:var(--panel);padding:18px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:5px 8px 20px}.brand-mark{width:34px;height:34px;border-radius:4px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent2));color:#111;font-weight:900;font-size:20px}.brand b{display:block;font-size:16px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:10px 11px;border-radius:4px;color:var(--muted);font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{color:var(--text);background:var(--panel2)}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--accent)}.sidebar-bottom{margin-top:auto;display:grid;gap:6px}.sidebar-bottom form{margin:0}.sidebar-bottom button{width:100%}main{min-width:0}.topbar{min-height:96px;padding:24px 30px 18px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:20px;background:color-mix(in srgb,var(--bg) 86%,transparent);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.topbar h1{font-size:25px;margin:0 0 3px;letter-spacing:-.02em}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:8px}.content{padding:26px 30px 48px;max-width:1600px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat,.card,.action-card,.content-card{background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow)}.stat{padding:18px}.stat span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.stat strong{display:block;font-size:29px;margin-top:6px}.card{padding:20px;margin-bottom:16px}.card h2{font-size:16px;margin:0 0 14px}.card p{color:var(--muted)}.narrow{max-width:760px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.action-card{padding:20px;display:grid;gap:7px;transition:.15s ease}.action-card:hover,.content-card:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));transform:translateY(-1px)}.action-card b{font-size:16px}.action-card span,.content-card span{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.content-card{overflow:hidden;transition:.15s ease}.content-card>div:last-child{padding:13px;display:grid;gap:4px}.preview-aspect{width:100%;border-bottom:1px solid var(--line);max-height:145px}.primary,.secondary,.ghost{border:0;border-radius:4px;padding:10px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary{background:var(--accent);color:#171717}.primary:hover{background:var(--accent2)}.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}.ghost:hover{color:var(--text);background:var(--panel2)}.small{padding:7px 9px;font-size:12px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.notice{padding:11px 13px;border-radius:4px;margin:0 0 16px;border:1px solid var(--line)}.notice.success{background:color-mix(in srgb,var(--ok) 12%,var(--panel));border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}.notice.danger{background:color-mix(in srgb,var(--danger) 12%,var(--panel));border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.form-grid{display:grid;gap:13px}.form-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.form-row label{min-width:150px;flex:1}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{min-width:150px}label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:650}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--text);padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=checkbox]{width:auto}.check{display:flex;align-items:center;gap:8px}.muted-text{color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:4px;font-size:11px;font-weight:800}.badge.ok{background:color-mix(in srgb,var(--ok) 14%,var(--panel));color:var(--ok)}.badge.danger{background:color-mix(in srgb,var(--danger) 14%,var(--panel));color:var(--danger)}.badge.muted{background:var(--panel2);color:var(--muted)}table{width:100%;border-collapse:collapse}.table-card{overflow:auto}.table-card h2{padding:0}.table-card th,.table-card td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table-card th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.table-card td small{display:block;color:var(--muted);margin-top:3px}.table-input{min-width:140px;padding:7px 8px}.truncate{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kv{display:grid;grid-template-columns:120px 1fr;gap:10px 14px;align-items:center}.kv span{color:var(--muted)}code{word-break:break-all;color:var(--accent2)}.empty{padding:25px;color:var(--muted);text-align:center}.playlist-card{padding:0;overflow:hidden}.card-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.card-head h2{margin:0 0 2px}.card-head p{margin:0}.playlist-items{display:grid}.playlist-item{display:grid;grid-template-columns:1.5fr .7fr repeat(5,minmax(110px,1fr)) auto;gap:9px;align-items:end;padding:12px 16px;border-bottom:1px solid var(--line)}.playlist-item>span{color:var(--muted);font-size:12px;align-self:center}.playlist-item label{min-width:0}.editor-layout{display:grid;grid-template-columns:220px minmax(360px,1fr) 280px;gap:14px;align-items:start}.module-palette,.inspector{position:sticky;top:118px;margin:0}.module-button{display:flex;width:100%;justify-content:space-between;align-items:center;padding:9px 10px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:4px;margin-bottom:6px}.module-button small{color:var(--muted)}.editor-stage{min-width:0}.canvas-wrap{background:#07090b;border:1px solid var(--line);border-radius:4px;padding:16px;overflow:auto}.page-canvas{position:relative;width:100%;max-height:calc(100vh - 175px);overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.08);touch-action:none}.editor-module{position:absolute;border:1px dashed rgba(255,122,24,.8);background:rgba(255,122,24,.08);min-width:12px;min-height:12px;user-select:none;cursor:move}.editor-module.selected{border-style:solid;box-shadow:0 0 0 2px rgba(255,122,24,.2)}.module-label{position:absolute;left:3px;top:3px;background:rgba(0,0,0,.72);color:#fff;font-size:10px;padding:2px 5px;border-radius:4px;pointer-events:none}.resize-handle{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;background:var(--accent);border-radius:3px;cursor:nwse-resize}.hidden{display:none!important}.login-body{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 0%,#24180f 0,var(--bg) 42%)}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:28px;box-shadow:var(--shadow)}.login-brand{padding:0 0 24px}.login-card h1{font-size:25px;margin:0 0 5px}.login-card>p{color:var(--muted);margin:0 0 22px}.stack{display:grid;gap:14px}.login-system{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;text-align:center;color:var(--muted);font-size:12px}
@media(max-width:1050px){.shell{grid-template-columns:190px minmax(0,1fr)}.editor-layout{grid-template-columns:180px 1fr}.inspector{position:static;grid-column:1/-1}.playlist-item{grid-template-columns:1fr 1fr 1fr}.playlist-item>*{min-width:0}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar-bottom{display:none}.topbar{position:static;padding:20px}.content{padding:18px}.stats,.grid-2,.grid-3{grid-template-columns:1fr}.editor-layout{display:block}.module-palette,.inspector{position:static;margin-bottom:12px}.sidebar nav a{text-align:center;font-size:12px}.playlist-item{grid-template-columns:1fr}.card-head{display:block}.card-head form{margin-top:10px}}
.playlist-sort-row{display:grid;grid-template-columns:24px 1fr 38px;align-items:center;border-bottom:1px solid var(--line)}.playlist-sort-row .playlist-item{border-bottom:0}.playlist-sort-row.dragging{opacity:.45}.drag-handle{cursor:grab;color:var(--muted);font-size:18px;text-align:center}.weekday-row{display:flex;gap:3px;align-items:center;flex-wrap:wrap}.day-check{display:flex;gap:2px;align-items:center;font-size:10px}.day-check input{width:auto}.compact{gap:8px}

/* 0.1.7 device/content workflow */
.notice.warning{background:color-mix(in srgb,#ffb13b 11%,var(--panel));border-color:color-mix(in srgb,#ffb13b 36%,var(--line));color:var(--text)}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-head h2{margin-bottom:4px}.section-head p{margin:0}
.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.device-card{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);transition:.15s ease}.device-card:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));transform:translateY(-1px)}.device-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.device-card-top div{display:grid;gap:2px}.device-card-top small,.device-card-bottom small{color:var(--muted)}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--muted) 12%,transparent)}.status-dot.online{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 15%,transparent)}.status-dot.offline{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 15%,transparent)}.device-resolution{font-size:30px;font-weight:850;letter-spacing:-.04em}.device-meta{display:flex;gap:7px;flex-wrap:wrap}.device-meta span{font-size:11px;padding:4px 7px;background:var(--panel);border:1px solid var(--line);border-radius:4px;color:var(--muted)}.device-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:11px}.group-row{grid-template-columns:1fr 1fr auto}
.device-hero{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;gap:30px;align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel))}.device-status-line{display:flex;align-items:center;gap:10px}.device-big-resolution{font-size:48px;font-weight:900;letter-spacing:-.05em;margin-top:14px}.device-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.device-live-grid>div{padding:13px;border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,var(--panel2) 80%,transparent)}.device-live-grid span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.device-live-grid strong{display:block;margin-top:5px;font-size:15px}.device-workflow-grid{align-items:start}.accent-card{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent),var(--shadow)}.step-kicker{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.device-kv{margin-bottom:16px}.mini-page-list{display:grid;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin:0 0 14px}.mini-page-list a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel2)}.mini-page-list a:last-child{border-bottom:0}.mini-page-list a:hover{background:color-mix(in srgb,var(--accent) 5%,var(--panel2))}.mini-page-list small{color:var(--muted)}.compact-empty{padding:15px}.danger-zone{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.editor-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:end;padding:13px 15px;position:sticky;top:96px;z-index:18}.editor-toolbar-group{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.editor-toolbar-group label{min-width:130px}.editor-toolbar-group label:has(input[type=color]){min-width:82px}.editor-toolbar-group input[type=color]{height:39px;padding:4px}.editor-toolbar-right{justify-content:flex-end}.editor-save-state{color:var(--ok);font-size:12px;font-weight:800;padding:9px 5px}.editor-save-state.saving{color:var(--accent2)}.canvas-ruler{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding:0 4px 6px}.editor-hint{font-size:11px;color:var(--muted);padding:8px 4px 0;text-align:center}.page-canvas.snap-grid{background-image:linear-gradient(to right,rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.055) 1px,transparent 1px);background-size:var(--grid-x,1%) var(--grid-y,1%)}.module-preview{position:absolute;inset:0;overflow:hidden;padding:8px;pointer-events:none;color:#fff}.module-preview.module-placeholder{display:grid;place-items:center;text-align:center;color:rgba(255,255,255,.62);background:rgba(255,255,255,.04);font-size:12px}.module-preview.ticker-preview{display:flex;align-items:center;white-space:nowrap}.module-preview-dynamic{display:grid;align-content:start;gap:6px;background:rgba(8,10,14,.45)}.sample-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;border-bottom:1px solid rgba(255,255,255,.15);padding:5px}.sample-row small{grid-column:1/-1;opacity:.65}.sample-meeting{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:5px;border-bottom:1px solid rgba(255,255,255,.15)}.inspector-title{margin-bottom:8px}.inspector-title>div{display:grid;gap:3px}.inspector-title small{color:var(--muted);font-weight:500}.inspector-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.inspector-actions button{min-width:0;padding-inline:5px}
@media(max-width:1050px){.device-hero{grid-template-columns:1fr}.device-live-grid{grid-template-columns:repeat(3,1fr)}.editor-toolbar{position:static}.group-row{grid-template-columns:1fr 1fr auto}}
@media(max-width:760px){.device-live-grid{grid-template-columns:repeat(2,1fr)}.device-big-resolution{font-size:38px}.device-card-bottom,.mini-page-list a{display:grid}.editor-toolbar{display:block}.editor-toolbar-right{margin-top:10px;justify-content:flex-start}.group-row{grid-template-columns:1fr}}

/* 0.1.9 compact administration UX */
.actions-col{text-align:right!important;width:1%;white-space:nowrap}.row-actions{display:flex;justify-content:flex-end;gap:6px;align-items:center}.row-actions form{margin:0}.danger-button{color:var(--danger)!important}.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 10px}.section-title h2,.section-title h3{margin:0}.section-title p{margin:4px 0 0;color:var(--muted)}.app-modal{position:fixed;inset:0;z-index:99990;display:none;place-items:center;padding:24px}.app-modal.open{display:grid}.app-modal-backdrop{position:absolute;inset:0;background:rgba(4,6,9,.76);backdrop-filter:blur(5px)}.app-modal-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 26px 90px rgba(0,0,0,.5);padding:20px}.app-modal-card.wide{width:min(880px,100%)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.modal-head h2{margin:0}.modal-head small{display:block;color:var(--muted);margin-top:4px}.modal-head>button{border:0;background:transparent;color:var(--muted);font-size:24px;padding:0 4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.modal-delete{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}body.modal-open{overflow:hidden}.form-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inline-edit{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end;padding-bottom:16px;border-bottom:1px solid var(--line)}.modal-section{padding-top:18px}.simple-list{border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:12px}.simple-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-bottom:1px solid var(--line)}.simple-list-row:last-child{border-bottom:0}.simple-list-row small{display:block;color:var(--muted);margin-top:3px}.impersonation-bar{height:38px;background:var(--accent);color:#111;display:flex;align-items:center;justify-content:center;gap:16px;font-size:12px;font-weight:700;position:sticky;top:0;z-index:1000}.impersonation-bar form{margin:0}.impersonation-bar button{border:1px solid rgba(0,0,0,.35);background:rgba(255,255,255,.3);border-radius:4px;padding:5px 9px;font-weight:800}.media-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px}.folder-breadcrumb{display:flex;align-items:center;gap:8px}.media-filters{display:flex;gap:8px}.media-filters input{width:240px}.media-layout{display:grid;grid-template-columns:240px 1fr;gap:14px}.folder-tree{margin:0;padding:10px}.folder-title{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800;padding:6px 8px}.folder-row{display:grid;grid-template-columns:1fr auto;align-items:center}.folder-link{display:block;padding:8px;border-radius:4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-link:hover,.folder-link.active{background:var(--panel2);color:var(--text)}.icon-button{border:0;background:transparent;color:var(--muted);padding:7px}.media-drop-inline{height:74px;border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:4px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);margin-bottom:12px;transition:.15s}.media-drop-inline.dragover{background:color-mix(in srgb,var(--accent) 9%,var(--panel));border-color:var(--accent);color:var(--text)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.media-tile{border:1px solid var(--line);border-radius:4px;background:var(--panel);overflow:hidden;cursor:pointer}.media-tile:hover{border-color:var(--accent)}.media-thumb{height:128px;display:grid;place-items:center;background:#090b0e;position:relative}.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover}.media-thumb span{font-weight:800;color:var(--muted)}.media-copy{padding:10px}.media-copy strong,.media-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-copy small{color:var(--muted);margin-top:4px}.dropzone-field{padding:28px;border:1px dashed var(--line);border-radius:4px;text-align:center}.dropzone-field input{margin-bottom:8px}.media-modal-preview{height:320px;background:#080a0d;border-radius:4px;overflow:hidden;margin-bottom:16px;display:grid;place-items:center}.media-modal-preview img,.media-modal-preview video{max-width:100%;max-height:100%}.preview-cell{width:120px;height:68px;border-radius:4px;background:var(--panel2);overflow:hidden;position:relative}.preview-cell img{width:100%;height:100%;object-fit:cover}.preview-cell span{display:none;position:absolute;inset:0;place-items:center;color:var(--muted);font-size:10px}.preview-cell.empty-preview img{display:none}.preview-cell.empty-preview span{display:grid}.color-setting{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;border:1px solid var(--line);padding:12px;border-radius:4px}.color-setting input{height:46px;padding:4px}.color-setting strong,.color-setting span{display:block}.color-setting span{color:var(--muted);margin-top:3px}
@media(max-width:900px){.media-layout{grid-template-columns:1fr}.folder-tree{display:none}.media-toolbar{display:grid}.media-filters{display:grid;grid-template-columns:1fr 1fr}.media-filters input{width:auto}.form-split{grid-template-columns:1fr}.inline-edit{grid-template-columns:1fr}.row-actions{justify-content:flex-start;flex-wrap:wrap}}

/* 0.1.10 live frontend preview */
.preview-button{border:0;padding:0;cursor:pointer;color:inherit}.preview-button:hover{outline:1px solid var(--accent)}.preview-button.empty-preview span{display:grid}.preview-modal-card{width:min(1180px,calc(100vw - 48px));overflow:visible}.frontend-preview-stage{width:100%;max-height:calc(100vh - 190px);aspect-ratio:16/9;background:#050608;border:1px solid var(--line);border-radius:4px;overflow:hidden;display:grid;place-items:center}.frontend-preview-stage iframe{border:0;width:100%;height:100%;background:#050608}.preview-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px;margin-top:10px}@media(max-width:760px){.preview-modal-card{width:calc(100vw - 24px)}.preview-modal-foot{align-items:flex-start;flex-direction:column}}

/* 0.1.12: compact navigation + editor workspace */
.topbar-main{display:flex;align-items:flex-end;gap:14px;min-width:0}.nav-toggle{width:34px;height:34px;flex:0 0 34px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--muted);font-weight:900;display:grid;place-items:center}.nav-toggle:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.nav-icon{display:inline-grid;place-items:center;width:22px;min-width:22px;height:22px;font-size:12px;font-weight:900}.sidebar nav a,.sidebar-bottom button{display:flex;align-items:center;gap:9px}.sidebar .brand-copy,.sidebar .nav-label{white-space:nowrap;overflow:hidden}.shell,.sidebar,.sidebar nav a,.sidebar-bottom button{transition:grid-template-columns .16s ease,width .16s ease,padding .16s ease}
html[data-nav="collapsed"] .shell{grid-template-columns:68px minmax(0,1fr)}html[data-nav="collapsed"] .sidebar{padding-left:8px;padding-right:8px}html[data-nav="collapsed"] .brand{justify-content:center;padding-left:0;padding-right:0}html[data-nav="collapsed"] .brand-copy,html[data-nav="collapsed"] .sidebar .nav-label{display:none}html[data-nav="collapsed"] .sidebar nav a,html[data-nav="collapsed"] .sidebar-bottom button{justify-content:center;padding-left:8px;padding-right:8px}html[data-nav="collapsed"] .sidebar nav a.active{box-shadow:inset 2px 0 0 var(--accent)}html[data-nav="collapsed"] .sidebar-bottom form{display:grid}
.editor-layout-compact{grid-template-columns:240px minmax(420px,1fr);gap:14px}.editor-layout-compact .module-palette{position:sticky;top:118px;margin:0;max-height:calc(100vh - 145px);overflow:auto}.editor-side-panel{padding:10px}.editor-side-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:10px}.editor-side-tabs button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:4px;padding:8px 10px;font-weight:800}.editor-side-tabs button.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}.editor-panel-help{font-size:11px;margin:4px 2px 10px}.editor-meta-chip{display:inline-flex;align-items:center;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--muted);font-size:12px;font-weight:700}.page-canvas{background:#050608;isolation:isolate}.editor-background-layer{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0b0d10;pointer-events:none}.editor-background-layer>img,.editor-background-layer>video{position:absolute;inset:0;width:100%;height:100%}.editor-background-layer .background-overlay{position:absolute;inset:0}.editor-background-layer.inherit-background{background:repeating-linear-gradient(135deg,#10141a 0,#10141a 16px,#151a21 16px,#151a21 32px)}.background-inherit-hint{position:absolute;left:10px;bottom:10px;padding:5px 7px;border-radius:4px;background:rgba(0,0,0,.58);color:rgba(255,255,255,.62);font-size:11px;font-weight:700}.page-canvas.snap-grid{background-image:none}.page-canvas.snap-grid::after{content:"";position:absolute;inset:0;z-index:99998;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.055) 1px,transparent 1px);background-size:var(--grid-x,1%) var(--grid-y,1%)}.editor-module.selected{z-index:99990!important}.editor-properties-modal{width:min(720px,100%)}.element-layer-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding-top:4px}.split-actions{align-items:center}.split-actions>span{flex:1}.layer-help{font-size:11px;line-height:1.45;color:var(--muted);padding:3px 3px 10px}.layer-list{display:grid;gap:5px}.layer-row{display:grid;gap:5px;padding:7px;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}.layer-row.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.layer-main{display:grid;grid-template-columns:24px 1fr;gap:7px;align-items:center;width:100%;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.layer-main>span:last-child{display:grid;gap:2px;min-width:0}.layer-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-main small{color:var(--muted);font-size:10px}.layer-order{width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:10px;font-weight:800}.layer-controls{display:grid;grid-template-columns:28px 28px 28px 28px minmax(0,1fr);gap:3px}.layer-controls button{height:28px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--muted);font-size:11px;font-weight:800;padding:0 5px}.layer-controls button:hover{color:var(--text);border-color:var(--accent)}.compact-section{padding-top:8px}.compact-title{margin-top:4px}.align-end{align-self:end;min-height:39px}.form-grid>.modal-section{border-top:1px solid var(--line);margin-top:3px}.editor-toolbar{border-radius:4px}.canvas-wrap{border-radius:4px}.module-button{border-radius:4px}
@media(max-width:1050px){.editor-layout-compact{grid-template-columns:1fr}.editor-layout-compact .module-palette{position:static;max-height:none}.editor-side-panel{order:2}.editor-stage{order:1}}
@media(max-width:760px){.topbar-main{align-items:center}.nav-toggle{display:none}.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-bottom{display:flex}.sidebar .brand-copy,.sidebar .nav-label{display:inline!important}html[data-nav="collapsed"] .shell{grid-template-columns:1fr}html[data-nav="collapsed"] .sidebar{padding:18px 14px}.element-layer-actions{grid-template-columns:1fr 1fr}}

/* 0.1.15: TCC-like editor guides, independent grid visibility and font management */
.alignment-guide{position:absolute;z-index:100005;pointer-events:none;background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}
.alignment-guide.vertical{top:0;bottom:0;width:1px;transform:translateX(-.5px)}
.alignment-guide.horizontal{left:0;right:0;height:1px;transform:translateY(-.5px)}
.editor-hint b{color:var(--text)}
.settings-stack{display:grid;gap:16px}
.compact-notice{padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--muted);font-size:12px;line-height:1.5}
.compact-notice a{color:var(--accent2)}
.table-sub{display:block;color:var(--muted);font-size:10px;margin-top:3px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:600}.field-help a{color:var(--accent2)}

/* 0.1.16: reliable decimal inputs + searchable font browser */
.font-picker-field{display:grid;gap:6px}.font-picker-field>input[type="hidden"]{display:none}.font-picker-button{width:100%;min-height:58px;display:grid;grid-template-columns:58px minmax(0,1fr) 22px;gap:10px;align-items:center;text-align:left;padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--text)}.font-picker-button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--panel2))}.font-picker-aa{height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;background:var(--panel);font-size:22px;overflow:hidden}.font-picker-copy{display:grid;gap:3px;min-width:0}.font-picker-copy strong,.font-picker-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-picker-copy small{color:var(--muted);font-size:10px}.font-picker-chevron{font-size:25px;color:var(--muted);text-align:right}
.font-browser-modal-card{width:min(1040px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto}.font-browser-toolbar{display:flex;gap:12px;align-items:end;justify-content:space-between;margin-bottom:12px}.font-search-field{flex:1;max-width:520px}.font-browser-tabs{display:flex;gap:4px}.font-browser-tabs button{border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--muted);padding:9px 12px;font-weight:800}.font-browser-tabs button.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}.font-browser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;max-height:390px;overflow:auto;padding:2px 2px 10px}.font-browser-card{display:grid;gap:8px;min-height:112px;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--text);text-align:left}.font-browser-card:hover,.font-browser-card.active{border-color:var(--accent)}.font-browser-card.active{box-shadow:inset 3px 0 0 var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--panel2))}.font-browser-sample{display:block;font-size:27px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-browser-card-copy{display:grid;gap:3px}.font-browser-card-copy strong,.font-browser-card-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-browser-card-copy small{font-size:10px;color:var(--muted)}.font-browser-empty{grid-column:1/-1}.font-browser-upload{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.font-browser-upload-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.font-browser-upload-head>div{display:grid;gap:3px}.font-browser-upload-head span{color:var(--muted);font-size:11px}.font-upload-grid{display:grid;grid-template-columns:minmax(170px,1.4fr) minmax(130px,.8fr) minmax(120px,.7fr) minmax(190px,1.3fr) auto;gap:8px;align-items:end}.font-upload-grid label{min-width:0}.font-upload-file input{padding:8px}.font-settings-search{width:min(420px,100%)}.font-preview-text{font-size:19px;white-space:nowrap}.font-row-hidden{display:none}
@media(max-width:850px){.font-browser-toolbar,.font-browser-upload-head{align-items:stretch;flex-direction:column}.font-browser-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.font-upload-grid{grid-template-columns:1fr 1fr}.font-upload-grid .primary{grid-column:1/-1}.font-browser-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.font-browser-grid,.font-upload-grid{grid-template-columns:1fr}.font-upload-grid .primary{grid-column:auto}}
.font-browser-remote-card{grid-template-columns:1fr auto;align-items:end}.font-browser-remote-card .font-browser-sample,.font-browser-remote-card .font-browser-card-copy{grid-column:1/-1}.font-browser-remote-card>button{justify-self:end}.font-browser-remote-card.installed{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.font-browser-sample.remote-name{font-family:system-ui,sans-serif;font-size:21px;font-weight:800}.font-online-note{font-size:11px;color:var(--muted)}
@media(max-width:850px){.font-browser-tabs{grid-template-columns:repeat(4,1fr)}}
.font-install-modal{width:min(980px,calc(100vw - 36px))}.font-source-tabs{display:flex;gap:4px;margin-bottom:14px}.font-source-tabs button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);padding:9px 13px;border-radius:4px;font-weight:800}.font-source-tabs button.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}.font-online-search{display:grid;gap:6px}.font-online-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;max-height:430px;overflow:auto;margin-top:12px}.google-font-card{display:grid;gap:9px;align-content:start;border:1px solid var(--line);border-radius:4px;background:var(--panel2);padding:12px;min-height:138px}.google-font-card.installed{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.google-font-card .google-font-name{font-size:20px;font-weight:850}.google-font-card small{color:var(--muted)}.google-font-card .font-card-actions{display:flex;justify-content:flex-end;margin-top:auto}.font-manual-upload{padding-top:4px}.font-family-detail{display:grid;gap:12px}.font-family-large-preview{font-size:34px;padding:16px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);overflow:hidden}.font-online-results .empty{grid-column:1/-1}

/* 0.1.18: compact TCC-style Google Fonts dropdown */
.font-install-modal{width:min(800px,calc(100vw - 28px))}
.font-google-label{display:block;margin:2px 0 7px;font-size:12px;font-weight:800;color:var(--text)}
.font-combobox{position:relative;width:100%}
.font-combobox-control{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--text);text-align:left}
.font-combobox.open .font-combobox-control,.font-combobox-control:hover{border-color:var(--accent)}
.font-combobox-chevron{color:var(--muted);font-size:15px;line-height:1}
.font-combobox-menu{position:absolute;z-index:12020;left:0;right:0;top:calc(100% + 3px);border:1px solid var(--line);border-radius:4px;background:var(--panel2);box-shadow:0 14px 35px rgba(0,0,0,.35);overflow:hidden}
.font-combobox-search-wrap{padding:5px;border-bottom:1px solid var(--line);background:var(--panel2)}
.font-combobox-search-wrap input{width:100%;margin:0;background:var(--panel);border-radius:3px}
.font-combobox-options{max-height:280px;overflow:auto;padding:2px 0}
.font-combobox-option{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:10px;align-items:center;padding:8px 10px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left}
.font-combobox-option:hover,.font-combobox-option:focus{background:color-mix(in srgb,var(--accent) 12%,var(--panel2));outline:0}
.font-combobox-option.installed{color:var(--muted)}
.font-combobox-option.loading{cursor:wait}
.font-combobox-option-copy{display:grid;gap:2px;min-width:0}.font-combobox-option-copy strong,.font-combobox-option-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-combobox-option-copy small{font-size:10px;color:var(--muted)}
.font-combobox-option-state{text-align:center;color:var(--accent);font-weight:900}
.font-install-hint{min-height:20px;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.45}
.font-source-tabs{margin-bottom:16px;border-bottom:1px solid var(--line);gap:0}.font-source-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:10px 16px}.font-source-tabs button.active{border-color:var(--accent);background:var(--panel2)}
@media(max-width:620px){.font-source-tabs{display:grid;grid-template-columns:1fr 1fr}.font-source-tabs button{padding:10px 8px}}


/* 0.1.19: font UI cleanup + device-safe local content fonts */
.font-picker-button.font-picker-warning{border-color:color-mix(in srgb,#ffb13b 58%,var(--line));background:color-mix(in srgb,#ffb13b 6%,var(--panel2))}
.font-picker-button.font-picker-warning .font-picker-copy small{color:#ffb13b}
.font-browser-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.font-browser-sample.remote-name{font-family:inherit}

/* Settings font table: regular spacing, no internal CSS-family hash in the visible UI. */
.font-settings-card{padding:0;overflow:hidden}
.font-settings-card .card-head{padding:18px 20px}
.font-settings-card .table-toolbar{padding:12px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel2) 42%,var(--panel))}
.font-settings-card .table-wrap{overflow:auto}
.font-settings-card table{min-width:760px}
.font-settings-card th,.font-settings-card td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.font-settings-card th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:800;background:color-mix(in srgb,var(--panel2) 55%,var(--panel))}
.font-settings-card tbody tr:last-child td{border-bottom:0}
.font-settings-card td strong{font-size:13px}
.font-settings-card .table-sub{max-width:280px;margin-top:4px;font-size:10px}
.font-settings-card .font-preview-text{display:inline-block;min-width:180px;font-size:20px;line-height:1.2}
.font-settings-card .actions-col{padding-left:8px;padding-right:16px}
.font-settings-search{min-height:38px}

/* TCC-like font dropdown: a single dark scrollbar inside the list instead of nested page/card scrollbars. */
.font-install-modal{overflow:visible;max-height:none}
.font-combobox{z-index:3}
.font-combobox-menu{max-height:min(390px,calc(100vh - 250px));overflow:hidden}
.font-combobox-search-wrap{position:sticky;top:0;z-index:2;padding:6px;background:var(--panel2)}
.font-combobox-search-wrap input{height:40px}
.font-combobox-options{max-height:min(330px,calc(100vh - 310px));overflow-y:auto;overflow-x:hidden;padding:4px 0;scrollbar-width:thin;scrollbar-color:var(--muted) transparent}
.font-combobox-options::-webkit-scrollbar{width:8px}
.font-combobox-options::-webkit-scrollbar-track{background:transparent}
.font-combobox-options::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 70%,transparent);border-radius:4px}
.font-combobox-option{min-height:48px;padding:8px 12px}
.font-combobox-option-copy strong{font-size:13px}
.font-combobox-option-copy small{font-size:10px;line-height:1.25}

@media(max-width:850px){.font-browser-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.font-install-modal{overflow:auto;max-height:calc(100vh - 36px)}}

/* 0.1.20: grouped/collapsible sidebar navigation */
.sidebar-nav{display:grid!important;gap:8px!important;align-content:start}.nav-dashboard-link{margin-bottom:2px}.nav-group{display:grid;gap:2px}.nav-group-toggle{width:100%;border:0;background:transparent;color:var(--muted);padding:8px 10px 5px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;text-align:left}.nav-group-toggle:hover{color:var(--text)}.nav-group-chevron{color:var(--muted)}.nav-group-body{display:grid;gap:3px}.nav-group.closed .nav-group-body{display:none}.nav-group.active-group>.nav-group-toggle{color:color-mix(in srgb,var(--accent) 72%,var(--text))}.sidebar-nav>.nav-group+.nav-group{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-top:4px}html[data-nav="collapsed"] .nav-group-toggle{display:none}html[data-nav="collapsed"] .nav-group.closed .nav-group-body{display:grid}html[data-nav="collapsed"] .sidebar-nav{gap:6px}html[data-nav="collapsed"] .sidebar-nav>.nav-group+.nav-group{padding-top:6px}
@media(max-width:760px){.sidebar-nav{display:block!important}.nav-dashboard-link{display:flex!important}.nav-group{margin-top:6px}.nav-group-toggle{display:flex!important}.nav-group.closed .nav-group-body{display:none!important}.nav-group-body{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.nav-group-body a{text-align:center;justify-content:center}.nav-group-title{display:inline!important}}

/* 0.1.21: editor module palette categories */
#modulePalette{display:grid;gap:7px}.module-category{border:1px solid var(--line);border-radius:4px;background:var(--panel2);overflow:hidden}.module-category-toggle{width:100%;min-height:36px;padding:8px 9px;border:0;background:var(--panel2);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-weight:800}.module-category-toggle:hover{background:color-mix(in srgb,var(--accent) 5%,var(--panel2))}.module-category-meta{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.module-category-meta small{min-width:20px;height:20px;padding:0 5px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;font-size:10px}.module-category-chevron{color:var(--muted)}.module-category-body{display:grid;gap:5px;padding:6px;border-top:1px solid var(--line)}.module-category .module-button{margin:0;background:var(--panel)}.module-category.collapsed .module-category-body{display:none}
/* 0.1.22: stable centered SVG chevrons for collapsible groups */
.collapse-chevron{width:20px;height:20px;flex:0 0 20px;display:inline-grid;place-items:center;line-height:0;transform:none!important}
.collapse-chevron svg{display:block;width:12px;height:12px;overflow:visible;transform:rotate(0deg);transform-origin:50% 50%;transition:transform .16s ease;color:inherit}
.nav-group:not(.closed)>.nav-group-toggle .collapse-chevron svg,.module-category:not(.collapsed)>.module-category-toggle .collapse-chevron svg{transform:rotate(90deg)}
.nav-group-toggle:hover .collapse-chevron,.module-category-toggle:hover .collapse-chevron{color:var(--text)}


/* 0.1.23: clearer playlist sequence editor with editable timing and transitions */
.playlist-pages-section{display:grid;gap:14px}.playlist-add-page{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}.playlist-add-page-select{display:grid;gap:6px}.playlist-add-page>small{grid-column:1/-1;color:var(--muted);font-size:10px}.playlist-sequence-wrap{overflow:auto;border:1px solid var(--line);border-radius:4px}.playlist-sequence-table{min-width:930px;width:100%;border-collapse:collapse}.playlist-sequence-table th,.playlist-sequence-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}.playlist-sequence-table th{font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);background:color-mix(in srgb,var(--panel2) 62%,var(--panel));font-weight:800}.playlist-sequence-table tbody tr:last-child td{border-bottom:0}.playlist-sequence-table tbody tr.dragging{opacity:.45;background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}.playlist-order-col{width:118px}.playlist-order-cell{width:118px}.playlist-order-tools{display:flex;align-items:center;gap:7px}.drag-handle{width:32px;height:34px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);display:grid;place-content:center;gap:3px;cursor:grab}.drag-handle:active{cursor:grabbing}.drag-handle span{display:block;width:12px;height:1px;background:var(--muted)}.playlist-nudge-buttons{display:grid;grid-template-columns:1fr 1fr;gap:3px}.icon-button{width:28px;height:34px;padding:0;display:grid;place-items:center}.playlist-page-cell{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:center;min-width:220px}.playlist-page-cell img{width:86px;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:3px;background:var(--panel2)}.playlist-page-cell img.preview-missing{visibility:hidden}.playlist-page-cell>div{display:grid;gap:3px}.playlist-page-cell small,.playlist-sequence-table td>small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.playlist-schedule-summary{display:block;max-width:220px;color:var(--muted);font-size:11px;line-height:1.35}.playlist-item-modal-card{width:min(860px,calc(100vw - 30px))}.playlist-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.playlist-setting-grid>label{display:grid;gap:6px}.playlist-setting-grid label>small{font-size:10px;color:var(--muted);font-weight:500}.playlist-active-check{align-self:end;min-height:42px}.input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.input-with-suffix input{border-top-right-radius:0;border-bottom-right-radius:0}.input-with-suffix span{display:grid;place-items:center;min-width:56px;padding:0 10px;border:1px solid var(--line);border-left:0;border-radius:0 4px 4px 0;background:var(--panel2);color:var(--muted);font-size:11px}.playlist-item-form [data-transition-duration].is-disabled{opacity:.5}.weekday-picker{display:grid;gap:8px}.weekday-picker>span{font-size:11px;font-weight:800}.weekday-picker>div{display:flex;flex-wrap:wrap;gap:6px}.weekday-picker label{position:relative}.weekday-picker input{position:absolute;opacity:0;pointer-events:none}.weekday-picker label span{min-width:40px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);display:grid;place-items:center;font-size:11px;font-weight:800;cursor:pointer}.weekday-picker input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel2));color:var(--text)}
@media(max-width:760px){.playlist-setting-grid{grid-template-columns:1fr}.playlist-add-page{grid-template-columns:1fr}.playlist-add-page>small{grid-column:auto}}

/* 0.1.24: calmer playlist editor, save action at the actual end of the workflow */
.playlist-edit-modal-card{width:min(1080px,calc(100vw - 32px));padding:18px;scrollbar-gutter:stable}.playlist-edit-modal-card>.modal-head{padding-bottom:14px;margin-bottom:0;border-bottom:1px solid var(--line)}.playlist-settings-form{padding-top:16px}.playlist-settings-form>.modal-section{margin-top:12px}.playlist-pages-section{padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}.playlist-pages-section>.section-title{margin:0 0 12px}.playlist-sequence-table{min-width:790px}.playlist-sequence-table th,.playlist-sequence-table td{padding:9px 10px}.playlist-order-col,.playlist-order-cell{width:104px}.playlist-page-cell{grid-template-columns:72px minmax(0,1fr);min-width:180px}.playlist-page-cell img{width:72px}.playlist-schedule-summary{max-width:170px}.playlist-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.playlist-delete-form{margin:0}.playlist-modal-footer-actions{display:flex;justify-content:flex-end;gap:8px;margin-left:auto}.playlist-item-modal-card .modal-actions{padding-top:12px;border-top:1px solid var(--line);margin-top:4px}.playlist-item-modal-card .section-title{margin-top:12px}
@media(max-width:760px){.playlist-edit-modal-card{width:min(100%,calc(100vw - 18px));padding:14px}.playlist-modal-footer{align-items:stretch;flex-direction:column-reverse}.playlist-modal-footer-actions{width:100%;margin-left:0}.playlist-modal-footer-actions>*{flex:1}.playlist-delete-form button{width:100%}.playlist-sequence-table{min-width:730px}}
