/* TuDelega shared presentation contract. Dimensions do not depend on theme requests. */
body{color:var(--td-text);background:var(--td-bg)}
.sidebar{background:var(--td-nav-bg);color:var(--td-nav-text)}
.sidebar .nav-link{color:var(--td-nav-muted)}
.sidebar .nav-link:hover{background:var(--td-nav-hover);color:var(--td-nav-text)}
.sidebar .nav-link.selected{background:var(--td-nav-active);color:var(--td-nav-active-text)}
.sidebar .menu-label,.sidebar .sidebar-info,.sidebar .sidebar-bottom small,.sidebar .ux-context-name small{color:var(--td-nav-muted)}
.sidebar .ux-context-name b{color:var(--td-nav-text)}
.tudelega-logo{display:block;height:auto;max-width:100%;object-fit:contain}
.sidebar .identity{margin-bottom:32px;min-height:36px}
.tudelega-logo-sidebar{width:160px;max-height:34px;flex:none}
.brand-mobile .tudelega-logo-mobile{width:138px;max-height:30px;height:auto;flex:none}
.login-hero .tudelega-logo-login{width:250px;max-width:80%;max-height:65px}
.tudelega-login-icon{display:block;width:46px;height:46px;object-fit:contain;margin-bottom:12px}
.login-hero{background:var(--td-gradient-hero);color:var(--td-on-dark)}
.login-body{background:var(--td-bg)}
.btn-primary,.btn.btn-primary{background:var(--td-primary);border-color:var(--td-primary);color:var(--td-on-primary)}
.btn-primary:hover,.btn.btn-primary:hover{background:var(--td-primary-hover);border-color:var(--td-primary-hover);color:var(--td-on-primary)}
.btn-outline,.btn-secondary,.btn.btn-outline{background:var(--td-secondary-bg);color:var(--td-secondary-text);border-color:var(--td-control-border)}
.btn-outline:hover,.btn-secondary:hover{background:var(--td-hover);border-color:var(--td-primary)}
.btn-minor{background:var(--td-primary-soft);color:var(--td-link)}
.btn-ghost,.text-action{background:transparent;color:var(--td-link)}
.btn-danger,.btn.btn-danger{background:var(--td-danger);color:var(--td-on-dark);border-color:var(--td-danger)}
.btn-danger:hover{filter:brightness(.9)}
.btn:disabled,.btn[aria-disabled=true]{background:var(--td-disabled-bg);color:var(--td-disabled-text);border-color:var(--td-border);box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--td-focus);outline-offset:3px}
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=hidden]),select,textarea{color:var(--td-text);background-color:var(--td-surface);border-color:var(--td-control-border)}
input[type=checkbox],input[type=radio],progress{accent-color:var(--td-primary)}
input::placeholder,textarea::placeholder{color:var(--td-muted);opacity:1}
input:disabled,select:disabled,textarea:disabled{background-color:var(--td-disabled-bg);color:var(--td-disabled-text)}
.panel,.fr19-card{background:var(--td-surface);border-color:var(--td-border)}
[role=tab][aria-selected=true]{color:var(--td-selected-text);background-color:var(--td-selected-bg);border-color:var(--td-active-border)}
.language-button.on{color:var(--td-link)}
.crumb,.eyebrow{color:var(--td-link)}
.icon,.heading-icon{color:var(--td-icon)}
.fr1922-depth-track span,.fr1922-mini-page-track span,.fr1922-histo-bar,.fr1922-bar-value{background:var(--td-gradient-report)}
/* Theme editor: normal app layout with an isolated, token-scoped preview. */
.td-theme-heading{display:flex;align-items:center;gap:12px;min-width:0}
.td-theme-heading img{width:38px;height:38px;max-width:38px;flex:none}
.td-theme-heading h1{margin-bottom:4px}
.td-theme-heading p{margin:0}
.td-theme-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,1fr);gap:20px;align-items:start}
.td-theme-editor,.td-theme-preview-panel{min-width:0}
.td-theme-editor h2,.td-theme-preview-panel h2{margin-bottom:12px}
.td-brand-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.td-color-field{border:1px solid var(--td-border);border-radius:10px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.td-color-field input[type=color]{width:38px;height:38px;min-width:38px;padding:0;background:transparent;border:0;cursor:pointer}
.td-color-field label{font-size:12px;font-weight:650;min-width:0}
.td-color-field input[type=text]{margin-top:5px;width:100%;font-family:monospace;font-size:12px;padding:5px 7px;border:1px solid var(--td-control-border);border-radius:5px}
.td-color-field .td-auto{grid-column:1/-1;display:flex;gap:8px;align-items:center;font-size:11px;font-weight:400}
.td-color-field .td-auto input{margin:0}
.td-theme-editor details{margin-top:14px;border:1px solid var(--td-border);border-radius:10px;padding:12px}
.td-theme-editor summary{cursor:pointer;font-weight:650;padding:2px 0}
.td-theme-editor details[open] summary{margin-bottom:12px}
.td-theme-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}
.td-theme-actions form{margin:0}
.td-theme-security{padding:10px 12px;background:var(--td-info-bg);border-radius:8px;margin:14px 0;font-size:12px;color:var(--td-info)}
.td-theme-status{font-size:12px;color:var(--td-muted);min-height:20px;margin:10px 0}
.td-contrast-issues{padding:12px;background:var(--td-warning-bg);color:var(--td-warning);border-radius:8px;font-size:12px;overflow-wrap:anywhere}
.td-contrast-issues:empty{display:none}
.td-preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}
.td-preview-toolbar button{padding:6px 9px;font-size:12px}
.td-preview{background:var(--td-bg);color:var(--td-text);border:1px solid var(--td-border);border-radius:12px;overflow:hidden;display:grid;grid-template-columns:106px minmax(0,1fr);font-size:12px;transition:max-width .15s}
.td-preview-nav{background:var(--td-nav-bg);color:var(--td-nav-text);padding:16px 10px;display:flex;flex-direction:column;gap:12px}
.td-preview-nav img{width:85px;height:auto;margin-bottom:10px}
.td-preview-nav span{padding:7px;border-radius:5px;overflow-wrap:anywhere;color:var(--td-nav-muted)}
.td-preview-nav .selected{background:var(--td-nav-active);color:var(--td-nav-active-text)}
.td-preview-main{padding:14px;min-width:0}
.td-preview-mobile-brand{display:none;width:118px;height:auto;margin-bottom:12px}
.td-preview-main h3{font-size:16px;color:var(--td-text);margin-bottom:12px}
.td-preview-tabs{display:flex;gap:10px;border-bottom:1px solid var(--td-border);margin-bottom:12px}
.td-preview-tabs span{padding:7px 4px;color:var(--td-muted)}
.td-preview-tabs .selected{background:var(--td-selected-bg);color:var(--td-selected-text);border-bottom:2px solid var(--td-primary)}
.td-preview-card{border:1px solid var(--td-border);border-radius:8px;background:var(--td-surface);padding:12px;margin-bottom:10px}
.td-preview-card strong{font-size:22px;color:var(--td-text);display:block}
.td-preview-card small{color:var(--td-muted)}
.td-preview-bars{display:flex;align-items:flex-end;height:65px;gap:9px;border-bottom:1px solid var(--td-chart-grid);margin-top:8px}
.td-preview-bars span{width:20%;background:var(--td-gradient-report);border-radius:3px 3px 0 0}
.td-preview-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.td-preview-actions .btn{font-size:11px;padding:7px 9px;min-height:32px}
.td-preview-main input{max-width:100%;width:100%;padding:8px;border:1px solid var(--td-control-border);border-radius:6px;font-size:11px}
.td-preview-table{width:100%;font-size:11px;border-collapse:collapse;background:var(--td-surface)}
.td-preview-table th,.td-preview-table td{padding:7px 4px;border-bottom:1px solid var(--td-border);text-align:left;color:var(--td-text)}
.td-preview-table th{color:var(--td-muted)}
.td-preview[data-layout=mobile]{grid-template-columns:1fr;max-width:320px;margin:0 auto}
.td-preview[data-layout=mobile] .td-preview-nav{display:none}
.td-preview[data-layout=mobile] .td-preview-mobile-brand{display:block}
.td-theme-history{margin-top:22px;overflow:auto}
.td-theme-history table{width:100%;border-collapse:collapse;min-width:460px}
.td-theme-history th,.td-theme-history td{padding:12px;text-align:left;border-bottom:1px solid var(--td-border);font-size:12px}
.td-theme-history th{color:var(--td-muted)}
.td-theme-history .btn{padding:6px 10px;font-size:12px}
@media(max-width:1100px){.td-theme-layout{grid-template-columns:1fr}.td-preview{max-width:650px}.td-theme-preview-panel{position:static}}
@media(max-width:880px){.brand-mobile{display:flex}.brand-mobile .tudelega-logo-mobile{width:130px}.td-theme-heading h1{font-size:25px}}
@media(max-width:480px){.td-brand-fields{grid-template-columns:1fr}.td-theme-layout{gap:14px}.td-preview{grid-template-columns:88px minmax(0,1fr)}.td-preview-nav{padding:12px 6px}.td-preview-nav img{width:75px}.td-preview-main{padding:10px}.td-theme-actions .btn{flex:1 1 45%}.td-theme-heading img{width:34px;height:34px;max-width:34px}}
@media(prefers-reduced-motion:reduce){.td-preview{transition:none}}

