/* Scheduled surface palette; the video and app layout remain independent. */
:root{--mx-surface:#e9e8e1;--mx-ink:#353b37;--mx-muted:#60655d;--mx-hover:#dedfd5;--mx-line:#353b3726}
:root[data-mx-theme="dark"]{--mx-surface:#30332f;--mx-ink:#f4f3eb;--mx-muted:#d3d5c9;--mx-hover:#3b4039;--mx-line:#f4f3eb30}
html,body{margin:0!important;padding:0!important;width:100%;height:100%;overflow:hidden;zoom:1!important;background:var(--mx-surface)}
#dashboard{position:fixed!important;inset:0!important;padding:0!important;min-height:0!important;height:100dvh!important;overflow:hidden}
#dashboard:not(.visible){display:none!important}
#dashboard>.topbar,.dashboard-frost,.brand-watermark,.bottom-brand{display:none!important}
#stage{position:absolute;inset:0;width:100%;height:100%;margin:0;display:block;z-index:4;isolation:isolate}
#dashboard-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
html #dashboard-bg .dashboard-bg-layer video,html #dashboard-bg .dashboard-bg-layer img{position:absolute;inset:-9%;width:118%;height:118%;object-fit:cover;filter:grayscale(1) brightness(.95) contrast(.9);transform:none}
.mx-grid{position:absolute;inset:0;display:grid;pointer-events:none;gap:0}
.mx-empty{background:var(--mx-surface)}
.mx-tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-width:0;min-height:0;margin:0;padding:clamp(8px,1.15vw,18px);border:solid var(--mx-surface);border-radius:0;overflow:hidden;isolation:isolate;pointer-events:auto;background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.18) 100%);color:white;cursor:grab;text-align:left;text-shadow:0 1px 3px #0007;transition:color .65s cubic-bezier(.4,0,.2,1),text-shadow .65s}
.mx-tile::before{content:'';position:absolute;inset:0;background:var(--mx-surface);opacity:0;transition:opacity .65s cubic-bezier(.4,0,.2,1);z-index:-1}
.mx-tile::after{content:'→';position:absolute;top:14px;right:14px;opacity:0;transform:translateX(-4px);transition:opacity .5s,transform .5s}
.mx-tile:hover,.mx-tile:focus-visible{color:var(--mx-ink);text-shadow:none}
.mx-tile:hover::before,.mx-tile:focus-visible::before{opacity:1}
.mx-tile:hover::after,.mx-tile:focus-visible::after{opacity:1;transform:none}
.mx-tile:focus-visible{outline:2px solid #65725d;outline-offset:-4px}
#stage .mx-icon,#stage .mx-icon svg{width:18px;height:18px;max-height:none;position:static;stroke:currentColor;pointer-events:none}
.mx-label{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 10px/1.25 Arial,sans-serif;letter-spacing:.15px}
.mx-tile.is-no-access{opacity:.55;cursor:not-allowed}.mx-tile.is-no-access::after{content:'×'}
.mx-tile.dragging{opacity:.5}.mx-tile.reminder-pulse .mx-label::after{content:' ·';color:#9c633c}
/* The tile itself is the Buddy. Its eyes move; its position stays in the grid. */
.mx-buddy-tile{background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.18) 100%);color:white;text-shadow:0 1px 3px #0007;outline:none;box-shadow:inset 0 0 0 var(--mx-buddy-width,1px) color-mix(in srgb,var(--mx-ink) 35%,var(--mx-surface))}
.mx-buddy-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
#stage .mx-buddy-face svg{width:88%;height:88%;max-width:none;max-height:none;stroke:none;fill:currentColor;transition:fill .65s cubic-bezier(.4,0,.2,1)}
.mx-buddy-tile:hover .mx-buddy-face svg,.mx-buddy-tile:focus-visible .mx-buddy-face svg{fill:currentColor}
.mx-buddy-tile .mx-label{position:relative;margin-top:auto}
.mx-buddy-eye{transform-box:fill-box;transform-origin:center;transition:transform .12s ease}
@media(prefers-reduced-motion:reduce){#stage .mx-buddy-face svg,.mx-buddy-eye{transition:none!important}}
.mx-entry{position:absolute;z-index:7;padding:14px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;border:0;border-radius:0;background:var(--mx-surface);color:var(--mx-ink);text-align:left;font:10px Arial,sans-serif;letter-spacing:.6px;cursor:pointer;transition:background .65s}
.mx-entry:hover{background:var(--mx-hover)}.mx-entry small{font-size:10px;opacity:0;transition:opacity .5s}.mx-entry:hover small,.mx-entry:focus-visible small{opacity:1}
.mx-entry,.mx-tile{user-select:none}
.mx-profile input[type=checkbox]{appearance:none;width:29px;height:16px;background:#c9ccc1;border-radius:10px;position:relative;cursor:pointer;flex:none;margin:0}.mx-profile input[type=checkbox]::after{content:'';position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#f6f6ee;transition:transform .25s}.mx-profile input[type=checkbox]:checked{background:#718168}.mx-profile input[type=checkbox]:checked::after{transform:translateX(13px)}
.mx-entry.has-unread .mx-label::after{content:' ●';font-size:8px;color:#6b856c}
.mx-entry #chat-tab-alerts{position:absolute;top:12px;right:12px;display:flex;flex-direction:row;gap:8px;color:#53654f;writing-mode:horizontal-tb}
.mx-entry #chat-tab-alerts .chat-tab-alert{writing-mode:horizontal-tb;height:auto;min-height:0;flex-direction:row}.mx-entry #chat-tab-alerts .chat-tab-alert-word{display:none}
#stage #chat-tab-alerts svg{width:15px;height:15px}

.mx-quote{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;margin:0;padding:22px;pointer-events:none;color:var(--mx-muted);opacity:0;transition:opacity 1.4s;overflow:hidden;z-index:2}
.mx-quote p{font:italic 14px/1.5 Georgia,serif;margin:0}.mx-quote cite{font:8px/1.5 Arial,sans-serif;letter-spacing:1px;margin-top:12px;text-transform:uppercase}
.mx-drop{position:absolute;border:2px solid #65725d;background:#e9e8e133;z-index:8;pointer-events:none;display:none}
#chat-drawer{top:auto;left:0;bottom:0;width:var(--mx-panel-width,400px);height:var(--mx-panel-height,650px);transform:scale(.45);transform-origin:bottom left;opacity:0;visibility:hidden;transition:transform .55s cubic-bezier(.4,0,.2,1),opacity .4s,visibility .55s;background:var(--mx-surface);box-shadow:8px 0 24px #20282013;--chat-bg:var(--mx-surface);--chat-glass-white:var(--mx-surface)}
#chat-drawer.is-open{opacity:1;visibility:visible;transform:none}
#chat-drawer>.chat-tab{display:none}
#chat-drawer>.chat-panel{width:100%;flex:1;border:0;background:var(--mx-surface)}
.mx-profile{position:fixed;right:0;top:0;width:var(--mx-panel-width,400px);height:var(--mx-panel-height,650px);max-height:100dvh;background:var(--mx-surface);border-left:2px solid var(--mx-line);box-shadow:-8px 0 24px #20282013;z-index:72;padding:22px;display:flex;flex-direction:column;gap:20px;overflow:auto;opacity:0;visibility:hidden;transform:scale(.6);transform-origin:top right;transition:transform .55s cubic-bezier(.4,0,.2,1),opacity .4s,visibility .55s;color:var(--mx-ink);font:12px Arial,sans-serif}
.mx-profile.is-open{opacity:1;visibility:visible;transform:none}
.mx-profile header{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1.5px}.mx-profile button{color:inherit;background:transparent;border:0;padding:10px 0;text-align:left;cursor:pointer;font:12px Arial,sans-serif}.mx-profile header button{font-size:22px;padding:0 5px}
.mx-profile section{padding-bottom:18px;border-bottom:1px solid var(--mx-line)}.mx-profile h3{font:italic 22px Georgia,serif;margin:4px 0 20px}.mx-profile label{display:flex;justify-content:space-between;gap:12px;margin:18px 0}.mx-profile input[type=range]{width:115px;accent-color:#718168}.mx-profile p{font-size:11px;line-height:1.7;color:var(--mx-muted)}.mx-profile nav{display:flex;flex-direction:column}.mx-profile footer{font-size:10px;line-height:1.6;color:var(--mx-muted)}.mx-profile select{background:var(--mx-surface);color:var(--mx-ink);border:1px solid var(--mx-line);padding:5px;font:11px Arial,sans-serif}
.mx-profile .refresh-status{display:block;max-width:none;opacity:1}
.mx-profile #refresh-btn{display:block!important;width:auto!important;height:auto!important;opacity:1!important}
.admin-panel,.editor-panel{background:#e9e8e1}.admin-panel{z-index:120}.admin-overlay{z-index:110}
@media(prefers-reduced-motion:reduce){.mx-tile,.mx-tile::before,.mx-tile::after,.mx-profile,.mx-entry,.mx-quote,#chat-drawer{transition:none!important}}

#chat-drawer{color:var(--mx-ink);--ink:var(--mx-ink);--bg:var(--mx-surface);--ink-soft:var(--mx-muted);--chat-ink-soft:var(--mx-muted);--chat-line:var(--mx-line)}
.mx-entry #chat-tab-alerts{color:var(--mx-muted)}
#chat-drawer .chat-member-meta{color:var(--mx-muted)}
:root[data-mx-theme="dark"] #chat-drawer .chat-member-row:hover{background:#ffffff0d}

/* A quiet search bar beside the Buddy; details appear only after typing. */
.mx-buddy-search{position:absolute;z-index:30;color:var(--mx-ink);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-6px);transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .35s,visibility .5s;font:12px/1.5 Arial,sans-serif}
.mx-buddy-search[data-side="left"]{transform:translateX(6px)}
.mx-buddy-search.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.mx-buddy-search form{margin:0;height:100%}
.mx-search-input{display:flex;gap:12px;align-items:center;height:100%;padding:0 18px;background:#fafaf7;color:#30322e;border:1px solid #d5d5cd;border-radius:14px;box-shadow:0 3px 14px #0000000a}
.mx-search-input svg{width:18px;height:18px;stroke:#74766e;fill:none;stroke-width:1.5;flex:none}
.mx-buddy-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:#30322e;font:14px/1.5 Arial,sans-serif}
.mx-buddy-search input::placeholder{color:#85877f;opacity:1}
.mx-search-input:focus-within{border-color:#92968a}
.mx-search-content{position:absolute;top:calc(100% + 8px);left:0;width:100%;overflow:auto;padding:18px;background:var(--mx-surface);border:1px solid var(--mx-line);border-radius:12px;box-shadow:0 6px 20px #00000012;overscroll-behavior:contain}
.mx-search-content[hidden]{display:none}
.mx-buddy-search.opens-up .mx-search-content{top:auto;bottom:calc(100% + 8px)}
.mx-buddy-search button{border:0;border-radius:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left}
.mx-search-caption{margin:0 0 10px;font-size:8px;letter-spacing:1.3px;color:var(--mx-muted)}
.mx-buddy-search .mx-search-result{color:inherit;text-decoration:none;cursor:pointer;display:flex;flex-direction:column;width:100%;padding:9px 0;line-height:1.3;border-bottom:1px solid var(--mx-line)}
.mx-search-result small{font-size:7px;letter-spacing:1.1px;color:var(--mx-muted)}
.mx-search-result strong{font-weight:400;font-size:13px;margin:3px 0}
.mx-search-result span{font-size:12px;line-height:1.55;color:var(--mx-muted)}
.mx-search-result:hover,.mx-search-result:focus-visible{background:var(--mx-hover)}
.mx-search-result:focus-visible,.mx-buddy-search button:focus-visible{outline:1px solid var(--mx-muted);outline-offset:3px}
.mx-search-empty{color:var(--mx-muted);font-size:11px;margin:0}
@media(prefers-reduced-motion:reduce){.mx-buddy-search{transition:none!important}}

/* Separate sibling button avoids nesting a search button inside the app button. */
.mx-buddy-tile.has-search-trigger::after{display:none}
.mx-buddy-search-trigger{align-self:start;justify-self:end;position:relative;z-index:2;margin:8px;width:30px;height:30px;padding:0;border:0;background:transparent;color:white;font:18px/1 Arial,sans-serif;cursor:pointer;opacity:0;pointer-events:none;transform:translateX(-4px);transition:opacity .5s,transform .5s}
.mx-buddy-tile:hover + .mx-buddy-search-trigger,.mx-buddy-tile:focus-visible + .mx-buddy-search-trigger,.mx-buddy-search-trigger:hover,.mx-buddy-search-trigger:focus-visible,.mx-buddy-search-trigger[aria-expanded="true"]{opacity:1;pointer-events:auto;transform:none}
.mx-buddy-tile.is-no-access + .mx-buddy-search-trigger{visibility:hidden}
.mx-buddy-search-trigger:focus-visible{outline:1px solid var(--mx-muted);outline-offset:-3px}
@media(prefers-reduced-motion:reduce){.mx-buddy-search-trigger{transition:none!important}}

/* Preview variant: the Buddy contrasts with the surrounding scheduled surface. */
:root[data-mx-buddy="contrast"]{--mx-buddy-surface:#30332f;--mx-buddy-ink:#f4f3eb}
:root[data-mx-buddy="contrast"][data-mx-theme="dark"]{--mx-buddy-surface:#e9e8e1;--mx-buddy-ink:#353b37}
:root[data-mx-buddy="contrast"] .mx-buddy-tile{background:var(--mx-buddy-surface);color:var(--mx-buddy-ink);box-shadow:inset 0 0 0 var(--mx-buddy-width,1px) color-mix(in srgb,var(--mx-buddy-ink) 35%,var(--mx-buddy-surface));transition:background .65s cubic-bezier(.4,0,.2,1),color .65s,box-shadow .65s}
:root[data-mx-buddy="contrast"] .mx-buddy-tile::before{background:var(--mx-buddy-surface)}
:root[data-mx-buddy="contrast"] #stage .mx-buddy-face svg{fill:var(--mx-buddy-ink)}
:root[data-mx-buddy="contrast"] .mx-buddy-search-trigger{color:var(--mx-buddy-ink)}

.mx-buddy-tile:hover + .mx-buddy-search-trigger,.mx-buddy-tile:focus-visible + .mx-buddy-search-trigger{color:var(--mx-ink)}

/* The video Buddy needs no separate frame. Grid gaps stay unchanged. */
.mx-buddy-tile{box-shadow:none!important}
/* Color study: the hover surface keeps its agreed neutral material. */
:root[data-mx-color-mode="points"] .mx-tile[data-mx-accent] .mx-label::before{content:'';display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--mx-user-color);box-shadow:0 0 0 1px #ffffff70,0 1px 3px #0002;vertical-align:1px}
:root[data-mx-color-mode="glass"] .mx-tile[data-mx-accent]{background:linear-gradient(rgb(var(--mx-user-rgb) / var(--mx-tint-strength,.2)),rgb(var(--mx-user-rgb) / var(--mx-tint-strength,.2))),linear-gradient(180deg,transparent 68%,rgba(0,0,0,.18) 100%)}

/* Personal glass colors: fixed 25% tint, covered by the neutral hover surface. */
:root:not([data-mx-color-mode]) .mx-tile[data-mx-accent]{background:linear-gradient(rgb(var(--mx-user-rgb) / .25),rgb(var(--mx-user-rgb) / .25)),linear-gradient(180deg,transparent 68%,rgba(0,0,0,.18) 100%)}
#app-context-menu{max-width:calc(100vw - 16px);background:var(--mx-surface)!important;color:var(--mx-ink)!important;border:1px solid var(--mx-line)!important;box-shadow:0 6px 24px #0002!important;font:12px/1.5 Arial,sans-serif!important}
#app-context-menu>div,#app-context-menu>label{color:var(--mx-ink)!important}
#app-context-menu .mx-glass-heading{padding:8px 16px 4px;color:var(--mx-muted)!important;font-size:10px;letter-spacing:.5px}
.mx-glass-palette{display:flex;gap:10px;padding:8px 16px}
.mx-glass-palette button{width:23px;height:23px;border-radius:50%;padding:0;border:1px solid #ffffff55;cursor:pointer;box-shadow:0 0 0 1px #0002}
.mx-glass-palette button[aria-pressed=true]{outline:2px solid var(--mx-ink);outline-offset:3px}
.mx-glass-palette button:focus-visible{outline:2px solid var(--mx-ink);outline-offset:3px}
#ctx-app-color{position:static!important;opacity:1!important;width:30px!important;height:26px!important;pointer-events:auto!important;cursor:pointer;background:transparent;padding:0;border:0}
#ctx-reset-color{color:var(--mx-muted)!important}

/* Fixed surface settings; personal identity is shown inside settings only. */
.mx-profile [hidden]{display:none!important}
#chat-drawer .mx-my-status{margin-right:auto;padding:6px 0;border:0;background:transparent;color:var(--mx-muted);font:11px Arial,sans-serif;cursor:pointer}
#chat-drawer .mx-my-status:hover{color:var(--mx-ink)}
#chat-drawer .mx-my-status:focus-visible{outline:1px solid var(--mx-muted);outline-offset:3px}
#chat-status-menu{background:var(--mx-surface);color:var(--mx-ink);border:1px solid var(--mx-line)}
#chat-status-menu .chat-status-title,#chat-status-menu .chat-status-option.is-muted{color:var(--mx-muted)}
#chat-status-menu .chat-status-option{color:var(--mx-ink)}
#chat-status-menu .chat-status-option:hover{background:var(--mx-hover)}
