html,body{height: 100%}.app-navbar{padding-inline-end: 0.75rem}.app-title{font-weight: 600;font-size: 1.125rem}.login-view{background: color-mix(in srgb,currentColor 4%,transparent)}.login-card{background: var(--vaadin-background-color,white);border-radius: 12px;box-shadow: 0 8px 32px rgb(0 0 0 / 12%);gap: 0.75rem}.login-card h1{font-size: 1.5rem;margin: 0 0 0.5rem}.login-error{color: var(--vaadin-text-color-error,#c62828);margin: 0}.row{display: flex;flex-direction: column;line-height: 1.25;min-width: 0}.row-name,.option>span:first-child{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.row-detail,.option-detail,.thumbnail-hint,.status-detail{font-size: 0.8em;color: var(--vaadin-text-color-secondary);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.option{display: flex;flex-direction: column;line-height: 1.25}.dashboard{height: 100%}.dashboard vaadin-split-layout{height: 100%}.sources,.tree-panel,.detail-panel{box-sizing: border-box;min-width: 14rem}.tree-panel{padding: 0.5rem;gap: 0.5rem}.tree-panel-header h3{margin: 0;flex-grow: 1;font-size: 1.1rem}.tree-panel vaadin-grid::part(folder){font-weight: 600;cursor: pointer}.tree-panel vaadin-grid::part(leaf){cursor: grab}.tree-panel vaadin-grid::part(disabled){opacity: 0.5;font-style: italic}.detail-panel{padding: 1rem 1.25rem;overflow-y: auto;gap: 0.75rem}.detail-panel h2{margin: 0}.detail-panel h3{margin: 0.75rem 0 0;font-size: 1.05rem}.detail-empty{opacity: 0.7}.facts{display: grid;grid-template-columns: max-content 1fr;gap: 0.25rem 1rem;width: 100%}.fact{display: contents}.fact-label{opacity: 0.7}.fact-value{overflow-wrap: anywhere}.thumbnail{width: 100%;max-width: 40rem;min-height: 6rem;display: flex;flex-direction: column;justify-content: center;gap: 0.5rem;padding: 0.5rem;border-radius: 8px;background: color-mix(in srgb,currentColor 6%,transparent);box-sizing: border-box}.thumbnail-image{width: 100%;height: auto;border-radius: 4px}.thumbnail-wrapper{width: 100%;max-width: 40rem}.thumbnail-controls{padding-top: 0.25rem}.detail-actions{flex-wrap: wrap}.wall-view{overflow-y: auto}.wall-groups{width: 100%}.wall-group h3{margin: 1rem 0 0.5rem;font-size: 1rem;color: var(--vaadin-text-color-secondary);text-transform: uppercase;letter-spacing: 0.04em}.wall-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(15rem,1fr));gap: 0.75rem}.wall-tile{display: flex;flex-direction: column;gap: 0.25rem;padding: 0.5rem;border-radius: 10px;background: var(--vaadin-background-container,color-mix(in srgb,currentColor 6%,transparent));border: 1px solid var(--vaadin-border-color,color-mix(in srgb,currentColor 15%,transparent));cursor: pointer;transition: transform 120ms ease,box-shadow 120ms ease}.wall-tile:hover{transform: translateY(-2px);box-shadow: 0 6px 18px rgb(0 0 0 / 18%)}.wall-tile:focus-visible{outline: 2px solid var(--vaadin-focus-ring-color,currentColor);outline-offset: 2px}.wall-picture{aspect-ratio: 16 / 9;display: flex;align-items: center;justify-content: center;overflow: hidden;border-radius: 6px;background: color-mix(in srgb,currentColor 10%,transparent)}.wall-image{width: 100%;height: 100%;object-fit: contain}.wall-placeholder{font-size: 0.85em;color: var(--vaadin-text-color-secondary)}.wall-name{font-weight: 600;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.wall-source{font-size: 0.85em;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.wall-source-live::before{content: "▶ "}.wall-source-empty{color: var(--vaadin-text-color-secondary)}.status-panel{width: 100%;display: flex;flex-direction: column;gap: 0.35rem}.status-row{display: grid;grid-template-columns: auto minmax(8rem,max-content) 1fr;align-items: baseline;gap: 0.5rem}.status-dot{width: 0.6rem;height: 0.6rem;border-radius: 50%;display: inline-block}.status-ok{background: #22c55e}.status-bad{background: #ef4444}.status-name{font-weight: 600}.audit-filters{flex-wrap: wrap}.active-screens{width: 100%;max-width: 28rem}.notes{width: 100%;max-width: 40rem}.settings-view{padding: 1rem 1.25rem}.setup-test-result{margin: 0.5rem 0 0}@media (max-width: 900px){.dashboard{overflow-y: auto}}