.td-preview-bars span:nth-child(1){height:32%}.td-preview-bars span:nth-child(2){height:65%}.td-preview-bars span:nth-child(3){height:46%}.td-preview-bars span:nth-child(4){height:83%}

/* Small-screen shell and editor polish verified at 390px. */
.sidebar .ux-context-icon{background:var(--td-nav-hover);color:var(--td-nav-text)}
.mobile-nav a{color:var(--td-muted)}
.mobile-nav a[aria-current=page]{background:var(--td-selected-bg);color:var(--td-selected-text);border-radius:8px}
.td-theme-actions button.text-action{border:0;padding:5px 0;font:inherit;font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:3px;text-align:left}
.td-preview-nav span{font-size:11px;padding:7px 3px;white-space:nowrap}
@media(max-width:880px){.topbar-actions{gap:8px}}
@media(max-width:480px){.td-brand-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.td-color-field{padding:10px;gap:7px;grid-template-columns:28px minmax(0,1fr)}.td-color-field input[type=color]{width:28px;min-width:28px;height:36px}.td-color-field input[type=text]{padding:5px 3px;font-size:10px}.td-color-field label{font-size:11px}.td-theme-editor details .td-brand-fields{grid-template-columns:1fr}.td-preview-nav span{font-size:10px}}
@media(max-width:350px){.td-brand-fields{grid-template-columns:1fr}}
/* Meaningful state distinctions survive a brand change. */
.fr10-outbound .fr10-bubble,.fr15-bubble-outbound{background:var(--td-primary-soft);border-color:var(--td-border)}
.status-dot,.afd1939-status-dot.status-available,.fr10-led{background:var(--td-success)}
.status-dot.muted-dot,.afd1939-status-dot{background:var(--td-muted)}
.afd1939-status-dot.status-busy{background:var(--td-warning)}
.fr1925-status-active{background:var(--td-success-bg);color:var(--td-success)}
.fr1925-status-paused{background:var(--td-disabled-bg);color:var(--td-muted)}
