:root{--ink:#1d2340;--muted:#747b97;--blue:#536dfe;--pink:#ec4899;--line:#e9eafa;--surface:#fff;--shadow:0 18px 55px rgba(54,65,130,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{min-height:100vh;background:linear-gradient(135deg,#edf4ff 0%,#f8f0ff 48%,#fff0f7 100%);background-attachment:fixed;color:var(--ink);font-family:'Kanit',sans-serif;font-weight:300;letter-spacing:.01em}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 8% 5%,rgba(83,109,254,.13),transparent 32%),radial-gradient(ellipse at 93% 12%,rgba(236,72,153,.12),transparent 30%)}
.page-wrap{padding:clamp(1rem,3vw,2.5rem);max-width:1680px;animation:page-in .55s cubic-bezier(.2,.75,.25,1) both}
.page-wrap>h1{font-weight:600;letter-spacing:-.025em;color:#252c51}
.site-nav{background:linear-gradient(105deg,#4055d8 0%,#7357db 52%,#d94c9c 100%)!important;box-shadow:0 9px 30px rgba(77,78,183,.22);padding:.75rem 1rem}
.site-nav .navbar-brand{font-weight:500;letter-spacing:.01em}.site-nav .nav-link{font-weight:400;color:rgba(255,255,255,.82);padding:.55rem .8rem!important;border-radius:10px;transition:background .2s,color .2s,transform .2s}.site-nav .nav-link:hover{background:#ffffff20;color:#fff;transform:translateY(-1px)}.site-nav .navbar-text{color:#fff;font-weight:400}.nav-logo{width:30px;height:30px;object-fit:contain;border-radius:8px;background:#fff;padding:2px}
.card{border:1px solid rgba(255,255,255,.88);background:rgba(255,255,255,.91);box-shadow:var(--shadow);border-radius:20px;backdrop-filter:blur(12px);animation:card-in .45s ease both;transition:box-shadow .25s,transform .25s}.card:hover{box-shadow:0 22px 62px rgba(54,65,130,.16)}
.stat-card{padding:1.4rem 1.5rem;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:100px;height:100px;right:-32px;top:-38px;border-radius:50%;background:linear-gradient(135deg,#667aff35,#ef65b335)}.stat-value{font-size:clamp(2rem,4vw,2.7rem);font-weight:600;line-height:1.2;letter-spacing:-.04em;background:linear-gradient(100deg,#4c61ec,#ca4eb5);background-clip:text;-webkit-background-clip:text;color:transparent}.stat-card .text-secondary{font-size:.95rem;color:var(--muted)!important}
.table{vertical-align:middle;--bs-table-bg:transparent;margin-bottom:0}.table thead th{font-weight:500;color:#72799a;font-size:.9rem;border-bottom-color:var(--line);white-space:nowrap}.table td{border-color:#eff0f8}.table tbody tr{transition:background .18s}.table tbody tr:hover{background:#f7f7ff}.table-responsive{border-radius:14px}
.form-label{font-weight:400;color:#434a6b;margin-bottom:.45rem}.form-control,.form-select{border-color:#e2e5f2;border-radius:11px;min-height:44px;color:var(--ink);font-weight:300;transition:border-color .2s,box-shadow .2s,background .2s}.form-control:focus,.form-select:focus{border-color:#8794ff;box-shadow:0 0 0 .22rem rgba(83,109,254,.14)}textarea.form-control{min-height:auto}.form-check-input{border-color:#ccd1e5}.form-check-input:checked{background-color:var(--blue);border-color:var(--blue)}
.btn{border-radius:10px;font-weight:400;transition:transform .18s,box-shadow .18s,filter .18s}.btn:hover{transform:translateY(-1px)}.btn-primary{border:0;background:linear-gradient(105deg,#536dfe,#8058e8 60%,#cf4eaf);box-shadow:0 7px 18px rgba(83,109,254,.2)}.btn-primary:hover,.btn-primary:focus{filter:saturate(1.12);background:linear-gradient(105deg,#455fe8,#714bd5 60%,#bd409f);box-shadow:0 10px 22px rgba(83,109,254,.28)}.btn-outline-primary{border-color:#8490ff;color:#5667df}.btn-outline-primary:hover{background:#596df1;border-color:#596df1}.badge{font-weight:400;border-radius:20px;padding:.45em .75em}
.alert{border:0;border-radius:14px;box-shadow:0 8px 25px #29315a0a;animation:card-in .25s ease both}.preview-media{max-height:100px;max-width:180px;object-fit:cover;border-radius:12px;box-shadow:0 8px 24px #26336320}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.25rem;overflow:hidden;background:linear-gradient(130deg,#4359df 0%,#7658df 46%,#de4d9f 100%);position:relative}.login-shell:before,.login-shell:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);animation:float 9s ease-in-out infinite}.login-shell:before{width:min(55vw,580px);aspect-ratio:1;top:-20%;left:-10%;background:radial-gradient(circle,#ffffff30,transparent 68%)}.login-shell:after{width:min(48vw,500px);aspect-ratio:1;bottom:-20%;right:-8%;background:radial-gradient(circle,#ffc5e32f,transparent 70%);animation-delay:-4s}.login-card{z-index:1;width:min(460px,100%);padding:clamp(1.5rem,6vw,2.75rem);border:1px solid #ffffffa8;background:#ffffffed;box-shadow:0 30px 90px #25205b4d;border-radius:24px;animation:login-in .7s cubic-bezier(.16,1,.3,1) both}.login-card h1{font-weight:600;letter-spacing:-.02em}.login-card .btn{min-height:48px}.login-card a{color:#655cda;text-decoration:none}.login-card a:hover{text-decoration:underline}
.content-stage{position:fixed;inset:0;background:#050505;color:#fff;display:grid;place-items:center;overflow:hidden}.content-stage img,.content-stage video,.content-stage iframe{width:100%;height:100%;object-fit:contain;border:0}.content-copy{white-space:pre-wrap;padding:5vw;text-align:center;font-size:clamp(2rem,6vw,7rem);width:100%;font-weight:400}.content-html{width:100%;height:100%;padding:3vw;overflow:auto}.no-content{color:#dedcf2;font:400 2rem 'Kanit',sans-serif}.display-error{position:fixed;bottom:12px;left:12px;color:#999;font:12px 'Kanit',sans-serif;opacity:.4}.schedule-table td{min-width:130px}
.canvas-zone.has-link:after{content:"↗";position:absolute;right:5px;bottom:4px;width:18px;height:18px;display:grid;place-items:center;border-radius:6px;background:#ffffffdd;color:#535ed4;font-size:.72rem;font-weight:500}
.swal2-popup{font-family:'Kanit',sans-serif!important;border-radius:22px!important}.swal2-title{font-weight:500!important;color:var(--ink)!important}.swal2-confirm{border-radius:10px!important;background:linear-gradient(105deg,#536dfe,#bd4fac)!important}.swal2-cancel{border-radius:10px!important}
.admin-body{background:#f5f6fb;background-attachment:fixed}.admin-sidebar{position:fixed;z-index:1040;inset:0 auto 0 0;width:264px;padding:20px 16px 14px;background:rgba(255,255,255,.94);border-right:1px solid #e8eaf4;display:flex;flex-direction:column;backdrop-filter:blur(16px)}.sidebar-brand{height:58px;display:flex;align-items:center;gap:11px;padding:0 9px;margin-bottom:23px;color:var(--ink);text-decoration:none}.brand-mark{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(140deg,#526cfa,#ca4fac);color:#fff;font-size:1.5rem;box-shadow:0 7px 16px #536dfe38}.sidebar-logo{width:39px;height:39px;object-fit:contain;border-radius:12px}.brand-copy{display:grid;line-height:1.22}.brand-copy strong{font-weight:500;font-size:1.04rem}.brand-copy small{font-size:.72rem;color:#9298af;margin-top:4px}.sidebar-label{font-size:.66rem;letter-spacing:.13em;font-weight:500;color:#a2a7bb;padding:0 12px;margin-bottom:9px}.sidebar-nav{display:grid;gap:5px}.sidebar-link{min-height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:12px;color:#747b96;text-decoration:none;font-size:.91rem;font-weight:300;transition:background .2s,color .2s,transform .2s}.sidebar-link i{font-size:1.08rem;width:20px;text-align:center}.sidebar-link:hover{background:#f2f3ff;color:#515fd2;transform:translateX(2px)}.sidebar-link.active{background:linear-gradient(100deg,#eef0ff,#f5efff);color:#514fd0;font-weight:400;box-shadow:inset 3px 0 #6972f4}.nav-count{margin-left:auto;min-width:24px;text-align:center;padding:1px 6px;background:#f0f1f7;color:#858ba4;border-radius:20px;font-size:.72rem}.sidebar-spacer{flex:1}.sidebar-tip{padding:14px;border:1px solid #e9e7ff;border-radius:15px;background:linear-gradient(145deg,#f7f7ff,#fff5fb);margin:10px 2px 15px;position:relative;overflow:hidden}.sidebar-tip:after{content:"";position:absolute;right:-22px;top:-22px;width:70px;height:70px;border-radius:50%;background:#d7d5ff62}.tip-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#ebeaff;color:#6763e6;margin-bottom:9px}.sidebar-tip strong{display:block;font-weight:500;font-size:.86rem}.sidebar-tip p{font-size:.74rem;color:#858ba2;line-height:1.55;margin:4px 0 8px}.sidebar-tip a{font-size:.78rem;font-weight:400;text-decoration:none;color:#655dde}.sidebar-user{display:flex;align-items:center;gap:10px;border-top:1px solid #eff0f6;padding:14px 4px 2px}.user-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(140deg,#e8eaff,#fdeafa);color:#6866d5;font-size:1.1rem}.user-meta{display:grid;line-height:1.25;min-width:0;flex:1}.user-meta strong{font-size:.83rem;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta small{font-size:.68rem;color:#9ba0b4;margin-top:3px}.logout-button{border:0;background:transparent;color:#8d93a9;border-radius:9px;width:34px;height:34px;transition:all .2s}.logout-button:hover{background:#fff0f2;color:#de5476}.admin-main{min-height:100vh;margin-left:264px}.topbar{height:70px;display:flex;align-items:center;gap:15px;padding:0 clamp(18px,3vw,38px);background:#ffffffd9;border-bottom:1px solid #e9ebf3;backdrop-filter:blur(14px);position:sticky;top:0;z-index:1020}.topbar-context{display:flex;align-items:center;gap:10px;color:#a0a5b8;font-size:.82rem}.topbar-context i{font-size:.65rem}.topbar-context strong{font-weight:400;color:#454c6a;font-size:.9rem}.topbar-actions{display:flex;align-items:center;gap:15px;margin-left:auto}.system-status{font-size:.76rem;color:#727b91;display:flex;align-items:center;gap:7px}.system-status i{width:7px;height:7px;border-radius:50%;background:#35c98a;box-shadow:0 0 0 4px #35c98a1e}.topbar-screen-link{border:1px solid #e9eaf3!important;color:#59617f!important;border-radius:10px!important;font-size:.77rem}.sidebar-toggle{display:none;border:0;background:transparent;color:#606887;font-size:1.45rem}.page-wrap{padding:clamp(20px,3vw,38px);max-width:1600px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}.page-heading .eyebrow{font-size:.65rem;font-weight:500;letter-spacing:.14em;color:#9299b3;margin-bottom:5px}.page-heading h1{font-weight:500;color:#252c51;letter-spacing:-.025em}.sidebar-scrim{display:none}
.dashboard-welcome{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 26px;margin-bottom:20px;border-radius:20px;background:linear-gradient(112deg,#4b5dd2,#7459d6 58%,#bd55ad);color:#fff;box-shadow:0 15px 38px #6558cc32;position:relative;overflow:hidden}.dashboard-welcome:after{content:"";position:absolute;right:8%;top:-85px;width:235px;height:235px;border:1px solid #ffffff29;border-radius:50%;box-shadow:0 0 0 27px #ffffff0c,0 0 0 55px #ffffff08}.welcome-copy{position:relative;z-index:1}.welcome-copy .welcome-label{font-size:.72rem;letter-spacing:.08em;color:#ffffffb9}.welcome-copy h2{font-size:1.45rem;font-weight:500;margin:5px 0}.welcome-copy p{margin:0;color:#ffffffc9;font-size:.86rem}.welcome-date{position:relative;z-index:1;padding:9px 13px;border:1px solid #ffffff45;border-radius:12px;background:#ffffff16;font-size:.78rem;white-space:nowrap}.dashboard-stats{margin-bottom:20px}.dashboard-stat{display:flex;gap:14px;align-items:center;padding:18px 19px;min-height:112px}.stat-icon{width:44px;height:44px;flex:0 0 44px;border-radius:14px;display:grid;place-items:center;font-size:1.17rem}.stat-icon.blue{background:#edf0ff;color:#586bdf}.stat-icon.pink{background:#fff0f7;color:#d456a1}.stat-icon.purple{background:#f3edff;color:#8b5ed1}.stat-icon.green{background:#eaf9f2;color:#32a777}.dashboard-stat .stat-label{color:#848ba4;font-size:.78rem}.dashboard-stat .stat-value{font-size:1.8rem;margin-top:2px}.stat-foot{font-size:.68rem;color:#a1a6b8;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr);gap:18px}.panel-card{padding:20px 22px}.panel-title{font-size:.98rem;font-weight:500;color:#343b5d;margin:0}.panel-subtitle{font-size:.75rem;color:#969bb0;margin-top:3px}.quick-actions{display:grid;gap:9px;margin-top:15px}.quick-action{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid #eef0f7;border-radius:13px;color:#444b6a;text-decoration:none;transition:all .2s}.quick-action:hover{border-color:#deddff;background:#faf9ff;transform:translateY(-1px);color:#535bcc}.quick-action-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#f0f1ff;color:#5e69dc}.quick-action:nth-child(2) .quick-action-icon{background:#fff0f7;color:#ce5099}.quick-action:nth-child(3) .quick-action-icon{background:#effaf5;color:#35a879}.quick-action:nth-child(4) .quick-action-icon{background:#f5efff;color:#8d5dd1}.quick-action-copy{display:grid;flex:1}.quick-action-copy strong{font-size:.8rem;font-weight:400}.quick-action-copy small{font-size:.68rem;color:#999fb2}.quick-action>i{color:#a1a7ba;font-size:.78rem}.device-status{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;padding:4px 8px;border-radius:20px;white-space:nowrap}.device-status.online{background:#eaf8f1;color:#29976c}.device-status.offline{background:#f3f4f8;color:#8b91a5}.device-status i{font-size:.45rem}.empty-state{padding:28px 15px;text-align:center;color:#969cb1}.empty-state .empty-icon{width:46px;height:46px;margin:0 auto 10px;display:grid;place-items:center;border-radius:15px;background:#f2f2ff;color:#7072d7;font-size:1.3rem}.empty-state strong{display:block;color:#555c78;font-weight:400}.empty-state p{font-size:.76rem;margin:4px 0 12px}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}.module-card{min-height:111px;display:flex;align-items:flex-start;gap:12px;padding:16px 15px;background:#fff;border:1px solid #e9eaf3;border-radius:16px;color:var(--ink);text-decoration:none;box-shadow:0 7px 20px #252e6009;transition:transform .2s,box-shadow .2s,border-color .2s}.module-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px #36418218;border-color:#d9dcfb;color:var(--ink)}.module-icon{width:39px;height:39px;flex:0 0 39px;display:grid;place-items:center;border-radius:12px;background:#edf0ff;color:#5267df;font-size:1.05rem}.module-playlist .module-icon{background:#fff0f7;color:#cc4f9c}.module-screen .module-icon{background:#effaf5;color:#36a478}.module-schedule .module-icon{background:#f4efff;color:#8a5bc9}.module-copy{display:grid;gap:4px;flex:1}.module-copy strong{font-size:.85rem;font-weight:500}.module-copy small{font-size:.68rem;color:#9298ad;line-height:1.5}.module-arrow{color:#a6abc0;font-size:.8rem}.setup-steps{display:grid;margin-top:14px}.setup-step{display:flex;align-items:center;gap:10px;padding:12px 2px;color:#626984;text-decoration:none;font-size:.8rem;border-bottom:1px solid #f0f1f7;transition:color .18s}.setup-step:last-child{border-bottom:0}.setup-step:hover{color:#535ed3}.step-marker{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;border:1px solid #e4e6f0;border-radius:50%;color:#9298ae;background:#fafbfe;font-size:.7rem}.setup-step.complete .step-marker{background:#eaf8f1;border-color:#d7f0e4;color:#2eaa78}.setup-step.complete{color:#8289a0}.step-chevron{margin-left:auto;color:#b4b8c8;font-size:.67rem}
.screen-intro{display:flex;align-items:center;gap:13px;padding:15px 18px;margin-bottom:18px;background:linear-gradient(100deg,#eef1ff,#fff3fa);border:1px solid #e8e8fb;border-radius:15px}.screen-intro-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#5969df;font-size:1.1rem;box-shadow:0 4px 12px #586bdd15}.screen-intro strong{font-size:.88rem;font-weight:500}.screen-intro p{margin:2px 0 0;color:#848ba4;font-size:.73rem}.screen-total{margin-left:auto;color:#8e94aa;font-size:.72rem;white-space:nowrap}.screen-total strong{font-size:1.3rem;color:#5363d6;font-weight:500;margin-right:3px}.screen-form-card,.screen-list-card{height:100%;border-radius:18px}.form-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:20px}.section-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;color:#5c68dc;background:#eff0ff}.form-section-heading h2{font-weight:500;color:#343b5d}.form-section-heading small{font-size:.72rem;color:#969bb0}.screen-code-group .input-group-text{background:#f7f7ff;border-color:#e2e5f2;color:#7c83a0}.screen-code-field{font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-weight:600!important;letter-spacing:.06em;background:#fafaff!important;color:#5666dc!important}.auto-badge{font-family:'Kanit',sans-serif;font-size:.68rem;color:#6964d6!important;background:#f3f0ff!important}.form-hint{font-size:.7rem;color:#969bb0;margin-top:-7px}.screen-enabled-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #eef0f6;border-radius:12px;background:#fbfbfe}.screen-enabled-row strong,.screen-enabled-row small{display:block}.screen-enabled-row strong{font-size:.78rem;font-weight:400;color:#49506d}.screen-enabled-row small{font-size:.66rem;color:#989eb1;margin-top:2px}.screen-enabled-row .form-check-input{width:2.3em;height:1.25em;margin:0}.screen-list-count{font-size:.7rem;padding:4px 9px;border-radius:20px;background:#f1f2fb;color:#747b98}.screen-table td{padding-top:12px;padding-bottom:12px}.screen-name-cell{display:flex;align-items:center;gap:9px}.screen-row-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#f0f1ff;color:#636bd6}.screen-name-cell strong,.screen-name-cell small{display:block}.screen-name-cell strong{font-size:.8rem;font-weight:400;color:#424966}.screen-name-cell small{font-size:.68rem;margin-top:2px}.screen-name-cell code{color:#737b9b}
.mode-choice-group{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-choice{position:relative;cursor:pointer}.mode-choice input{position:absolute;opacity:0}.mode-choice>span{min-height:78px;display:grid;grid-template-columns:24px 1fr;align-content:center;column-gap:8px;padding:10px;border:1px solid #e9eaf3;border-radius:13px;background:#fff;transition:all .18s}.mode-choice>span>i{grid-row:span 2;align-self:center;font-size:1.15rem;color:#8a91ab}.mode-choice strong{font-size:.78rem;font-weight:400;color:#4d5472}.mode-choice small{font-size:.65rem;color:#969bb0}.mode-choice input:checked+span{border-color:#aeb5ff;background:#f7f7ff;box-shadow:0 0 0 3px #586cfa12}.mode-choice input:checked+span>i{color:#5d68de}.mode-choice input:focus-visible+span{outline:3px solid #7c87ff55}
.playlist-intro,.layout-intro{display:flex;align-items:center;gap:13px;padding:15px 18px;margin-bottom:18px;background:linear-gradient(100deg,#eef1ff,#fff3fa);border:1px solid #e8e8fb;border-radius:15px}.playlist-intro strong,.layout-intro strong{font-size:.88rem;font-weight:500}.playlist-intro p,.layout-intro p{margin:2px 0 0;color:#848ba4;font-size:.73rem}.playlist-content-list{display:grid;gap:8px;max-height:510px;overflow-y:auto;padding:2px 4px 2px 1px}.playlist-content-row{padding:10px;border:1px solid #eceef6;border-radius:13px;background:#fff}.playlist-item-top{display:flex;align-items:center;gap:9px}.playlist-item-label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer}.playlist-item-label>span:last-child{display:grid;min-width:0}.playlist-item-label strong{font-size:.76rem;font-weight:400;color:#48506d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-item-label small{font-size:.64rem;color:#989eb2}.content-kind-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:10px;background:#f0f1ff;color:#646ed8}.kind-video{background:#fff0f7;color:#c84f97}.kind-text{background:#effaf5;color:#34a879}.kind-iframe{background:#f4efff;color:#895bc7}.order-field{display:grid;justify-items:center;gap:2px}.order-field small,.playlist-item-dates small{font-size:.6rem;color:#9298ad}.order-field input{width:58px;text-align:center}.playlist-item-dates{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:7px;padding:9px 0 0 39px}.playlist-item-dates label{display:grid;gap:3px;min-width:0}.playlist-item-dates input{font-size:.65rem;min-width:0;padding:5px}.date-separator{font-size:.65rem;color:#a0a5b6;padding-bottom:9px}.selected-count{font-size:.67rem;padding:4px 8px;background:#f2f2ff;color:#6268d2;border-radius:20px;white-space:nowrap}.playlist-loop-note{display:flex;gap:8px;margin:10px 0 14px;padding:10px;background:#effaf5;color:#489374;border-radius:10px;font-size:.67rem;line-height:1.5}.playlist-loop-note i{font-size:.9rem}.layout-ratio{margin-left:auto;font-size:.7rem;color:#6c6fcb;background:#fff;padding:6px 10px;border-radius:20px;white-space:nowrap}.layout-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.layout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 13px}.layout-toolbar h2{font-size:.95rem;font-weight:500;color:#424966}.layout-toolbar small{font-size:.68rem;color:#989eb2}.layout-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.9fr);gap:16px;align-items:start}.layout-canvas-wrap{min-width:0}.canvas-meta{display:flex;justify-content:space-between;color:#959bb0;font-size:.62rem;letter-spacing:.1em;margin-bottom:6px}.layout-canvas{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;border:1px solid #dfe2f0;border-radius:13px;background-color:#f8f9fd;background-image:linear-gradient(#e9ebf4 1px,transparent 1px),linear-gradient(90deg,#e9ebf4 1px,transparent 1px);background-size:5% 5%;touch-action:none}.canvas-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:7px;color:#a0a6bb;font-size:.72rem;pointer-events:none}.canvas-empty[hidden]{display:none}.canvas-empty i{font-size:1.5rem;color:#b6bad0}.canvas-zone{position:absolute;min-width:5%;min-height:5%;display:flex;align-items:center;gap:5px;padding:6px 8px;overflow:hidden;border:2px solid #6778f4;border-radius:9px;background:linear-gradient(135deg,#6375f2db,#b04dc5d9);color:#fff;box-shadow:0 5px 14px #373e8650;cursor:move;touch-action:none;user-select:none}.canvas-zone:nth-of-type(even){background:linear-gradient(135deg,#cb4c9edb,#7457d8dc);border-color:#d76cb4}.canvas-zone.dragging{opacity:.85;box-shadow:0 9px 25px #343a7580}.canvas-zone-number{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;border-radius:7px;background:#ffffff36;font-size:.65rem}.canvas-zone-label{display:grid;min-width:0;font-size:.69rem;line-height:1.2}.canvas-zone-label small{font-size:.56rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffffffc9}.canvas-zone-type{margin-left:auto;font-size:.75rem}.resize-handle{position:absolute;width:13px;height:13px;bottom:0;right:0;background:#fff;border-radius:7px 0 0;cursor:nwse-resize}.canvas-helper{font-size:.63rem;color:#9ba1b4;margin-top:7px}.zone-settings{border:1px solid #edf0f6;border-radius:13px;padding:10px;background:#fafbfe}.zone-settings-heading{display:flex;justify-content:space-between;align-items:center;font-size:.73rem;color:#545b78;padding:1px 2px 8px}.zone-settings-heading>span{font-size:.64rem;color:#858ba3}.zone-card-list{display:grid;gap:8px;max-height:430px;overflow-y:auto}.zone-config-card{padding:9px;border:1px solid #eaecf4;border-radius:11px;background:#fff}.zone-card-heading{display:flex;align-items:center;gap:6px;margin-bottom:8px}.zone-card-number{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#eff0ff;color:#646ddd;font-size:.66rem}.zone-name-input{font-size:.7rem!important;min-height:31px!important}.zone-remove{width:29px;height:29px;border:0;border-radius:8px;background:#fff2f4;color:#cf6580}.zone-config-card .form-select{min-height:34px;font-size:.68rem;padding-top:4px;padding-bottom:4px}.zone-config-card .form-label{font-weight:300;color:#7f86a0}.zone-dimensions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.zone-dimensions label{font-size:.61rem;color:#9ba1b3}.zone-number{min-height:30px!important;padding:4px 6px;text-align:center;font-size:.68rem}.zone-empty-hint{padding:10px 2px;color:#9298ae;font-size:.67rem}.zone-empty-hint a{color:#5f68d6}.layout-save-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #eef0f7;margin-top:18px;padding-top:14px}.layout-save-row .form-check-label{font-size:.75rem;color:#737a94}.layout-library{margin-bottom:14px}.layout-library-list{display:grid;gap:8px;margin-top:15px}.layout-library-item{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #edf0f6;border-radius:12px}.layout-library-item.selected{border-color:#bdc2ff;background:#f8f8ff}.library-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eff0ff;color:#656ddd}.library-copy{display:grid;gap:2px;flex:1;min-width:0}.library-copy strong{font-size:.75rem;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-copy small{font-size:.63rem;color:#989eb2}.layout-library-item form{margin:0}.layout-help-card h3{font-size:.86rem;font-weight:500;color:#4f5674}.layout-help-card h3 i{color:#e0a537}.layout-help-card ol{padding-left:1.25rem;margin:9px 0 0;color:#858ba2;font-size:.7rem;line-height:1.85}
@media(max-width:991.98px){.admin-sidebar{transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);box-shadow:12px 0 38px #17204618}.admin-sidebar.open{transform:translateX(0)}.sidebar-scrim.show{display:block;position:fixed;z-index:1035;inset:0;background:#1d234050;backdrop-filter:blur(2px)}.admin-main{margin-left:0}.sidebar-toggle{display:block}.dashboard-grid{grid-template-columns:1fr}.topbar{height:64px}}
@media(max-width:575.98px){.topbar{padding:0 14px;gap:9px}.topbar-context>span,.topbar-context>i{display:none}.topbar-actions{gap:8px}.system-status{font-size:0}.system-status i{width:8px;height:8px}.topbar-screen-link{font-size:0!important;padding:.4rem .55rem!important}.topbar-screen-link i{font-size:.95rem}.page-wrap{padding:18px 14px}.page-heading{align-items:center;margin-bottom:18px}.page-heading h1{font-size:1.25rem}.dashboard-welcome{align-items:flex-start;padding:18px;border-radius:16px}.welcome-copy h2{font-size:1.18rem}.welcome-copy p{font-size:.76rem}.welcome-date{font-size:.67rem;padding:7px 9px}.dashboard-stat{min-height:96px;padding:13px}.stat-icon{width:38px;height:38px;flex-basis:38px}.dashboard-stat .stat-value{font-size:1.5rem}.panel-card{padding:16px}.device-table th:nth-child(3),.device-table td:nth-child(3){display:none}}
@media(max-width:1199.98px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.module-grid{grid-template-columns:1fr 1fr;gap:8px}.module-card{min-height:125px;display:grid;grid-template-columns:34px 1fr;gap:9px;padding:12px}.module-icon{width:34px;height:34px;flex-basis:34px}.module-copy strong{font-size:.76rem}.module-copy small{font-size:.64rem}.module-arrow{display:none}.screen-intro{align-items:flex-start;padding:12px}.screen-intro p{line-height:1.45}.screen-total{font-size:0}.screen-total strong{font-size:1rem}.screen-form-card,.screen-list-card{padding:16px!important}.screen-table{min-width:680px}}
@media(max-width:1399.98px){.layout-workspace{grid-template-columns:1fr}.zone-card-list{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.layout-info-grid{grid-template-columns:1fr}.zone-card-list{grid-template-columns:1fr}.layout-intro{align-items:flex-start;padding:12px}.layout-ratio{font-size:0}.layout-ratio i{font-size:.8rem}.playlist-item-dates{padding-left:0}}

/* Orientation controls sit beside the layout name and description on desktop. */
.layout-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:767.98px){.layout-info-grid{grid-template-columns:1fr}}
.schedule-intro{display:flex;align-items:center;gap:13px;margin:0 0 16px;padding:15px 18px;border:1px solid #e8e8fb;border-radius:15px;background:linear-gradient(100deg,#eef1ff,#fff3fa)}
.schedule-intro-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:#fff;color:#6871df;font-size:1.15rem;box-shadow:0 4px 12px #515dce14}
.schedule-intro strong{font-size:.88rem;font-weight:500;color:#424966}.schedule-intro p{margin:2px 0 0;color:#848ba4;font-size:.72rem}
.schedule-total{margin-left:auto;padding:5px 10px;border-radius:20px;background:#fff;color:#6871d6;font-size:.68rem;white-space:nowrap}
.schedule-calendar-scroll{overflow-x:auto;padding-bottom:5px}
.schedule-calendar{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:9px;min-width:980px}
.schedule-day-column{min-height:230px;overflow:hidden;border:1px solid #eaecf5;border-radius:14px;background:#fafbff}
.schedule-day-column.is-today{border-color:#aab3ff;box-shadow:0 5px 18px #5864db13;background:#f8f8ff}
.schedule-day-header{display:flex;align-items:center;gap:6px;padding:10px 9px;border-bottom:1px solid #ebedf5;background:#fff;color:#4e5672;font-size:.74rem}
.schedule-day-header small{padding:2px 6px;border-radius:20px;background:#eef0ff;color:#626dd8;font-size:.56rem}
.schedule-day-header b{margin-left:auto;min-width:20px;height:20px;display:grid;place-items:center;border-radius:7px;background:#f1f2f8;color:#858ba3;font-size:.62rem;font-weight:500}
.schedule-day-list{display:grid;align-content:start;gap:7px;padding:8px}
.schedule-event{min-width:0;padding:8px;border:1px solid #e4e7fb;border-left:3px solid #6875e8;border-radius:10px;background:linear-gradient(145deg,#fff,#f7f8ff)}
.schedule-event-edit{display:grid;gap:6px;color:#4a5270;text-decoration:none}.schedule-event-edit:hover{color:#525fd4}
.schedule-event-edit strong{overflow:hidden;text-overflow:ellipsis;font-size:.68rem;font-weight:500;white-space:nowrap}
.schedule-event-time{display:flex;align-items:center;gap:4px;color:#747c99;font-size:.62rem;white-space:nowrap}.schedule-event-time i{color:#9198b0}
.schedule-event-footer{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:7px;padding-top:6px;border-top:1px solid #eef0f7;color:#989eb2;font-size:.56rem}
.schedule-event-actions{display:flex;align-items:center;gap:5px}.schedule-event-actions a,.schedule-event-actions button{width:23px;height:23px;display:grid;place-items:center;border:0;border-radius:7px;background:#f1f2fa;color:#7a81a0;font-size:.65rem;text-decoration:none}.schedule-event-actions form{margin:0}.schedule-event-actions button{background:#fff0f3;color:#cf6881}
.event-color-1{border-left-color:#cb5ca2}.event-color-2{border-left-color:#45a987}.event-color-3{border-left-color:#e1a23d}.event-color-4{border-left-color:#49a8bd}.event-color-5{border-left-color:#9a65cd}
.schedule-day-empty{min-height:85px;display:grid;align-content:center;justify-items:center;gap:5px;color:#b0b5c6;font-size:.63rem}.schedule-day-empty i{font-size:1.05rem}
.schedule-help{display:flex;align-items:flex-start;gap:8px;margin-top:10px;color:#8b92a8;font-size:.67rem;line-height:1.55}.schedule-help i{margin-top:2px;color:#7079dc}
.schedule-list-card .table{margin-bottom:0}
@media(max-width:767.98px){.schedule-intro{align-items:flex-start;padding:12px}.schedule-intro p{max-width:40ch}.schedule-intro .schedule-total{display:none}}
.settings-section{max-width:1180px;margin-bottom:26px}.settings-section-heading{display:flex;align-items:center;gap:12px;margin:4px 0 13px}.settings-section-heading>div{min-width:0}.settings-section-heading h2{margin:0;color:#424966;font-size:1rem;font-weight:500}.settings-section-heading p{margin:3px 0 0;color:#8d93a9;font-size:.7rem}.settings-section-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:13px;background:#eef0ff;color:#656fdd;font-size:1rem}.settings-section-icon.member-icon{background:#fff0f7;color:#c9589c}.settings-card{max-width:720px}.member-form-card{height:100%}.member-name-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.member-name-cell .user-avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eef0ff;color:#6972d8}.member-name-cell strong{font-size:.76rem;font-weight:400;color:#4a516d}.member-name-cell small{padding:2px 6px;border-radius:10px;background:#f2f3f8;color:#8d93a7;font-size:.55rem}.member-role{display:inline-flex;padding:4px 8px;border-radius:20px;font-size:.62rem}.role-admin{background:#fff2dc;color:#ad7925}.role-editor{background:#eef7ff;color:#5380b1}.member-security-note{display:flex;gap:8px;margin-top:10px;color:#8b92a8;font-size:.66rem;line-height:1.55}.member-security-note i{color:#6773df}.members-list-card .table{margin-bottom:0}
@keyframes page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes login-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(18px,22px,0)}}
@media(max-width:767.98px){.page-wrap{padding:1rem}.site-nav{padding:.55rem .75rem}.site-nav .navbar-collapse{padding-top:.65rem}.site-nav .navbar-nav{gap:.12rem}.site-nav .navbar-text{margin:.5rem 0!important}.site-nav form{padding-bottom:.35rem}.card{border-radius:16px}.table{font-size:.9rem}.stat-card{padding:1rem}.login-card{border-radius:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.media-preview{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;border:1px solid #e8eaf3;border-radius:10px;background:linear-gradient(135deg,#f0f2ff,#fff4fa);color:#67708f}
.media-preview img,.media-preview video,.media-preview iframe{display:block;width:100%;height:100%;border:0;object-fit:cover;background:#141622}
.media-preview video{object-fit:contain}.media-preview-badge{position:absolute;z-index:2;right:4px;top:4px;padding:2px 5px;border-radius:5px;background:#1119;color:#fff;font-size:.48rem;letter-spacing:.04em}
.preview-text,.preview-ticker{display:grid;align-content:center;justify-items:start;gap:4px;padding:9px;color:#fff;background:linear-gradient(135deg,#5269df,#b04ea8);font-size:.62rem;line-height:1.25;text-align:left}
.preview-text>span:last-child,.preview-ticker>span:last-child{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.preview-ticker{background:linear-gradient(100deg,#19254e,#485fc5)}.preview-fallback{gap:6px;font-size:.65rem}
.content-thumb{width:112px;height:66px}.playlist-thumb{width:88px;height:54px;flex:0 0 88px}.playlist-preview-strip{display:flex;gap:5px;align-items:center;min-width:160px}.playlist-preview-strip .media-preview{width:62px;height:42px;flex:0 0 62px}.playlist-preview-count{font-size:.6rem;color:#9298ae;white-space:nowrap}
.content-edit-preview{width:100%;max-width:400px;height:225px;margin:9px 0 14px}.content-edit-preview-inner{width:100%;height:100%}.content-edit-preview[hidden]{display:none}.playlist-item-label{min-width:0}.playlist-item-label .media-preview{flex:0 0 88px}
.canvas-zone{isolation:isolate}.canvas-zone .zone-preview-layer{position:absolute;z-index:-1;inset:0;overflow:hidden;background:#222}.zone-preview-layer .media-preview{width:100%;height:100%;border:0;border-radius:0}.zone-preview-layer .media-preview-badge{display:none}.zone-preview-layer .preview-text,.zone-preview-layer .preview-ticker{height:100%;font-size:clamp(.5rem,1.2vw,.8rem)}.canvas-zone::after{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(90deg,#1a1a33c9,#1a1a3355)}
.screen-assignment-preview{display:flex;align-items:center;gap:9px;min-width:190px}.screen-assignment-preview .media-preview{width:78px;height:48px;flex:0 0 78px}.screen-assignment-copy{display:grid;min-width:0;gap:3px}.screen-assignment-copy strong{font-size:.7rem;font-weight:400;color:#4f5673;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-assignment-copy small{font-size:.6rem;color:#9ba1b3}
.canvas-zone{background:transparent!important;text-shadow:0 1px 4px #10132e}.canvas-zone .zone-preview-layer{z-index:0;pointer-events:none}.canvas-zone::after{z-index:1;pointer-events:none}.canvas-zone>*:not(.zone-preview-layer){z-index:2}.canvas-zone .resize-handle{z-index:3;pointer-events:auto}
.playlist-thumb video,.playlist-mini video,.screen-thumb video{object-fit:cover}
.media-preview img{object-fit:contain;background:#171923}
.playlist-picker-tools{display:grid;gap:9px;margin:11px 0 10px;padding:11px;border:1px solid #ebedf6;border-radius:14px;background:linear-gradient(145deg,#fafaff,#fffafd)}
.playlist-picker-search{position:relative}.playlist-picker-search>i{position:absolute;z-index:1;left:12px;top:50%;transform:translateY(-50%);color:#9298ad;font-size:.8rem}.playlist-picker-search .form-control{min-height:38px;padding-left:34px;border-color:#e9eaf3;border-radius:10px;font-size:.72rem}
.playlist-filter-bar{display:flex;flex-wrap:wrap;gap:6px}.playlist-filter{display:inline-flex;align-items:center;gap:5px;min-height:29px;padding:4px 9px;border:1px solid #e9eaf3;border-radius:20px;background:#fff;color:#707791;font:inherit;font-size:.61rem;transition:color .18s,border-color .18s,background .18s,transform .18s}.playlist-filter:hover{transform:translateY(-1px);border-color:#c9cdf1;color:#5f68d2}.playlist-filter.active{border-color:#737de2;background:linear-gradient(110deg,#737de2,#bb69b0);color:#fff;box-shadow:0 4px 10px #737de226}.playlist-filter span{min-width:17px;padding:1px 4px;border-radius:9px;background:#f0f1f8;color:#8288a0;text-align:center;font-size:.53rem}.playlist-filter.active span{background:#ffffff38;color:#fff}
.playlist-picker-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.playlist-picker-actions .btn{border:1px solid #e9eaf3;border-radius:8px;color:#727991;font-size:.61rem}.playlist-picker-actions .btn.active{border-color:#aeb4f0;background:#f1f2ff;color:#5864cf}.playlist-content-row[hidden]{display:none!important}.playlist-content-row{transition:border-color .18s,background .18s,box-shadow .18s}.playlist-content-row.is-selected{border-color:#cbd0fa;background:linear-gradient(110deg,#f7f7ff,#fffafd);box-shadow:0 3px 12px #747ce00c}.playlist-filter-empty{padding:18px 10px;border:1px dashed #dfe2ee;border-radius:11px;color:#9096aa;font-size:.72rem;text-align:center}
@media(max-width:575.98px){.playlist-picker-tools{padding:9px}.playlist-filter-bar{gap:5px}.playlist-filter{font-size:.58rem;padding:4px 7px}.playlist-picker-actions .btn{font-size:.58rem}.playlist-picker-actions .flex-grow-1{display:none}}
.content-folder-panel{border:1px solid #ebedf6;border-radius:16px;background:linear-gradient(145deg,#fff,#f8f8ff)}.folder-create-form{display:flex;align-items:center;gap:7px;min-width:min(100%,340px)}.folder-create-form .form-control{max-width:210px}.content-folder-list{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:15px;padding-top:13px;border-top:1px solid #eceef6}.folder-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e9eaf3;border-radius:22px;background:#fff;color:#69718e;font-size:.66rem;text-decoration:none;transition:all .18s}.folder-chip:hover,.folder-chip.active{border-color:#8c94e9;background:#f0f1ff;color:#5865d5}.folder-chip>span{min-width:18px;padding:1px 5px;border-radius:12px;background:#f0f1f7;color:#878da2;text-align:center;font-size:.56rem}.folder-manage-chip{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #eceef5;border-radius:24px;background:#fff}.folder-manage-chip .folder-chip{border:0;padding:3px 6px}.folder-manage-chip form{display:flex;margin:0}.folder-rename-form input{width:105px;padding:2px 5px;border:1px solid transparent;border-radius:6px;color:#747b94;font:inherit;font-size:.58rem}.folder-rename-form input:focus{border-color:#cdd1f5;outline:0}.folder-manage-chip form button{display:grid;place-items:center;width:23px;height:23px;border:0;border-radius:7px;background:#f1f2fb;color:#737bd1;font-size:.65rem}.folder-manage-chip form .folder-delete{background:#fff1f3;color:#d07083}.content-library-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 175px;gap:8px;margin-bottom:14px}.content-library-search{position:relative}.content-library-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#979db1;font-size:.8rem}.content-library-search input{padding-left:34px}.content-library-toolbar .form-control,.content-library-toolbar .form-select{min-height:38px;border-color:#e9eaf3;border-radius:10px;font-size:.7rem}.folder-cell-label{color:#858caa;font-size:.58rem}.content-library-row[hidden]{display:none!important}.playlist-folder-select{max-width:260px;min-height:36px;border-color:#e9eaf3;border-radius:9px;font-size:.67rem}
 .playlist-folder-import{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.playlist-folder-import .playlist-folder-select{flex:1 1 190px}.playlist-folder-import .btn{white-space:nowrap;font-size:.64rem}.playlist-folder-import #playlist-folder-feedback{flex:1 1 100%;min-height:1em;color:#777f9d;font-size:.62rem}
@media(max-width:767.98px){.folder-create-form{width:100%}.folder-create-form .form-control{max-width:none;min-width:0}.content-library-toolbar{grid-template-columns:1fr}.content-folder-list{align-items:flex-start}.folder-manage-chip{max-width:100%}.folder-rename-form input{width:76px}.playlist-folder-select{max-width:100%}.playlist-folder-import .playlist-folder-select{flex-basis:100%}.playlist-folder-import .btn-primary{flex:1}}
.canvas-zone.overlap-warning{border-color:#ff4664!important;box-shadow:0 0 0 3px #ff466455,0 5px 14px #373e8650}.layout-overlap-warning{display:flex;align-items:flex-start;gap:7px;margin-top:8px;padding:8px 10px;border:1px solid #ffd1d8;border-radius:9px;background:#fff4f6;color:#c44762;font-size:.65rem;line-height:1.45}.layout-overlap-warning[hidden]{display:none}.layout-overlap-warning i{margin-top:1px}
.layout-presets{margin:-2px 0 15px;padding:10px 12px;border:1px solid #e9eaf3;border-radius:12px;background:linear-gradient(120deg,#fafaff,#fff9fc)}.layout-presets-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.layout-presets-heading strong{font-size:.72rem;font-weight:500;color:#535a79}.layout-presets-heading small{font-size:.62rem;color:#979db1}.layout-preset-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.layout-preset{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #e9eaf4;border-radius:10px;background:#fff;color:#626b8a;font:inherit;font-size:.65rem;transition:transform .18s,border-color .18s,background .18s,color .18s}.layout-preset i{font-size:1rem;color:#6970dc}.layout-preset:hover{transform:translateY(-2px);border-color:#b9bdfa;background:#f8f7ff;color:#4f58c8}.layout-preset:focus-visible{outline:3px solid #747cf744;outline-offset:2px}@media(max-width:575.98px){.layout-presets-heading{align-items:flex-start;flex-direction:column}.layout-preset-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
.layout-repair-notice{display:flex;align-items:flex-start;gap:7px;margin-top:8px;padding:8px 10px;border:1px solid #cfe4ff;border-radius:9px;background:#f1f7ff;color:#3b69a3;font-size:.65rem;line-height:1.45}.layout-repair-notice[hidden]{display:none}.layout-repair-notice i{margin-top:1px}
.create-disclosure{margin-bottom:0}.create-disclosure>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px;margin-bottom:12px;padding:12px 15px;border:1px solid #e4e7f3;border-radius:14px;background:linear-gradient(110deg,#fff,#f7f7ff);color:#454d6d;cursor:pointer;box-shadow:0 5px 16px #343d740a;transition:border-color .18s,box-shadow .18s,transform .18s}.create-disclosure>summary::-webkit-details-marker{display:none}.create-disclosure>summary:hover{border-color:#c6c9f4;box-shadow:0 9px 22px #343d7412;transform:translateY(-1px)}.create-disclosure[open]>summary{border-color:#c9ccf5;background:linear-gradient(110deg,#f7f8ff,#fff7fc);margin-bottom:10px}.create-disclosure-copy{display:flex;align-items:center;gap:11px}.create-disclosure-copy>i{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#eef0ff;color:#626bde;font-size:1.05rem}.create-disclosure-copy>span{display:grid;gap:3px}.create-disclosure-copy strong{font-size:.82rem;font-weight:500}.create-disclosure-copy small{font-size:.68rem;color:#9298ad}.disclosure-chevron{color:#9399ad;font-size:.76rem;transition:transform .2s}.create-disclosure[open] .disclosure-chevron{transform:rotate(180deg)}.create-disclosure-body{margin:0}.inline-create-disclosure{position:relative}.inline-create-disclosure>summary{list-style:none;cursor:pointer}.inline-create-disclosure>summary::-webkit-details-marker{display:none}.inline-create-disclosure[open] .folder-create-form{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.folder-create-form{display:none}
.create-disclosure>summary[hidden]{display:none}.create-trigger{flex:0 0 auto;white-space:nowrap;border:0;border-radius:10px;background:linear-gradient(110deg,#6874df,#ad68bc);box-shadow:0 5px 13px #7771dc30;font-size:.67rem;transition:transform .18s,box-shadow .18s}.create-trigger:hover{transform:translateY(-1px);box-shadow:0 8px 18px #7771dc40}.content-library-toolbar{grid-template-columns:minmax(0,1fr) 175px}@media(max-width:767.98px){.content-library-toolbar{grid-template-columns:1fr}}
.create-modal .modal-content{overflow:hidden;border:1px solid #ffffffd9;border-radius:22px;background:#f8f9ff;box-shadow:0 28px 90px #161b3c55}.create-modal .modal-header{padding:18px 22px;border-bottom:1px solid #eaecf6;background:linear-gradient(105deg,#f1f3ff,#fff3fa)}.create-modal .modal-title{color:#343b5c;font-size:1rem;font-weight:500}.create-modal-subtitle{margin-top:3px;color:#8990a8;font-size:.7rem}.create-modal .modal-body{padding:16px;background:linear-gradient(145deg,#f7f8ff,#fff9fc)}.create-modal .modal-body>.card{margin:0;border:1px solid #e8eaf4;border-radius:15px;background:#fff;box-shadow:0 8px 28px #333a700c;animation:none}.create-modal .folder-create-form{display:flex;width:100%;min-width:0;flex-wrap:wrap;align-items:center;gap:9px}.create-modal .folder-create-form .form-control{flex:1 1 200px;max-width:none}.create-modal .modal-dialog.modal-fullscreen .modal-content{border:0;border-radius:0}.create-modal .modal-dialog.modal-fullscreen .modal-body{padding:clamp(12px,2vw,26px)}.create-modal .modal-dialog.modal-fullscreen .layout-editor-card{min-height:100%;padding:clamp(14px,2vw,28px)!important}.create-modal .modal-dialog.modal-xl{--bs-modal-width:1320px}.create-modal .btn-close{border-radius:10px;background-color:#fff;padding:10px;box-shadow:0 2px 8px #252c5112}.create-modal .btn-close:focus{box-shadow:0 0 0 .2rem #747ce044}@media(max-width:767.98px){.create-modal .modal-header{padding:14px 16px}.create-modal .modal-body{padding:10px}.create-modal .modal-body>.card{padding:14px!important}.create-modal .modal-dialog.modal-fullscreen .layout-editor-card{padding:14px!important}.content-library-toolbar{grid-template-columns:1fr}.create-modal .layout-workspace{grid-template-columns:1fr}.create-modal .layout-canvas-wrap{order:0}.create-modal .zone-settings{order:1}}
.editor-column-collapsed>[class*="col-"]:not([hidden]){width:100%;max-width:100%;flex:0 0 100%}.editor-column-collapsed>[hidden]{display:none!important}
.playlist-content-list{gap:10px;max-height:min(56vh,620px);padding:3px 5px 4px 2px}.playlist-content-row{padding:12px 14px;border-color:#e7eaf4;border-radius:14px}.playlist-content-row:hover{border-color:#cdd2f5;box-shadow:0 5px 16px #38417b0c}.playlist-item-top{gap:12px}.playlist-item-top>.playlist-check{flex:0 0 auto;margin:0}.playlist-item-label{gap:11px}.playlist-item-label strong{font-size:.8rem}.playlist-item-label small{font-size:.66rem;line-height:1.5}.playlist-item-label .media-preview,.playlist-thumb{width:104px;height:64px;flex:0 0 104px}.order-field{min-width:72px}.order-field input{width:64px;min-height:36px!important;font-size:.72rem}.playlist-item-dates{padding:10px 2px 0 127px;gap:10px}.playlist-item-dates small{font-size:.63rem}.playlist-item-dates input{min-height:36px!important;padding:6px 8px;font-size:.69rem}.playlist-picker-tools{gap:10px;padding:13px}.playlist-picker-search .form-control{min-height:42px}.playlist-picker-actions .btn{min-height:34px;padding:5px 10px;font-size:.65rem}.col-xl-7 .table{width:100%;min-width:720px;table-layout:fixed}.col-xl-7 .table thead th:nth-child(1){width:24%}.col-xl-7 .table thead th:nth-child(2){width:34%}.col-xl-7 .table thead th:nth-child(3){width:18%}.col-xl-7 .table thead th:nth-child(4){width:24%}.col-xl-7 .table td{vertical-align:middle}.col-xl-7 .table td:last-child{white-space:nowrap}.col-xl-7 .playlist-preview-strip{min-width:0;overflow:hidden}.col-xl-7 .playlist-preview-strip .media-preview{flex:0 0 56px;width:56px;height:38px}.col-xl-7 .playlist-preview-count{overflow:hidden;text-overflow:ellipsis}.create-modal .playlist-content-list{max-height:min(52vh,560px)}@media(max-width:767.98px){.playlist-content-list{max-height:48vh}.playlist-content-row{padding:10px}.playlist-item-top{display:grid;grid-template-columns:20px minmax(0,1fr) 64px;gap:8px}.playlist-item-label{gap:8px}.playlist-item-label .media-preview,.playlist-thumb{width:72px;height:48px;flex-basis:72px}.playlist-item-label strong{font-size:.74rem}.playlist-item-label small{font-size:.61rem}.order-field{min-width:0;justify-items:center}.order-field input{width:60px}.playlist-item-dates{padding:9px 0 0;gap:6px}.playlist-item-dates input{font-size:.62rem;padding:5px}.date-separator{padding-bottom:9px}.playlist-picker-tools{padding:10px}.create-modal .playlist-content-list{max-height:46vh}}
.playlist-content-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-content:start;gap:12px;max-height:min(58vh,680px);padding:4px 5px 6px 2px}.playlist-content-row{display:flex;min-width:0;min-height:164px;flex-direction:column;justify-content:space-between;gap:10px;padding:12px;border:1px solid #e7eaf4;border-radius:15px;background:linear-gradient(150deg,#fff,#fbfbff);transition:border-color .18s,box-shadow .18s,transform .18s}.playlist-content-row:hover{transform:translateY(-1px)}.playlist-content-row.is-selected{border-color:#929bea;background:linear-gradient(145deg,#f5f6ff,#fff9fd);box-shadow:0 0 0 2px #878fe51a,0 7px 18px #47508b0d}.playlist-item-top{display:grid;grid-template-columns:20px minmax(0,1fr) 66px;align-items:center;gap:9px}.playlist-item-top>.playlist-check{width:17px;height:17px;flex:0 0 17px;margin:0}.playlist-item-label{gap:10px;align-items:center}.playlist-item-label .media-preview,.playlist-thumb{width:84px;height:58px;flex:0 0 84px;border-radius:9px}.playlist-item-label>span:last-child{gap:4px}.playlist-item-label strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.3}.playlist-item-label small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35}.order-field{min-width:0;justify-items:stretch;gap:4px}.order-field small{text-align:center}.order-field input{width:100%;min-height:34px!important}.playlist-item-dates{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:end;gap:7px;margin-top:auto;padding:9px 0 0;border-top:1px solid #edf0f7}.playlist-item-dates label{gap:4px}.playlist-item-dates input{width:100%;min-height:35px!important;font-size:.65rem}.date-separator{text-align:center;padding-bottom:9px}.create-modal .playlist-content-list{max-height:min(56vh,650px)}@media(max-width:767.98px){.playlist-content-list{grid-template-columns:1fr;max-height:50vh;gap:9px}.playlist-content-row{min-height:148px;padding:10px}.playlist-item-top{grid-template-columns:20px minmax(0,1fr) 62px;gap:8px}.playlist-item-label .media-preview,.playlist-thumb{width:76px;height:52px;flex-basis:76px}.playlist-item-dates{gap:5px}.playlist-item-dates input{font-size:.62rem}.create-modal .playlist-content-list{max-height:48vh}}
.layout-presets-heading{align-items:center}.layout-presets-heading>div{display:grid;gap:3px}.layout-presets-heading .btn{white-space:nowrap;font-size:.63rem}.layout-saved-templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:7px;margin-top:9px}.layout-saved-template{position:relative;min-width:0}.layout-saved-template .saved-layout-preset{width:100%;min-height:68px;align-items:flex-start;padding:8px 30px 8px 9px;text-align:left}.layout-saved-template .saved-layout-preset>i{font-size:.85rem}.layout-saved-template .saved-layout-preset>span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem}.layout-saved-template .saved-layout-preset>small{color:#969cb0;font-size:.54rem}.layout-template-delete{position:absolute;top:5px;right:5px;display:grid;width:23px;height:23px;place-items:center;border:0;border-radius:7px;background:#fff0f2;color:#c9657d;font-size:.65rem}.layout-template-delete:hover{background:#ffe2e7;color:#b34461}.layout-saved-empty{margin-top:8px;padding:8px 10px;border:1px dashed #dfe2ef;border-radius:10px;color:#999fb2;font-size:.62rem}.layout-saved-empty[hidden]{display:none}@media(max-width:575.98px){.layout-presets-heading{align-items:flex-start}.layout-presets-heading .btn{width:100%}.layout-saved-templates{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zone-interaction-settings{margin-top:10px;padding:9px 10px;border:1px solid #e5e7f6;border-radius:11px;background:linear-gradient(130deg,#fafaff,#fff8fc)}.zone-interaction-settings label{color:#6268bf;font-weight:500}.zone-interaction-settings small{display:block;margin-top:6px;color:#8990a8;font-size:.6rem;line-height:1.45}.layout-link-hint{display:flex;flex-direction:column;align-items:flex-end;gap:1px;max-width:90%;padding:5px 9px;border:1px solid #ffffff55;border-radius:8px;background:#10101acc;text-align:right;backdrop-filter:blur(6px)}.layout-link-caption{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.layout-zone-link:hover .layout-link-hint,.layout-zone-link:focus-visible .layout-link-hint{opacity:1;transform:translateY(-1px)}

/* Keep the content library table within its column while preserving mobile scrolling. */
body[data-page="contents.php"] .content-library-toolbar~.table-responsive{width:100%;max-width:100%;overflow-x:auto}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table{width:100%;min-width:0;table-layout:fixed;margin-bottom:0}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table>:not(caption)>*>*{padding:.65rem .45rem;vertical-align:middle}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(1),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(1){width:17%}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(2),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(2){width:8%;text-align:center}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(3),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(3){width:21%;overflow-wrap:anywhere}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(4),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(4){width:15%;overflow-wrap:anywhere}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(5),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(5){width:9%;white-space:nowrap}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(6),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(6){width:10%;white-space:nowrap}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table th:nth-child(7),body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:nth-child(7){width:20%}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table .content-thumb{width:min(100%,112px);height:auto;aspect-ratio:16/9}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:last-child{white-space:nowrap}
body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table td:last-child .btn{padding:.25rem .45rem;font-size:.68rem}
@media(max-width:767.98px){body[data-page="contents.php"] .content-library-toolbar~.table-responsive>.table{min-width:680px}}
.layout-toolbar-actions{display:flex;align-items:center;gap:8px}.dimension-unit-control{display:flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid #e7e9f4;border-radius:10px;background:#fff;color:#858ba2;font-size:.63rem;white-space:nowrap}.dimension-unit-control>i{color:#6972dc}.dimension-unit-control .form-select{width:auto;min-width:124px;min-height:30px;border:0;background-color:transparent;padding-top:3px;padding-bottom:3px;font-size:.64rem;box-shadow:none}.canvas-helper span{line-height:1.5}@media(max-width:575.98px){.layout-toolbar{align-items:flex-start;flex-direction:column}.layout-toolbar-actions{width:100%;justify-content:space-between}.dimension-unit-control{flex:1}.dimension-unit-control .form-select{flex:1;min-width:0}}
