.wall-toolbar{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.wall-toolbar label{display:grid;gap:7px;min-width:160px}.wall-toolbar input,.wall-toolbar select{min-height:40px}.wall-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:22px 0 14px}.wall-meta span{font-size:12px;color:var(--text-muted,#79868c)}.wall-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;margin-bottom:18px}.wall-legend span:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:#788596}.wall-dot-online:before{background:#25834b!important}.wall-dot-partial:before{background:#d9a421!important}.wall-dot-offline:before{background:#bd3c45!important}.wall-grid{display:grid;grid-template-columns:repeat(var(--wall-columns,3),minmax(0,1fr));gap:12px}.wall-tile{min-width:0;min-height:140px;height:var(--wall-size,190px);padding:14px;box-sizing:border-box;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:#4c596b;box-shadow:inset 0 0 0 1px #ffffff20}.wall-tile.wall-online{background:#20693f}.wall-tile.wall-partial{background:#edbf47;color:#302309}.wall-tile.wall-offline{background:#a52d39}.wall-tile h2{font-size:var(--wall-font,18px);color:inherit;margin:8px 0;line-height:1.2;max-width:100%;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wall-tile>strong{font-size:clamp(24px,calc(var(--wall-font,18px) * 2),56px);line-height:1.1;margin:4px 0 8px;color:inherit}.wall-tile small{font-size:11px;opacity:.85;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-tile b{font-size:12px}.wall-tile>span{font-size:11px;margin-top:8px}.wall-fullscreen .sidebar,.wall-fullscreen .topbar,.wall-fullscreen .page-heading,.wall-fullscreen #syncNotice{display:none!important}.wall-fullscreen .app-shell{display:block}.wall-fullscreen .app-main{width:100%;margin:0!important;min-height:100vh;background:var(--background,#101820)}.wall-fullscreen main{padding:18px!important;max-width:none!important}.app-main:fullscreen{overflow:auto;background:var(--background,#101820)}.sidebar{overflow-y:auto;max-height:100vh}.wall-legend [hidden]{display:none}
@media(max-width:600px){.wall-toolbar label{min-width:120px;flex:1}.wall-meta{gap:8px}.wall-tile{padding:10px}.wall-tile>span{font-size:10px}}

.wall-call-badge{display:inline-flex!important;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;background:#122c45;color:#fff;font-size:12px!important;margin:2px 0 8px!important;border:1px solid #a8c9eb}.wall-call-badge[data-call-state="ringing"],.wall-call-badge[data-call-state="dialing"]{background:#67500e;border-color:#e9cd72}.wall-in-call{outline:3px solid #8acbff;outline-offset:-4px;animation:wall-call-pulse 1.8s ease-in-out infinite}@keyframes wall-call-pulse{0%,100%{box-shadow:inset 0 0 0 2px #8acbff22}50%{box-shadow:inset 0 0 0 6px #8acbffbb}}@media(prefers-reduced-motion:reduce){.wall-in-call{animation:none;box-shadow:inset 0 0 0 3px #8acbff}}
.wall-call-badge{padding:2px 8px;font-size:10px!important;margin:2px 0 4px!important}.wall-tile:has(.wall-call-badge)>span:last-child{display:none}.wall-tile:has(.wall-call-badge) h2{margin:4px 0}
/* Waiting colors apply before answer; connected calls have their own activity state. */
#wallGrid .wall-tile.wall-call-active{color:#fff;outline:3px solid #ffffff88;outline-offset:-4px;background:var(--call-color);animation:wall-full-call-flash 1.4s steps(2,end) infinite;box-shadow:inset 0 0 0 1px #ffffff66}
#wallGrid .wall-call-good{--call-color:#26995c;--call-dim:#155d39}
#wallGrid .wall-call-warning{--call-color:#e6c63c;--call-dim:#aa8916;color:#211900}
#wallGrid .wall-call-orange{--call-color:#df8426;--call-dim:#a85618}
#wallGrid .wall-call-overdue{--call-color:#e34770;--call-dim:#8f174e;outline-style:dashed}
#wallGrid .wall-call-unknown{--call-color:#376b97;--call-dim:#274864}
@keyframes wall-full-call-flash{0%,100%{background-color:var(--call-color)}50%{background-color:var(--call-dim)}}
#wallGrid .wall-call-active .wall-call-badge{border:0;background:#00000038;font-size:clamp(11px,calc(var(--wall-font,18px) * .85),20px)!important;border-radius:5px;padding:4px 9px;margin:4px 0!important;color:inherit}
#wallGrid .wall-call-active .wall-call-reference{font-size:10px;opacity:1;margin-top:4px}#wallGrid .wall-call-active>span:last-child{display:none}#wallGrid .wall-call-active h2{margin:3px 0}#wallGrid .wall-call-active>strong{margin:2px 0 4px}
@media(prefers-reduced-motion:reduce){#wallGrid .wall-tile.wall-call-active{animation:none;background-color:var(--call-color);outline-width:4px}}
#wallGrid .wall-tile.wall-call-warning{color:#211900}

.wall-call-legend{font-size:11px;opacity:.75;margin:0 0 12px}.wall-call-legend[hidden]{display:none}

/* Connected activity is blue, with a slow border pulse instead of waiting alerts. */
#wallGrid .wall-tile.wall-call-active.wall-call-talking{--call-color:#225e85;--call-dim:#225e85;background:#225e85;color:#fff;outline-color:#8acbff;outline-style:solid;animation:wall-talking-pulse 3.6s ease-in-out infinite}
@keyframes wall-talking-pulse{0%,100%{box-shadow:inset 0 0 0 1px #8acbff44}50%{box-shadow:inset 0 0 0 5px #8acbff99}}
@media(prefers-reduced-motion:reduce){#wallGrid .wall-tile.wall-call-active.wall-call-talking{animation:none;box-shadow:inset 0 0 0 3px #8acbff}}
