*,*:before,*:after{box-sizing:border-box}:root{--ink: #1e293b;--ink-soft: #475569;--muted: #64748b;--paper: #ffffff;--paper-soft: #f5f7fa;--paper-deep: #e9eef5;--line: #dbe3ec;--line-strong: #7b8a9f;--primary: #2563eb;--primary-dark: #1e40af;--primary-light: #eff6ff;--primary-hover: #f8fbff;--primary-line: #bfdbfe;--danger: #dc2626;--danger-light: #fef2f2;--danger-text: #991b1b;--danger-border: #fca5a5;--success: #15803d;--warning: #b45309;--neutral: #64748b;--sep: #94a3b8;--sidebar-w: 248px;--navbar-h: 62px;--focus: var(--primary)}html{background:var(--paper-soft);color-scheme:light}body{min-height:100vh;margin:0;background:var(--paper-soft);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5}:lang(zh-CN) body{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}:lang(ja) body{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif}:lang(ko) body{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,sans-serif}html.i18n-pending body{visibility:hidden;animation:i18n-reveal 0s 3s forwards}@keyframes i18n-reveal{to{visibility:visible}}button,input,select,textarea{font:inherit}button{color:inherit}button:not(:disabled),label:has(input),select{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed}::selection{color:#fff;background:var(--primary)}:focus-visible{outline:2px solid var(--focus)!important;outline-offset:3px}.hidden,[hidden]{display:none!important}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--paper-soft)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--paper-soft);border-radius:10px}*::-webkit-scrollbar-track{background:var(--paper-soft)}.login-screen{min-height:100vh;display:flex;flex-direction:column;background:var(--paper-soft)}.login-screen-main{flex:1;display:grid;place-items:center;padding:clamp(2rem,8vh,6rem) 1rem}.login-card{width:min(100%,31rem);padding:clamp(1.5rem,4vw,2.75rem);background:var(--paper);border:1px solid var(--line-strong)}.login-brand{padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.login-brand-title,.navbar-brand-text,.scope-title,.photo-section-title,.modal-title,.slideshow-device-drawer-title{color:var(--ink);font-weight:700;letter-spacing:-.025em}.login-brand-title{font-size:clamp(1.6rem,3vw,2rem);line-height:1.05}.login-brand-tag,.navbar-brand-tagline{display:block;margin-top:.35rem;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.login-screen--live .login-brand-tag{font-size:.9rem;font-weight:400;letter-spacing:normal;text-transform:none}.login-callout{margin:1.5rem 0 1rem;padding:.85rem 0 .85rem 1rem;border-left:1px solid var(--primary);color:var(--ink-soft);font-size:.9rem;line-height:1.55}.login-callout strong{color:var(--ink)}.login-callout code{padding:.1rem .3rem;color:var(--ink);background:var(--paper-deep);border:1px solid var(--line)}.login-scenario-note,.demo-welcome-hint{margin:.75rem 0 0;color:var(--muted);font-size:.84rem;line-height:1.6}.login-account-picks,.live-login-form{display:grid;gap:.75rem;margin-top:1.5rem}.login-pick-btn{width:100%;min-height:4.75rem;padding:.95rem 1rem;text-align:left;background:transparent;border:1px solid var(--line);border-radius:0;transition:background .15s,border-color .15s}.login-pick-btn:hover{border-color:var(--primary);background:var(--primary-light)}.login-pick-title{display:block;color:var(--ink);font-size:.95rem;font-weight:700;line-height:1.35}.login-pick-desc{display:block;margin-top:.25rem;color:var(--primary);font-size:.76rem;font-weight:650}.login-error{margin:.85rem 0 0;color:var(--danger-text);font-size:.84rem;font-weight:650}.live-login-field,.form-group,.settings-field{display:grid;gap:.35rem;color:var(--ink-soft);font-size:.78rem;font-weight:650}.live-login-field input,.live-login-field select,input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:2.75rem;padding:.62rem .75rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:0;box-shadow:none}select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 22%,transparent);outline-offset:1px}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.login-submit-btn{width:100%;min-height:3rem;margin-top:.25rem}.login-back-link{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .9rem;margin:1.25rem 0 0;color:var(--muted);font-size:.84rem;text-align:center}.login-back-link a,.app-footer a{color:inherit;text-decoration:underline;text-underline-offset:.2em}.login-back-link a:hover,.app-footer a:hover{color:var(--primary)}.login-screen--live .login-back-link a,.login-screen--live .app-footer a{text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100vh}.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:stretch;gap:1.5rem;min-height:var(--navbar-h);padding:0 clamp(1rem,3vw,2.5rem);background:color-mix(in srgb,var(--paper) 97%,transparent);border-bottom:1px solid var(--line-strong)}.navbar-brand{display:flex;flex-direction:column;justify-content:center;min-width:max-content;color:inherit;text-decoration:none}.navbar-brand:hover .navbar-brand-text{color:var(--primary)}.navbar-brand-text{font-size:1.15rem;line-height:1}.navbar-tabs{overflow-x:auto;display:flex;flex:1;min-width:0;align-items:stretch}.navbar-tab{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;min-height:100%;padding:0 1rem;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;font-size:.84rem;font-weight:650}.navbar-tab:hover{color:var(--ink);background:var(--paper-soft)}.navbar-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.nav-user-badge{display:flex;align-items:center;gap:.8rem;margin-left:auto}.navbar-docs{color:var(--muted);font-size:.78rem;font-weight:650;text-decoration:none;white-space:nowrap}.navbar-docs:hover{color:var(--primary)}.nav-user-text{display:grid;text-align:right;line-height:1.2}.nav-user-name{color:var(--ink);font-size:.78rem;font-weight:700}.nav-user-meta{color:var(--muted);font-size:.68rem}#logout-btn{color:var(--ink);background:transparent;border-color:var(--line-strong)}#logout-btn:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.lang-switch{--lang-columns: 14px minmax(0, 1fr) 14px;--lang-column-gap: 8px;position:relative;display:inline-flex;min-height:32px;color:var(--ink-soft);font-size:.75rem;font-weight:600}.lang-switch-trigger{position:relative;display:grid;grid-template-columns:var(--lang-columns);align-items:center;gap:var(--lang-column-gap);width:136px;height:32px;padding:0 10px;border:1px solid var(--line-strong);background:var(--paper);color:inherit;font:inherit;cursor:pointer}.lang-switch--login .lang-switch-trigger{height:36px}.lang-switch-trigger:hover,.lang-switch-trigger[aria-expanded=true]{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.lang-switch-value{text-align:center;white-space:nowrap}.lang-switch-icon{display:block}.lang-switch-chevron{justify-self:center;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}.lang-switch-menu{position:absolute;z-index:200;top:calc(100% + 8px);right:0;width:100%;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 8px 24px #1e293b1f}.lang-switch-menu[hidden]{display:none}.lang-switch-menu button{display:grid;grid-template-columns:var(--lang-columns);align-items:center;gap:var(--lang-column-gap);width:100%;min-height:44px;padding:0 6px;border:0;border-radius:4px;background:transparent;color:var(--ink);font:inherit;font-weight:400;text-align:left;white-space:nowrap;cursor:pointer}.lang-switch-menu button:before{content:""}.lang-switch-menu button>span:first-child{text-align:center}.lang-switch-menu button:hover,.lang-switch-menu button:focus-visible{background:var(--paper-soft)}.lang-switch-menu button[aria-checked=true]{background:var(--primary-light);color:var(--primary);font-weight:600}.lang-switch-check{width:14px;text-align:center}.login-lang{display:flex;justify-content:flex-end;margin-bottom:.75rem}.app-layout{display:flex;flex:1;min-height:0}.sidebar{position:sticky;top:var(--navbar-h);display:flex;flex-direction:column;align-self:flex-start;width:var(--sidebar-w);height:calc(100dvh - var(--navbar-h));flex:0 0 var(--sidebar-w);overflow:hidden;background:var(--paper);border-right:1px solid var(--line);transition:transform .2s}.sidebar.is-hidden,.sidebar-drawer-header{display:none}.sidebar-resize-handle{position:absolute;inset:0 0 0 auto;width:6px;z-index:1;cursor:col-resize;touch-action:none}.sidebar-resize-handle:hover,.sidebar-resize-handle:focus-visible,.is-sidebar-resizing .sidebar-resize-handle{background:var(--primary-line)}.sidebar-resize-handle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.is-sidebar-resizing,.is-sidebar-resizing *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.delete-set-option{display:flex;align-items:baseline;gap:.5rem;margin:1rem 0 .5rem}.sidebar.is-collapsed{width:0;margin-left:calc(-1 * var(--sidebar-w));overflow:hidden;border-right:0}.sidebar-toggle{position:fixed;top:calc(var(--navbar-h) + .75rem);left:.75rem;z-index:90;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:44px;min-width:44px;min-height:44px;padding:0;color:var(--primary);background:var(--paper);border:1px solid var(--line-strong);box-shadow:0 4px 12px color-mix(in srgb,var(--ink) 8%,transparent)}.sidebar-toggle:hover{color:var(--primary-dark);background:var(--primary-light)}.sidebar-toggle-chevron{width:8px;height:8px;border:solid currentColor;border-width:0 1px 1px 0;transform:rotate(-45deg)}.sidebar-toggle-label{display:none;font-size:.76rem;font-weight:700}.sidebar-toggle.is-expanded{top:calc(var(--navbar-h) + .9rem);left:calc(var(--sidebar-w) - 3.5rem);width:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0;box-shadow:none}.sidebar-toggle.is-expanded .sidebar-toggle-chevron{transform:rotate(135deg)}.sidebar-toggle.is-expanded .sidebar-toggle-label{display:none}#tree-container{flex:1;min-height:0;overflow:auto;padding:.9rem .75rem}.venue-filter{padding:0}.venue-filter-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:2.75rem;margin-bottom:.7rem;padding:0 3rem 0 0;border-bottom:1px solid var(--line)}.venue-filter-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.venue-filter-title,.filter-level-tag,.form-section-title,.settings-section-title,.device-row-sleep-label,.ctx-menu-label{color:var(--muted);font-size:.65rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.venue-filter-actions{display:flex;flex-shrink:0;gap:.1rem;white-space:nowrap}.btn-text,.btn-text-light{min-height:2rem;padding:.3rem .45rem;color:var(--muted);background:transparent;border:0;text-decoration:underline;text-underline-offset:.18em}.btn-text:hover,.btn-text-light:hover{color:var(--primary)}.filter-region{margin-top:.25rem}.filter-branch-ungrouped{margin-bottom:.7rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.filter-branch-row{display:flex;align-items:stretch;min-width:0}.filter-branch-toggle,.filter-branch-spacer{display:grid;flex:0 0 44px;place-items:center;width:44px;min-height:44px;padding:0;color:var(--muted);background:transparent;border:0}.filter-branch-toggle:hover{color:var(--primary);background:var(--primary-light)}.filter-region-header{position:relative;min-height:2.25rem}.filter-region-toggle{position:absolute;top:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;width:44px;min-height:44px;height:auto;padding:0;color:var(--muted);background:transparent;border:0}.filter-chevron,.tree-chevron,.store-chevron{transition:transform .18s}.filter-chevron.expanded,.tree-chevron.expanded,.store-summary.is-expanded .store-chevron{transform:rotate(90deg)}.filter-check{display:flex;flex:1;align-items:center;gap:.45rem;min-width:0;min-height:44px;padding:.35rem;color:var(--ink-soft);border-bottom:1px solid transparent;font-size:14px}.filter-check:hover{color:var(--ink);background:var(--paper-soft)}.filter-check-region{width:100%;padding-left:44px;font-weight:700}.filter-check-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-check-count,.tree-node-count{margin-left:auto;padding:0 .35rem;color:var(--muted);background:var(--paper-deep);border:1px solid var(--line);border-radius:999px;font-size:.68rem;font-variant-numeric:tabular-nums}.filter-stores{margin:0 0 .15rem .65rem;border-left:1px solid var(--line)}.filter-stores.collapsed,.tree-children.collapsed{display:none}.filter-check-ungrouped{min-width:0}.filter-ungrouped-row.is-empty{opacity:.55}.filter-device-list,.filter-group-children{margin-left:.65rem;border-left:1px solid var(--line)}.filter-device-list.collapsed,.filter-group-children.collapsed{display:none}.filter-subgroup-row{display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.3rem .35rem .3rem .65rem;color:var(--ink-soft);font-size:14px}.filter-device-list-subgroup{margin-left:.4rem}.tree-device-row{display:flex;align-items:center;gap:.45rem;min-width:0;min-height:48px;padding:.25rem .4rem .25rem .65rem;color:var(--muted);font-size:14px;cursor:grab;-webkit-user-select:none;user-select:none}.tree-device-row:hover{color:var(--ink);background:var(--paper-soft)}.tree-device-row:active{cursor:grabbing}.tree-device-row.is-dragging,.device-card-monitor.is-dragging{opacity:.38}.tree-device-grip{flex:0 0 auto;width:.5rem;height:.7rem;fill:currentColor;opacity:.65}.tree-device-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-device-send-label{margin-left:auto;color:var(--primary-dark);font-size:.65rem;white-space:nowrap}.tree-device-drop-hint{display:none;margin-left:auto;font-size:.65rem;white-space:nowrap}body.is-album-photo-dragging .tree-device-row{transition:color .12s,background-color .12s}body.is-album-photo-dragging .venue-filter{overflow-anchor:none}body.is-album-photo-dragging .tree-device-row.drop-target{color:var(--primary-dark);background:var(--primary-light)}body.is-album-photo-dragging .tree-device-row.photo-drop-disabled{color:var(--muted);background:var(--paper-deep)}body.is-album-photo-dragging .tree-device-row:is(.drop-target,.photo-drop-disabled) .tree-device-drop-hint{display:inline}.filter-chevron{transition:transform .2s cubic-bezier(.16,1,.3,1)}.is-drag-opening{overflow:hidden}@media(prefers-reduced-motion:reduce){.filter-chevron,body.is-album-photo-dragging .tree-device-row{transition:none}}body.is-device-dragging [data-drop-ungrouped],body.is-device-dragging [data-drop-group],body.is-device-dragging [data-drop-store],body.is-device-dragging [data-drop-subgroup]{background:color-mix(in srgb,var(--primary) 5%,var(--paper));outline:1px dashed color-mix(in srgb,var(--primary) 55%,var(--line));outline-offset:-1px}body.is-device-dragging .drop-target{color:var(--primary-dark);background:var(--primary-light);outline:2px solid var(--primary);outline-offset:-2px}body.is-device-dragging .venue-filter :is(.filter-branch-row,.filter-subgroup-row){background:color-mix(in srgb,var(--primary) 8%,var(--paper))}body.is-device-dragging .venue-filter .drop-target>:is(.filter-branch-row,.filter-subgroup-row){color:var(--primary-dark);background:color-mix(in srgb,var(--primary) 15%,var(--paper))}body.is-device-dragging .venue-filter :is(.filter-check,.filter-branch-toggle,.tree-device-row):hover{background:transparent}.filter-level-tag{padding:.08rem .25rem;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:0;white-space:nowrap}.filter-level-tag--header{margin-left:.15rem}.venue-filter-empty{color:var(--muted);font-size:.8rem}.tree-node{display:flex;align-items:center;gap:.35rem;min-height:2rem;padding:.35rem .75rem;color:var(--muted);font-size:.8rem;border-left:1px solid transparent}.tree-node:hover,.tree-node.selected{color:var(--ink);background:var(--paper-soft);border-left-color:var(--primary)}.tree-root,.tree-region,.tree-store{color:inherit}.tree-children{margin-left:1.15rem;padding-left:.65rem;border-left:1px solid var(--line)}.tree-health,.legend-dot{width:7px;height:7px;border-radius:50%}.tree-health.green,.legend-dot.green{background:var(--success)}.legend-dot.sleeping{background:var(--primary)}.tree-health.red,.legend-dot.red{background:var(--danger)}.legend-dot.gray{background:var(--neutral)}.sidebar-legend{display:grid;flex:none;max-height:60%;overflow:auto;grid-template-columns:1fr 1fr;gap:.5rem;padding:.8rem .75rem;border-top:1px solid var(--line)}.legend-item{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.875rem}.legend-dot{flex:0 0 8px;width:8px;height:8px}.sidebar-help{grid-column:1/-1;padding-top:.55rem;color:var(--muted);border-top:1px solid var(--line);font-size:.875rem}.sidebar-help summary{display:flex;align-items:center;gap:.5rem;min-height:2rem;list-style:none;color:var(--ink-soft);font-weight:500;cursor:pointer}.sidebar-help summary::-webkit-details-marker{display:none}.sidebar-help summary:before{content:"";flex:0 0 14px;width:14px;height:14px;background:currentColor;clip-path:polygon(35% 15%,75% 50%,35% 85%)}.sidebar-help[open] summary:before{transform:rotate(90deg)}.sidebar-help-body{padding-top:.45rem;line-height:1.5}.sidebar-help-body p{margin:0 0 .4rem}.sidebar-help-body strong{color:var(--ink)}.tree-action-btn,.action-trigger,.album-menu-btn{display:grid;place-items:center;width:2rem;height:2rem;padding:0;color:var(--muted);background:transparent;border:0}.tree-action-btn:hover,.action-trigger:hover,.album-menu-btn:hover{color:var(--ink);background:var(--paper-deep)}.tree-action-menu,.action-menu,.device-ctx-menu{z-index:300;background:var(--paper);border:1px solid var(--line-strong);border-radius:0;box-shadow:0 12px 28px color-mix(in srgb,var(--ink) 14%,transparent)}.tree-menu-item,.action-menu-item,.ctx-menu-item{display:block;width:100%;min-height:2.35rem;padding:.5rem .85rem;color:var(--ink);background:transparent;border:0;text-align:left;font-size:.82rem}.tree-menu-item:hover,.action-menu-item:hover,.ctx-menu-item:hover{background:var(--primary-light)}#view-container{display:flex;flex-direction:column;flex:1;overflow:auto;padding:clamp(1rem,3vw,2.5rem)}.view-content{width:min(100%,1180px);margin:0 auto}#view-devices,#view-albums,#view-slideshow,#view-showcase{display:flex;flex-direction:column;flex:1}.scope-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem;padding:0 0 1rem;border-bottom:1px solid var(--line-strong)}@media(min-width:768px){#sidebar-toggle:not([hidden]):not(.is-expanded)~#view-container .scope-header{padding-left:2rem}}.scope-header-left{display:grid;gap:.5rem;min-width:0}.scope-header--monitor{display:grid;grid-template-columns:minmax(0,1fr)}.device-header-overview{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.device-header-overview .scope-header-actions{gap:1rem}.device-header-overview .device-view-btn.is-active{color:var(--primary-dark);background:var(--primary-light)}.device-selection-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem}.device-selection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.device-selection-actions .btn-text{color:var(--muted);background:transparent;border-color:transparent}.scope-header--monitor #bulk-send-btn{width:auto;flex-shrink:0}.scope-header-titles{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem}.scope-title{margin:0;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.05;letter-spacing:-.035em}.scope-stat{color:var(--ink-soft);font-size:.82rem;font-weight:650;font-variant-numeric:tabular-nums}.scope-stat-pct,.text-muted{color:var(--muted)}.scope-header-actions,.region-section-actions,.store-summary-actions,.device-grid-actions,.device-row-actions,.strategy-card-actions,.slideshow-device-drawer-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.slideshow-hint,.form-hint,.settings-section-hint,.settings-footnote{color:var(--muted);font-size:.8rem;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.52rem .82rem;color:var(--ink);background:transparent;border:1px solid var(--line-strong);border-radius:0;font-size:.84rem;font-weight:700;line-height:1.2;white-space:nowrap;transition:color .15s,background .15s,border-color .15s}.btn:hover:not(:disabled){color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.btn-primary{color:#fff;background:var(--primary);border-color:var(--primary)}.btn-primary:hover:not(:disabled){color:#fff;background:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background:var(--paper)}.btn-success{color:#fff;background:var(--success);border-color:var(--success)}.btn-danger{color:#fff;background:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.45}.btn-sm{min-height:2.2rem;padding:.38rem .65rem;font-size:.77rem}.btn-xs{min-height:1.9rem;padding:.27rem .48rem;font-size:.7rem}.btn-icon{display:grid;place-items:center;width:2.3rem;min-height:2.3rem;padding:0;color:var(--muted);background:var(--paper);border:1px solid var(--line-strong);border-radius:0}.btn-icon:hover{color:var(--danger);border-color:var(--danger)}.device-view-toggle,.view-switch{display:inline-flex;padding:2px;background:var(--paper);border:1px solid var(--line-strong);border-radius:0}.device-view-btn,.view-switch-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2rem;padding:.35rem .6rem;color:var(--muted);background:transparent;border:0;font-size:.75rem;font-weight:700}.device-view-btn+.device-view-btn{border-left:1px solid var(--line)}.device-view-btn:hover,.view-switch-btn:hover{color:var(--ink);background:var(--paper-soft)}.device-view-btn.is-active,.view-switch-btn.is-active{color:#fff;background:var(--primary)}.region-section{margin-bottom:1rem;background:var(--paper);border:1px solid var(--line);border-radius:0;overflow:hidden}.region-section-header{display:flex;align-items:center;gap:.55rem;min-height:3.25rem;padding:.65rem 1rem;background:var(--paper-deep);border-bottom:1px solid var(--line)}.region-section-title,.subgroup-name,.store-summary-name{color:var(--ink);font-size:.9rem;font-weight:750}.region-section-count,.store-summary-stat,.subgroup-count{color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}.region-section-actions{margin-left:auto}.ungrouped-device-list{padding:.75rem 1rem 1rem}.store-summary{border-bottom:1px solid var(--line)}.store-summary:last-child{border-bottom:0}.store-summary.is-expanded{background:var(--primary-hover)}.store-summary-header{display:flex;align-items:center;gap:.6rem;min-height:3.35rem;padding:.55rem 1rem}.store-summary-header:hover{background:var(--paper-soft)}.store-summary-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-summary-stat{margin-left:auto}.store-summary-actions{margin-left:.25rem}.store-summary-devices{margin:-.2rem 1rem .55rem 2.75rem;color:var(--muted);font-size:.74rem}.store-summary--monitor .store-summary-header{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center}.store-summary--monitor .store-summary-copy{display:flex;align-items:center;gap:.4rem;min-width:0}.store-summary--monitor .store-summary-title-line{flex:1 1 auto}.store-summary-title-line .filter-level-tag{flex-shrink:0}.store-summary-title-line{display:flex;align-items:center;gap:.4rem;min-width:0}.store-summary--monitor .store-summary-devices{flex:0 1 auto;min-width:0;max-width:40%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-summary--monitor .store-summary-health{display:grid;justify-items:end;gap:.3rem;min-width:5.5rem}.store-summary--monitor .store-summary-stat,.store-summary--monitor .status-bar{margin-left:0}.store-summary--monitor .store-summary-actions{margin-left:.5rem;justify-content:flex-end}.store-summary-body{padding:.7rem 1rem 1rem;border-top:1px solid var(--line)}.store-summary-body.collapsed{display:none}.group-direct-block{margin-bottom:.75rem}.subgroup-block{margin-top:.7rem;padding:.7rem;background:var(--paper-soft);border:1px solid var(--line);border-radius:0}.subgroup-header{display:flex;align-items:center;gap:.45rem;min-height:2rem;margin-bottom:.55rem}.subgroup-count{margin-left:auto}.group-empty-state,.devices-empty-panel{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem;color:var(--muted);font-size:.82rem}.group-empty-state--nested{padding:.5rem 0 0}.subgroup-empty{margin:0;color:var(--muted);font-size:.76rem}.bulk-check,.device-row-check{display:inline-flex;align-items:center;flex:0 0 auto;min-width:1.5rem;min-height:1.5rem}.bulk-check input,.device-row-check input{width:1rem;height:1rem}.status-bar{display:flex;min-width:3rem;max-width:7rem;height:4px;margin-left:.25rem;overflow:hidden;background:var(--line)}.status-bar-seg{height:100%}.status-bar-online{background:var(--success)}.status-bar-sleeping{background:var(--primary)}.status-bar-offline{background:var(--danger)}.status-bar-shutdown{background:var(--neutral)}.device-list{display:flex;flex-direction:column;gap:.5rem}.device-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem}.device-row{display:grid;grid-template-columns:auto 64px minmax(10rem,1fr) auto auto auto;align-items:center;gap:.8rem;min-height:5.5rem;padding:.65rem .75rem;background:var(--paper);border:1px solid var(--line);border-radius:0}.device-row:hover,.device-grid-card:hover{border-color:var(--primary);background:var(--primary-hover)}.device-row.selected,.device-grid-card.selected,.device-card.selected{background:var(--primary-light);border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.device-row.incompatible,.device-grid-card.incompatible,.device-card.incompatible{opacity:.48}.device-row-thumb{display:grid;place-items:center;width:64px;height:64px}.device-row-frame,.device-card-frame{position:relative;overflow:hidden;background:#d9d6c6;border:2px solid #71542e;box-shadow:inset 0 0 0 2px #f7f1dc}.device-row-frame{max-width:100%;max-height:100%}.device-card-frame-box{display:grid;place-items:center;width:136px;height:136px}.device-card-frame.is-landscape{width:calc(100% - 10px);height:auto}.device-card-frame.is-portrait{width:auto;height:calc(100% - 10px)}.device-row-frame.is-landscape{width:100%;height:auto}.device-row-frame.is-portrait{width:auto;height:100%}.frame-thumb{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover}.frame-thumb--rotated{inset:auto;left:50%;top:50%;width:var(--thumb-width);height:var(--thumb-height);transform:translate(-50%,-50%) rotate(var(--thumb-rotation))}.device-grid-card{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:.8rem .7rem .7rem;background:var(--paper);border:1px solid var(--line);border-radius:0}.device-grid-card .device-row-check{position:absolute;top:.45rem;left:.5rem;z-index:2;padding:.15rem;background:var(--paper)}.device-grid-card .device-card-frame-box{width:138px;height:138px}.device-card-name,.device-row-name{color:var(--ink);font-weight:750}.device-card-name{width:100%;margin-top:.55rem;overflow:hidden;font-size:.86rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.device-grid-meta,.device-row-meta,.device-grid-sleep{color:var(--muted);font-size:.7rem}.device-grid-meta,.device-grid-sleep{max-width:100%;margin-top:.18rem;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.device-grid-status,.device-row-status,.device-card-status{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;color:var(--muted);font-size:.73rem;white-space:nowrap}.device-row-status{margin-top:0}.device-grid-actions{justify-content:center;margin-top:.55rem}.device-row-main{min-width:0}.device-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.device-row-meta{margin-top:.12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-row-sleep{display:grid;min-width:5.5rem}.device-row-sleep-value{color:var(--ink-soft);font-size:.78rem;font-weight:650;font-variant-numeric:tabular-nums}.device-row-sleep.is-off .device-row-sleep-value{color:var(--muted);font-weight:500}.status-online,.status-offline,.status-sleeping,.status-poweroff,.battery{display:inline-flex;align-items:center;gap:.3rem}.status-online:before,.status-offline:before,.status-sleeping:before,.status-poweroff:before{width:7px;height:7px;content:"";border-radius:50%}.status-online{color:var(--success)}.status-online:before{background:var(--success)}.status-sleeping{color:var(--primary)}.status-sleeping:before{background:var(--primary)}.status-offline{color:var(--danger)}.status-offline:before{background:var(--danger)}.status-poweroff{color:var(--neutral)}.status-poweroff:before{background:var(--neutral)}.status-sep{color:var(--sep)}.battery.ok{color:var(--success)}.battery.warn{color:var(--warning)}.battery.danger{color:var(--danger)}.battery-icon{position:relative;width:19px;height:10px;border:1px solid currentColor}.battery-icon:after{position:absolute;top:2px;right:-3px;width:2px;height:4px;content:"";background:currentColor}.battery-fill{position:absolute;top:1px;right:1px;bottom:1px;left:1px;background:currentColor;transform-origin:left}.device-send-label{position:absolute;bottom:4px;left:50%;z-index:3;padding:2px 5px;color:#fff;background:#141b14c7;font-size:.62rem;transform:translate(-50%);white-space:nowrap;opacity:0}.device-send-label.visible{opacity:1}.device-send-progress{position:absolute;right:0;bottom:0;left:0;z-index:2;width:0;height:3px;background:var(--success);opacity:0;transition:opacity .25s}.device-send-progress.active,.device-send-progress.success,.device-send-progress.error{opacity:1}.device-send-progress.error{background:var(--danger)}.wifi-off-badge,.sleep-badge,.poweroff-badge,.selected-badge{position:absolute;top:4px;left:4px;display:grid;place-items:center;width:18px;height:18px;color:#fff;border-radius:50%;font-size:.65rem}.wifi-off-badge{background:var(--danger)}.sleep-badge{background:var(--primary)}.poweroff-badge{background:var(--neutral)}.selected-badge{right:4px;left:auto;display:none;background:var(--primary)}.device-card.selected .selected-badge{display:grid}.selected-badge:after{content:"✓"}.device-card{position:relative;display:flex;flex-direction:column;align-items:center;width:168px;padding:.8rem;background:var(--paper);border:1px solid var(--line);border-radius:0}.device-card:hover{border-color:var(--primary)}.slideshow-device-grid .device-card{width:auto}.device-card-frame-box{flex-shrink:0}.incompatible-tag{position:absolute;inset:.4rem .4rem auto;z-index:3;padding:.2rem;color:#fff;background:var(--danger);font-size:.64rem;font-weight:700;text-align:center;text-transform:uppercase}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;margin-bottom:1.5rem}.album-card{position:relative;background:transparent;border:1px solid var(--line);border-radius:0;overflow:hidden}.album-card:hover,.album-card.active{border-color:var(--primary);background:var(--primary-hover)}.album-card-open{display:block;width:100%;padding:.6rem;color:inherit;background:transparent;border:0;text-align:left}.album-card-cover{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper-deep);border-radius:0}.album-card-cover-empty{background:var(--paper-deep)}.album-card-name{display:block;margin-top:.6rem;color:var(--ink);font-size:.92rem;font-weight:750}.album-card-count{display:block;margin-top:.1rem;color:var(--muted);font-size:.76rem}.album-card-new{display:grid;min-height:11rem;place-items:center;color:var(--muted);background:transparent;border-style:dashed;font-weight:700}.album-card-new:hover{color:var(--primary);background:var(--primary-light)}.album-menu-btn{position:absolute;top:.35rem;right:.35rem;z-index:2;opacity:0;background:var(--paper);border:1px solid var(--line)}.album-card:hover .album-menu-btn,.album-menu-btn:focus-visible{opacity:1}.action-menu{position:absolute;top:calc(100% + 2px);right:.35rem;min-width:10rem;padding:.25rem 0}.album-card>.action-menu{top:calc(2.35rem + 2px)}.photo-section{margin-top:1.75rem;padding-top:1.2rem;border-top:1px solid var(--line-strong)}.photo-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.photo-section-header-left{display:flex;align-items:center;gap:.5rem}.photo-section-title{font-size:1.35rem}.photo-send-hint{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;color:var(--ink-soft);font-size:.8rem}.photo-show-frames{display:none;color:var(--primary-dark)}.sidebar-collapsed .photo-show-frames{display:inline-flex}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem}.photo-item{position:relative}.photo-menu-btn{position:absolute;top:.35rem;right:.35rem;display:grid;place-items:center;width:2rem;height:2rem;padding:0;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);cursor:pointer}.photo-menu-btn svg{fill:currentColor}.photo-menu-btn:hover{background:var(--paper-deep)}.photo-item>.photo-action-menu{top:2.5rem}.photo-action-menu hr{margin:.25rem 0;border:0;border-top:1px solid var(--line)}.modal-box.modal-lg:has(.album-send-context){width:min(100%,37rem)}.album-send-context{display:flex;align-items:center;gap:1rem;min-width:0;margin-bottom:1.25rem}.album-send-context img{display:block;flex:0 0 5rem;width:5rem;height:4rem;min-width:0;min-height:0;max-width:5rem;max-height:4rem;object-fit:contain;background:var(--paper-deep)}.album-send-context p{margin:0;color:var(--ink-soft)}.album-send-controls{display:flex;flex-wrap:wrap;gap:.75rem}.album-send-controls label{display:grid;flex:1 1 18rem;gap:.35rem;min-width:0;max-width:100%;font-size:.875rem}.album-send-controls label:last-child{flex-basis:14rem}.album-send-controls input,.album-send-controls select{width:100%;min-width:0}.album-send-tools{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0 .5rem}.album-send-tools label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.album-send-list{max-height:17rem;overflow:auto;border-block:1px solid var(--line)}.album-send-option{display:grid;grid-template-columns:auto 3rem minmax(0,1fr) auto;align-items:center;min-height:calc(5rem + 1px);gap:.75rem;padding:.5rem;border-bottom:1px solid var(--line);cursor:pointer}.album-send-option:last-child{border-bottom:0}.album-send-option:hover,.album-send-option:has(input:checked){background:var(--primary-light)}.album-send-option input{margin:0}.album-send-thumb{position:relative;display:grid;place-items:center;width:3rem;height:4rem;min-width:0;min-height:0;overflow:hidden;background:var(--paper-deep)}.album-send-frame{position:relative;display:block;overflow:hidden}.album-send-thumb:empty:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:1.25rem;height:1rem;margin:auto;border:1px solid var(--line-strong)}.album-send-thumb .frame-thumb{object-fit:contain}.album-send-identity{min-width:0}.album-send-identity strong,.album-send-path{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-send-identity small{display:flex;gap:.25rem;min-width:0}.album-send-path{min-width:0}.album-send-short-id{flex-shrink:0;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-send-state{text-align:right;white-space:nowrap}.album-send-state span,.album-send-state small{display:block}.album-send-option small,.album-send-selection small{color:var(--ink-soft);font-size:.8rem}.album-send-selection{margin-top:1rem;overflow-wrap:anywhere}.album-send-selection p{margin:.5rem 0}.album-send-selection summary{width:fit-content;color:var(--ink-soft);cursor:pointer}.album-send-totals{display:flex;flex-wrap:wrap;gap:.25rem 1rem}.album-send-warning{color:var(--warning);font-weight:600}.album-send-problem{color:var(--warning)}.album-send-details-scroll{max-height:12rem;overflow:auto;margin-top:.5rem}.album-send-details{width:100%;table-layout:fixed;border-collapse:collapse}.album-send-details th,.album-send-details td{padding:.5rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.album-send-details th{color:var(--ink-soft);font-weight:500}.album-send-details th:first-child{width:62%}.album-send-crop-target{overflow-wrap:anywhere}@media(max-width:600px){.album-send-controls label,.album-send-controls label:last-child{flex:1 1 12rem}.album-send-option{gap:.5rem}.album-send-state{max-width:6rem;white-space:normal;overflow-wrap:anywhere}.album-send-list{max-height:14rem}}@media(hover:hover)and (pointer:fine){.photo-menu-btn{opacity:0}.photo-item:hover .photo-menu-btn,.photo-item:focus-within .photo-menu-btn{opacity:1}}.photo-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper-deep);border:1px solid var(--line);border-radius:0}.photo-thumb[draggable=true]{cursor:grab}.photo-thumb.is-dragging{opacity:.38}.album-upload-input{margin-bottom:1rem}.strategy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1rem}.strategy-card{display:flex;flex-direction:column;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:0}.strategy-card:hover{border-color:var(--primary)}.strategy-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}.strategy-card-name{color:var(--ink);font-weight:750}.strategy-card-status,.strategy-type-badge{display:inline-block;padding:.15rem .35rem;border:1px solid currentColor;border-radius:999px;font-size:.65rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.strategy-card-status.active{color:var(--success)}.strategy-card-status.inactive{color:var(--muted)}.strategy-type-badge.type-fixed{color:var(--primary)}.strategy-type-badge.type-interval{color:var(--warning)}.strategy-card-target{display:grid;gap:.1rem;margin:.65rem 0;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.strategy-card-device{color:var(--ink);font-size:.85rem;font-weight:700}.strategy-card-venue,.strategy-card-meta{color:var(--muted);font-size:.77rem;line-height:1.65}.strategy-card-actions{margin-top:auto;padding-top:.85rem}.slideshow-hint{margin:0 0 1rem}.slideshow-header .scope-header-left{gap:.7rem}.slideshow-header .view-switch{width:fit-content;max-width:100%;justify-self:start}.slideshow-device-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:260;visibility:hidden;pointer-events:none}.slideshow-device-drawer.is-open{visibility:visible;pointer-events:auto}.slideshow-device-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 32%,transparent);opacity:0;transition:opacity .22s}.slideshow-device-drawer.is-open .slideshow-device-drawer-backdrop{opacity:1}.slideshow-device-drawer-panel{position:absolute;top:0;right:0;display:flex;width:min(34rem,54vw);height:100%;flex-direction:column;background:var(--paper);box-shadow:-14px 0 30px color-mix(in srgb,var(--ink) 16%,transparent);transform:translate(100%);transition:transform .22s}.slideshow-device-drawer.is-open .slideshow-device-drawer-panel{transform:translate(0)}.slideshow-device-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line-strong)}.slideshow-device-drawer-title{font-size:1.2rem;line-height:1.2}.slideshow-device-drawer-body{flex:1;overflow:auto;padding:1rem 1.25rem 1.5rem}.slideshow-device-strategy-list{display:grid;gap:.65rem}.timeline-editor{min-width:0}.timeline-editor .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.timeline-editor h3{margin:0 0 1rem;font-size:1.1rem}.timeline-editor label{display:grid;gap:.375rem;color:var(--ink-soft);font-weight:600}.timeline-editor input,.timeline-editor select{min-width:0;width:100%}.timeline-notice{padding:.75rem 0;border-block:1px solid var(--line);color:var(--ink-soft)}.timeline-basics{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1rem;margin:1.5rem 0}.timeline-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);border-block:1px solid var(--line);background:var(--paper)}.timeline-library{padding:1.25rem;border-right:1px solid var(--line)}.timeline-pictures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;max-height:32rem;overflow-y:auto;padding:3px}.timeline-picture{padding:.375rem;background:var(--paper);border:1px solid var(--line-strong);text-align:left;cursor:grab}.timeline-picture[aria-pressed=true]{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}.timeline-picture:hover{border-color:var(--primary)}.timeline-picture img{width:100%;height:90px;object-fit:contain;display:block}.timeline-picture span{display:block;font-size:.75rem;margin-top:.375rem;overflow-wrap:anywhere}.timeline-schedule{min-width:0;padding:1.25rem}.timeline-scroll{overflow-x:auto;padding:.5rem 0 1rem}.timeline-canvas{min-width:960px;padding:0 1.5rem}.timeline-ruler{position:relative;height:2rem;font-size:.75rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.timeline-ruler span{position:absolute;transform:translate(-50%)}.timeline-track{position:relative;height:144px;border:1px solid var(--line-strong);background:repeating-linear-gradient(to right,transparent 0,transparent calc(4.166667% - 1px),var(--line) calc(4.166667% - 1px),var(--line) 4.166667%)}.timeline-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-soft);pointer-events:none}.timeline-block{position:absolute;top:12px;bottom:12px;padding-right:2px}.timeline-block-picture{display:flex;align-items:center;gap:.5rem;width:100%;height:100%;overflow:hidden;padding:.5rem;background:var(--primary-light);border:1px solid var(--primary);color:var(--primary-dark);text-align:left;cursor:grab}.timeline-block-picture img{width:60px;height:90px;object-fit:contain;flex-shrink:0}.timeline-block-picture span{min-width:0;overflow:hidden;font-size:.75rem}.timeline-block-picture strong{display:block;font-size:.875rem;font-variant-numeric:tabular-nums}.timeline-block.is-last .timeline-block-picture{border-right-style:dashed}.timeline-block.is-narrow .timeline-block-picture{padding:0}.timeline-block.is-narrow img,.timeline-block.is-narrow span{display:none}.timeline-boundary{position:absolute;z-index:1;top:0;bottom:0;right:-9px;width:20px;padding:0;background:transparent;border:0;cursor:ew-resize;touch-action:none}.timeline-boundary:before{content:"";display:block;width:4px;height:32px;margin:auto;background:var(--primary-dark)}.timeline-boundary[data-hint]:after{content:attr(data-hint);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:.25rem .5rem;background:var(--ink);color:var(--paper)}.timeline-add{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin:1.25rem 0 0}.timeline-add>span{flex:1 1 140px;align-self:center;overflow-wrap:anywhere}.timeline-add label{width:135px}.timeline-error{color:var(--danger-text)}.timeline-error:empty{margin:0}.timeline-points{margin-top:1rem}.timeline-point{display:grid;grid-template-columns:44px minmax(0,1fr) 130px auto;gap:.75rem;align-items:center;padding:.75rem 0;border-top:1px solid var(--line)}.timeline-point img{width:44px;height:52px;object-fit:contain}.timeline-point>span{overflow-wrap:anywhere}.timeline-preview{margin-top:2rem}.timeline-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.timeline-preview-heading h3{margin:0}.timeline-preview-day{display:grid;grid-template-columns:170px minmax(0,1fr);border-top:1px solid var(--line);padding:1rem;gap:1rem;background:var(--paper)}.timeline-preview-day>div:first-child>span{display:block;font-size:.8125rem;color:var(--ink-soft)}.timeline-preview-grid{min-width:1120px}.timeline-preview-axis{padding-bottom:0;border-top:0}.timeline-preview-pushes{position:relative;min-height:70px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - 1px),var(--line) calc(12.5% - 1px),var(--line) 12.5%)}.timeline-preview-push{position:absolute;display:flex;align-items:center;gap:.5rem;height:70px;padding:.375rem;border:1px solid var(--line-strong);font-size:.8125rem;overflow:hidden;background:var(--paper-soft)}.timeline-preview-push:last-child{border-right-style:dashed}.timeline-preview-push.is-narrow img{display:none}.timeline-preview-push>span{min-width:0}.timeline-preview-push img{width:36px;height:48px;object-fit:contain}.timeline-preview-push strong{display:block;font-variant-numeric:tabular-nums}@media(max-width:767px){.timeline-basics,.timeline-workspace{grid-template-columns:1fr}.timeline-library{border-right:0;border-bottom:1px solid var(--line)}.timeline-pictures{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:180px}.timeline-schedule{padding:1rem}.timeline-point{grid-template-columns:36px minmax(0,1fr) 112px;gap:.5rem}.timeline-point>button{grid-column:2 / -1;justify-self:end}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--ink) 38%,transparent)}.modal-box{display:flex;width:min(100%,31rem);max-height:calc(100vh - 2rem);flex-direction:column;padding:clamp(1.25rem,3vw,2rem);background:var(--paper);border:1px solid var(--line-strong);border-radius:0;box-shadow:0 20px 50px color-mix(in srgb,var(--ink) 20%,transparent)}.modal-box.modal-lg{width:min(100%,46rem)}.modal-box.modal-crop{width:min(100%,50rem)}.modal-box.modal-onboarding{position:relative;border:0;border-radius:10px}.modal-onboarding .modal-title{padding-right:1.5rem;line-height:1.3}.group-onboarding>p:first-child{margin:0}.group-onboarding-example{margin-block:1.5rem;padding:1rem;background:var(--paper-soft)}.group-onboarding-example-caption{margin:0 0 .75rem;font-size:.8rem}.group-onboarding-example-group,.group-onboarding-branches li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.group-onboarding-example-group strong{color:var(--ink)}.group-onboarding-example-group>span,.group-onboarding-branches li>span:last-child{flex-shrink:0;font-size:.75rem;color:var(--ink-soft)}.group-onboarding-branches{margin:.6rem 0 0 .3rem;padding:0;list-style:none}.group-onboarding-branches li{position:relative;padding:.4rem 0 .4rem 1rem;border-left:1px solid var(--line-strong)}.group-onboarding-branches li:before{position:absolute;top:1rem;left:0;width:.6rem;border-top:1px solid var(--line-strong);content:""}.group-onboarding-field{display:block;margin-bottom:.4rem;color:var(--ink);font-weight:600}.group-onboarding input[type=text]{width:100%}.group-onboarding-hint{margin:.5rem 0 1.25rem;font-size:.8rem}.group-onboarding-error{margin-bottom:1rem;color:var(--danger-text)}.group-onboarding-dismiss{display:flex;align-items:center;gap:.5rem;width:fit-content;min-height:2rem;font-size:.8rem;cursor:pointer}.group-onboarding-close{position:absolute;top:.6rem;right:.6rem;display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;background:transparent;color:var(--ink-soft);cursor:pointer}.group-onboarding-close:hover{background:var(--paper-soft);color:var(--ink)}.modal-onboarding button:disabled{opacity:.6;cursor:wait}.modal-title{margin:0 0 1rem;font-size:1.4rem;line-height:1.15}.modal-body{min-height:0;margin-bottom:1.5rem;overflow:auto;color:var(--ink-soft);font-size:.88rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem}.view-error{margin-bottom:1rem;padding:.8rem 1rem;color:var(--danger-text);background:var(--danger-light);border:1px solid var(--danger-border);border-left:1px solid var(--danger);font-size:.84rem}.empty-state{padding:2rem 1rem;color:var(--muted);font-size:.86rem;text-align:center}.toast{position:fixed;top:1rem;left:50%;z-index:9999;max-width:calc(100vw - 2rem);padding:.75rem 1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);box-shadow:0 10px 24px color-mix(in srgb,var(--ink) 16%,transparent);font-size:.86rem;transform:translate(-50%)}.toast-success{border-color:var(--success)}.toast-error{color:var(--danger-text);background:var(--danger-light);border-color:var(--danger)}.form-section,.settings-section{padding:0 0 1rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}.form-section:last-child,.settings-section:last-of-type{margin-bottom:0;border-bottom:0}.form-section-title,.settings-section-title{margin-bottom:.65rem}.form-row{display:flex;flex-wrap:wrap;gap:.85rem}.radio-group{display:flex;flex-wrap:wrap;gap:.4rem}.radio-opt{min-height:2.45rem;padding:.45rem .7rem;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line-strong);border-radius:0;font-size:.8rem}.radio-opt:hover,.radio-opt.selected{color:var(--primary);background:var(--primary-light);border-color:var(--primary);font-weight:700}.album-select-list{max-height:13rem;overflow:auto;border:1px solid var(--line-strong)}.album-select-item{display:flex;align-items:center;gap:.55rem;min-height:2.4rem;padding:.4rem .6rem;color:var(--ink-soft);font-size:.82rem}.album-select-item+.album-select-item{border-top:1px solid var(--line)}.album-select-item:hover,.album-select-item.selected{background:var(--primary-light);color:var(--primary-dark)}.album-select-count{margin-left:auto;color:var(--muted);font-size:.72rem}.time-slots{display:grid;gap:.4rem}.time-slot-row{display:flex;align-items:center;gap:.5rem}.time-slot-row input[type=time]{width:8rem}.settings-device-meta{margin:0 0 1rem;color:var(--muted);font-size:.82rem}.settings-status{color:var(--ink);font-weight:700}.settings-select-row,.settings-time-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.settings-time-row{grid-template-columns:1fr 1fr}.settings-info-grid{display:grid;gap:.55rem}.settings-info-item{display:grid;gap:.15rem}.settings-info-label{color:var(--muted);font-size:.72rem}.settings-info-value{color:var(--ink);font-size:.84rem}.settings-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.modal-box:has(.send-picker-scroll){display:grid;grid-template-areas:"title title" "file file" "context context" "filters filters" "photos photos" "footer footer";grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;gap:.75rem 1rem;height:min(800px,calc(100dvh - 2rem))}.modal-box:has(.send-picker-scroll) .modal-title{grid-area:title;align-self:center;margin:0;font-size:1.125rem;line-height:1.3;padding-right:44px}.modal-box:has(.send-picker-scroll) .modal-body{display:contents}.send-picker-input{grid-area:file}.image-file-input{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;min-height:240px;padding:24px;border:1px dashed var(--line);border-radius:8px;background:var(--paper-soft);color:var(--ink);font:inherit;cursor:pointer}.image-file-input-icon{display:block;flex:none;width:144px;height:90px;margin-bottom:24px;color:#94a3b8}.image-file-input-icon svg{display:block;width:144px;height:144px;transform:translateY(-27px);fill:none;stroke:currentColor;stroke-width:1.5}.image-file-input-icon--upload{height:78px}.image-file-input-icon--upload svg{transform:translateY(-30px);fill:currentColor;stroke:none}.image-file-input-title{font-size:16px;font-weight:500;line-height:1.5;color:var(--ink-soft)}.image-file-input-action{color:var(--primary)}.image-file-input-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;margin-top:12px;color:var(--muted);font-size:14px;line-height:1.5}.image-file-input-title,.image-file-input-hints{max-width:100%;overflow-wrap:anywhere}.image-file-input:hover,.image-file-input:focus-visible,.image-file-input.is-dragging{border-color:var(--primary);background:var(--primary-light)}.image-file-input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.send-picker-input.image-file-input{min-height:150px;padding:16px;transition:background-color .2s ease,border-color .2s ease}.send-picker-input .image-file-input-icon{width:60px;height:48px;margin-bottom:8px;transition:color .2s ease,transform .2s ease}.send-picker-input .image-file-input-icon svg{width:60px;height:60px;transform:translateY(-6px)}.send-picker-input .image-file-input-hints{margin-top:8px}.send-picker-close{grid-area:title;justify-self:end;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.send-picker-close:hover{background:var(--paper-soft);color:var(--ink)}.send-picker-filters{grid-area:filters;display:flex;gap:8px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;padding:8px 3px;border-block:1px solid var(--line);background:var(--paper-soft)}.send-picker-filter-albums{display:contents}.send-picker-filter{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;min-height:44px;max-width:240px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink-soft);font:inherit;font-size:14px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.send-picker-filter span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.send-picker-filter img,.send-picker-filter svg{width:24px;height:24px;flex:none;border-radius:4px;object-fit:cover}.send-picker-filter[aria-pressed=true]{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.send-picker-filter:focus-visible,.send-picker-photo:focus-visible,.send-picker-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(hover:hover){.send-picker-input:hover .image-file-input-icon{transform:translateY(-2px);color:var(--primary)}.send-picker-filter:hover,.send-picker-photo:hover{transform:translateY(-2px);border-color:var(--primary-line);background:var(--primary-light)}}.send-picker-filter:active,.send-picker-photo:active{transform:translateY(0) scale(.99)}.send-picker-input.is-dragging .image-file-input-icon{color:var(--primary)}.send-picker-context{grid-area:context;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;min-width:0;margin:0 0 .25rem;color:var(--ink-soft);font-size:.86rem;overflow-wrap:anywhere}.send-picker-context strong{color:var(--ink)}.send-picker-dimensions{color:var(--muted);font-size:.8rem}.send-picker-scroll{grid-area:photos;min-height:0;padding:3px;overflow:auto;overscroll-behavior:contain}.send-picker-scroll .send-picker-status:empty{display:none}.modal-box:has(.send-picker-scroll) .modal-footer{grid-area:footer;padding-top:.25rem}.send-picker-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.send-picker-photo{padding:0;overflow:hidden;background:var(--paper-deep);border:1px solid var(--line);border-radius:4px;aspect-ratio:4/3;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.send-picker-photo:hover{border-color:var(--primary)}.send-picker-photo img{width:100%;height:100%;object-fit:cover}@media(prefers-reduced-motion:reduce){.send-picker-input.image-file-input,.send-picker-input .image-file-input-icon,.send-picker-filter,.send-picker-photo{transition:none}.send-picker-input:hover .image-file-input-icon,.send-picker-filter:hover,.send-picker-photo:hover,.send-picker-filter:active,.send-picker-photo:active{transform:none}}@media(max-width:480px){.send-picker-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.modal-box:has(.send-picker-scroll){padding:16px}}@media(max-height:600px){.modal-box:has(.send-picker-scroll){overflow-y:auto}.send-picker-scroll{min-height:120px}}.cropper-wrapper{display:grid;max-height:420px;place-items:center;overflow:hidden;background:var(--ink)}.cropper-wrapper.is-logo{background-color:#e7e5e4;background-image:linear-gradient(45deg,#d6d3d1 25%,transparent 25%),linear-gradient(-45deg,#d6d3d1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d6d3d1 75%),linear-gradient(-45deg,transparent 75%,#d6d3d1 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.cropper-zoom-hint{display:inline-block;margin-bottom:.75rem;padding:.45rem .65rem;color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--primary-line);font-size:.8rem}.history-list-modal{display:flex;flex-wrap:wrap;gap:.75rem}.history-item{display:grid;gap:.3rem;width:6rem;text-align:center}.history-item img,.history-item-placeholder{width:6rem;height:6rem;object-fit:contain;background:var(--paper-deep);border:1px solid var(--line)}.history-item-time,.history-empty{color:var(--muted);font-size:.72rem}.app-footer{margin-top:auto;padding:.9rem 1rem;color:var(--muted);background:var(--paper);border-top:1px solid var(--line);font-size:.74rem;text-align:center}.app-footer--login{background:transparent}.view-powered-by{margin-top:auto;padding-top:32px;color:var(--ink-soft);font-size:.8rem;text-align:center}.view-powered-by a{color:inherit;text-decoration:none;text-underline-offset:.2em}.view-powered-by a:hover,.view-powered-by a:focus-visible{color:var(--primary-dark);text-decoration:underline}.device-ctx-menu{position:fixed;display:flex;flex-direction:column;width:max-content;min-width:min(13rem,calc(100vw - 16px));max-width:min(18rem,calc(100vw - 16px));max-height:calc(100dvh - 16px);padding:.25rem 0}.tree-action-menu{position:fixed;min-width:10rem;padding:.25rem 0}.ctx-menu-label{flex-shrink:0;padding:.45rem .85rem;color:var(--muted)}.ctx-menu-label:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-size:.8rem;font-weight:700;letter-spacing:0;text-transform:none;border-bottom:1px solid var(--line)}.ctx-menu-scroll{position:relative;min-height:0;max-height:14rem;overflow:auto;overscroll-behavior:contain}.ctx-menu-item{display:flex;align-items:center;gap:.75rem;height:2.5rem}.ctx-menu-item--subgroup{padding-left:1.85rem}.ctx-menu-item--ungrouped:not(:first-child){margin-top:.25rem;border-top:1px solid var(--line)}.ctx-menu-item:disabled{color:var(--ink-soft);background:var(--paper-soft);opacity:1;cursor:default}.ctx-menu-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ctx-menu-item-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ctx-menu-item--subgroup .ctx-menu-item-main{font-weight:400}.ctx-menu-current{flex-shrink:0;margin-left:auto;color:var(--muted);font-size:.72rem}.pro-badge{display:inline-flex;flex-shrink:0;align-items:center;padding:.1rem .35rem;border-radius:4px;background:#f3e8ce;color:#70521d;font-size:.65rem;font-weight:600;line-height:1.3}.ctx-menu-item .pro-badge{margin-left:auto}.ctx-menu-separator{margin:.25rem 0;border-top:1px solid var(--line)}.filter-set-row .filter-check-label{font-weight:600}.filter-set-row:focus-visible,.filter-group-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.send-picker-albums{display:grid;gap:1rem}.send-picker-album-name{margin-bottom:.4rem;color:var(--ink);font-size:.84rem;font-weight:700}.send-picker-hint{margin:0 0 1rem;color:var(--muted);font-size:.82rem}.push-steps{display:flex;gap:.35rem;list-style:none;margin:0;padding:0}.push-step{padding:.25rem .55rem;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;font-size:.7rem;font-weight:700}.push-step.is-active{color:var(--primary);background:var(--primary-light);border-color:var(--primary)}#cropper-clip{position:relative;padding:1rem 0}#frame-overlay{position:absolute;z-index:10;pointer-events:none;box-shadow:0 0 0 12px #f7f1dc,0 0 0 18px #71542e}.section-card{margin-bottom:1rem;padding:1rem;background:var(--paper);border:1px solid var(--line)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-title{color:var(--ink);font-size:.95rem;font-weight:750}@media(max-width:820px){.device-row{grid-template-columns:auto 56px minmax(8rem,1fr) auto}.device-row-sleep,.device-row-actions{grid-column:3/-1}.device-row-actions{padding-bottom:.15rem}.slideshow-device-drawer-panel{width:min(100%,34rem);max-width:100%}}@media(max-width:767px){.app-layout{flex-direction:column}body.is-sidebar-open:has(#app-shell:not(.hidden)){overflow:hidden}.sidebar-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--line)}.sidebar-close{flex:0 0 44px;width:44px;height:44px;padding:0;font-size:1.5rem;color:var(--primary);background:var(--paper);border:1px solid var(--line-strong)}.navbar{display:grid;grid-template:55px 46px / minmax(0,1fr) auto;grid-template-areas:"brand user" "tabs tabs";gap:0 .5rem;min-height:101px;padding:0 1rem}.navbar-brand{grid-area:brand}.navbar-tabs{grid-area:tabs;overflow-x:auto}.nav-user-badge{grid-area:user}.navbar-tab{padding:0 .7rem}.sidebar{position:fixed;inset:101px auto 0 0;height:calc(100dvh - 101px);z-index:220;width:min(88vw,20rem);margin:0;box-shadow:12px 0 28px color-mix(in srgb,var(--ink) 14%,transparent)}.sidebar.is-collapsed{width:min(88vw,20rem);margin-left:0;transform:translate(-100%);border-right:1px solid var(--line)}.sidebar-resize-handle{display:none}.sidebar-toggle{position:static;align-self:flex-start;flex-shrink:0;gap:.4rem;width:auto;margin:.75rem 1rem 0;padding:0 .7rem}.venue-filter-header{padding-right:0}.sidebar-toggle.is-expanded{visibility:hidden;width:auto;margin:.75rem 1rem 0}.sidebar-toggle-label,.sidebar-toggle.is-expanded .sidebar-toggle-label{display:inline}.sidebar-backdrop{position:fixed;top:101px;right:0;bottom:0;left:0;z-index:210;display:block;background:color-mix(in srgb,var(--ink) 30%,transparent)}.sidebar-backdrop[hidden]{display:none}#view-container{padding:1rem}.scope-header{align-items:flex-start;margin-bottom:1.25rem}.scope-header-actions{width:100%;justify-content:flex-start}.device-selection-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.region-section-header,.store-summary:not(.store-summary--monitor) .store-summary-header{flex-wrap:wrap}.region-section-actions{margin-left:0}.store-summary--monitor .store-summary-header{grid-template-columns:20px 28px minmax(0,1fr);grid-template-areas:"chevron check copy" "controls controls controls";align-items:center}.store-summary--monitor .store-chevron{grid-area:chevron}.store-summary--monitor .bulk-check{grid-area:check}.store-summary--monitor .store-summary-copy{grid-area:copy}.store-summary--monitor .store-summary-health{justify-items:start;display:flex;align-items:center;min-width:0;margin-top:0}.store-summary--monitor .store-summary-actions{margin:.55rem 0 0;justify-content:flex-start}.device-list--grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.device-grid-card .device-card-frame-box{width:92px;height:92px}.photo-section-header{align-items:flex-start;flex-direction:column}.settings-select-row{grid-template-columns:1fr}.modal-footer{flex-wrap:wrap}.modal-footer .btn{flex:1}.nav-user-text{display:none}}@media(max-width:480px){.navbar-brand-text{font-size:1rem}.navbar-brand-tagline{font-size:.62rem}.device-row{grid-template-columns:auto 52px minmax(0,1fr);gap:.55rem}.device-row-status,.device-row-sleep,.device-row-actions{grid-column:2/-1}.device-row-thumb{width:52px;height:52px}.device-list--grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:.5rem}.device-grid-card{padding-inline:.45rem}.device-grid-card .device-card-frame-box{width:84px;height:84px}.scope-title{font-size:1.7rem}.btn{min-height:2.6rem}.strategy-grid{grid-template-columns:1fr}}.campaign-row,.campaign-node-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.campaign-row{width:100%;flex-direction:column;align-items:flex-start;gap:.5rem;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left}.campaign-row>button{display:grid;gap:.3rem;text-align:left}.campaign-row>span{display:flex;gap:.4rem;flex-wrap:wrap}.campaign-help{margin:.75rem 0;color:var(--ink-soft)}.campaign-help summary{width:fit-content;cursor:pointer;color:var(--ink);font-weight:600}.campaign-help p{max-width:70ch}#view-campaigns .timeline-error:empty{display:none}.campaign-list{margin-bottom:1.5rem}.campaign-template-section{margin-bottom:2rem}#view-campaigns>.campaign-template-section,#view-campaigns>.campaign-welcome,#view-campaigns>.campaign-section-header,#view-campaigns>.campaign-list,#view-campaigns>h3{padding-left:var(--campaign-list-inset, 0)}.campaign-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.campaign-template-section h3,.campaign-section-header h3,#view-campaigns>h3{margin:0;font-size:1.1rem;font-weight:650;line-height:1.4}#view-campaigns .campaign-row{padding:1.25rem 0}#view-campaigns>.campaign-row{padding-left:var(--campaign-list-inset, 0)}#view-campaigns .campaign-row>button{padding-inline:0;text-decoration:none}#view-campaigns .campaign-row-title,#view-campaigns .campaign-row>strong,.campaign-template-row>button:first-child strong{font-size:1rem;font-weight:600}.campaign-welcome{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.campaign-welcome h3{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;line-height:1.3}.campaign-welcome p{margin:0;color:var(--ink-soft)}@media(min-width:768px){#sidebar-toggle:not([hidden]):not(.is-expanded)~#view-container #view-campaigns{--campaign-list-inset: 2rem}}.campaign-template-list{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.campaign-template-list:empty{display:none}.campaign-template-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;min-width:min(100%,20rem);max-width:100%;padding:1rem;background:var(--paper-soft);border:1px solid var(--line);border-radius:8px}.campaign-template-row>button:first-child{display:grid;gap:.4rem;text-align:left;min-width:0;overflow-wrap:anywhere}.campaign-template-row>button:first-child span{color:var(--muted);font-size:.85rem}.campaign-template-row[draggable=true]{cursor:grab}.campaign-template-row:hover,.template-drop-target{background:var(--primary-light)}.template-drop-target{outline:2px solid var(--primary);outline-offset:-2px}.campaign-calendar{padding:.5rem 0 1rem;min-width:0}.campaign-day-grid{min-width:0;margin:0 1rem}.campaign-save{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.campaign-save .form-hint{margin:0;font-size:.8rem}.campaign-editor-header{align-items:flex-start}.campaign-title{flex:1;min-width:0;max-width:32rem}.campaign-editor input.campaign-title-input{width:100%;padding:.35rem .25rem;border:1px solid transparent;background:transparent;color:var(--ink);font-size:1.35rem;font-weight:600}.campaign-editor input.campaign-title-input:hover{border-color:var(--line)}.campaign-editor input.campaign-title-input:focus-visible{border-color:var(--primary);outline:2px solid var(--primary-light)}.campaign-timezone{margin-left:auto;color:var(--ink-soft);font-size:.85rem}.campaign-timezone summary{width:fit-content;cursor:pointer}.campaign-timezone label{width:min(18rem,100%);margin-top:.75rem}.campaign-editor .timeline-workspace{grid-template-columns:minmax(0,1fr) 17rem;grid-template-areas:"schedule inspector" "library inspector";border-bottom:0;gap:1.5rem;padding-top:1.25rem;background:transparent;align-items:start}.campaign-editor .timeline-library{grid-area:library;min-width:0;padding:1rem;border:0;background:var(--paper-soft)}.campaign-editor .timeline-library>label{display:grid;gap:.4rem;max-width:24rem}.campaign-editor .timeline-schedule{grid-area:schedule;padding:.5rem 0;background:var(--paper)}.campaign-editor .timeline-picture{border-color:var(--line)}.campaign-editor .timeline-picture:hover{border-color:var(--primary)}.campaign-editor .timeline-pictures{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));max-height:15rem}.campaign-album{margin:.75rem 0;font-size:.8rem;cursor:grab}.campaign-schedule-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:1.5rem}.campaign-schedule-heading h3{margin:0}.campaign-schedule-heading>span{color:var(--muted);font-size:.85rem}.campaign-track{position:relative;height:144px;border:1px solid var(--line);background:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - 1px),var(--line) calc(12.5% - 1px),var(--line) 12.5%)}.campaign-segment{container:campaign-slot / inline-size;position:absolute;top:5px;bottom:5px;background:var(--paper-soft);border:1px solid var(--line-strong);color:var(--ink)}.campaign-segment.is-selected{z-index:3;background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark)}.campaign-segment:hover,.campaign-segment:focus-within{z-index:4}.campaign-segment.is-hold{background:var(--paper);border-style:dashed;color:var(--muted)}.campaign-content{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;width:100%;height:100%;overflow:hidden;padding:.3rem;border:0;background:transparent;color:inherit;text-align:center;cursor:pointer;font:inherit;font-size:.82rem}.campaign-slot-info{min-width:0}.campaign-slot-time{display:flex;justify-content:center;gap:.15rem;white-space:nowrap;font-variant-numeric:tabular-nums}.campaign-slot-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-content img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}.campaign-slot-tip{display:none;position:absolute;bottom:calc(100% + .5rem);width:max-content;max-width:min(16rem,40vw);padding:.4rem .6rem;background:var(--ink);color:var(--paper);font-size:.8rem;overflow-wrap:anywhere;pointer-events:none}.campaign-segment:hover .campaign-slot-tip,.campaign-segment:focus-within .campaign-slot-tip{display:block}@container campaign-slot (max-width: 9rem){.campaign-slot-time{flex-direction:column;gap:0}.campaign-time-separator{display:none}}@container campaign-slot (max-width: 4.5rem){.campaign-slot-info{display:none}.campaign-content{grid-template-rows:minmax(0,1fr);padding-inline:0}.campaign-segment.is-selected .campaign-slot-tip{display:block}}.campaign-content[draggable]{cursor:grab}.campaign-content[draggable]:active{cursor:grabbing}.campaign-resize{position:absolute;z-index:2;top:0;bottom:0;width:12px;padding:0;border:0;background:transparent;cursor:ew-resize;touch-action:none}.campaign-resize:after{content:"";display:block;width:4px;height:24px;margin:auto;background:var(--primary-dark)}.campaign-resize-start{left:0}.campaign-resize-end{right:0}.campaign-resize:hover,.campaign-resize:focus-visible{background:var(--primary-light)}.campaign-drag-image{position:fixed;z-index:350;top:0;left:0;width:80px;height:104px;padding:4px;border:1px solid var(--line-strong);background:var(--paper);pointer-events:none}.campaign-drag-image img{display:block;width:100%;height:100%;object-fit:contain}.campaign-drop-preview{position:fixed;z-index:350;pointer-events:none;border:1px solid var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.campaign-drop-preview>span{position:absolute;bottom:calc(100% + .5rem);left:0;width:max-content;max-width:min(20rem,calc(100vw - 16px));padding:.3rem .5rem;border:1px solid var(--line-strong);color:var(--ink);background:var(--paper);font-size:.8rem;line-height:1.4;font-variant-numeric:tabular-nums}.campaign-drop-preview.is-invalid{width:1px!important;border-color:var(--ink);background:transparent;border-style:dashed}.campaign-drop-preview.is-time-only{width:3px!important;background:var(--primary-dark)}.campaign-drop-preview.is-time-only>span{min-width:0;white-space:nowrap;font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;padding:.5rem .8rem}.campaign-context-menu{position:fixed;inset:auto;margin:0;padding:.5rem;max-width:min(22rem,calc(100vw - 16px));border:1px solid var(--line-strong);color:var(--ink);background:var(--paper)}.campaign-context-menu p{margin:0 0 .5rem;padding:.3rem;font-size:.8rem}@media(min-width:981px){.campaign-editor .timeline-picture img{height:100px}}.campaign-node-form{grid-area:inspector;min-width:0;margin:0;padding:0 0 0 1rem;border:0;border-left:1px solid var(--line)}.campaign-node-form>.form-hint{margin:.5rem 0 1rem}.campaign-node-form label{min-width:0}.campaign-playback{display:grid;gap:.5rem;margin:.75rem 0 1rem}.campaign-playback label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;cursor:pointer}.campaign-playback input[type=radio]{width:1rem;height:1rem;flex:0 0 auto;accent-color:var(--primary)}.campaign-more{padding:.2rem}.campaign-more svg{display:block}.campaign-node-form legend{width:100%;max-width:100%;overflow-wrap:anywhere;font-weight:600;padding:0}.campaign-node-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.campaign-node-heading>span{min-width:0}.campaign-node-heading .btn{flex-shrink:0}.campaign-node-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.campaign-node-fields input{font-variant-numeric:tabular-nums}.campaign-node-row{font-size:.82rem;line-height:1.7}.campaign-node-row span{min-width:0;overflow-wrap:anywhere}.campaign-application{margin-top:1.5rem;border-top:1px solid var(--line)}.campaign-application>summary{padding:1rem 0;cursor:pointer;font-weight:600}.campaign-application-body{max-width:60rem;padding-bottom:1rem}.campaign-application-body>label{display:grid;gap:.4rem;max-width:24rem}.campaign-device-tools,.campaign-group-choices{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0}.campaign-group-choices label{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.campaign-device-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.25rem 1rem;max-height:18rem;overflow-y:auto}.campaign-device-options label{display:flex;align-items:center;gap:.65rem;padding:.65rem .25rem;border-bottom:1px solid var(--line);cursor:pointer}.campaign-device-options label>span{min-width:0;overflow-wrap:anywhere}.campaign-device-options small{display:block;color:var(--ink-soft)}.campaign-application input[type=checkbox]{flex:0 0 auto;width:1rem;height:1rem;accent-color:var(--primary)}.campaign-publish{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:1rem}@media(max-width:1200px){.campaign-editor .timeline-workspace{grid-template-columns:minmax(0,1fr);grid-template-areas:"schedule" "inspector" "library"}.campaign-node-form{max-width:32rem;padding:1rem 0 0;border-left:0;border-top:1px solid var(--line)}}#view-campaigns :focus-visible{outline:2px solid var(--primary);outline-offset:2px}#view-campaigns button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:980px){.campaign-editor-header{flex-wrap:wrap}.campaign-title{flex-basis:100%}.campaign-timezone{margin-left:0}.campaign-editor .timeline-pictures{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:160px}}@media(max-width:600px){.campaign-day-grid .timeline-ruler span:nth-child(2n){display:none}.campaign-node-fields{grid-template-columns:1fr}.campaign-save{align-items:flex-start}.campaign-track .timeline-empty{max-width:90%;text-align:center;white-space:normal}.campaign-row,.campaign-node-row{flex-wrap:wrap}}.showcase-header .scope-header-titles{align-items:center}.showcase-intro{max-width:52rem;margin:-.75rem 0 1.25rem;color:var(--ink-soft);font-size:.88rem}.showcase-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1rem;background:var(--paper);border:1px solid var(--line)}.showcase-summary.has-visitors{grid-template-columns:repeat(4,minmax(0,1fr))}.showcase-summary>div{display:grid;gap:.15rem;padding:.8rem 1rem}.showcase-summary>div+div{border-left:1px solid var(--line)}.showcase-summary-label{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.75rem;font-weight:700}.showcase-summary strong{color:var(--ink);font-size:1.5rem;line-height:1.15;font-variant-numeric:tabular-nums}.showcase-summary>div>span:last-child{color:var(--muted);font-size:.72rem}.showcase-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding:.65rem .85rem;background:var(--paper);border:1px solid var(--line)}.showcase-toolbar-info{min-width:0;color:var(--ink-soft);font-size:.8rem}.showcase-toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.showcase-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem;padding:.85rem 1rem 1rem}.showcase-card{position:relative;min-width:0;background:var(--paper);border:1px solid var(--line)}.showcase-card.is-selected{border-color:var(--primary);background:var(--primary-light)}.showcase-card-check{position:absolute;top:.45rem;left:.5rem;z-index:2;padding:.15rem;background:var(--paper)}.showcase-card-open{display:flex;flex-direction:column;align-items:center;width:100%;padding:.8rem .7rem .75rem;color:inherit;background:transparent;border:0;text-align:center;cursor:pointer}.showcase-card-open:hover{background:var(--paper-soft)}.showcase-card.is-selected .showcase-card-open:hover{background:transparent}.showcase-card-open:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.showcase-card .device-grid-meta{width:100%}.showcase-state{display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem;color:var(--muted);font-size:.74rem;font-weight:700}.showcase-state:before{width:7px;height:7px;border-radius:50%;background:var(--neutral);content:""}.showcase-state.is-live{color:var(--success)}.showcase-state.is-live:before{background:var(--success)}.showcase-state.is-blocked,.showcase-state.is-error{color:var(--danger-text)}.showcase-state.is-blocked:before,.showcase-state.is-error:before{background:var(--danger)}.showcase-state.is-checking:before{background:var(--line-strong)}.showcase-card-source{max-width:100%;margin-top:.15rem;overflow:hidden;color:var(--ink-soft);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.showcase-conflict-tag,.showcase-tag{display:inline-flex;align-items:center;max-width:100%;overflow:hidden;padding:.05rem .45rem;border:1px solid;border-radius:999px;font-size:.66rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.showcase-conflict-tag{margin-top:.35rem;color:var(--warning);background:#fffbeb;border-color:#fde68a}.showcase-tag{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.device-row-status .showcase-tag,.device-grid-status .showcase-tag{margin-left:.15rem}.showcase-ov-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;container-type:size;pointer-events:none}.showcase-ov{position:absolute;display:flex}.showcase-qr{display:block;width:100%;height:auto}.showcase-ov-corner{right:3.5%;bottom:4.5%;width:17cqmin;padding:1.6cqmin;background:#fff;border-radius:1.6cqmin}.showcase-ov-compact{right:3%;bottom:3.5%;flex-direction:column;align-items:center;width:19cqmin;padding:1.6cqmin 1.6cqmin .8cqmin;background:#fff}.showcase-ov-compact span{margin-top:.4cqmin;color:#111;font-size:2.5cqmin;line-height:1.2;white-space:nowrap}.showcase-ov-bar{right:0;bottom:0;left:0;align-items:center;gap:2.5cqw;height:19%;padding:0 3cqw}.showcase-ov-bar.is-white{color:#111;background:#fff}.showcase-ov-bar.is-glass{color:#fff;background:#0f172a99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.showcase-ov-logo{font-size:4.2cqw;font-weight:800;letter-spacing:-.02em}.showcase-ov-logo-img{display:block;flex:0 1 auto;height:68%;width:auto;max-width:42%;object-fit:contain;object-position:left center}.showcase-ov-cta{margin-left:auto;font-size:2.9cqw;font-weight:600;white-space:nowrap}.showcase-ov-bar .showcase-qr{width:auto;height:80%;padding:.5cqw;background:#fff}.showcase-connect{display:grid;gap:.75rem;max-width:30rem;padding:1.25rem;background:var(--paper);border:1px solid var(--line)}.showcase-connect h3{margin:0;font-size:1.05rem}.showcase-connect p{margin:0;color:var(--ink-soft);font-size:.86rem}.showcase-connect .btn{justify-self:start}.side-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:260;visibility:hidden;pointer-events:none;transition:visibility 0s .24s}.side-drawer.is-open{transition-delay:0s;visibility:visible;pointer-events:auto}.side-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 32%,transparent);opacity:0;transition:opacity .22s}.side-drawer.is-open .side-drawer-backdrop{opacity:1}.side-drawer-panel{position:absolute;top:0;right:0;display:flex;width:min(32rem,100%);height:100%;flex-direction:column;background:var(--paper);box-shadow:-14px 0 30px color-mix(in srgb,var(--ink) 16%,transparent);transform:translate(100%);transition:transform .24s cubic-bezier(.32,.72,0,1)}.side-drawer.is-open .side-drawer-panel{transform:translate(0)}.side-drawer-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line-strong)}.side-drawer-actions{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;margin-left:auto}.side-drawer-actions .showcase-stop{color:var(--danger-text);background:var(--paper);border-color:var(--danger-border)}.side-drawer-actions .showcase-stop:hover:not(:disabled){color:var(--danger-text);background:var(--danger-light);border-color:var(--danger)}.side-drawer-dismiss{display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;color:var(--ink-soft);background:transparent;border:1px solid transparent;cursor:pointer}.side-drawer-dismiss:hover{color:var(--ink);background:var(--paper-soft);border-color:var(--line)}.side-drawer-heading{display:grid;flex:1;min-width:0}.side-drawer-title{overflow-wrap:anywhere;display:flex;align-items:center;gap:.45rem;margin:0;font-size:1.2rem;line-height:1.2}.side-drawer-sub{margin:.25rem 0 0;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.side-drawer-body{min-height:0;overscroll-behavior:contain;flex:1;overflow:auto;padding:1rem 1.25rem 1.5rem}.showcase-preview{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:center}.showcase-preview .device-card-frame-box{width:100%;height:9rem}.showcase-preview strong{display:block;margin-bottom:.25rem;font-size:.86rem}.showcase-preview p{margin:0;color:var(--ink-soft);font-size:.78rem}.showcase-section{min-width:0;margin:0 0 1.35rem;padding:0;border:0}.showcase-section>legend{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.55rem;padding:0;color:var(--ink);font-size:.86rem;font-weight:750}.showcase-section>legend small{color:var(--muted);font-size:.74rem;font-weight:500}.showcase-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;padding:.7rem .8rem;background:var(--paper);border:1px solid var(--line);cursor:pointer}.showcase-choice+.showcase-choice,.showcase-choice-body+.showcase-choice{margin-top:.45rem}.showcase-choice.is-on{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.showcase-choice input{margin-top:.2rem;accent-color:var(--primary)}.showcase-choice strong{display:block;color:var(--ink);font-size:.86rem}.showcase-choice span span{color:var(--muted);font-size:.76rem}.showcase-choice-body{padding:.75rem .8rem .85rem;border:1px solid var(--primary);border-top:0}.showcase-album-list{display:grid;gap:.35rem;max-height:13.5rem;overflow:auto}.showcase-album{display:flex;align-items:center;gap:.6rem;padding:.35rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);text-align:left;cursor:pointer}.showcase-album:hover{background:var(--paper-soft)}.showcase-album.is-on{background:var(--primary-light);border-color:var(--primary)}.showcase-album img,.showcase-album-empty{width:2.75rem;height:2.75rem;flex-shrink:0;object-fit:cover;background:var(--paper-deep)}.showcase-album-text{display:grid;min-width:0;font-size:.8rem;font-weight:650}.showcase-album-text small{color:var(--muted);font-size:.7rem;font-weight:500}.showcase-interval{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.75rem;color:var(--ink-soft);font-size:.8rem}.showcase-interval input:not([type=checkbox]):not([type=radio]){width:4.25rem;min-height:2.25rem;padding:.35rem .5rem;text-align:center;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.showcase-interval input::-webkit-inner-spin-button,.showcase-interval input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.showcase-welcome{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.85rem;align-items:start}.showcase-welcome-img,.showcase-welcome-empty{width:7.5rem;aspect-ratio:4 / 3;object-fit:cover;background:var(--paper-deep);border:1px solid var(--line)}.showcase-welcome-empty{display:grid;place-items:center;padding:.5rem;color:var(--muted);font-size:.72rem;text-align:center}.showcase-welcome .form-hint{margin:.45rem 0 0}.showcase-logo{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:.85rem;align-items:center}.showcase-logo-preview,.showcase-logo-empty{width:100%;max-width:11rem;aspect-ratio:3.539 / 1;object-fit:contain;background:var(--paper-deep);border:1px solid var(--line)}.showcase-logo-empty{display:grid;place-items:center;padding:.35rem;color:var(--muted);font-size:.72rem;text-align:center}.showcase-logo-actions{display:flex;flex-wrap:wrap;gap:.4rem}.showcase-logo .form-hint{margin:.45rem 0 0}.showcase-styles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.showcase-style{display:grid;justify-items:start;gap:.15rem;min-width:0;padding:.5rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);text-align:left;cursor:pointer}.showcase-style:hover{background:var(--paper-soft)}.showcase-style.is-on{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.showcase-style .device-card-frame-box{display:block;width:100%;height:auto;margin-bottom:.25rem}.showcase-style .device-card-frame{display:block}.showcase-style .device-card-frame.is-landscape{width:100%}.showcase-style .device-card-frame.is-portrait{width:55%;height:auto;margin:0 auto}.showcase-style-name{font-size:.78rem;font-weight:750}.showcase-style-desc{color:var(--muted);font-size:.7rem;line-height:1.35}.showcase-demo-strip{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;padding:.7rem .8rem;color:var(--ink-soft);border:1px dashed var(--line-strong);font-size:.78rem}.showcase-demo-strip>span:nth-child(2){flex:1 1 12rem}.showcase-demo-badge{padding:.05rem .35rem;color:var(--ink-soft);background:var(--paper-deep);font-size:.64rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.side-drawer-footer{flex-shrink:0;padding:.85rem 1.25rem max(1rem,env(safe-area-inset-bottom));border-top:1px solid var(--line-strong)}.side-drawer :focus-visible{outline:2px solid var(--focus);outline-offset:2px}.side-drawer button:disabled{opacity:.5;cursor:not-allowed}.showcase-conflict-list{margin:.6rem 0 .75rem;padding-left:1.1rem;color:var(--ink-soft);font-size:.84rem}.showcase-conflict-list li+li{margin-top:.3rem}.showcase-conflict-list strong{color:var(--ink)}.showcase-decision{display:grid;gap:.45rem;margin:0;padding:0;border:0}.showcase-decision label{display:flex;align-items:flex-start;gap:.5rem;color:var(--ink);font-size:.84rem;cursor:pointer}.showcase-decision input{margin-top:.2rem;accent-color:var(--primary)}.showcase-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.modal-box:has(.showcase-batch){width:min(100%,60rem)}.showcase-batch{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem}.showcase-batch section{display:grid;align-content:start;gap:.75rem;min-width:0}.showcase-batch-title{margin:0;color:var(--ink);font-size:.9rem}.showcase-style-chips{display:flex;flex-wrap:wrap;gap:.35rem}.showcase-style-chips .device-view-btn{border:1px solid var(--line-strong)}.showcase-style-chips .device-view-btn+.device-view-btn{border-left:1px solid var(--line-strong)}.showcase-check{display:grid;gap:.15rem;padding:.6rem .75rem;color:var(--ink-soft);border:1px solid var(--line);font-size:.8rem}.showcase-check strong{color:var(--ink)}.showcase-check.is-ok strong{color:var(--success)}.showcase-check.is-blocked strong{color:var(--danger-text)}.showcase-check.is-warn{background:#fffbeb;border-color:#fde68a}.showcase-check.is-warn strong{color:var(--warning)}.showcase-check.is-info strong{color:var(--primary-dark)}.showcase-check .showcase-conflict-list{margin:.35rem 0 .5rem}.showcase-wl{display:grid;gap:.6rem}.showcase-wl .form-hint{margin:0}.showcase-wl-fill{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .6rem;color:var(--warning);background:#fffbeb;border:1px solid #fde68a;font-size:.78rem;font-weight:650}.showcase-wl-list{display:grid;gap:.4rem;max-height:16rem;margin:0;padding:0;overflow:auto;list-style:none}.showcase-wl-list li{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.4rem;background:var(--paper);border:1px solid var(--line)}.showcase-wl-list li.is-new{border-color:var(--primary);background:var(--primary-light)}.showcase-wl-thumb{display:grid;place-items:center;width:3.25rem;max-height:3.25rem;overflow:hidden;background:var(--paper-deep);border:1px solid var(--line)}.showcase-wl-thumb img{display:block;width:100%;height:100%;object-fit:cover}.showcase-wl-text{display:grid;min-width:0;font-size:.8rem}.showcase-wl-text strong{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.showcase-wl-text small{color:var(--muted);font-size:.7rem}.showcase-wl-list li.is-new .showcase-wl-text small{color:var(--primary-dark)}.showcase-wl-list li:is(.is-missing,.is-failed,.is-removed) .showcase-wl-text small{color:var(--warning)}.showcase-wl-remove{color:var(--danger-text)}.showcase-wl-actions{display:flex;align-items:center;gap:.25rem}.showcase-batch-source{margin-bottom:.25rem}.showcase-batch-source .showcase-choice-body{display:grid;gap:.75rem}.showcase-batch-source .showcase-choice-body[hidden]{display:none}.showcase-batch .device-view-toggle{justify-self:start}.showcase-result-list{margin:0;padding:0;list-style:none}.showcase-result-list li{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.84rem}.showcase-result-list li:last-child{border-bottom:0}.showcase-result-list li:before{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--neutral);content:""}.showcase-result-list li.is-live:before{background:var(--success)}.showcase-result-list li.is-failed:before{background:var(--danger)}.showcase-result-name{flex:1;min-width:0;color:var(--ink);font-weight:650}.showcase-result-msg{color:var(--muted);font-size:.78rem;text-align:right}.showcase-result-list li.is-failed .showcase-result-msg{color:var(--danger-text)}@media(max-width:767px){.showcase-summary,.showcase-summary.has-visitors{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase-summary>div:nth-child(odd){border-left:0}.showcase-summary>div:nth-child(n+3){border-top:1px solid var(--line)}.showcase-batch{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.side-drawer,.side-drawer-backdrop,.side-drawer-panel{transition:none}}.settings-drawer-actions,.showcase-footer-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}@media(pointer:coarse){.side-drawer button,[data-device-action]{min-height:44px;min-width:44px}}:is(#device-settings-drawer,#showcase-drawer) .side-drawer-panel{width:min(21.5rem,100%)}:is(#device-settings-drawer,#showcase-drawer) .side-drawer-body{padding:1rem;background:var(--paper-soft)}:is(#device-settings-drawer,#showcase-drawer,.rl-inspector) .side-drawer-header,:is(#device-settings-drawer,#showcase-drawer) .side-drawer-footer{background:var(--paper);border-color:var(--line)}#device-settings-drawer .settings-section,#showcase-drawer .showcase-section,#showcase-drawer .showcase-preview,.rl-section{margin-bottom:.75rem;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:8px}#device-settings-drawer .settings-section-title,#showcase-drawer .showcase-section>legend{color:var(--ink);font-size:.84rem;letter-spacing:normal;text-transform:none}:is(#device-settings-drawer,#showcase-drawer) :is(input,select){min-width:0;border-color:var(--line);border-radius:4px}:is(#device-settings-drawer,#showcase-drawer) :is(input,select):focus{border-color:var(--primary)}#device-settings-drawer .settings-field{min-width:0;align-content:start}#device-settings-drawer .settings-field :is(input,select){-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%;height:2.75rem;margin:0;line-height:1.25}#device-settings-drawer .settings-field select{padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 1rem) 50%,calc(100% - .75rem) 50%;background-size:.25rem .25rem;background-repeat:no-repeat}#device-settings-drawer input[type=time]::-webkit-date-and-time-value{min-height:1.25em;text-align:left}@media(forced-colors:active){#device-settings-drawer .settings-field select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background-image:none}}#device-settings-drawer .settings-footer-note,#showcase-drawer .showcase-footer-hint{margin:0 0 .75rem;color:var(--ink-soft);font-size:.75rem;line-height:1.6}#showcase-drawer .showcase-footer-hint:last-child{margin-bottom:0}#showcase-drawer .showcase-section>legend{float:left;width:100%;flex-wrap:wrap;margin-bottom:.65rem}#showcase-drawer .showcase-section>legend+*{clear:both}#showcase-drawer .showcase-section:last-of-type{margin-bottom:0}#showcase-drawer .showcase-welcome,#showcase-drawer .showcase-logo{grid-template-columns:minmax(0,1fr)}#showcase-drawer .showcase-album-text{overflow-wrap:anywhere}#showcase-drawer :is(.showcase-style,.showcase-album,.showcase-choice,.showcase-welcome-img,.showcase-welcome-empty,.showcase-logo-preview,.showcase-logo-empty){border-radius:4px}#showcase-drawer .showcase-choice:has(+.showcase-choice-body){border-radius:4px 4px 0 0}#showcase-drawer .showcase-choice-body{border-radius:0 0 4px 4px}#showcase-drawer .showcase-demo-strip{margin-top:.75rem;border-radius:8px}#showcase-drawer .showcase-language-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;border-color:var(--line);border-radius:4px}#showcase-drawer .showcase-language-toggle .device-view-btn{min-width:0;min-height:2.25rem}.settings-identity-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem}.settings-identity-meta{margin:.65rem 0 0;overflow-wrap:anywhere;line-height:1.5}.settings-timezone-hint{margin:0;color:var(--muted);font-size:.75rem;line-height:1.5}.settings-sleep-fields:not([hidden]){display:grid;gap:.75rem;margin-top:.75rem}#device-settings-drawer .settings-device-info{margin-bottom:0;padding:0 .25rem;background:transparent;border:0;border-radius:0}.settings-device-info>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;color:var(--ink-soft);font-size:.82rem;font-weight:650;list-style:none;cursor:pointer}.settings-device-info>summary::-webkit-details-marker{display:none}.settings-device-info>summary:after{content:"";width:.45rem;height:.45rem;margin-right:.25rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);flex-shrink:0}.settings-device-info[open]>summary:after{transform:rotate(225deg)}.settings-device-info .settings-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;padding:.5rem 0 .75rem}.settings-device-info .settings-info-item{min-width:0}.settings-device-info .settings-info-value{overflow-wrap:anywhere}#device-settings-drawer .settings-select-row,#device-settings-drawer .settings-time-row{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:380px){.settings-device-info .settings-info-grid,.settings-identity-row{grid-template-columns:minmax(0,1fr)}}@media(any-pointer:coarse){.album-menu-btn,.photo-menu-btn{opacity:1;width:44px;height:44px}.album-card>.action-menu,.photo-item>.photo-action-menu{top:calc(.35rem + 46px)}.tree-action-btn,.action-trigger{min-width:44px;min-height:44px}.action-menu-item,.tree-menu-item,.ctx-menu-item{min-height:44px}.photo-thumb{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.touch-photo-target-label{position:fixed;z-index:10001;width:max-content;max-width:min(280px,calc(100vw - 16px));padding:8px 12px;border:1px solid var(--primary);border-radius:6px;background:var(--primary-light);color:var(--primary-dark);font-size:14px;overflow-wrap:anywhere;pointer-events:none}.touch-photo-target-label.is-unavailable{color:var(--muted);border-color:var(--line);background:var(--paper-deep)}.touch-photo-drag-preview{position:fixed;z-index:10000;width:72px;height:56px;object-fit:contain;background:var(--paper);border:2px solid var(--primary);pointer-events:none;opacity:.85}#album-upload-entry{position:fixed;right:18px;bottom:18px;z-index:80;max-width:calc(100vw - 36px);white-space:normal}.upload-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;aspect-ratio:4 / 3;padding:12px;border:1px dashed var(--line-strong);background:var(--paper-soft);color:var(--muted);text-align:center}.upload-card[data-state=uploading],.upload-card[data-state=processing]{border-color:var(--primary);background:var(--primary-light)}.upload-icon{flex-shrink:0}.upload-state{font-size:13px;font-weight:600;color:var(--ink-soft)}.upload-name{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.upload-reason{font-size:12px;overflow-wrap:anywhere;max-height:3em;overflow:auto}.upload-progress{display:block;width:min(100%,120px);height:5px;border:0;border-radius:3px;overflow:hidden;accent-color:var(--primary)}.upload-progress::-webkit-progress-bar{background:var(--line)}.upload-progress::-webkit-progress-value{background:var(--primary)}.upload-progress::-moz-progress-bar{background:var(--primary)}.upload-card[data-state=failed]{border-color:var(--danger-border)}.upload-card[data-state=unknown]{border-color:var(--warning)}.upload-card[data-state=failed] .upload-icon,.upload-card[data-state=unknown] .upload-icon{display:none}#album-upload-entry,.upload-refresh,.upload-retry{min-height:44px;min-width:44px}.navbar .lang-switch,.navbar #logout-btn{font-size:.75rem}.navbar-brand{min-width:0}.navbar-brand-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#view-devices .device-view-toggle{padding:0;margin-inline-start:auto}.device-ctx-menu .ctx-menu-item{min-height:44px}.device-selection-bar[hidden]{display:none}#device-selection-count{font-size:.82rem;font-weight:650}.device-grid-actions{margin-top:auto;padding-top:.5rem}.device-grid-meta:empty{display:none}.subgroup-header{flex-wrap:wrap}.subgroup-name{min-width:0;overflow-wrap:anywhere}@media(max-width:767px){.nav-user-badge{gap:.4rem}.navbar .lang-switch{--lang-columns: minmax(0, 1fr) 14px;--lang-column-gap: 6px}.navbar .lang-switch-trigger{width:104px}.navbar .lang-switch-icon{display:none}.navbar .lang-switch-menu button:before{display:none}.navbar-docs{font-size:.7rem}.navbar #logout-btn{padding-inline:.5rem}#view-devices .scope-header{gap:.65rem;margin-bottom:.75rem;padding-bottom:.75rem}.device-header-overview{gap:.6rem}.device-header-overview .scope-header-actions{gap:.5rem}.store-summary-header{padding:.5rem;gap:.4rem}.store-summary-body{padding:.5rem}.subgroup-block{padding:.4rem}.subgroup-header{gap:.3rem}.device-grid-card{padding:.55rem .4rem}.device-card-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;margin-top:.3rem;line-height:1.3}.device-grid-status{flex-wrap:wrap;justify-content:center;gap:.25rem}.device-grid-actions{gap:.3rem;justify-content:center}.device-grid-actions .btn{padding-inline:.5rem}}:is(.navbar #logout-btn,.sidebar-toggle,#view-devices .btn){min-height:32px;height:32px;padding-block:0}:is(.navbar #logout-btn,#view-devices .btn){position:relative}#view-devices .scope-header-actions>.btn{min-height:32px}.sidebar-toggle{position:fixed;box-shadow:none}.navbar .lang-switch{height:32px;min-height:32px}#view-devices .device-view-toggle{height:32px;border-color:var(--line)}#view-devices .device-view-btn{position:relative;height:30px;min-height:30px;padding-block:0}#view-devices :is([data-device-action=more],[data-entity-more]){color:var(--ink-soft);background:transparent;border-color:transparent}#view-devices :is([data-device-action=more],[data-entity-more]):hover{color:var(--primary);background:var(--primary-light)}.store-summary-controls{display:contents}@media(max-width:767px){.sidebar-toggle,.sidebar-toggle.is-expanded{position:relative;top:auto;left:auto}.store-summary-controls{display:flex;grid-area:controls;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .75rem;min-width:0}.store-summary--monitor .store-summary-actions{margin:0 0 0 auto}.store-summary--monitor .store-summary-health{flex-wrap:wrap}}@media(any-pointer:coarse){:is(.navbar #logout-btn,.sidebar-toggle,#view-devices .btn){min-width:44px;margin-block:6px}:is(.navbar #logout-btn,.sidebar-toggle,#view-devices .btn):after{content:"";position:absolute;top:-6px;right:0;bottom:-6px;left:0}.navbar .lang-switch{margin-block:6px}.lang-switch-trigger:after{content:"";position:absolute;top:-6px;right:0;bottom:-6px;left:0}.lang-switch--login{margin-block:4px}#view-devices .device-view-toggle{margin-block:6px}#view-devices .device-view-btn{min-width:44px}#view-devices .device-view-btn:after{content:"";position:absolute;top:-7px;right:0;bottom:-7px;left:0}}@media(min-width:768px)and (max-width:1200px){:root{--navbar-h: 101px}.navbar{display:grid;grid-template:55px 46px / minmax(0,1fr) auto;grid-template-areas:"brand user" "tabs tabs";gap:0 .5rem}.navbar-brand{grid-area:brand}.nav-user-badge{grid-area:user}.navbar-tabs{grid-area:tabs}.navbar-tab{flex-shrink:0}}.campaign-touch-slots{display:none}@media(any-pointer:coarse){.campaign-resize{display:none}.campaign-touch-slots{display:grid;gap:.5rem;margin-top:.75rem}.campaign-touch-slots button{min-height:44px;width:100%;padding:.5rem .75rem;text-align:left;white-space:normal;overflow-wrap:anywhere}.campaign-touch-slots button[aria-pressed=true]{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark)}#modal-body:has(#sf-device) :is(button,input:not([type=radio]),select),#modal-overlay:has(#sf-device) #modal-footer button,#view-slideshow :is(.btn,.device-view-btn),#showcase-drawer .showcase-language-toggle .device-view-btn,#showcase-drawer #sc-interval,.campaign-more{min-height:44px;min-width:44px}}.filter-check:has(.filter-locate){padding-block:0}.filter-locate{display:flex;align-items:center;gap:.45rem;flex:1;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.sidebar-locate-highlight{outline:2px solid var(--primary);outline-offset:-2px}.battery.is-charging .battery-icon{opacity:1}.battery.is-charging .battery-fill{opacity:.8}.battery-charging-icon{position:absolute;left:50%;top:50%;width:65%;height:180%;transform:translate(-50%,-50%);overflow:visible;pointer-events:none}.battery.is-charging>[role=img]{display:inline-flex;align-items:center}.battery-charging-bolt{fill:#000;stroke:#fff;stroke-width:1.6}.guest-link .activity-heading,.guest-link .section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.guest-link .activity-heading{margin:26px 0}.guest-link .activity-heading h1{margin:0;font-size:24px}.guest-link .activity-heading p{margin:6px 0 0;color:var(--muted)}.guest-link .section-heading h2{margin:0;font-size:18px}.guest-link .section-heading>span{font-size:13px;color:var(--muted)}.guest-link .activities-section{padding-bottom:24px}.guest-link .activity-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.guest-link .activity-tab{display:flex;align-items:center;gap:22px;background:#fff;border:1px solid var(--line);padding:14px 18px;text-align:left}.guest-link .activity-tab.selected{border-color:var(--primary);background:var(--primary-light)}.guest-link .activity-tab span{font-size:13px;color:var(--muted)}.guest-link .activity-editor{background:var(--paper);border:1px solid var(--line);padding:24px}.guest-link .field-label{display:block;margin:22px 0 8px;font-weight:500}.guest-link .activity-name{width:100%;max-width:560px;padding:10px 12px;border:1px solid var(--line);background:var(--paper)}.guest-link .frames-heading{margin-top:24px}.guest-link .frames-heading h3{font-size:15px}.guest-link .frames-heading h3 span{font-weight:400;color:var(--muted)}.guest-link .editor-footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.guest-link .editor-footer>span{margin-right:auto;color:var(--muted);font-size:13px}.guest-link #form-error{color:var(--danger);margin-bottom:0}.guest-link .empty-state{text-align:center;border:1px dashed var(--line);padding:64px 24px}.guest-link .empty-state h2{font-size:20px}.guest-link .empty-state p,.guest-link .muted{color:var(--muted)}.guest-link .preview-list{background:#fff;border:1px solid var(--line)}.guest-link .preview-list>div{padding:14px 18px;border-bottom:1px solid var(--line)}.guest-link .preview-list span{float:right;color:var(--muted);font-size:13px}.guest-link .drop-zone{position:relative;min-height:156px;border:1px dashed var(--line-strong);background:var(--paper-soft);padding:20px}.guest-link .drop-zone.drag-over{border-color:var(--primary);background:var(--primary-light)}.guest-link .member-list{display:grid;grid-template-columns:repeat(auto-fill,156px);gap:20px 16px;align-items:start}.guest-link .member{min-width:0;cursor:grab;background:var(--paper);border:1px solid var(--line);padding:10px;position:relative}.guest-link .member.is-dragging{opacity:.4}.guest-link .member-preview{height:132px;display:flex;align-items:center;justify-content:center;position:relative;padding:5px}.guest-link .member-frame{max-width:100%;max-height:100%;border:3px solid #475569;background:var(--paper);overflow:hidden}.guest-link .member-frame img{display:block;width:100%;height:100%;object-fit:cover}.guest-link .member-number{position:absolute;top:0;left:0;background:var(--paper);border:1px solid var(--line);min-width:22px;text-align:center;font-size:12px;color:var(--muted)}.guest-link .member-name{display:block;font-size:13px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-link .drop-hint{text-align:center;color:var(--muted);font-size:13px;margin:20px 0 0}.guest-link .member-list:empty+.insert-marker+.drop-hint{margin-top:40px}.guest-link .insert-marker{position:absolute;width:3px;background:var(--primary);pointer-events:none;z-index:2;border-radius:2px}.guest-link .insert-marker[hidden]{display:none}.guest-link .insert-marker:before,.guest-link .insert-marker:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--primary);left:-3px}.guest-link .insert-marker:before{top:-3px}.guest-link .insert-marker:after{bottom:-3px}.guest-link .insert-marker span{position:absolute;left:0;top:-22px;white-space:nowrap;background:var(--primary);color:#fff;padding:2px 6px;font-size:11px}.guest-link .member-remove{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:22px;line-height:1;cursor:pointer;opacity:0;pointer-events:none}.guest-link .member:hover .member-remove,.guest-link .member:focus-within .member-remove{opacity:1;pointer-events:auto}.guest-link .member-remove:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-light)}.guest-link .member-remove:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(hover:none){.guest-link .member-remove{opacity:1;pointer-events:auto}}#app-shell[hidden]{display:none}.room-editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--paper-soft);display:flex;flex-direction:column;color:var(--ink);font-size:15px}.room-editor [hidden]{display:none!important}.rl-header{display:flex;align-items:center;gap:24px;min-height:76px;padding:12px 28px;border-bottom:1px solid var(--line);background:var(--paper);flex-shrink:0}.rl-heading{padding-left:24px;border-left:1px solid var(--line)}.rl-heading small{font-size:12px;color:var(--muted)}.rl-heading h1{font-size:18px;margin:0;line-height:1.5}.rl-badge{font-size:11px;color:var(--muted);font-weight:400;padding:2px 7px;border:1px solid var(--line);margin-left:8px;white-space:nowrap}.rl-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.rl-actions>span{font-size:12px;color:var(--muted)}.room-editor .btn{white-space:nowrap}.rl-workspace{display:flex;flex:1;min-height:0}.rl-main{flex:1;min-width:0;overflow:auto;padding:26px 32px}.rl-room-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}.rl-room-heading h2{font-size:22px;margin:0 0 6px;overflow-wrap:anywhere}.rl-room-heading p{margin:0;color:var(--muted);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.rl-room-heading>.btn{flex-shrink:0}.rl-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.rl-toolbar span{margin-left:auto;font-size:12px;color:var(--muted)}.rl-wall{background:var(--paper);border:1px solid var(--line);margin-bottom:16px}.rl-wall-head{display:flex;align-items:center;gap:10px;padding:10px 18px;min-height:49px;border-bottom:1px solid var(--line)}.rl-wall-head h3{font-size:13px;margin:0;overflow-wrap:anywhere}.rl-wall-head>span{font-size:12px;white-space:nowrap;color:var(--muted)}.rl-wall-tools{display:flex;gap:4px;margin-left:auto}.rl-wall-tools .btn{font-size:12px;padding:4px 8px;color:var(--muted)}.rl-stage{position:relative;width:100%;aspect-ratio:3/1;overflow:hidden;isolation:isolate;container-type:inline-size}.rl-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.rl-frame-wrap{position:absolute;z-index:1;transform:translate(-50%,-50%)}.rl-frame{display:flex;align-items:stretch;width:100%;padding:6px;border:4px solid var(--ink-soft);background:var(--paper);position:relative;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.rl-frame:active{cursor:grabbing}.rl-frame-inside{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:var(--paper-soft);color:var(--muted);width:100%;overflow:hidden;pointer-events:none}.rl-frame-inside>span{font-size:clamp(10px,1.2cqw,13px)}.rl-frame-inside svg{max-width:30%;height:auto}.rl-frame-inside img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0;padding:6px}.rl-frame.is-selected{outline:2px solid var(--primary);outline-offset:4px}.rl-corner{display:none;position:absolute;width:7px;height:7px;border:1px solid var(--primary);background:var(--paper);pointer-events:none}.rl-frame.is-selected .rl-corner{display:block}.rl-corner.tl{left:-10px;top:-10px}.rl-corner.tr{right:-10px;top:-10px}.rl-corner.bl{left:-10px;bottom:-10px}.rl-corner.br{right:-10px;bottom:-10px}.rl-frame-name{position:absolute;top:calc(100% + 10px);left:-25%;width:150%;font-size:clamp(10px,1.3cqw,13px);text-align:center;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.rl-frame-wrap:has(.is-selected) .rl-frame-name{color:var(--primary);font-weight:600}.rl-bottom-note{font-size:12px;text-align:center;color:var(--muted);margin-top:20px}.rl-inspector{width:344px;flex-shrink:0;background:var(--paper-soft);border-left:1px solid var(--line);display:flex;flex-direction:column;animation:rl-slide-in .2s ease-out}.rl-inspector .side-drawer-header{padding:14px 20px}.rl-inspector .side-drawer-title{font-size:16px}.rl-inspector-body{flex:1;min-height:0;overflow:auto;padding:16px}.rl-section h3{font-size:13px;margin:0 0 16px}.rl-field{display:block;font-size:12px;color:var(--ink-soft);margin-top:14px}.rl-field:first-of-type{margin-top:0}.rl-field input,.rl-field textarea,.rl-field select{display:block;width:100%;min-width:0;margin-top:6px;border:1px solid var(--line);border-radius:4px;padding:9px 10px;background:var(--paper);font:inherit;font-size:14px;color:var(--ink)}.rl-field textarea{resize:vertical;min-height:94px;line-height:1.6}.rl-field input[type=range]{accent-color:var(--primary);padding:0;height:20px}.rl-field-row{display:flex;justify-content:space-between}.rl-hint{font-size:11px;line-height:1.6;color:var(--muted);margin:8px 0 0}.rl-section dl{margin:0}.rl-section dl>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-top:12px}.rl-section dt{color:var(--muted);flex-shrink:0}.rl-section dd{margin:0;text-align:right;overflow-wrap:anywhere}.rl-inspector-footer{border-top:1px solid var(--line);background:var(--paper);padding:16px 20px;color:var(--muted);font-size:11px}.rl-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;background:var(--primary-light);color:var(--primary);border-bottom:1px solid var(--primary-line);font-size:13px}.room-editor.is-preview .rl-header,.room-editor.is-preview .rl-inspector,.room-editor.is-preview .rl-toolbar,.room-editor.is-preview .rl-room-heading>.btn,.room-editor.is-preview .rl-wall-tools,.room-editor.is-preview .rl-bottom-note{display:none}.is-preview .rl-main{width:100%;max-width:1040px;margin:auto;height:100%}.is-preview .rl-frame{cursor:pointer}.is-preview .rl-frame-name{color:var(--ink);font-weight:400}.rl-dialog{width:min(440px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--paper)}.rl-dialog::backdrop{background:#1e293b4d}.rl-dialog h2{font-size:18px;margin:0 0 20px}.rl-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:20px}.rl-dialog-actions>[data-delete-area],.rl-dialog-actions>[data-remove-photo]{margin-right:auto}.rl-dialog-error{color:var(--danger);font-size:13px}.rl-photo-description{white-space:pre-wrap;overflow-wrap:anywhere}.rl-photo-preview{display:block;max-height:240px;max-width:100%;margin:auto;object-fit:contain}.room-editor :focus-visible{outline:2px solid var(--primary);outline-offset:3px}.room-editor .btn:disabled{cursor:wait;opacity:.55}.activity-editor-actions{display:flex;align-items:center;gap:16px}.activity-editor-actions>span{font-size:13px;color:var(--muted)}@keyframes rl-slide-in{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@media(prefers-reduced-motion:reduce){.rl-inspector{animation:none}}@media(max-width:1100px){.rl-main{padding:20px}.rl-header{gap:12px;padding:12px 20px}.rl-actions>span{display:none}.rl-heading{padding-left:12px}.rl-toolbar span{max-width:200px}.rl-inspector{width:310px}.rl-wall-head{flex-wrap:wrap}.rl-wall-tools{gap:0}.rl-frame{padding:3px;border-width:3px}.rl-frame-inside img{padding:3px}}@media(max-width:800px){.rl-header{flex-wrap:wrap}.rl-workspace{overflow:auto}.rl-main{min-width:500px}.rl-inspector{width:300px}.rl-heading h1{font-size:16px}.activity-editor-actions{flex-wrap:wrap}.is-preview .rl-main{min-width:0}.rl-stage{min-width:450px}.rl-wall{overflow:auto}}.room-editor .btn-text{border-color:transparent;background:transparent;text-decoration:none;font-weight:400}.room-editor .btn-text:hover{background:var(--paper-deep);color:var(--ink)}.rl-frame .rl-corner{pointer-events:auto;cursor:nwse-resize}.rl-frame .rl-corner.tr,.rl-frame .rl-corner.bl{cursor:nesw-resize}.rl-inventory{flex-shrink:0;border-top:1px solid var(--line);background:var(--paper);padding:12px 28px;min-height:126px}.rl-inventory-heading{display:flex;align-items:center;gap:20px;margin-bottom:10px}.rl-inventory-heading h2{font-size:14px;margin:0}.rl-inventory-heading h2 span{color:var(--muted);font-weight:400}.rl-inventory-heading p,.rl-inventory-heading>span{font-size:12px;color:var(--muted);margin:0}.rl-inventory-heading>span{margin-left:auto}.rl-inventory-list{display:flex;gap:10px;overflow-x:auto;min-height:62px}.rl-stock-frame{display:flex;align-items:center;gap:10px;background:var(--paper-soft);border:1px solid var(--line);padding:12px;min-width:170px;max-width:220px;cursor:grab}.rl-stock-frame span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.rl-stock-frame svg{flex-shrink:0;color:var(--muted)}.is-preview .rl-inventory,.is-preview .rl-return-frame{display:none}.rl-return-frame{position:absolute;right:-14px;top:-14px;border:1px solid var(--line);background:#fff;color:var(--muted);width:25px;height:25px;font-size:20px;line-height:20px;cursor:pointer;opacity:0}.rl-frame-wrap:hover .rl-return-frame,.rl-frame-wrap:focus-within .rl-return-frame{opacity:1}.rl-empty-layout{padding:60px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line)}.rl-stage-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:13px;pointer-events:none}.rl-stage.is-drop-target{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-light)}.rl-drag-ghost{position:fixed;z-index:1000;pointer-events:none;background:var(--primary);color:#fff;border:1px solid white;padding:8px 12px;font-size:12px}.rl-background-box{position:absolute;z-index:0;touch-action:none}.rl-background-box .rl-background{top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill}.rl-background-box.is-editing{outline:2px solid var(--primary);outline-offset:-2px;cursor:move}.is-background-editing .rl-frame-wrap{pointer-events:none}.rl-bg-handle{position:absolute;width:12px;height:12px;background:#fff;border:1px solid var(--primary);z-index:4}.rl-bg-handle.n{top:0;left:calc(50% - 6px);cursor:ns-resize}.rl-bg-handle.s{bottom:0;left:calc(50% - 6px);cursor:ns-resize}.rl-bg-handle.w{left:0;top:calc(50% - 6px);cursor:ew-resize}.rl-bg-handle.e{right:0;top:calc(50% - 6px);cursor:ew-resize}.rl-bg-handle.nw{top:0;left:0;cursor:nwse-resize}.rl-bg-handle.ne{top:0;right:0;cursor:nesw-resize}.rl-bg-handle.sw{bottom:0;left:0;cursor:nesw-resize}.rl-bg-handle.se{bottom:0;right:0;cursor:nwse-resize}.rl-wall-tools{flex-wrap:wrap;justify-content:flex-end}.rl-wall-tools [data-area-action=delete]:hover{color:var(--danger)}.rl-inventory.is-drop-target{background:var(--primary-light);outline:2px solid var(--primary);outline-offset:-2px}.rl-stock-preview{display:flex;align-items:center;justify-content:center;flex-direction:column;width:52px;height:52px;flex-shrink:0}.rl-stock-preview .rl-device-thumbnail{display:block;max-width:100%;max-height:100%;object-fit:cover;border:2px solid var(--ink-soft)}.rl-stock-preview>span{font-size:10px;white-space:normal}.rl-frame-inside .rl-device-thumbnail{pointer-events:none}.gl-local-notice{font-size:13px;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line)}.gl-frame-picker{max-height:45vh;overflow:auto;display:grid;gap:12px}.gl-frame-picker label{display:flex;align-items:center;gap:10px;min-height:44px}.guest-link .member-frame,.gl-device-thumb{position:relative;overflow:hidden}.gl-device-thumb{display:block}.rl-frame-inside .gl-device-thumb img{padding:0}.guest-link .member-frame .frame-thumb--rotated,.rl-frame-inside .frame-thumb--rotated{inset:auto;left:50%;top:50%;width:var(--thumb-width);height:var(--thumb-height)}.rl-stock-preview .gl-device-thumb{border:2px solid var(--ink-soft)}
