/* KIOSK canonical theme — generated into one runtime owner. */
/* KIOSK: semantic tokens; independent from the neutral theme. */
:root{color-scheme:light;--bg:#f5f6fa;--surface:#fff;--surface-soft:#F7F8FC;--text:#202A4F;--muted:#66738a;--border:#e1e6ef;--accent:#AF2665;--primary:#8C1E51;--accent-soft:#F9EAF1;--success:#087e65;--success-soft:#e8f7f2;--danger:#b83240;--danger-soft:#fff0f1;--warning:#94610b;--radius:16px;--shadow:0 8px 28px #1d2b4610;--sidebar:220px;--focus:#7D1948;--panel:var(--surface);--card:var(--surface);--line:var(--border);--brand:var(--accent);--input-bg:var(--surface);--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#0A142E;--surface:#101F3D;--surface-soft:#17284B;--text:#F3F6FB;--muted:#B7C2D8;--border:#314264;--accent:#D85A91;--primary:#E37CA9;--accent-soft:#32243A;--success:#73d5b8;--success-soft:#173c35;--danger:#ffa4ad;--danger-soft:#412a35;--warning:#f3ce83;--focus:#F0A8C8;--shadow:0 8px 28px #0002}
*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html.foundation-busy,html.foundation-busy body{overflow:hidden!important}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 var(--font)}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}.foundation-loader[hidden]{display:none!important}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,2.7vw,36px);line-height:1.18;letter-spacing:-.035em;margin-bottom:12px}h2{font-size:19px;line-height:1.35;margin-bottom:8px}h3{font-size:16px;line-height:1.4;margin-bottom:8px}small{font-size:12px}.muted,small{color:var(--muted)}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-soft);padding:16px;border-radius:12px;max-height:420px;overflow:auto}.fingerprint,.version-path{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.eyebrow{display:block;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;margin-bottom:12px}.admin-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);position:fixed;inset-block:0;inset-inline-start:0;display:flex;flex-direction:column;background:var(--surface);border-inline-end:1px solid var(--border);padding:28px 16px 20px;z-index:30;overflow:auto}.brand{display:flex;align-items:center;gap:11px;color:var(--text);font-size:23px;font-weight:800;letter-spacing:.035em;margin:0 10px 40px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent);color:#fff;font-size:22px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:12px;color:var(--muted);padding:11px 14px;border-radius:10px;font-weight:600;min-height:44px}.sidebar nav a:hover{background:var(--surface-soft);color:var(--text)}.sidebar nav a.active{background:var(--accent-soft);color:var(--primary);box-shadow:inset 3px 0 var(--accent)}[dir=rtl] .sidebar nav a.active{box-shadow:inset -3px 0 var(--accent)}.sidebar-foot{display:grid;gap:4px;margin-top:auto;padding:32px 14px 0}.main{margin-inline-start:var(--sidebar);min-width:0;width:calc(100% - var(--sidebar))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 32px;background:var(--surface);border-bottom:1px solid var(--border);min-height:72px}.topbar strong{font-size:13px}.top-actions,.actions,.form-actions,.card-head,.page-head{display:flex;align-items:center;gap:12px}.top-actions{margin-inline-start:auto}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-head p{color:var(--muted);max-width:680px;margin-bottom:0}.page-head>.actions{flex-wrap:wrap;justify-content:flex-end;max-width:360px}.content{padding:34px 32px 48px;max-width:1920px;margin:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:22px}.card-head{justify-content:space-between;align-items:flex-start;margin-bottom:18px}.card-head p{color:var(--muted);margin-bottom:0}.btn,.icon-button,.user-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:11px 17px;min-height:44px;font-weight:650;text-align:center;line-height:1.3}.btn:hover,.icon-button:hover{background:var(--surface-soft)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}[data-theme=dark] .btn.primary{color:#fff}.btn.primary:hover{filter:brightness(.95)}.btn.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.btn.compact{padding:8px 12px;font-size:12px;min-height:36px}.icon-button{padding:10px;min-width:44px}.mobile-menu{display:none}.menu-wrap{position:relative}.dropdown{position:absolute;inset-inline-end:0;top:calc(100% + 8px);min-width:190px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);z-index:40}.dropdown a,.dropdown button{display:block;width:100%;text-align:start;padding:10px;background:none;border:0;color:var(--text)}.language-select{width:auto;max-width:120px}.user-chip{font-size:12px;max-width:240px;overflow-wrap:anywhere}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}label{display:grid;gap:7px;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;min-height:44px;border:1px solid var(--border);border-radius:9px;padding:10px 12px;background:var(--surface);color:var(--text)}textarea{min-height:110px;resize:vertical}input[type=checkbox],input[type=radio]{appearance:none;display:inline-grid;place-items:center;vertical-align:middle;width:20px;height:20px;margin:0 7px 0 0;border:1.5px solid var(--muted);border-radius:5px;background:var(--surface);cursor:pointer}input[type=radio]{border-radius:50%}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--primary);border-color:var(--primary)}input[type=checkbox]:checked:after{content:'✓';color:var(--surface);font-size:14px}input[type=radio]:checked:after{content:'';width:8px;height:8px;border-radius:50%;background:var(--surface)}label:has(input[type=checkbox]),label:has(input[type=radio]){display:flex;align-items:center;flex-wrap:wrap}input:invalid:not(:placeholder-shown):focus{border-color:var(--danger)}.form-actions{margin-top:24px;flex-wrap:wrap}.upload-layout{display:flex;gap:20px;align-items:center}.kiosk-dropzone{position:relative;display:flex;align-items:center;gap:16px;flex:1;min-width:0;border:1.5px dashed var(--border);border-radius:12px;background:var(--surface-soft);padding:20px;cursor:pointer}.kiosk-dropzone>span:last-of-type{display:grid;gap:4px;overflow-wrap:anywhere}.kiosk-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.kiosk-dropzone:focus-within,.kiosk-dropzone.dragover{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.upload-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--primary);font-size:24px}.updates-page-head{margin-bottom:18px}.updates-page-head .eyebrow{margin-bottom:7px}.update-upload-card{padding:14px 16px;margin-bottom:16px}.update-upload-card .upload-layout{gap:12px}.update-upload-card .kiosk-dropzone{padding:14px 16px;background:var(--surface);border-color:var(--border)}.update-upload-card .upload-mark{width:38px;height:38px;border-radius:10px;font-size:20px}.update-upload-card .btn{min-height:42px;white-space:nowrap}.deployment-board{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.78fr) minmax(0,1fr);align-items:start;gap:16px;margin-bottom:12px}.deployment-lane{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;min-height:0;box-shadow:0 2px 10px #1d2b4608}.deployment-lane>header{display:flex;gap:10px;align-items:center;padding:14px 15px;background:var(--surface);border-bottom:1px solid var(--border);min-height:66px}.deployment-lane h2{font-size:15px;margin:0}.lane-heading{min-width:0;display:grid;gap:2px}.lane-heading p{margin:0;color:var(--muted);font-size:11px;line-height:1.35}.lane-symbol{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent-soft);color:var(--primary);font-size:18px;font-weight:800}.lane-success .lane-symbol{background:var(--success-soft);color:var(--success)}.lane-errors .lane-symbol{background:var(--danger-soft);color:var(--danger)}.lane-errors{border-color:color-mix(in srgb,var(--danger) 18%,var(--border))}.count{display:grid;place-items:center;margin-inline-start:auto;background:var(--surface-soft);border-radius:999px;min-width:28px;height:28px;padding:0 8px;font-size:12px;font-weight:800}.lane-content{padding:11px;display:grid;gap:10px}.deployment-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:15px;margin:0;min-width:0;box-shadow:none}.lane-pending .deployment-card{box-shadow:0 3px 12px #1d2b4609}.deployment-card.validation-rejected{border-color:color-mix(in srgb,var(--warning) 38%,var(--border));background:color-mix(in srgb,var(--warning) 4%,var(--surface))}.deployment-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.deployment-card-head h3{font-size:14px;line-height:1.35;margin:0;overflow-wrap:anywhere}.status{display:inline-flex;align-items:center;gap:5px;background:var(--surface-soft);color:var(--muted);border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.045em}.status.approved,.status.installed,.status.validated{background:var(--success-soft);color:var(--success)}.status.failed,.status.recovery_required{background:var(--danger-soft);color:var(--danger)}.status.validation-rejected{background:color-mix(in srgb,var(--warning) 13%,var(--surface));color:var(--warning)}.version-path{color:var(--muted);margin:7px 0 0;line-height:1.45}.deployment-stages{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:16px 0 14px;gap:2px}.deployment-stages li{position:relative;text-align:center;font-size:10px;color:var(--muted);overflow-wrap:anywhere;line-height:1.25}.deployment-stages li:before{content:'';position:absolute;height:2px;top:14px;inset-inline-start:50%;width:100%;background:var(--border)}.deployment-stages li:last-child:before{display:none}.deployment-stages span{position:relative;display:grid;place-items:center;width:30px;height:30px;margin:0 auto 7px;border:2px solid var(--border);border-radius:50%;background:var(--surface);font-size:13px;font-weight:900;z-index:1}.deployment-stages .done span{border-color:var(--success);background:var(--success);color:var(--surface)}.deployment-stages .done:before{background:var(--success)}.deployment-stages .current span{border-color:var(--accent);background:var(--accent-soft);color:var(--primary)}.deployment-stages .failed span{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.deployment-stages .failed:before{background:linear-gradient(90deg,var(--success),var(--danger))}.validation-rejected-note{display:grid;gap:2px;margin:12px 0;padding:10px 11px;border-radius:9px;background:color-mix(in srgb,var(--warning) 9%,var(--surface));color:var(--warning)}.validation-rejected-note strong{font-size:11px}.validation-rejected-note span{font-size:10px;line-height:1.45}.deployment-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;margin:14px 0 10px;padding-top:12px;border-top:1px solid var(--border)}.deployment-actions:empty{display:none}.deployment-actions form{margin:0}.deployment-actions .btn{font-size:11px;min-height:34px;padding:7px 11px}.empty-state{display:grid;place-items:center;text-align:center;color:var(--muted);padding:24px 12px;min-height:84px;font-size:12px}.error-detail{margin:10px 0 0;padding:9px 10px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:10px;line-height:1.5;overflow-wrap:anywhere}.update-board-note{margin:0 2px 14px;font-size:11px}.update-advanced-card{padding:16px 18px;margin-bottom:18px}.update-advanced-card details>summary{font-size:12px}.notice.success{border-inline-start:4px solid var(--success)}.notice.error{border-inline-start:4px solid var(--danger)}details>summary{cursor:pointer;font-weight:650;min-height:28px}details[open]>summary{margin-bottom:20px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:start;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-soft)}th,td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:top}td small{display:block;margin-top:3px}.list-toolbar,.list-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.list-toolbar input[type=search]{max-width:360px}.list-footer{justify-content:flex-end}.confirmation-card{max-width:760px;margin-inline:auto}.confirmation-card dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px}.confirmation-card dt{color:var(--muted)}.confirmation-card dd{margin:0;overflow-wrap:anywhere}.dialog-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#10182888;z-index:100}.dialog-card{width:min(560px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:26px;box-shadow:var(--shadow)}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.foundation-loader{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#10182866;backdrop-filter:blur(4px)}.loader-card{display:grid;gap:14px;width:min(360px,90vw);border-radius:20px;padding:30px;background:var(--surface);box-shadow:var(--shadow)}.loader-mark{display:flex;gap:6px}.loader-mark span{width:9px;height:9px;background:var(--accent);border-radius:50%;animation:kiosk-pulse 1.1s infinite alternate}.loader-mark span:nth-child(2){animation-delay:.2s}.loader-mark span:nth-child(3){animation-delay:.4s}.loader-progress{height:4px;border-radius:4px;background:var(--border);overflow:hidden}.loader-progress i{display:block;height:100%;background:var(--accent)}.auth-page{display:grid;place-items:center;min-height:100dvh;padding:70px 24px 24px}.auth-language{position:absolute;inset-block-start:20px;inset-inline-end:24px}.auth-shell{display:grid;place-items:center;min-height:100dvh;padding:24px}.auth-card{width:min(460px,100%);padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.auth-card form{display:grid;gap:18px}.grid,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.impersonation-banner{position:relative;z-index:60;padding:14px 24px;background:var(--accent-soft);border-bottom:1px solid var(--accent);display:flex;justify-content:space-between;align-items:center}.impersonation-banner small{display:block}.grid-2,.builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-bottom:22px}.metric,.box{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.metric strong{display:block;font-size:28px;letter-spacing:-.035em}.card-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--primary)}.stack{display:grid;gap:18px}.compact-stack{gap:12px}.span-2{grid-column:1/-1}.full{width:100%}.invalid-feedback,.form-error{color:var(--danger);font-size:12px}.status.healthy{background:var(--success-soft);color:var(--success)}.status.blocked,.danger-soft{background:var(--danger-soft);color:var(--danger)}.tag{display:inline-block;padding:4px 9px;background:var(--surface-soft);border:1px solid var(--border);border-radius:7px;font-size:12px}.inline-form,.list-toolbar-actions,.draft-list-head,.draft-bulk-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.auth-heading{margin-bottom:26px}.auth-link{display:block;margin-top:16px}.timeline,.draft-list,.file-list,.operation-list{display:grid;gap:12px}.draft-item,.operation{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:12px;overflow-wrap:anywhere}.draft-item>div,.operation>div{min-width:0}.operation-actions{display:flex;gap:8px;margin-inline-start:auto}.divider{height:1px;background:var(--border);margin:24px 0}.breadcrumbs{margin:15px 0;overflow-wrap:anywhere}.ide-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#10182899}.ide-shell{width:min(1500px,96vw);height:min(900px,92dvh);display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.ide-shell>header,.ide-shell>footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 22px;flex:none}.ide-shell small{display:block}.ide-shell code{font-size:11px;overflow-wrap:anywhere}.ide-searchbar{display:flex;gap:10px;padding:12px;flex-wrap:wrap}.ide-searchbar input{flex:1;min-width:120px}.ide-editor{display:flex;min-height:0;flex:1;border-block:1px solid var(--border);background:var(--surface-soft)}.ide-editor pre{margin:0;border-radius:0;font:13px/1.65 ui-monospace,monospace;text-align:end;overflow:hidden;min-width:50px}.ide-editor textarea{flex:1;resize:none;border:0;border-radius:0;white-space:pre;overflow:auto;font:13px/1.65 ui-monospace,monospace;padding:16px}.ide-backdrop.fullscreen{padding:0}.ide-backdrop.fullscreen .ide-shell{width:100vw;height:100dvh;border-radius:0}[data-file-upload]{padding:20px;border:1.5px dashed var(--border);border-radius:12px;background:var(--surface-soft)}[data-file-upload].is-dragging{border-color:var(--primary);background:var(--accent-soft)}.topbar-maintenance{color:var(--warning);font-size:12px}
@keyframes kiosk-pulse{to{opacity:.3;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(min-width:901px){.sidebar{transform:none!important}}@media(max-width:1250px){.deployment-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lane-errors{grid-column:1/-1}.lane-errors .empty-state{padding:20px}.page-head{flex-direction:column}.page-head>.actions{justify-content:flex-start;max-width:none}}@media(max-width:900px){:root{--sidebar:190px}.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open,body.sidebar-open .sidebar{transform:translateX(0)}[dir=rtl] .sidebar{transform:translateX(100%)}[dir=rtl] .sidebar.open,[dir=rtl] body.sidebar-open .sidebar{transform:translateX(0)}.main{margin-inline-start:0;width:100%}.mobile-menu{display:inline-flex}.topbar{padding:14px 20px}.content{padding:28px 20px}.top-actions{gap:8px}.user-chip{max-width:145px}}@media(max-width:600px){.grid-2,.builder-grid{grid-template-columns:minmax(0,1fr)}.ide-backdrop{padding:0}.ide-shell{width:100vw;height:100dvh;border-radius:0}.ide-shell>header,.ide-shell>footer{padding:12px}.ide-shell .actions{flex-wrap:wrap}.deployment-board{grid-template-columns:minmax(0,1fr)}.lane-errors{grid-column:auto}.deployment-lane{min-height:0}.lane-content{padding:10px}.deployment-card{padding:14px}.topbar{padding:12px;flex-wrap:wrap}.topbar>.top-actions{width:100%;justify-content:flex-end}.content{padding:24px 14px}.card{padding:18px}.upload-layout{align-items:stretch;flex-direction:column}.kiosk-dropzone{padding:16px}.page-head>.actions{width:100%}.page-head>.actions .btn{flex:1;font-size:12px}.form-grid{grid-template-columns:minmax(0,1fr)}.card-head{flex-direction:column}.confirmation-card dl{grid-template-columns:minmax(0,1fr);gap:8px}.confirmation-card dd{margin-bottom:8px}.dialog-backdrop{padding:12px}.dialog-card{max-height:calc(100dvh - 24px);padding:20px}}

.list-footer[data-list-pagination], [data-list-pagination]{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.list-pagination-controls{display:inline-flex;align-items:center;gap:5px}.list-page-btn{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}.list-page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--primary);background:var(--accent-soft)}.list-page-btn.is-active{border-color:var(--accent);background:var(--accent);color:#fff}.list-page-btn:disabled{opacity:.38;cursor:not-allowed}.list-page-arrow{font-size:18px}.list-page-indicator{margin-inline-end:auto;color:var(--muted);font-size:12px;font-weight:650}

/* R29 — Superadmin settings: tabbed, full-width configuration workspace. */
.settings-shell{display:grid;gap:18px;max-width:1280px}.settings-tabs{display:flex;gap:8px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 18px #1d2b4608;overflow-x:auto;scrollbar-width:thin}.settings-tab{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:700;white-space:nowrap}.settings-tab:hover{background:var(--surface-soft);color:var(--text)}.settings-tab.is-active{background:var(--accent-soft);color:var(--primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.settings-tab-count,.settings-panel-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:11px;font-weight:800}.settings-tab.is-active .settings-tab-count{background:var(--surface);color:var(--primary)}.settings-panels{min-width:0}.settings-panel{display:none;padding:0;overflow:hidden}.settings-panel.is-active{display:block}.settings-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--surface-soft))}.settings-panel-head h2{margin:2px 0 0;font-size:20px}.settings-panel-kicker{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.settings-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.settings-field{min-width:0;margin:0;padding:24px 26px;border-bottom:1px solid var(--border)}.settings-field:nth-child(odd):not(.settings-field-wide){border-inline-end:1px solid var(--border)}.settings-field-wide{grid-column:1/-1}.settings-field:last-child{border-bottom:0}.settings-help{display:block;margin-top:7px;line-height:1.45;color:var(--muted)}.settings-number{max-width:220px}.settings-switch{display:flex;align-items:flex-start;gap:14px;cursor:pointer}.settings-switch-copy{display:grid;gap:4px}.settings-switch-copy small{line-height:1.45}.settings-savebar{position:sticky;bottom:14px;z-index:5;display:flex;justify-content:flex-end;padding:12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 12px 28px #1d2b4618;backdrop-filter:blur(12px)}.settings-savebar .btn{min-width:210px}.tag-input-wrap{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:46px;padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.tag-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.tag-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:var(--accent-soft);color:var(--primary);font-size:12px;font-weight:700}.tag-remove-btn{border:0;background:transparent;color:inherit;padding:0;line-height:1;font-size:16px}.tag-input{flex:1;min-width:140px;border:0;background:transparent;color:var(--text);outline:0;padding:4px 2px}

/* R29 — Update Manager history. */
.update-history-card{padding:0;overflow:hidden}.update-history-head{padding:24px 28px 20px;margin:0;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--surface-soft))}.update-history-head h2{font-size:26px;margin:2px 0 5px}.update-history-toolbar{margin:0;padding:18px 28px;border-bottom:1px solid var(--border);justify-content:space-between}.update-history-search{width:min(420px,100%)}.update-history-page-size{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.update-history-page-size select{width:auto;min-width:76px;min-height:40px}.update-history-search input{width:100%;min-height:44px}.update-history-scroll{overflow:auto}.update-history-table{font-size:13px}.update-history-table thead th{padding:13px 28px;background:var(--surface-soft);border-bottom:1px solid var(--border)}.update-history-table tbody td{padding:18px 28px;vertical-align:middle}.update-history-row{transition:background .15s}.update-history-row:hover{background:var(--surface-soft)}.update-history-release{display:grid;gap:5px;min-width:250px}.update-history-release strong{font-size:14px;color:var(--text)}.update-history-release .version-path{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:4px 8px;border-radius:7px;background:var(--surface-soft);color:var(--muted)}.update-history-error{max-width:720px;color:var(--danger);overflow-wrap:anywhere}.update-history-date{color:var(--muted);white-space:nowrap}.update-history-table .status{display:inline-flex;justify-content:center;min-width:108px}.update-history-loading,.update-history-empty{padding:40px 28px;text-align:center;color:var(--muted)}.update-history-footer{margin:0;padding:15px 28px;border-top:1px solid var(--border);background:var(--surface-soft)}

/* R29 — Diagnostics: visual hierarchy without altering diagnostic contracts. */
.diagnostics-page-head{margin-bottom:20px}.diagnostics-overview{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 24px;background:linear-gradient(135deg,var(--surface),var(--surface-soft));overflow:hidden}.diagnostics-overview-main{display:flex;align-items:center;gap:16px;min-width:0}.diagnostics-state-mark{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;font-size:22px;font-weight:900}.diagnostics-state-mark.healthy{background:var(--success-soft);color:var(--success)}.diagnostics-state-mark.warning{background:#fff7df;color:var(--warning)}.diagnostics-state-mark.blocked,.diagnostics-state-mark.error{background:var(--danger-soft);color:var(--danger)}.diagnostics-state-title{display:block;font-size:20px;line-height:1.25;margin-bottom:3px}.diagnostics-overview-main small{display:block}.diagnostics-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.diagnostics-metric{position:relative;overflow:hidden;padding:20px 22px}.diagnostics-metric:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--border)}.diagnostics-metric strong{font-size:30px}.diagnostics-metric-dot{position:absolute;inset-block-start:20px;inset-inline-end:20px;width:10px;height:10px;border-radius:50%;background:var(--border)}.diagnostics-metric-pass:before,.diagnostics-metric-pass .diagnostics-metric-dot{background:var(--success)}.diagnostics-metric-warning:before,.diagnostics-metric-warning .diagnostics-metric-dot{background:var(--warning)}.diagnostics-metric-blocking:before,.diagnostics-metric-blocking .diagnostics-metric-dot{background:var(--danger)}.diagnostics-metric-integrity:before,.diagnostics-metric-integrity .diagnostics-metric-dot{background:var(--accent)}.diagnostics-grid{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.7fr);gap:22px;align-items:start}.diagnostics-runtime-card,.diagnostics-controls-card{margin-bottom:0}.diagnostics-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border)}.diagnostics-section-head h2{margin:2px 0 0}.diagnostics-runtime-grid{display:grid;gap:12px}.diagnostics-runtime-item{display:grid;gap:3px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.diagnostics-runtime-item strong{font:700 18px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace}.diagnostics-check-count{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:10px;background:var(--surface-soft);color:var(--muted);font-weight:800}.diagnostics-check-list{display:grid;gap:0;margin:-2px -4px}.diagnostics-check{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 8px;border-bottom:1px solid var(--border)}.diagnostics-check:last-child{border-bottom:0}.diagnostics-check-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;font-weight:900}.diagnostics-check-healthy .diagnostics-check-icon{background:var(--success-soft);color:var(--success)}.diagnostics-check-warning .diagnostics-check-icon{background:#fff7df;color:var(--warning)}.diagnostics-check-blocked .diagnostics-check-icon{background:var(--danger-soft);color:var(--danger)}.diagnostics-check-copy{min-width:0;display:grid;gap:2px}.diagnostics-check-copy strong{font-size:13px;overflow-wrap:anywhere}.diagnostics-check-copy small{overflow-wrap:anywhere}.diagnostics-check .status{white-space:nowrap}.diagnostics-drift-card{margin-top:22px}.diagnostics-drift-list{display:grid;gap:7px}.diagnostics-drift-list code{display:block;padding:9px 11px;border-radius:8px;background:var(--danger-soft);color:var(--danger);overflow-wrap:anywhere}

@media(max-width:1000px){.settings-fields-grid{grid-template-columns:minmax(0,1fr)}.settings-field:nth-child(odd):not(.settings-field-wide){border-inline-end:0}.diagnostics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostics-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.settings-tabs{padding:5px}.settings-tab{padding:9px 12px}.settings-panel-head,.settings-field{padding-inline:18px}.settings-savebar{bottom:8px}.settings-savebar .btn{width:100%}.update-history-head,.update-history-toolbar,.update-history-table thead th,.update-history-table tbody td,.update-history-footer{padding-inline:18px}.update-history-table .status{min-width:0}.diagnostics-overview{align-items:flex-start;flex-direction:column}.diagnostics-metrics{grid-template-columns:minmax(0,1fr)}.diagnostics-check{grid-template-columns:30px minmax(0,1fr)}.diagnostics-check .status{grid-column:2;justify-self:start}.diagnostics-actions{width:100%}}

/* ============================================================
   SCREENFLOW BACKOFFICE — CORE.CSS
   Design System: Tokens, Reset, Typography, Base
   ============================================================ */

/* ---- Google Fonts ---- */

/* ============================================================
   DESIGN TOKENS — CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
  /* Brand */
  --brand-primary:        #AF2665;
  --brand-primary-hover:  #942056;
  --brand-primary-light:  #F9EAF1;
  --brand-primary-muted:  rgba(175,38,101,0.12);
  --brand-secondary:      #0A2155;
  --brand-accent:         #202A4F;

  /* Content */
  --color-text-primary:   #202A4F;
  --color-text-secondary: #4E5359;
  --color-text-tertiary:  #A3ACB6;
  --color-text-disabled:  #DADEE2;
  --color-text-inverse:   #FFFFFF;
  --color-text-link:      #AF2665;
  --color-text-link-hover:#942056;

  /* Backgrounds */
  --color-bg-app:         #F5F7FA;
  --color-bg-surface:     #FFFFFF;
  --color-bg-subtle:      #F1F4F7;
  --color-bg-muted:       #E7ECF2;
  --color-bg-overlay:     rgba(10,33,85,0.48);

  /* Status */
  --color-success:        #36915F;
  --color-success-bg:     #ECF8F1;
  --color-success-border: #43B577;
  --color-warning:        #977620;
  --color-warning-bg:     #FEF9EB;
  --color-warning-border: #F8C236;
  --color-danger:         #A32700;
  --color-danger-bg:      #FAE3DD;
  --color-danger-border:  #CC3100;
  --color-info:           #3E76BB;
  --color-info-bg:        #EDF4FD;
  --color-info-border:    #4D92E7;

  /* Borders */
  --color-border:         #D1D8DE;
  --color-border-strong:  #C9CACF;
  --color-border-hover:   #ADB0B6;
  --color-border-focus:   #AF2665;

  /* Shadows */
  --shadow-xs:   0 1px 2px rgba(30,28,36,0.06);
  --shadow-sm:   0 1px 4px rgba(30,28,36,0.08), 0 1px 2px rgba(30,28,36,0.04);
  --shadow-md:   0 4px 12px rgba(30,28,36,0.10), 0 2px 4px rgba(30,28,36,0.06);
  --shadow-lg:   0 8px 24px rgba(30,28,36,0.12), 0 4px 8px rgba(30,28,36,0.06);
  --shadow-xl:   0 16px 48px rgba(30,28,36,0.16), 0 8px 16px rgba(30,28,36,0.08);
  --shadow-focus:0 0 0 3px rgba(175,38,101,0.22);

  /* Radius */
  --radius-xs:   4px;
  --radius-sm:   6px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  24px;
  --radius-full: 9999px;

  /* Spacing (8px grid) */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-7:  28px;
  --space-8:  32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;

  /* Typography */
  --font-display: 'Raleway', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'DM Mono', monospace;

  --text-xs:   12px;
  --text-sm:   13px;
  --text-base: 14px;
  --text-md:   15px;
  --text-lg:   17px;
  --text-xl:   19px;
  --text-2xl:  22px;
  --text-3xl:  26px;
  --text-4xl:  30px;
  --text-5xl:  38px;

  --leading-tight:  1.25;
  --leading-snug:   1.375;
  --leading-normal: 1.5;
  --leading-relaxed:1.625;

  /* Layout */
  --sidebar-width:       228px;
  --sidebar-width-mini:  76px;
  --topbar-height:       56px;
  --content-max-width:   1440px;

  /* Transitions */
  --transition-fast:   all 0.12s ease;
  --transition-base:   all 0.18s ease;
  --transition-slow:   all 0.28s ease;
  --transition-spring: all 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Z-index */
  --z-dropdown:  1000;
  --z-sticky:    1020;
  --z-fixed:     1030;
  --z-modal-bg:  1040;
  --z-offcanvas: 1050;
  --z-modal:     1060;
  --z-popover:   1070;
  --z-toast:     1090;
  --z-tooltip:   1100;

  /* ── Compatibility aliases ─────────────────────────────────
     Some pages use alternate token names. These aliases ensure
     they resolve correctly without altering every HTML file.
  ──────────────────────────────────────────────────────────── */
  /* Background aliases */
  --bg-tertiary:           var(--color-bg-subtle);
  --color-bg-secondary:    var(--color-bg-subtle);
  --color-bg-tertiary:     var(--color-bg-subtle);
  --color-surface:         var(--color-bg-surface);
  --color-hover:           var(--color-bg-muted);

  /* Brand / primary aliases */
  --primary:               var(--brand-primary);
  --color-primary:         var(--brand-primary);
  --color-primary-light:   var(--brand-primary-light);
  --color-primary-muted:   var(--brand-primary-muted);
  --color-purple:          var(--brand-accent);

  /* Semantic color aliases */
  --success:               var(--color-success);
  --warning:               var(--color-warning);
  --danger:                var(--color-danger);
  --info:                  var(--color-info);

  /* Muted / bg semantic aliases */
  --color-success-muted:   var(--color-success-bg);
  --color-warning-muted:   var(--color-warning-bg);
  --color-danger-muted:    var(--color-danger-bg);
}

/* ============================================================
   DARK MODE TOKENS
   ============================================================ */
[data-theme="dark"] {
  --color-text-primary:   rgba(255,255,255,0.92);
  --color-text-secondary: rgba(255,255,255,0.65);
  --color-text-tertiary:  rgba(255,255,255,0.42);
  --color-text-disabled:  rgba(255,255,255,0.28);
  --color-text-inverse:   #202A4F;

  --color-bg-app:         #0A142E;
  --color-bg-surface:     #101F3D;
  --color-bg-subtle:      #17284B;
  --color-bg-muted:       #202F53;
  --color-bg-overlay:     rgba(0,0,0,0.6);

  --color-border:         rgba(255,255,255,0.10);
  --color-border-strong:  rgba(255,255,255,0.15);
  --color-border-hover:   rgba(255,255,255,0.22);

  --color-success-bg:     rgba(67,181,119,0.12);
  --color-warning-bg:     rgba(248,194,54,0.12);
  --color-danger-bg:      rgba(204,49,0,0.12);
  --color-info-bg:        rgba(77,146,231,0.12);

  --shadow-sm:  0 1px 4px rgba(0,0,0,0.24);
  --shadow-md:  0 4px 12px rgba(0,0,0,0.28);
  --shadow-lg:  0 8px 24px rgba(0,0,0,0.36);
  --shadow-xl:  0 16px 48px rgba(0,0,0,0.44);
}

/* ============================================================
   RESET & BOX MODEL
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-text-primary);
  background-color: var(--color-bg-app);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, svg, video {
  max-width: 100%;
  display: block;
}

a {
  color: var(--color-text-link);
  text-decoration: none;
  transition: var(--transition-fast);
}
a:hover { color: var(--color-text-link-hover); }

ul, ol { list-style: none; }

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
}

input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

/* ============================================================
   TYPOGRAPHY SYSTEM
   ============================================================ */
.font-display { font-family: var(--font-display); }
.font-body    { font-family: var(--font-body); }
.font-mono    { font-family: var(--font-mono); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: var(--leading-tight);
  color: var(--color-text-primary);
  letter-spacing: -0.01em;
}

h1 { font-size: var(--text-5xl); }
h2 { font-size: var(--text-4xl); }
h3 { font-size: var(--text-3xl); }
h4 { font-size: var(--text-2xl); }
h5 { font-size: var(--text-xl); }
h6 { font-size: var(--text-lg); }

.page-title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
}

.section-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--color-text-primary);
}

.label-sm {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
}

.text-muted    { color: var(--color-text-secondary) !important; }
.text-tertiary { color: var(--color-text-tertiary) !important; }
.text-disabled { color: var(--color-text-disabled) !important; }
.text-primary  { color: var(--brand-primary) !important; }
.text-success  { color: var(--color-success) !important; }
.text-warning  { color: var(--color-warning) !important; }
.text-danger   { color: var(--color-danger) !important; }
.text-info     { color: var(--color-info) !important; }
.text-sm       { font-size: var(--text-sm) !important; }
.text-xs       { font-size: var(--text-xs) !important; }
.text-base     { font-size: var(--text-base) !important; }
.text-lg       { font-size: var(--text-lg) !important; }
.text-xl       { font-size: var(--text-xl) !important; }
.fw-400        { font-weight: 400; }
.fw-500        { font-weight: 500; }
.fw-600        { font-weight: 600; }
.fw-700        { font-weight: 700; }

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.d-flex        { display: flex; }
.d-grid        { display: grid; }
.d-block       { display: block; }
.d-inline-flex { display: inline-flex; }
.d-none        { display: none !important; }

.flex-col      { flex-direction: column; }
.flex-wrap     { flex-wrap: wrap; }
.align-center  { align-items: center; }
.align-start   { align-items: flex-start; }
.align-end     { align-items: flex-end; }
.justify-center{ justify-content: center; }
.justify-between{ justify-content: space-between; }
.justify-end   { justify-content: flex-end; }
.flex-1        { flex: 1 1 0%; }
.gap-1  { gap: var(--space-1); }
.gap-2  { gap: var(--space-2); }
.gap-3  { gap: var(--space-3); }
.gap-4  { gap: var(--space-4); }
.gap-5  { gap: var(--space-5); }
.gap-6  { gap: var(--space-6); }

.p-0  { padding: 0 !important; }
.p-2  { padding: var(--space-2); }
.p-3  { padding: var(--space-3); }
.p-4  { padding: var(--space-4); }
.p-5  { padding: var(--space-5); }
.p-6  { padding: var(--space-6); }
.p-8  { padding: var(--space-8); }
.px-2 { padding-inline: var(--space-2); }
.px-3 { padding-inline: var(--space-3); }
.px-4 { padding-inline: var(--space-4); }
.px-6 { padding-inline: var(--space-6); }
.py-2 { padding-block: var(--space-2); }
.py-3 { padding-block: var(--space-3); }
.py-4 { padding-block: var(--space-4); }
.py-6 { padding-block: var(--space-6); }

.mt-0 { margin-top: 0 !important; }
.mt-2 { margin-top: var(--space-2); }
.mt-3 { margin-top: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mb-0 { margin-bottom: 0 !important; }
.mb-2 { margin-bottom: var(--space-2); }
.mb-3 { margin-bottom: var(--space-3); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-6 { margin-bottom: var(--space-6); }
.ms-auto { margin-left: auto; }
.me-auto { margin-right: auto; }

.w-full  { width: 100%; }
.h-full  { height: 100%; }
.min-w-0 { min-width: 0; }

.rounded-sm   { border-radius: var(--radius-sm); }
.rounded-md   { border-radius: var(--radius-md); }
.rounded-lg   { border-radius: var(--radius-lg); }
.rounded-full { border-radius: var(--radius-full); }

.shadow-sm  { box-shadow: var(--shadow-sm); }
.shadow-md  { box-shadow: var(--shadow-md); }
.shadow-lg  { box-shadow: var(--shadow-lg); }

.bg-surface { background-color: var(--color-bg-surface); }
.bg-subtle  { background-color: var(--color-bg-subtle); }
.bg-brand   { background-color: var(--brand-primary); }

.overflow-hidden { overflow: hidden; }
.overflow-auto   { overflow: auto; }
.text-ellipsis   { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.text-center     { text-align: center; }
.text-right      { text-align: right; }
.whitespace-nowrap{ white-space: nowrap; }
.pointer-none    { pointer-events: none; }
.opacity-0       { opacity: 0; }
.opacity-50      { opacity: 0.5; }

.cursor-pointer  { cursor: pointer; }
.select-none     { user-select: none; }

.position-relative { position: relative; }
.position-absolute { position: absolute; }

/* ============================================================
   SCROLLBAR STYLING
   ============================================================ */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--color-border-strong);
  border-radius: var(--radius-full);
}
::-webkit-scrollbar-thumb:hover { background: var(--color-border-hover); }

/* ============================================================
   FOCUS VISIBLE
   ============================================================ */
:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}

/* ============================================================
   SCREENFLOW BACKOFFICE — LAYOUT.CSS
   Sidebar, Topbar, Content Area, Footer, Responsive
   ============================================================ */

/* ============================================================
   APP SHELL
   ============================================================ */
.app-shell {
  display: flex;
  min-height: 100vh;
  background: var(--color-bg-app);
}

.app-main {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  margin-left: var(--sidebar-width);
  transition: margin-left 0.24s cubic-bezier(0.4, 0, 0.2, 1);
}

.app-shell.sidebar-mini .app-main {
  margin-left: var(--sidebar-width-mini);
}

/* Apply the persisted sidebar state before the runtime bundle executes: no first-paint flash. */
html.kiosk-sidebar-mini-pref .app-main { margin-left: var(--sidebar-width-mini); }
html.kiosk-sidebar-mini-pref .sidebar { width: var(--sidebar-width-mini); }
html.kiosk-preboot .sidebar, html.kiosk-preboot .app-main { transition: none !important; }

.app-shell.sidebar-hidden .app-main {
  margin-left: 0;
}

.page-content {
  flex: 1;
  width: 100%;
  max-width: 1720px;
  margin: 0 auto;
  padding: 28px 32px 40px;
  overflow-y: auto;
}

/* ============================================================
   SIDEBAR
   ============================================================ */
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--sidebar-width);
  height: 100vh;
  background: var(--color-bg-surface);
  border-right: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  z-index: var(--z-fixed);
  transition: width 0.24s cubic-bezier(0.4, 0, 0.2, 1), transform 0.24s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: visible;
}

.app-shell.sidebar-mini .sidebar {
  width: var(--sidebar-width-mini);
}

/* ---- Sidebar Brand ---- */
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 0 var(--space-4);
  height: var(--topbar-height);
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
  text-decoration: none;
  overflow: hidden;
  white-space: nowrap;
}

.sidebar-brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--brand-primary);
  border-radius: var(--radius-md);
  flex-shrink: 0;
  color: white;
}

.sidebar-brand-icon svg {
  width: 18px;
  height: 18px;
}

.sidebar-brand-name {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--color-text-primary);
  letter-spacing: -0.03em;
}

.sidebar-brand-name span {
  color: var(--brand-primary);
}

/* ---- Sidebar Toggle ---- */
.sidebar-toggle {
  position: absolute;
  top: 50%;
  right: -15px;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  color: var(--color-text-secondary);
  transition: var(--transition-base);
  box-shadow: var(--shadow-sm);
}

.sidebar-toggle:hover {
  background: var(--brand-primary);
  color: white;
  border-color: var(--brand-primary);
}

.sidebar-toggle svg {
  width: 14px;
  height: 14px;
  transition: transform 0.24s ease;
}

.app-shell.sidebar-mini .sidebar-toggle svg {
  transform: rotate(180deg);
}

/* ---- Role Badge in Sidebar ---- */
.sidebar-role-badge {
  margin: var(--space-3) var(--space-4);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  overflow: hidden;
  white-space: nowrap;
  flex-shrink: 0;
}

.sidebar-role-badge.role-admin {
  background: var(--brand-primary-light);
  color: var(--brand-primary);
}

.sidebar-role-badge.role-superadmin {
  background: rgba(98,59,215,0.10);
  color: var(--brand-accent);
}

.sidebar-role-badge.role-user {
  background: var(--color-bg-subtle);
  color: var(--color-text-secondary);
}

.sidebar-role-badge .role-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
  background: currentColor;
}

/* ---- Sidebar Nav ---- */
.sidebar-nav {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--space-2) 0 var(--space-4);
}

.sidebar-nav::-webkit-scrollbar { width: 0; }

.nav-group {
  margin-bottom: var(--space-1);
}

.nav-group-label {
  padding: var(--space-4) var(--space-4) var(--space-2);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  white-space: nowrap;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.app-shell.sidebar-mini .nav-group-label {
  visibility: hidden;
  height: 0;
  padding: 0;
}

.nav-item {
  display: block;
  position: relative;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  margin: 1px var(--space-2);
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  font-size: var(--text-base);
  font-weight: 500;
  text-decoration: none;
  transition: var(--transition-fast);
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  border: none;
  background: none;
  width: calc(100% - var(--space-4));
  text-align: left;
}

.nav-link:hover {
  background: var(--color-bg-subtle);
  color: var(--color-text-primary);
}

.nav-link.active {
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
  font-weight: 600;
  box-shadow: inset 3px 0 var(--brand-primary);
}
[dir=rtl] .nav-link.active { box-shadow: inset -3px 0 var(--brand-primary); }

.nav-link.active .nav-icon {
  color: var(--brand-primary);
}

.nav-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--color-text-tertiary);
  transition: var(--transition-fast);
}

.nav-link:hover .nav-icon,
.nav-link.active .nav-icon {
  color: var(--brand-primary);
}

.nav-icon svg {
  width: 16px;
  height: 16px;
}

.nav-label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.app-shell.sidebar-mini .nav-label,
.app-shell.sidebar-mini .nav-group-label span,
.app-shell.sidebar-mini .sidebar-role-badge span:not(.role-dot),
.app-shell.sidebar-mini .sidebar-brand-name {
  display: none;
}

.app-shell.sidebar-mini .sidebar-brand {
  justify-content: center;
  padding-inline: 0;
  gap: 0;
}
.app-shell.sidebar-mini .sidebar-role-badge {
  width: 38px;
  min-height: 34px;
  margin: var(--space-3) auto;
  padding: 0;
  justify-content: center;
  gap: 0;
}
.app-shell.sidebar-mini .nav-link {
  width: 44px;
  min-height: 40px;
  margin: 2px auto;
  padding: 0;
  justify-content: center;
  gap: 0;
}
.app-shell.sidebar-mini .nav-icon { width: 20px; height: 20px; }
.app-shell.sidebar-mini .nav-submenu { display: none !important; }
.app-shell.sidebar-mini .sidebar-footer { padding: var(--space-3) 8px; }
.app-shell.sidebar-mini .sidebar-user { justify-content: center; padding: var(--space-2) 0; gap: 0; }
.app-shell.sidebar-mini .sidebar-user-info { display: none; }

.nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--brand-primary);
  color: white;
  font-size: 10px;
  font-weight: 700;
  border-radius: var(--radius-full);
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.app-shell.sidebar-mini .nav-badge { opacity: 0; }

.nav-arrow {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--color-text-tertiary);
  transition: transform 0.2s ease;
  opacity: 0.7;
}

.nav-item.open > .nav-link .nav-arrow {
  transform: rotate(90deg);
}

.app-shell.sidebar-mini .nav-arrow { opacity: 0; }

/* ---- Submenu ---- */
.nav-submenu {
  display: none;
  padding: var(--space-1) 0 var(--space-1) calc(var(--space-4) + 20px + var(--space-3));
}

.nav-item.open > .nav-submenu {
  display: block;
  animation: submenu-open 0.18s ease;
}

@keyframes submenu-open {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.nav-submenu .nav-link {
  padding: var(--space-1) var(--space-3);
  font-size: var(--text-sm);
  font-weight: 400;
  color: var(--color-text-secondary);
  margin: 0 var(--space-2);
  width: calc(100% - var(--space-4));
}

.nav-submenu .nav-link:hover { color: var(--color-text-primary); }
.nav-submenu .nav-link.active {
  color: var(--brand-primary);
  font-weight: 600;
  background: none;
}
.nav-submenu .nav-link.active::before {
  content: '';
  position: absolute;
  left: calc(-1 * (var(--space-3) + 1px));
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 14px;
  background: var(--brand-primary);
  border-radius: var(--radius-full);
}

/* ---- Sidebar Footer ---- */
.sidebar-footer {
  border-top: 1px solid var(--color-border);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}

.sidebar-user {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: var(--transition-fast);
  overflow: hidden;
  white-space: nowrap;
}

.sidebar-user:hover { background: var(--color-bg-subtle); }

.sidebar-user-info {
  flex: 1;
  min-width: 0;
  transition: opacity 0.2s ease;
}

.app-shell.sidebar-mini .sidebar-user-info { opacity: 0; }

.sidebar-user-name {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-role {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ============================================================
   TOPBAR
   ============================================================ */
.topbar {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  height: var(--topbar-height);
  background: var(--color-bg-surface);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: 0 var(--space-6);
  flex-shrink: 0;
  box-shadow: 0 1px 0 rgba(23,32,51,.02), 0 8px 24px rgba(23,32,51,.035);
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex: 1;
  min-width: 0;
}

.topbar-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  transition: var(--transition-fast);
  flex-shrink: 0;
}

.topbar-menu-btn:hover {
  background: var(--color-bg-subtle);
  color: var(--color-text-primary);
}

.topbar-menu-btn svg { width: 20px; height: 20px; }

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  flex-wrap: wrap;
}

.breadcrumbs li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.breadcrumbs li a {
  font-size: var(--text-sm);
  color: var(--color-text-tertiary);
  text-decoration: none;
  transition: var(--transition-fast);
}

.breadcrumbs li a:hover { color: var(--brand-primary); }

.breadcrumbs li span {
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  font-weight: 500;
}

.breadcrumbs li::after {
  content: '/';
  color: var(--color-text-disabled);
  font-size: var(--text-sm);
}

.breadcrumbs li:last-child::after { display: none; }

.topbar-right {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

/* ---- Topbar Push/Sync btn ---- */
.btn-sync {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  background: var(--color-text-primary);
  color: white;
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-fast);
  border: none;
}

.btn-sync:hover { opacity: 0.88; }

.btn-sync.syncing .sync-icon {
  animation: spin 1s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ---- Topbar Workspace Selector ---- */
.workspace-selector {
  position: relative;
}

.workspace-btn {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
}

.workspace-btn:hover {
  border-color: var(--color-border-hover);
  color: var(--color-text-primary);
}

/* ---- Topbar Notification btn ---- */
.topbar-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  transition: var(--transition-fast);
  cursor: pointer;
}

.topbar-btn:hover {
  background: var(--color-bg-subtle);
  color: var(--color-text-primary);
}

.topbar-btn svg { width: 18px; height: 18px; }

.topbar-btn .notif-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 8px;
  height: 8px;
  background: var(--brand-primary);
  border: 2px solid var(--color-bg-surface);
  border-radius: var(--radius-full);
}

/* ---- Topbar User Avatar ---- */
.topbar-avatar {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: var(--transition-fast);
}

.topbar-avatar:hover { background: var(--color-bg-subtle); }

/* ---- Upgrade Banner ---- */
.upgrade-banner {
  background: linear-gradient(135deg, #FEF9EB 0%, #F9EAF1 100%);
  border-bottom: 1px solid var(--color-warning-border);
  padding: var(--space-2) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  flex-shrink: 0;
}

.upgrade-banner strong { color: var(--color-text-primary); }
.upgrade-banner a { color: var(--brand-primary); font-weight: 600; }

.upgrade-banner-close {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  color: var(--color-text-tertiary);
  cursor: pointer;
  flex-shrink: 0;
  transition: var(--transition-fast);
}

.upgrade-banner-close:hover { color: var(--color-text-primary); }

/* ============================================================
   PAGE HEADER
   ============================================================ */
.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
}

.page-header-left { flex: 1; min-width: 0; }

.page-header-title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.page-header-subtitle {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  margin-top: var(--space-1);
}

.page-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-shrink: 0;
  min-height: 38px;
}

.page-header-actions .btn { min-height: 38px; visibility: visible; opacity: 1; }

.org-context-switcher {
  display:flex; align-items:center; gap:6px; height:40px; padding:4px 5px 4px 12px;
  border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-bg-surface);
  box-shadow:var(--shadow-xs);
}
.org-context-name { display:flex; flex-direction:column; min-width:120px; max-width:190px; line-height:1.15; padding-right:6px; }
.org-context-name small { font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--color-text-tertiary); }
.org-context-name strong { margin-top:2px; font-size:12px; color:var(--color-text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.org-context-link,.org-context-exit { display:inline-flex; align-items:center; justify-content:center; height:30px; padding:0 10px; border-radius:6px; font-size:11px; font-weight:700; color:var(--color-text-secondary); white-space:nowrap; }
.org-context-link:hover,.org-context-link.active { background:var(--brand-primary-light); color:var(--brand-primary); }
.org-context-exit-form { margin:0; }
.org-context-exit { background:var(--color-bg-subtle); border:1px solid var(--color-border); }
.org-context-exit:hover { background:var(--color-danger-bg); border-color:var(--color-danger-border); color:var(--color-danger); }

/* ============================================================
   SECTION HEADER
   ============================================================ */
.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.section-header-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-text-primary);
}

/* ============================================================
   GRID SYSTEM
   ============================================================ */
.grid {
  display: grid;
  gap: var(--space-5);
}

.grid-cols-1 { grid-template-columns: repeat(1, 1fr); }
.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
.grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
.grid-cols-6 { grid-template-columns: repeat(6, 1fr); }

.col-span-2 { grid-column: span 2; }
.col-span-3 { grid-column: span 3; }
.col-span-4 { grid-column: span 4; }

/* ============================================================
   SIDEBAR OVERLAY (mobile)
   ============================================================ */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--color-bg-overlay);
  z-index: calc(var(--z-fixed) - 1);
  backdrop-filter: blur(2px);
  animation: fade-in 0.18s ease;
}

@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1200px) {
  .grid-cols-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-cols-5 { grid-template-columns: repeat(3, 1fr); }
  .grid-cols-6 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 992px) {
  .grid-cols-3,
  .grid-cols-4 { grid-template-columns: repeat(2, 1fr); }
  .col-span-3,
  .col-span-4  { grid-column: span 2; }
}

@media (max-width: 768px) {
  :root {
    --space-6: 20px;
    --topbar-height: 52px;
  }

  .app-main { margin-left: 0 !important; }

  .sidebar {
    transform: translateX(-100%);
    box-shadow: var(--shadow-xl);
    width: var(--sidebar-width) !important;
  }

  .app-shell.sidebar-open .sidebar {
    transform: translateX(0);
  }

  .app-shell.sidebar-open .sidebar-overlay {
    display: block;
  }

  .topbar-menu-btn { display: flex; }

  .grid-cols-2,
  .grid-cols-3,
  .grid-cols-4 { grid-template-columns: 1fr; }

  .col-span-2,
  .col-span-3,
  .col-span-4 { grid-column: span 1; }

  .page-header { flex-direction: column; align-items: flex-start; }

  .upgrade-banner {
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-xs);
  }

  .topbar { padding: 0 var(--space-4); }
  .page-content { padding: var(--space-4); }
}

@media (max-width: 480px) {
  .page-header-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .btn-sync span { display: none; }
  .workspace-btn span { display: none; }

  .topbar-right .topbar-btn:not(:last-child) { display: none; }
}

@media (max-width:1180px){.org-context-name{display:none}.org-context-switcher{padding-left:5px}.page-content{padding:24px}}

/* ============================================================
   SCREENFLOW BACKOFFICE — COMPONENTS.CSS
   Buttons, Cards, Badges, Forms, Tables, Modals, Dropdowns...
   ============================================================ */

/* ============================================================
   AVATAR
   ============================================================ */
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  font-weight: 600;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
  letter-spacing: 0.02em;
  font-family: var(--font-display);
}

.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar-xs  { width: 24px; height: 24px; font-size: 10px; }
.avatar-sm  { width: 32px; height: 32px; font-size: 12px; }
.avatar-md  { width: 40px; height: 40px; font-size: 14px; }
.avatar-lg  { width: 48px; height: 48px; font-size: 16px; }
.avatar-xl  { width: 64px; height: 64px; font-size: 20px; }
.avatar-2xl { width: 80px; height: 80px; font-size: 24px; }

.avatar-green   { background: var(--color-success-bg); color: var(--color-success); }
.avatar-blue    { background: var(--color-info-bg); color: var(--color-info); }
.avatar-purple  { background: rgba(98,59,215,0.10); color: var(--brand-accent); }
.avatar-warning { background: var(--color-warning-bg); color: var(--color-warning); }
.avatar-red     { background: var(--color-danger-bg); color: var(--color-danger); }

.avatar-group {
  display: flex;
  align-items: center;
}

.avatar-group .avatar {
  border: 2px solid var(--color-bg-surface);
  margin-left: -8px;
}

.avatar-group .avatar:first-child { margin-left: 0; }

/* ============================================================
   STATUS INDICATOR
   ============================================================ */
.status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.status-dot.online    { background: var(--color-success); box-shadow: 0 0 0 2px var(--color-success-bg); }
.status-dot.offline   { background: var(--color-text-disabled); }
.status-dot.warning   { background: var(--color-warning-border); box-shadow: 0 0 0 2px var(--color-warning-bg); }
.status-dot.danger    { background: var(--color-danger-border); box-shadow: 0 0 0 2px var(--color-danger-bg); }
.status-dot.info      { background: var(--color-info-border); }
.status-dot.pulse {
  animation: pulse-dot 2s ease infinite;
}

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(54,145,95,0.4); }
  50%       { box-shadow: 0 0 0 6px rgba(54,145,95,0); }
}

/* ============================================================
   BADGE
   ============================================================ */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.badge svg { width: 10px; height: 10px; }

.badge-primary  { background: var(--brand-primary-light); color: var(--brand-primary); }
.badge-success  { background: var(--color-success-bg);    color: var(--color-success); }
.badge-warning  { background: var(--color-warning-bg);    color: var(--color-warning); }
.badge-danger   { background: var(--color-danger-bg);     color: var(--color-danger); }
.badge-info     { background: var(--color-info-bg);       color: var(--color-info); }
.badge-default  { background: var(--color-bg-subtle);     color: var(--color-text-secondary); }
.badge-dark     { background: var(--color-text-primary);  color: white; }
.badge-purple   { background: rgba(98,59,215,0.10);       color: var(--brand-accent); }

.badge-sm { padding: 1px 6px; font-size: 10px; }
.badge-lg { padding: 4px 10px; font-size: var(--text-sm); }

.badge-outline-success { background: transparent; border: 1px solid var(--color-success-border); color: var(--color-success); }
.badge-outline-danger  { background: transparent; border: 1px solid var(--color-danger-border);  color: var(--color-danger); }
.badge-outline-warning { background: transparent; border: 1px solid var(--color-warning-border); color: var(--color-warning); }
.badge-outline-info    { background: transparent; border: 1px solid var(--color-info-border);    color: var(--color-info); }

/* Device status badges */
.badge-online  { background: var(--color-success-bg); color: var(--color-success); }
.badge-offline { background: var(--color-bg-subtle);  color: var(--color-text-tertiary); }
.badge-maintenance { background: var(--color-warning-bg); color: var(--color-warning); }
.badge-error   { background: var(--color-danger-bg);  color: var(--color-danger); }

/* Role badges */
.badge-role-superadmin { background: rgba(98,59,215,0.10); color: var(--brand-accent); }
.badge-role-admin      { background: var(--brand-primary-light); color: var(--brand-primary); }
.badge-role-user       { background: var(--color-bg-subtle); color: var(--color-text-secondary); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  transition: var(--transition-fast);
  white-space: nowrap;
  user-select: none;
  vertical-align: middle;
  position: relative;
  overflow: visible;
}

.btn:focus-visible { box-shadow: var(--shadow-focus); outline: none; }

.btn svg { width: 15px; height: 15px; flex-shrink: 0; }

.btn-xs  { padding: 2px 10px; font-size: var(--text-xs); }
.btn-sm  { padding: 5px 12px; font-size: var(--text-sm); }
.btn-lg  { padding: 10px 20px; font-size: var(--text-base); }
.btn-xl  { padding: 13px 24px; font-size: var(--text-md); }
.btn-icon { padding: var(--space-2); aspect-ratio: 1; }
.btn-icon-sm { padding: 6px; aspect-ratio: 1; }

.btn-primary {
  background: var(--brand-primary);
  color: white;
  border-color: var(--brand-primary);
}
.btn-primary:hover   { background: var(--brand-primary-hover); border-color: var(--brand-primary-hover); }
.btn-primary:active  { transform: scale(0.98); }

.btn-secondary {
  background: var(--color-bg-surface);
  color: var(--color-text-secondary);
  border-color: var(--color-border);
}
.btn-secondary:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); border-color: var(--color-border-hover); }

.btn-ghost {
  background: transparent;
  color: var(--color-text-secondary);
  border-color: transparent;
}
.btn-ghost:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); }

.btn-danger {
  background: var(--color-danger);
  color: white;
  border-color: var(--color-danger);
}
.btn-danger:hover { background: #a32700; }

.btn-danger-soft {
  background: var(--color-danger-bg);
  color: var(--color-danger);
  border-color: transparent;
}
.btn-danger-soft:hover { background: var(--color-danger-border); color: white; }

.btn-success {
  background: var(--color-success);
  color: white;
  border-color: var(--color-success);
}
.btn-success:hover { background: #2d7a51; }

.btn-dark {
  background: var(--color-text-primary);
  color: white;
  border-color: var(--color-text-primary);
}
.btn-dark:hover { opacity: 0.88; }

.btn-purple {
  background: var(--brand-accent);
  color: white;
  border-color: var(--brand-accent);
}
.btn-purple:hover { background: #4423A9; }

.btn-outline {
  background: transparent;
  color: var(--brand-primary);
  border-color: var(--brand-primary);
}
.btn-outline:hover { background: var(--brand-primary-light); }

.btn:disabled,
.btn.disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

.btn.loading .btn-label { opacity: 0; }
.btn.loading::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: white;
  border-radius: var(--radius-full);
  animation: spin 0.7s linear infinite;
}

/* ============================================================
   CARD
   ============================================================ */
.card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-base);
  overflow: hidden;
}

.card:hover { box-shadow: var(--shadow-md); }

.card-header {
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.card-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.01em;
}

.card-subtitle {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  margin-top: 2px;
}

.card-body {
  padding: var(--space-5);
}

.card-footer {
  padding: var(--space-3) var(--space-5);
  border-top: 1px solid var(--color-border);
  background: var(--color-bg-subtle);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.card-flush .card-body { padding: 0; }

/* KPI / Stat Card */
.stat-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-base);
  position: relative;
  overflow: hidden;
}

.stat-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }

.stat-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--stat-accent, var(--brand-primary));
  border-radius: var(--radius-full) var(--radius-full) 0 0;
}

.stat-card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--stat-bg, var(--brand-primary-muted));
  color: var(--stat-accent, var(--brand-primary));
  margin-bottom: var(--space-3);
  flex-shrink: 0;
}

.stat-card-icon svg { width: 22px; height: 22px; }

.stat-card-value {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 800;
  color: var(--color-text-primary);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: var(--space-1);
}

.stat-card-label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  font-weight: 500;
}

.stat-card-trend {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--text-xs);
  font-weight: 600;
  margin-top: var(--space-2);
}

.stat-card-trend.up   { color: var(--color-success); }
.stat-card-trend.down { color: var(--color-danger); }
.stat-card-trend svg  { width: 12px; height: 12px; }

.stat-card-trend-label {
  color: var(--color-text-tertiary);
  font-weight: 400;
  margin-left: 2px;
}

/* ============================================================
   FORMS
   ============================================================ */
.form-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.form-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.form-label .required {
  color: var(--color-danger);
  font-size: var(--text-xs);
}

.form-hint {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}

.form-error {
  font-size: var(--text-xs);
  color: var(--color-danger);
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.form-error svg { width: 12px; height: 12px; }

.form-control {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  transition: var(--transition-fast);
  outline: none;
  line-height: 1.5;
}

.form-control:hover { border-color: var(--color-border-hover); }

.form-control:focus {
  border-color: var(--brand-primary);
  box-shadow: var(--shadow-focus);
}

.form-control::placeholder { color: var(--color-text-tertiary); }
.form-control:disabled     { background: var(--color-bg-subtle); cursor: not-allowed; opacity: 0.7; }

.form-control.is-error   { border-color: var(--color-danger-border); }
.form-control.is-success { border-color: var(--color-success-border); }

.form-control.form-control-lg {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-base);
}

textarea.form-control {
  resize: vertical;
  min-height: 90px;
}

.input-group {
  position: relative;
  display: flex;
  align-items: stretch;
}

.input-group .form-control {
  flex: 1;
}

.input-group-prefix,
.input-group-suffix {
  display: flex;
  align-items: center;
  padding: 0 var(--space-3);
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border-strong);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

.input-group-prefix {
  border-right: none;
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.input-group-suffix {
  border-left: none;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.input-group .form-control:not(:first-child) { border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.input-group .form-control:not(:last-child)  { border-radius: var(--radius-md) 0 0 var(--radius-md); }

.input-icon-wrapper {
  position: relative;
}

.input-icon-wrapper .form-control {
  padding-left: 36px;
}

.input-icon-wrapper .input-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-tertiary);
  display: flex;
  align-items: center;
  pointer-events: none;
}

.input-icon-wrapper .input-icon svg { width: 15px; height: 15px; }

.input-icon-wrapper.input-icon-right .form-control { padding-left: var(--space-3); padding-right: 36px; }
.input-icon-wrapper.input-icon-right .input-icon   { left: auto; right: 11px; }

/* Select */
.form-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23A3ACB6'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px;
  padding-right: 32px;
}

/* Checkbox & Radio */
.form-check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  cursor: pointer;
}

.form-check-input {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--brand-primary);
  cursor: pointer;
  flex-shrink: 0;
}

.form-check-label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  cursor: pointer;
}

/* Switch */
.form-switch {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  cursor: pointer;
}

.switch-input { display: none; }

.switch-track {
  width: 40px;
  height: 22px;
  background: var(--color-bg-muted);
  border-radius: var(--radius-full);
  position: relative;
  transition: var(--transition-base);
  border: 2px solid transparent;
  flex-shrink: 0;
  cursor: pointer;
}

.switch-track::after {
  content: '';
  position: absolute;
  left: 2px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: white;
  border-radius: var(--radius-full);
  transition: var(--transition-spring);
  box-shadow: var(--shadow-xs);
}

.switch-input:checked + .switch-track {
  background: var(--brand-primary);
}

.switch-input:checked + .switch-track::after {
  left: calc(100% - 18px);
}

.switch-label {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
}

/* ============================================================
   TABLE
   ============================================================ */
.table-container {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.table-toolbar {
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  background: var(--color-bg-surface);
}

.table-toolbar-left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex: 1;
  min-width: 0;
}

.table-toolbar-right {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.table-search {
  position: relative;
  min-width: 220px;
}

.table-search .form-control {
  padding-left: 34px;
  background: var(--color-bg-subtle);
  border-color: transparent;
}

.table-search .form-control:focus {
  background: var(--color-bg-surface);
  border-color: var(--brand-primary);
}

.table-search .search-icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-tertiary);
  display: flex;
}

.table-search .search-icon svg { width: 14px; height: 14px; }

.bulk-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  opacity: 0;
  pointer-events: none;
  transition: var(--transition-fast);
}

.bulk-actions.active {
  opacity: 1;
  pointer-events: auto;
}

.bulk-count {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--brand-primary);
}

.table-wrap {
  overflow-x: auto;
}

table.data-table {
  width: 100%;
  border-collapse: collapse;
}

table.data-table thead th {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-text-tertiary);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--color-bg-subtle);
  border-bottom: 1px solid var(--color-border);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: var(--transition-fast);
}

table.data-table thead th:hover { color: var(--color-text-secondary); }

table.data-table thead th.sortable::after {
  content: '↕';
  margin-left: var(--space-1);
  opacity: 0.4;
  font-size: 10px;
}

table.data-table thead th.sort-asc::after  { content: '↑'; opacity: 1; color: var(--brand-primary); }
table.data-table thead th.sort-desc::after { content: '↓'; opacity: 1; color: var(--brand-primary); }

table.data-table thead th:first-child { padding-left: var(--space-5); }
table.data-table thead th:last-child  { padding-right: var(--space-5); text-align: right; }

table.data-table tbody tr {
  border-bottom: 1px solid var(--color-border);
  transition: var(--transition-fast);
}

table.data-table tbody tr:last-child { border-bottom: none; }
table.data-table tbody tr:hover { background: var(--color-bg-subtle); }
table.data-table tbody tr.selected { background: var(--brand-primary-muted); }

table.data-table tbody td {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  vertical-align: middle;
}

table.data-table tbody td:first-child { padding-left: var(--space-5); }
table.data-table tbody td:last-child  { padding-right: var(--space-5); }

table.data-table tbody td strong {
  color: var(--color-text-primary);
  font-weight: 600;
}

.td-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
}

.action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--radius-sm);
  color: var(--color-text-tertiary);
  transition: var(--transition-fast);
  cursor: pointer;
}

.action-btn:hover {
  background: var(--color-bg-subtle);
  color: var(--color-text-primary);
}

.action-btn.danger:hover { color: var(--color-danger); background: var(--color-danger-bg); }
.action-btn svg { width: 15px; height: 15px; }

.table-pagination {
  padding: var(--space-3) var(--space-5);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  background: var(--color-bg-surface);
}

.table-pagination-info {
  font-size: var(--text-sm);
  color: var(--color-text-tertiary);
}

.pagination {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.pagination-btn {
  min-width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
  padding: 0 var(--space-2);
  background: var(--color-bg-surface);
}

.pagination-btn:hover      { border-color: var(--brand-primary); color: var(--brand-primary); }
.pagination-btn.active     { background: var(--brand-primary); border-color: var(--brand-primary); color: white; }
.pagination-btn:disabled   { opacity: 0.4; pointer-events: none; }
.pagination-btn svg        { width: 14px; height: 14px; }
.pagination-dots           { color: var(--color-text-tertiary); padding: 0 var(--space-1); }

/* ============================================================
   DROPDOWN
   ============================================================ */
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-menu {
  position: absolute;
  top: calc(100% + var(--space-1));
  right: 0;
  min-width: 180px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  z-index: var(--z-dropdown);
  padding: var(--space-1);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px) scale(0.97);
  transform-origin: top right;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.dropdown-menu.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.dropdown-menu.align-left { right: auto; left: 0; transform-origin: top left; }

.dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
  text-decoration: none;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  font-family: inherit;
}

.dropdown-item:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); }
.dropdown-item.danger { color: var(--color-danger); }
.dropdown-item.danger:hover { background: var(--color-danger-bg); }
.dropdown-item svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--color-text-tertiary); }
.dropdown-item.danger svg { color: var(--color-danger); }

.dropdown-divider {
  height: 1px;
  background: var(--color-border);
  margin: var(--space-1) 0;
}

.dropdown-header {
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
}

/* ============================================================
   MODAL
   ============================================================ */
.modal-backdrop,
.modal-overlay {
  position: fixed;
  inset: 0;
  background: var(--color-bg-overlay);
  z-index: var(--z-modal-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  backdrop-filter: blur(3px);
  animation: backdrop-in 0.18s ease;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.modal-backdrop.open,
.modal-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

@keyframes backdrop-in { from { opacity: 0; } to { opacity: 1; } }

.modal {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl);
  width: 100%;
  max-width: 540px;
  max-height: calc(100vh - var(--space-8));
  display: flex;
  flex-direction: column;
  transform: translateY(20px) scale(0.97);
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.modal-backdrop.open .modal,
.modal-overlay.open .modal {
  transform: translateY(0) scale(1);
}

.modal-sm { max-width: 400px; }
.modal-lg { max-width: 720px; }
.modal-xl { max-width: 900px; }

.modal-header {
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  flex-shrink: 0;
}

.modal-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
}

.modal-close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  color: var(--color-text-tertiary);
  cursor: pointer;
  flex-shrink: 0;
  transition: var(--transition-fast);
}

.modal-close:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); }
.modal-close svg { width: 18px; height: 18px; }

.modal-body {
  padding: var(--space-5) var(--space-6);
  overflow-y: auto;
  flex: 1;
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.modal-footer {
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  flex-shrink: 0;
}

/* ============================================================
   ALERT
   ============================================================ */
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  border: 1px solid transparent;
}

.alert-icon { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; }
.alert-icon svg { width: 16px; height: 16px; }

.alert-content { flex: 1; }
.alert-title { font-weight: 700; margin-bottom: 2px; }
.alert-close { flex-shrink: 0; cursor: pointer; opacity: 0.6; transition: opacity 0.15s; }
.alert-close:hover { opacity: 1; }

.alert-info    { background: var(--color-info-bg);    border-color: var(--color-info-border);    color: var(--color-info); }
.alert-success { background: var(--color-success-bg); border-color: var(--color-success-border); color: var(--color-success); }
.alert-warning { background: var(--color-warning-bg); border-color: var(--color-warning-border); color: var(--color-warning); }
.alert-danger  { background: var(--color-danger-bg);  border-color: var(--color-danger-border);  color: var(--color-danger); }

/* ============================================================
   TOAST NOTIFICATIONS
   ============================================================ */
.toast-container {
  position: fixed;
  bottom: var(--space-5);
  right: var(--space-5);
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  pointer-events: none;
}

.toast {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  max-width: 340px;
  pointer-events: auto;
  animation: toast-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

@keyframes toast-in {
  from { opacity: 0; transform: translateX(20px) scale(0.95); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}

.toast.hiding {
  opacity: 0;
  transform: translateX(20px) scale(0.95);
}

.toast-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.toast-icon svg { width: 18px; height: 18px; }

.toast.success .toast-icon { color: var(--color-success); }
.toast.error   .toast-icon { color: var(--color-danger); }
.toast.warning .toast-icon { color: var(--color-warning); }
.toast.info    .toast-icon { color: var(--color-info); }

.toast-content { flex: 1; min-width: 0; }
.toast-title   { font-size: var(--text-sm); font-weight: 700; color: var(--color-text-primary); }
.toast-message { font-size: var(--text-xs); color: var(--color-text-secondary); margin-top: 2px; }
.toast-close   { flex-shrink: 0; color: var(--color-text-tertiary); cursor: pointer; padding: 2px; }
.toast-close:hover { color: var(--color-text-primary); }
.toast-close svg { width: 14px; height: 14px; }

/* ============================================================
   TABS
   ============================================================ */
.tabs {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.tabs-nav {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--color-border);
  overflow-x: auto;
}

.tab-btn {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-tertiary);
  cursor: pointer;
  border: none;
  background: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: var(--transition-fast);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.tab-btn:hover { color: var(--color-text-secondary); }

.tab-btn.active {
  color: var(--brand-primary);
  border-bottom-color: var(--brand-primary);
}

.tab-btn .tab-count {
  background: var(--color-bg-subtle);
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
  padding: 1px 6px;
  border-radius: var(--radius-full);
}

.tab-btn.active .tab-count {
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
}

.tab-pane { display: none; }
.tab-pane.active { display: block; animation: fade-in 0.18s ease; }

/* Pill tabs variant */
.tabs-nav.tabs-pills {
  border-bottom: none;
  background: var(--color-bg-subtle);
  padding: var(--space-1);
  border-radius: var(--radius-md);
  gap: var(--space-1);
  display: inline-flex;
}

.tabs-nav.tabs-pills .tab-btn {
  border-bottom: none;
  margin-bottom: 0;
  border-radius: var(--radius-sm);
  padding: var(--space-1) var(--space-3);
}

.tabs-nav.tabs-pills .tab-btn.active {
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-sm);
  color: var(--color-text-primary);
}

/* ============================================================
   PROGRESS & LOADER
   ============================================================ */
.progress {
  height: 6px;
  background: var(--color-bg-muted);
  border-radius: var(--radius-full);
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background: var(--brand-primary);
  border-radius: var(--radius-full);
  transition: width 0.4s ease;
}

.progress-success .progress-bar { background: var(--color-success); }
.progress-warning .progress-bar { background: var(--color-warning-border); }
.progress-danger  .progress-bar { background: var(--color-danger); }

.progress-sm { height: 4px; }
.progress-lg { height: 8px; }

/* Spinner */
.spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--color-bg-muted);
  border-top-color: var(--brand-primary);
  border-radius: var(--radius-full);
  animation: spin 0.7s linear infinite;
}

.spinner-sm { width: 14px; height: 14px; }
.spinner-lg { width: 32px; height: 32px; border-width: 3px; }
.spinner-xl { width: 48px; height: 48px; border-width: 3px; }

/* Skeleton */
.skeleton {
  background: linear-gradient(90deg, var(--color-bg-subtle) 25%, var(--color-bg-muted) 50%, var(--color-bg-subtle) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
  border-radius: var(--radius-sm);
}

@keyframes skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.skeleton-text    { height: 14px; border-radius: var(--radius-sm); }
.skeleton-title   { height: 22px; border-radius: var(--radius-sm); }
.skeleton-circle  { border-radius: var(--radius-full); }
.skeleton-card    { height: 120px; border-radius: var(--radius-lg); }
.skeleton-avatar  { width: 40px; height: 40px; border-radius: var(--radius-full); }

/* ============================================================
   EMPTY STATE
   ============================================================ */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-12) var(--space-8);
  gap: var(--space-4);
}

.empty-state-icon {
  width: 72px;
  height: 72px;
  border-radius: var(--radius-xl);
  background: var(--color-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-tertiary);
  margin-bottom: var(--space-2);
}

.empty-state-icon svg { width: 36px; height: 36px; }

.empty-state-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
}

.empty-state-description {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  max-width: 360px;
  line-height: var(--leading-relaxed);
}

/* ============================================================
   TIMELINE
   ============================================================ */
.timeline { display: flex; flex-direction: column; }

.timeline-item {
  display: flex;
  gap: var(--space-3);
  padding-bottom: var(--space-4);
  position: relative;
}

.timeline-item:last-child { padding-bottom: 0; }

.timeline-line {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.timeline-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  background: var(--brand-primary);
  border: 2px solid var(--color-bg-surface);
  box-shadow: 0 0 0 2px var(--brand-primary-muted);
  flex-shrink: 0;
  margin-top: 4px;
  z-index: 1;
}

.timeline-dot.success { background: var(--color-success); box-shadow: 0 0 0 2px var(--color-success-bg); }
.timeline-dot.warning { background: var(--color-warning-border); box-shadow: 0 0 0 2px var(--color-warning-bg); }
.timeline-dot.danger  { background: var(--color-danger); box-shadow: 0 0 0 2px var(--color-danger-bg); }
.timeline-dot.offline { background: var(--color-text-disabled); box-shadow: none; }

.timeline-connector {
  flex: 1;
  width: 1px;
  background: var(--color-border);
  margin: var(--space-1) 0;
}

.timeline-content { flex: 1; min-width: 0; }
.timeline-title   { font-size: var(--text-sm); font-weight: 600; color: var(--color-text-primary); }
.timeline-text    { font-size: var(--text-xs); color: var(--color-text-secondary); margin-top: 2px; line-height: var(--leading-relaxed); }
.timeline-time    { font-size: var(--text-xs); color: var(--color-text-tertiary); margin-top: var(--space-1); }

/* ============================================================
   FILE UPLOAD
   ============================================================ */
.upload-area {
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  text-align: center;
  cursor: pointer;
  transition: var(--transition-base);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}

.upload-area:hover,
.upload-area.dragover {
  border-color: var(--brand-primary);
  background: var(--brand-primary-muted);
}

.upload-area-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg);
  background: var(--color-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-tertiary);
  transition: var(--transition-base);
}

.upload-area:hover .upload-area-icon {
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
}

.upload-area-icon svg { width: 24px; height: 24px; }
.upload-area-title { font-weight: 600; font-size: var(--text-base); color: var(--color-text-primary); }
.upload-area-subtitle { font-size: var(--text-sm); color: var(--color-text-tertiary); }
.upload-area-subtitle span { color: var(--brand-primary); font-weight: 600; }

/* ============================================================
   TOOLTIP
   ============================================================ */
[data-tooltip] {
  position: relative;
  cursor: default;
}

[data-tooltip]::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) scale(0.9);
  background: var(--color-text-primary);
  color: white;
  font-size: var(--text-xs);
  font-weight: 500;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease;
  z-index: var(--z-tooltip);
}

[data-tooltip]:hover::before {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.breadcrumb-nav {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-tertiary);
  margin-bottom: var(--space-4);
}

.breadcrumb-nav a { color: var(--color-text-tertiary); transition: var(--transition-fast); }
.breadcrumb-nav a:hover { color: var(--brand-primary); }
.breadcrumb-nav .bc-sep { color: var(--color-text-disabled); }
.breadcrumb-nav .bc-current { color: var(--color-text-primary); font-weight: 500; }

/* ============================================================
   ACCORDION
   ============================================================ */
.accordion { display: flex; flex-direction: column; gap: var(--space-2); }

.accordion-item {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4);
  cursor: pointer;
  user-select: none;
  transition: var(--transition-fast);
  gap: var(--space-3);
}

.accordion-header:hover { background: var(--color-bg-subtle); }

.accordion-title { font-weight: 600; font-size: var(--text-sm); color: var(--color-text-primary); }

.accordion-arrow {
  width: 18px;
  height: 18px;
  color: var(--color-text-tertiary);
  flex-shrink: 0;
  transition: transform 0.22s ease;
}

.accordion-item.open .accordion-arrow { transform: rotate(180deg); }

.accordion-body {
  display: none;
  padding: 0 var(--space-4) var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.accordion-item.open .accordion-body { display: block; animation: fade-in 0.18s ease; }

/* ============================================================
   OFFCANVAS
   ============================================================ */
.offcanvas-backdrop {
  position: fixed;
  inset: 0;
  background: var(--color-bg-overlay);
  z-index: var(--z-offcanvas);
  backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.offcanvas-backdrop.open { opacity: 1; pointer-events: auto; }

.offcanvas {
  position: fixed;
  top: 0;
  right: 0;
  width: 420px;
  max-width: calc(100vw - 40px);
  height: 100vh;
  background: var(--color-bg-surface);
  border-left: 1px solid var(--color-border);
  box-shadow: var(--shadow-xl);
  z-index: calc(var(--z-offcanvas) + 1);
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}

.offcanvas.open { transform: translateX(0); }

.offcanvas-header {
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-shrink: 0;
}

.offcanvas-title { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; letter-spacing: -0.02em; }
.offcanvas-body  { flex: 1; overflow-y: auto; padding: var(--space-5) var(--space-6); }
.offcanvas-footer {
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}


/* R31 — KIOSK dashboard parity components */
.dashboard-page-header { align-items:center; margin-bottom:24px; }
.dashboard-eyebrow { display:inline-flex; align-items:center; min-height:24px; margin-bottom:8px; padding:3px 9px; border-radius:999px; background:var(--brand-primary-light); color:var(--brand-primary); font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.dashboard-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.dashboard-stat-card { min-height:132px; text-decoration:none; display:flex; flex-direction:column; justify-content:flex-end; padding:20px; border-radius:14px; }
.dashboard-stat-card::before { height:4px; }
.dashboard-stat-card .stat-card-value { font-size:34px; margin-bottom:7px; }
.dashboard-stat-desc { display:block; margin-top:6px; max-width:80%; color:var(--color-text-tertiary); font-size:11px; line-height:1.35; }
.dashboard-stat-open { position:absolute; right:18px; top:18px; width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--color-bg-subtle); color:var(--color-text-secondary); font-size:16px; }
.dashboard-stat-card:hover .dashboard-stat-open { background:var(--brand-primary); color:#fff; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr); gap:20px; align-items:start; }
.dashboard-panel { overflow:hidden; }
.dashboard-panel .card-header { padding:18px 20px; }
.dashboard-panel .card-body { padding:22px 20px; }
.dashboard-panel .card-body p { color:var(--color-text-secondary); margin-bottom:18px; line-height:1.65; }
.dashboard-link-list { display:flex; flex-direction:column; }
.dashboard-link-list>a { display:grid; grid-template-columns:minmax(130px,.7fr) minmax(220px,1.3fr) 30px; gap:14px; align-items:center; padding:15px 20px; color:var(--color-text-primary); border-top:1px solid var(--color-border); }
.dashboard-link-list>a:first-child { border-top:0; }
.dashboard-link-list>a:hover { background:var(--color-bg-subtle); }
.dashboard-link-list span { font-weight:700; }
.dashboard-link-list small { color:var(--color-text-secondary); }
.dashboard-link-list b { font-size:18px; color:var(--brand-primary); text-align:right; }
@media(max-width:1100px){.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:640px){.dashboard-stat-grid{grid-template-columns:1fr}.dashboard-link-list>a{grid-template-columns:1fr 24px}.dashboard-link-list small{grid-column:1/2}.dashboard-link-list b{grid-column:2;grid-row:1/3}.dashboard-page-header{align-items:flex-start}.page-header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}}

/* ============================================================
   R34 — Blocking loader & dialog polish
   ============================================================ */
.foundation-loader{background:rgba(15,23,42,.42)!important;backdrop-filter:blur(6px) saturate(115%)!important}
.foundation-loader .loader-card{width:min(390px,calc(100vw - 32px))!important;padding:22px 24px 20px!important;border:1px solid var(--color-border)!important;border-radius:18px!important;background:var(--color-bg-surface)!important;box-shadow:0 28px 80px rgba(15,23,42,.24)!important;gap:9px!important}
.foundation-loader .loader-mark{gap:5px!important;margin-bottom:5px!important}
.foundation-loader .loader-mark span{width:7px!important;height:7px!important;background:var(--brand-primary)!important}
.foundation-loader .loader-card>strong{font-size:17px!important;line-height:1.3;color:var(--color-text-primary)!important}
.foundation-loader .loader-card>small{font-size:12px!important;line-height:1.45;color:var(--color-text-secondary)!important}
.foundation-loader .loader-progress{height:3px!important;margin-top:10px!important;border-radius:999px!important;background:var(--color-border)!important}
.foundation-loader .loader-progress i{width:45%;border-radius:999px;background:linear-gradient(90deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 68%,#fff));animation:kiosk-loader-slide 1.15s ease-in-out infinite alternate}
@keyframes kiosk-loader-slide{from{transform:translateX(-8%)}to{transform:translateX(128%)}}
body.dialog-open{overflow:hidden}

/* ============================================================
   SCREENFLOW BACKOFFICE — PAGES.CSS
   Page-specific styles: dashboards, device cards, media, auth, system
   ============================================================ */

/* ============================================================
   DASHBOARD — KPI GRID
   ============================================================ */
.kpi-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1200px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .kpi-grid { grid-template-columns: 1fr; } }

/* Color accent variants for stat cards */
.stat-accent-primary  { --stat-accent: var(--brand-primary);   --stat-bg: var(--brand-primary-muted); }
.stat-accent-success  { --stat-accent: var(--color-success);   --stat-bg: var(--color-success-bg); }
.stat-accent-info     { --stat-accent: var(--color-info);      --stat-bg: var(--color-info-bg); }
.stat-accent-warning  { --stat-accent: var(--color-warning);   --stat-bg: var(--color-warning-bg); }
.stat-accent-danger   { --stat-accent: var(--color-danger);    --stat-bg: var(--color-danger-bg); }
.stat-accent-purple   { --stat-accent: var(--brand-accent);    --stat-bg: rgba(98,59,215,0.10); }

/* Quick actions grid */
.quick-actions-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

.quick-action-card {
  padding: var(--space-4);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align: center;
  cursor: pointer;
  transition: var(--transition-base);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}

.quick-action-card:hover {
  border-color: var(--brand-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.quick-action-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--color-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  transition: var(--transition-fast);
}

.quick-action-card:hover .quick-action-icon {
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
}

.quick-action-icon svg { width: 22px; height: 22px; }
.quick-action-label { font-size: var(--text-sm); font-weight: 600; color: var(--color-text-primary); }

/* Chart wrapper */
.chart-wrapper {
  position: relative;
  width: 100%;
}

.chart-wrapper canvas { max-width: 100%; }

/* Dashboard activity feed */
.activity-feed { display: flex; flex-direction: column; }

.activity-item {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
  align-items: flex-start;
}

.activity-item:last-child { border-bottom: none; }

.activity-icon {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 13px;
}

.activity-content { flex: 1; min-width: 0; }
.activity-text    { font-size: var(--text-sm); color: var(--color-text-secondary); line-height: var(--leading-snug); }
.activity-text strong { color: var(--color-text-primary); font-weight: 600; }
.activity-time    { font-size: var(--text-xs); color: var(--color-text-tertiary); margin-top: 2px; }

/* ============================================================
   DEVICE CARDS
   ============================================================ */
.device-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.device-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: var(--transition-base);
  cursor: pointer;
  position: relative;
}

.device-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.device-card.selected { border-color: var(--brand-primary); box-shadow: 0 0 0 2px var(--brand-primary-muted); }

.device-card-screen {
  aspect-ratio: 16/9;
  background: var(--color-text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.device-card-screen img { width: 100%; height: 100%; object-fit: cover; }

.device-card-preview-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  color: rgba(255,255,255,0.3);
}

.device-card-preview-placeholder svg { width: 32px; height: 32px; }
.device-card-preview-placeholder span { font-size: var(--text-xs); }

.device-card-status-badge {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(0,0,0,0.6);
  border-radius: var(--radius-full);
  font-size: 10px;
  font-weight: 700;
  color: white;
  backdrop-filter: blur(4px);
}

.device-card-status-badge .status-dot { width: 6px; height: 6px; }

.device-card-actions {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  display: flex;
  gap: var(--space-1);
  opacity: 0;
  transition: var(--transition-fast);
}

.device-card:hover .device-card-actions { opacity: 1; }

.device-card-action-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.6);
  border-radius: var(--radius-sm);
  color: white;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: var(--transition-fast);
}

.device-card-action-btn:hover { background: var(--brand-primary); }
.device-card-action-btn svg { width: 14px; height: 14px; }

.device-card-body {
  padding: var(--space-3) var(--space-4);
}

.device-card-name {
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  font-family: var(--font-display);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.device-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--space-2);
  gap: var(--space-2);
}

.device-card-info {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.device-card-info svg { width: 11px; height: 11px; }

/* ============================================================
   MEDIA LIBRARY
   ============================================================ */
.media-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

.media-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: pointer;
  transition: var(--transition-base);
  position: relative;
}

.media-card:hover { border-color: var(--brand-primary); box-shadow: var(--shadow-md); }
.media-card.selected { border-color: var(--brand-primary); box-shadow: 0 0 0 2px var(--brand-primary-muted); }

.media-card-thumb {
  aspect-ratio: 4/3;
  background: var(--color-bg-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.media-card-thumb img { width: 100%; height: 100%; object-fit: cover; }

.media-card-thumb .media-type-icon {
  color: var(--color-text-tertiary);
}

.media-card-thumb .media-type-icon svg { width: 32px; height: 32px; }

.media-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  opacity: 0;
  transition: var(--transition-fast);
}

.media-card:hover .media-card-overlay { opacity: 1; }

.media-card-body {
  padding: var(--space-2) var(--space-3);
}

.media-card-name {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-card-size {
  font-size: 10px;
  color: var(--color-text-tertiary);
  margin-top: 2px;
}

.media-card-checkbox {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  z-index: 2;
  opacity: 0;
  transition: var(--transition-fast);
}

.media-card:hover .media-card-checkbox,
.media-card.selected .media-card-checkbox { opacity: 1; }

/* ============================================================
   PLAYLIST CARD
   ============================================================ */
.playlist-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: var(--transition-base);
  cursor: pointer;
}

.playlist-card:hover { box-shadow: var(--shadow-md); border-color: var(--color-border-hover); }

.playlist-card-header {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #2c2c3e 0%, #1a1a2e 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.playlist-items-preview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 100%;
  gap: 2px;
}

.playlist-items-preview .preview-item {
  background: var(--color-bg-muted);
  overflow: hidden;
}

.playlist-items-preview .preview-item img { width: 100%; height: 100%; object-fit: cover; }

.playlist-card-meta {
  position: absolute;
  bottom: var(--space-2);
  left: var(--space-2);
  right: var(--space-2);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.playlist-card-body { padding: var(--space-3) var(--space-4); }

.playlist-card-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  letter-spacing: -0.01em;
}

.playlist-card-info {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

/* ============================================================
   CAMPAIGN CARD
   ============================================================ */
.campaign-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-base);
}

.campaign-card:hover { box-shadow: var(--shadow-md); }

.campaign-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.campaign-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-base);
  color: var(--color-text-primary);
}

.campaign-dates {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}

.campaign-dates svg { width: 11px; height: 11px; }

.campaign-progress-wrap {
  margin-top: var(--space-3);
}

.campaign-progress-label {
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  margin-bottom: var(--space-1);
}

/* ============================================================
   MONITORING / STATUS PAGE
   ============================================================ */
.monitor-status-row {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border);
}

.monitor-status-row:last-child { border-bottom: none; }

.monitor-device-info {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex: 1;
  min-width: 0;
}

.monitor-device-name { font-weight: 600; font-size: var(--text-sm); color: var(--color-text-primary); }
.monitor-device-id   { font-size: var(--text-xs); color: var(--color-text-tertiary); }

.uptime-bar {
  display: flex;
  gap: 2px;
  align-items: center;
}

.uptime-segment {
  width: 8px;
  height: 20px;
  border-radius: 2px;
  background: var(--color-bg-muted);
  transition: var(--transition-fast);
}

.uptime-segment.up      { background: var(--color-success); }
.uptime-segment.down    { background: var(--color-danger); }
.uptime-segment.partial { background: var(--color-warning-border); }

/* ============================================================
   AUTH PAGES
   ============================================================ */
.auth-shell {
  min-height: 100vh;
  display: flex;
  background: var(--color-bg-app);
}

.auth-left {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
}

.auth-right {
  width: 48%;
  background: linear-gradient(160deg, #1E1C24 0%, #2c2845 60%, #3d2a5c 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-12);
  position: relative;
  overflow: hidden;
}

.auth-right::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(175,38,101,0.15) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(98,59,215,0.12) 0%, transparent 50%);
}

.auth-box {
  width: 100%;
  max-width: 400px;
}

.auth-brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-8);
  text-decoration: none;
}

.auth-brand-icon {
  width: 40px;
  height: 40px;
  background: var(--brand-primary);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}

.auth-brand-icon svg { width: 22px; height: 22px; }

.auth-brand-name {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--color-text-primary);
  letter-spacing: -0.03em;
}

.auth-brand-name span { color: var(--brand-primary); }

.auth-title {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 800;
  color: var(--color-text-primary);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: var(--space-2);
}

.auth-subtitle {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
  line-height: var(--leading-relaxed);
}

.auth-form { display: flex; flex-direction: column; gap: var(--space-4); }

.auth-divider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-4) 0;
  color: var(--color-text-tertiary);
  font-size: var(--text-xs);
}

.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border);
}

.auth-footer {
  margin-top: var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  text-align: center;
}

.auth-footer a { color: var(--brand-primary); font-weight: 600; }

.auth-social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
}

.auth-social-btn:hover { border-color: var(--color-border-hover); color: var(--color-text-primary); }

/* Right side content */
.auth-feature-title {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 800;
  color: white;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin-bottom: var(--space-5);
  position: relative;
  z-index: 1;
}

.auth-feature-title span { color: var(--brand-primary); }

.auth-feature-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  position: relative;
  z-index: 1;
}

.auth-feature-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
  color: rgba(255,255,255,0.7);
}

.auth-feature-item-icon {
  width: 28px;
  height: 28px;
  background: rgba(175,38,101,0.20);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.auth-feature-item-icon svg { width: 14px; height: 14px; color: var(--brand-primary); }

/* Screen preview mockup */
.auth-screen-mockup {
  width: 100%;
  max-width: 420px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-xl);
  padding: var(--space-4);
  margin-top: var(--space-6);
  position: relative;
  z-index: 1;
  backdrop-filter: blur(8px);
}

.auth-screen-mockup .mockup-header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.mockup-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
}

.mockup-dot:nth-child(1) { background: #FF5F57; }
.mockup-dot:nth-child(2) { background: #FFBD2E; }
.mockup-dot:nth-child(3) { background: #28CA41; }

.mockup-screen {
  background: #1a1a2e;
  border-radius: var(--radius-md);
  aspect-ratio: 16/9;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .auth-shell { flex-direction: column; }
  .auth-right { display: none; }
  .auth-left  { padding: var(--space-6) var(--space-4); }
}

/* ============================================================
   SYSTEM / ERROR PAGES
   ============================================================ */
.error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  background: var(--color-bg-app);
}

.error-page-inner {
  text-align: center;
  max-width: 480px;
}

.error-code {
  font-family: var(--font-display);
  font-size: 120px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.05em;
  background: linear-gradient(135deg, var(--brand-primary) 0%, #0A2155 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: var(--space-4);
}

.error-title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
  margin-bottom: var(--space-3);
}

.error-description {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-8);
}

.error-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.error-illustration {
  margin: 0 auto var(--space-6);
  width: 180px;
  height: 140px;
  position: relative;
}

/* Maintenance page */
.maintenance-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  background: linear-gradient(160deg, #F5F7FA 0%, #EDF0F7 100%);
  text-align: center;
}

.maintenance-icon {
  width: 80px;
  height: 80px;
  background: var(--brand-primary-light);
  border-radius: var(--radius-2xl);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-6);
  color: var(--brand-primary);
}

.maintenance-icon svg { width: 44px; height: 44px; }

.maintenance-progress {
  max-width: 320px;
  margin: var(--space-6) auto 0;
}

/* ============================================================
   SETTINGS PAGE
   ============================================================ */
.settings-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--space-6);
  align-items: start;
}

.settings-sidebar {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-2);
  position: sticky;
  top: calc(var(--topbar-height) + var(--space-6));
}

.settings-nav-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
  text-decoration: none;
}

.settings-nav-item:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); }

.settings-nav-item.active {
  background: var(--brand-primary-muted);
  color: var(--brand-primary);
  font-weight: 600;
}

.settings-nav-item svg { width: 16px; height: 16px; flex-shrink: 0; }

.settings-content { display: flex; flex-direction: column; gap: var(--space-5); }

.settings-section {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.settings-section-header {
  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.settings-section-title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-base); }
.settings-section-subtitle { font-size: var(--text-sm); color: var(--color-text-secondary); margin-top: 2px; }

.settings-section-body { padding: var(--space-5) var(--space-6); }

.settings-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-border);
}

.settings-row:last-child { border-bottom: none; }

.settings-row-label { flex: 1; }
.settings-row-label strong { font-size: var(--text-sm); font-weight: 600; color: var(--color-text-primary); display: block; }
.settings-row-label span { font-size: var(--text-xs); color: var(--color-text-tertiary); }

.settings-row-control { flex-shrink: 0; min-width: 200px; text-align: right; }

@media (max-width: 768px) {
  .settings-layout { grid-template-columns: 1fr; }
  .settings-sidebar { position: static; }
  .settings-row { flex-direction: column; }
  .settings-row-control { text-align: left; min-width: 0; width: 100%; }
}

/* ============================================================
   SUPERADMIN PAGES
   ============================================================ */
.platform-health-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}

@media (max-width: 900px) { .platform-health-grid { grid-template-columns: 1fr; } }

.health-indicator {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
}

.health-indicator-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-3);
}

.health-indicator-name { font-weight: 600; font-size: var(--text-sm); }
.health-status-operational { color: var(--color-success); }
.health-status-degraded    { color: var(--color-warning); }
.health-status-outage      { color: var(--color-danger); }

.health-gauge {
  height: 4px;
  background: var(--color-bg-muted);
  border-radius: var(--radius-full);
  overflow: hidden;
}

.health-gauge-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: var(--color-success);
  transition: width 0.6s ease;
}

/* Org / Tenant cards — canonical organization surface */
.org-card {
  position: relative;
  min-height: 250px;
  height: 100%;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: 18px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 17px;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow: 0 4px 16px rgba(23,32,51,.035);
}
.org-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 45%,#fff));
  opacity: .9;
}
.org-card:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(23,32,51,.09); border-color: color-mix(in srgb,var(--brand-primary) 36%,var(--color-border)); }
.org-card-system { border-style: dashed; box-shadow: none; }
.org-card-system::before { background: #7c3aed; }
.org-card-system:hover { transform:none; border-color:var(--color-border); box-shadow:none; }
.org-card-header { display:flex; align-items:center; gap:12px; margin:0; min-height:52px; }
.org-logo {
  width:48px; height:48px; border-radius:14px; display:grid; place-items:center;
  background:var(--brand-primary-muted); color:var(--brand-primary);
  font-family:var(--font-display); font-weight:800; font-size:17px; flex:none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.42);
}
.org-logo.logo-purple { background:#ede9fe; color:#7c3aed; }
.org-logo.logo-blue { background:#dbeafe; color:#2563eb; }
.org-logo.logo-green { background:#dcfce7; color:#16a34a; }
.org-logo.logo-pink { background:#fce7f3; color:#db2777; }
.org-logo.logo-teal { background:#ccfbf1; color:#0f766e; }
.org-meta { flex:1; min-width:0; }
.org-name { font-family:var(--font-display); font-weight:800; font-size:16px; letter-spacing:-.015em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.org-domain,.org-plan { margin-top:3px; font-size:12px; color:var(--color-text-tertiary); }
.org-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0; border:1px solid var(--color-border); border-radius:13px; background:var(--color-bg-subtle); overflow:hidden; }
.org-stat-item { min-width:0; padding:14px 8px; text-align:center; }
.org-stat-item + .org-stat-item { border-left:1px solid var(--color-border); }
.org-stat-value { font-family:var(--font-display); font-weight:800; font-size:21px; line-height:1.1; letter-spacing:-.03em; color:var(--color-text-primary); }
.org-stat-label { margin-top:5px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.055em; color:var(--color-text-tertiary); }
.org-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid var(--color-border); }
.org-enter-btn { min-height:38px; border-radius:10px!important; padding-inline:15px!important; box-shadow:0 5px 14px rgba(175,38,101,.16); }
.org-edit-btn,.org-card .btn-ghost { width:38px; height:38px; padding:0!important; display:grid!important; place-items:center; border:1px solid var(--color-border)!important; border-radius:10px!important; background:var(--color-bg-surface)!important; color:var(--color-text-secondary)!important; }
.org-card .btn-ghost:hover { border-color:var(--brand-primary)!important; color:var(--brand-primary)!important; background:var(--brand-primary-light)!important; }
.view-toggle { display:flex; border:1px solid var(--color-border); border-radius:10px; overflow:hidden; background:var(--color-bg-surface); }
.view-toggle-btn { min-width:38px; height:36px; padding:0 10px; display:grid; place-items:center; background:none; border:0; cursor:pointer; color:var(--color-text-tertiary); transition:background .15s,color .15s; }
.view-toggle-btn.active { background:var(--brand-primary); color:#fff; }
.org-list-row { display:grid; grid-template-columns:2.5fr 1fr 1fr 1fr 80px; align-items:center; min-height:56px; padding:10px 16px; border-bottom:1px solid var(--color-border); gap:12px; }
.org-list-row:hover { background:var(--color-bg-subtle); }
.org-list-header { min-height:42px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.065em; color:var(--color-text-tertiary); background:var(--color-bg-subtle); border-radius:12px 12px 0 0; }
.org-logo-sm { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font-family:var(--font-display); font-weight:800; font-size:12px; flex:none; }

/* ============================================================
   CALENDAR / SCHEDULING
   ============================================================ */
.calendar-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-4);
  gap: var(--space-3);
}

.calendar-title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.calendar-nav {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.calendar-nav-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background: var(--color-bg-surface);
  cursor: pointer;
  transition: var(--transition-fast);
}

.calendar-nav-btn:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.calendar-nav-btn svg { width: 14px; height: 14px; }

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: var(--color-border);
  gap: 1px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
}

.calendar-day-header {
  background: var(--color-bg-subtle);
  padding: var(--space-2);
  text-align: center;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
}

.calendar-cell {
  background: var(--color-bg-surface);
  min-height: 100px;
  padding: var(--space-2);
  cursor: pointer;
  transition: var(--transition-fast);
  overflow: hidden;
}

.calendar-cell:hover { background: var(--color-bg-subtle); }

.calendar-cell.other-month { opacity: 0.5; }

.calendar-cell.today {
  background: var(--brand-primary-muted);
}

.calendar-date {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-secondary);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-1);
}

.calendar-cell.today .calendar-date {
  background: var(--brand-primary);
  color: white;
}

.calendar-event {
  padding: 2px 6px;
  border-radius: var(--radius-xs);
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
  cursor: pointer;
}

.calendar-event.type-campaign   { background: var(--brand-primary-muted); color: var(--brand-primary); }
.calendar-event.type-playlist   { background: var(--color-info-bg); color: var(--color-info); }
.calendar-event.type-maintenance{ background: var(--color-warning-bg); color: var(--color-warning); }

/* ============================================================
   REPORTS / ANALYTICS
   ============================================================ */
.analytics-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
}

.date-range-picker {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.date-range-btn {
  padding: var(--space-2) var(--space-3);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-fast);
}

.date-range-btn:hover  { border-color: var(--brand-primary); color: var(--brand-primary); }
.date-range-btn.active { background: var(--brand-primary-muted); border-color: var(--brand-primary); color: var(--brand-primary); font-weight: 600; }

/* Donut wrapper */
.donut-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.donut-center {
  position: absolute;
  text-align: center;
  pointer-events: none;
}

.donut-center-value {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 800;
  color: var(--color-text-primary);
  letter-spacing: -0.03em;
  line-height: 1;
}

.donut-center-label {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  margin-top: 2px;
}

/* ============================================================
   LOGS / AUDIT
   ============================================================ */
.log-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-5);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--text-sm);
  transition: var(--transition-fast);
}

.log-row:hover { background: var(--color-bg-subtle); }

.log-time {
  width: 130px;
  flex-shrink: 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  padding-top: 2px;
}

.log-level {
  width: 68px;
  flex-shrink: 0;
}

.log-message {
  flex: 1;
  color: var(--color-text-secondary);
  min-width: 0;
}

.log-message strong { color: var(--color-text-primary); }

.log-source {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  flex-shrink: 0;
}

/* ============================================================
   R34 — Roles & permissions page
   ============================================================ */
.roles-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-bottom:32px;align-items:stretch}
.role-card{position:relative;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:18px;padding:22px;display:flex;flex-direction:column;min-width:0;height:100%;min-height:320px;overflow:hidden;box-shadow:0 5px 18px rgba(23,32,51,.035);transition:transform .18s,border-color .18s,box-shadow .18s}
.role-card:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:var(--role-color,var(--brand-primary))}
.role-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--role-color,var(--brand-primary)) 48%,var(--color-border));box-shadow:0 14px 34px rgba(23,32,51,.09)}
.role-card-header{display:flex;align-items:flex-start;gap:12px;margin:2px 0 18px}
.role-icon{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex:none}
.role-icon svg{width:21px;height:21px}
.role-card-title{font-weight:800;font-size:17px;color:var(--color-text-primary);line-height:1.25}
.role-card-desc{font-size:12px;color:var(--color-text-tertiary);margin-top:3px;line-height:1.4;min-height:34px}
.role-card-copy{font-size:13px;color:var(--color-text-secondary);margin:0 0 15px;min-height:60px;line-height:1.55}
.role-stat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:auto;padding-block:15px;border-block:1px solid var(--color-border)}
.role-stat-item{text-align:center;min-width:0;padding:0 8px}.role-stat-item+.role-stat-item{border-inline-start:1px solid var(--color-border)}
.role-stat-item strong{display:block;font-size:20px;font-weight:800;color:var(--color-text-primary);line-height:1.25;overflow-wrap:anywhere}
.role-stat-item span{display:block;margin-top:5px;font-size:10px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.055em}
.role-card-footer{margin-top:16px;display:flex;gap:8px;align-items:center}
.role-edit-btn{min-height:38px!important;background:var(--role-color,var(--brand-primary))!important;color:#fff!important;border:1px solid var(--role-color,var(--brand-primary))!important;font-weight:750!important;box-shadow:0 4px 12px color-mix(in srgb,var(--role-color,var(--brand-primary)) 18%,transparent)}
.role-edit-btn:hover{filter:brightness(.94);transform:translateY(-1px)}
.perm-matrix{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:18px;overflow:hidden;box-shadow:0 5px 18px rgba(23,32,51,.03)}
.perm-matrix-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:12px}
.perm-matrix-title{font-weight:800;font-size:16px;color:var(--color-text-primary)}
.perm-table-wrap{overflow-x:auto}.perm-table{width:100%;border-collapse:collapse;min-width:720px}
.perm-table thead th{padding:12px 14px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.055em;color:var(--color-text-tertiary);background:var(--color-bg-subtle);text-align:center;white-space:nowrap}
.perm-table thead th:first-child{text-align:left;min-width:260px;position:sticky;left:0;background:var(--color-bg-subtle);z-index:2}
.perm-table tbody tr{border-bottom:1px solid var(--color-border)}.perm-table tbody tr:last-child{border-bottom:none}.perm-table tbody tr:hover{background:var(--color-bg-subtle)}
.perm-table tbody td{padding:11px 14px;text-align:center;vertical-align:middle}.perm-table tbody td:first-child{text-align:left;position:sticky;left:0;background:var(--color-bg-surface);z-index:1}.perm-table tbody tr:hover td:first-child{background:var(--color-bg-subtle)}
.perm-section-header td{background:var(--color-bg-subtle)!important;font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);padding:9px 14px!important}
.perm-label{font-size:13px;font-weight:600;color:var(--color-text-primary)}.perm-label small{display:block;font-size:11px;color:var(--color-text-tertiary);font-weight:400;margin-top:2px}
.perm-check{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%}.perm-check.yes{background:#d1fae5;color:#059669}.perm-check.no{background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.perm-check.partial{background:#fef3c7;color:#d97706}
.perm-role-header{display:flex;flex-direction:column;align-items:center;gap:4px}.legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--color-text-secondary)}
@media(max-width:1500px){.roles-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:980px){.roles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.roles-grid{grid-template-columns:minmax(0,1fr)}}

/* ============================================================
   R34 — ASSIGNMENT EDITOR
   Compact two-column editor; avoids the tall legacy form stack.
   ============================================================ */
.assignment-editor{max-width:880px;margin:0 auto;border-radius:18px;overflow:visible}
.assignment-editor .card-body{padding:24px}
.assignment-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px}
.assignment-field-wide{grid-column:1/-1}
.assignment-editor .form-group{margin:0}
.assignment-editor .form-label{margin-bottom:7px;font-size:12px;font-weight:750;color:var(--color-text-secondary)}
.required-mark{color:var(--color-danger)}
.assignment-target-type{display:grid;grid-template-columns:1fr 1fr;min-height:44px;border:1px solid var(--color-border);border-radius:11px;overflow:hidden;background:var(--color-bg-surface)}
.assignment-target-option{position:relative;display:flex;align-items:center;gap:9px;min-height:44px;padding:0 13px;cursor:pointer;font-size:13px;font-weight:650;color:var(--color-text-secondary);transition:background .15s,color .15s}
.assignment-target-option+.assignment-target-option{border-left:1px solid var(--color-border)}
.assignment-target-option input{position:absolute;opacity:0;pointer-events:none}
.assignment-radio-dot{width:16px;height:16px;border:2px solid var(--color-border-hover);border-radius:50%;display:grid;place-items:center;flex:none;transition:border-color .15s,background .15s,box-shadow .15s}
.assignment-radio-dot:after{content:'';width:6px;height:6px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s}
.assignment-target-option:has(input:checked){background:var(--brand-primary-light);color:var(--brand-primary)}
.assignment-target-option input:checked+.assignment-radio-dot{background:var(--brand-primary);border-color:var(--brand-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 14%,transparent)}
.assignment-target-option input:checked+.assignment-radio-dot:after{transform:scale(1)}
.assignment-status-row{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}
.assignment-status-row>div{display:grid;gap:3px}.assignment-status-row strong{font-size:13px}.assignment-status-row small{font-size:11px;color:var(--color-text-tertiary);line-height:1.35}
.assignment-status-row .form-switch{margin:0;cursor:pointer;flex:none}
.assignment-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-border)}
@media(max-width:720px){.assignment-editor .card-body{padding:18px}.assignment-form-grid{grid-template-columns:1fr}.assignment-field-wide{grid-column:auto}.assignment-status-row{align-items:flex-start}.assignment-actions .btn{flex:1}}

/* ============================================================
   R34 — Backup destination dialog
   ============================================================ */
.backup-destination-modal[hidden]{display:none!important}
.backup-destination-modal{position:fixed;inset:0;z-index:var(--z-modal-bg,1200);display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.46);backdrop-filter:blur(6px);opacity:0;transition:opacity .15s ease}
.backup-destination-modal.is-open{opacity:1}
.backup-destination-dialog{position:relative;width:min(620px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;padding:26px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-surface);box-shadow:0 30px 90px rgba(15,23,42,.26)}
.backup-destination-dialog>.dialog-close{position:absolute;top:16px;right:16px}
.backup-destination-dialog>.dialog-hero-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:15px;border-radius:14px;background:var(--brand-primary-light);color:var(--brand-primary)}
.backup-destination-dialog>.dialog-hero-icon svg{width:22px;height:22px}
.backup-destination-dialog>h2{margin:0 48px 6px 0;font-size:22px;letter-spacing:-.025em}
.backup-destination-dialog>p{margin:0 48px 20px 0;color:var(--color-text-secondary);line-height:1.5}
.backup-destination-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.backup-destination-form label{display:grid;gap:7px;font-size:12px;font-weight:750;color:var(--color-text-secondary)}
.backup-destination-form .span-2{grid-column:1/-1}
.backup-destination-form .switch-row{display:flex;align-items:center;gap:9px;padding:12px 13px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-subtle)}
.backup-destination-form .dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin:22px -26px -26px;padding:16px 26px;border-top:1px solid var(--color-border);background:var(--color-bg-subtle)}
@media(max-width:680px){.backup-destination-modal{padding:12px}.backup-destination-dialog{padding:22px 18px;border-radius:16px}.backup-destination-form .form-grid{grid-template-columns:1fr}.backup-destination-form .span-2{grid-column:auto}.backup-destination-form .dialog-actions{margin:20px -18px -22px;padding:14px 18px}}

/* ============================================================
   R62 — UX STRUCTURE / LONG FORMS / MAINTENANCE WORKSPACE
   ============================================================ */

/* Long forms: a large edit surface is split into explicit tabs instead of one tall card. */
.kiosk-form-page-header .page-header-subtitle{max-width:720px;margin-top:6px;color:var(--color-text-secondary);font-size:13px}
.kiosk-long-form{width:min(1120px,100%);display:grid;gap:14px}
.kiosk-form-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:7px;border:1px solid var(--color-border);border-radius:16px;background:color-mix(in srgb,var(--color-bg-subtle) 82%,var(--color-bg-surface));box-shadow:0 5px 18px rgba(15,23,42,.035)}
.kiosk-form-tab{appearance:none;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--color-text-secondary);min-width:0;min-height:68px;padding:10px 13px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;text-align:start;cursor:pointer;transition:border-color .16s,background .16s,color .16s,box-shadow .16s,transform .16s}
.kiosk-form-tab:hover{background:color-mix(in srgb,var(--color-bg-surface) 74%,transparent);color:var(--color-text-primary)}
.kiosk-form-tab:focus-visible{outline:0;box-shadow:var(--shadow-focus)}
.kiosk-form-tab.is-active{border-color:color-mix(in srgb,var(--brand-primary) 18%,var(--color-border));background:var(--color-bg-surface);color:var(--color-text-primary);box-shadow:0 6px 16px rgba(15,23,42,.07)}
.kiosk-form-tab-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--color-bg-subtle);color:var(--color-text-tertiary)}
.kiosk-form-tab.is-active .kiosk-form-tab-icon{background:var(--brand-primary-light);color:var(--brand-primary)}
.kiosk-form-tab-icon .ui-icon{width:17px;height:17px}
.kiosk-form-tab>span:last-child{min-width:0;display:grid;gap:2px}
.kiosk-form-tab strong{font-size:12px;line-height:1.3;font-weight:800;color:inherit}
.kiosk-form-tab small{font-size:9px;line-height:1.35;color:var(--color-text-tertiary);white-space:normal}
.kiosk-form-card{border:1px solid var(--color-border);border-radius:18px;background:var(--color-bg-surface);box-shadow:0 10px 28px rgba(15,23,42,.055);overflow:visible}
.kiosk-form-panel{padding:26px 28px 8px}
.kiosk-form-panel[hidden]{display:none!important}
.kiosk-form-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}
.kiosk-form-eyebrow,.maintenance-kicker{display:block;margin-bottom:5px;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-primary)}
.kiosk-form-panel-head h2{margin:0;color:var(--color-text-primary);font-size:20px;line-height:1.25;letter-spacing:-.02em}
.kiosk-form-panel-head p{max-width:680px;margin:6px 0 0;color:var(--color-text-secondary);font-size:11px;line-height:1.55}
.kiosk-form-section{padding:20px 0;border-bottom:1px solid var(--color-border)}
.kiosk-form-section:last-child{border-bottom:0}
.kiosk-form-section-title{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px;margin-bottom:16px}
.kiosk-form-section-title>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--color-bg-subtle);color:var(--brand-primary)}
.kiosk-form-section-title .ui-icon{width:16px;height:16px}
.kiosk-form-section-title>div{display:grid;gap:2px}
.kiosk-form-section-title strong{font-size:12px;color:var(--color-text-primary)}
.kiosk-form-section-title small{font-size:9px;line-height:1.4;color:var(--color-text-tertiary)}
.kiosk-form-grid{gap:16px!important}
.kiosk-form-field-medium{max-width:390px}
.kiosk-form-textarea{min-height:118px;resize:vertical}
.kiosk-long-form .form-group{margin-bottom:16px}
.kiosk-long-form .form-label{font-size:11px;font-weight:750;color:var(--color-text-primary)}
.kiosk-long-form .form-hint{margin:5px 0 0;color:var(--color-text-tertiary);font-size:9px;line-height:1.4}
.required-mark{color:var(--color-danger);margin-inline-start:2px}
.kiosk-token-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}
.kiosk-token-box>code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--color-text-primary);letter-spacing:.02em}
.kiosk-token-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.kiosk-token-serial{margin-top:8px!important}
.kiosk-status-block-r62{display:grid;gap:14px;padding:0!important;background:transparent!important;border:0!important}
.kiosk-status-switch{width:max-content;max-width:100%;padding:13px 15px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}
.kiosk-form-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 28px;border-top:1px solid var(--color-border);border-radius:0 0 18px 18px;background:color-mix(in srgb,var(--color-bg-subtle) 65%,var(--color-bg-surface))}
.kiosk-form-actions-copy{min-width:0;display:grid;gap:2px}
.kiosk-form-actions-copy strong{font-size:11px;color:var(--color-text-primary)}
.kiosk-form-actions-copy small{font-size:9px;color:var(--color-text-tertiary)}
.kiosk-form-actions-buttons{display:flex;align-items:center;gap:9px;flex:none}
[dir="rtl"] .kiosk-form-tab,[dir="rtl"] .kiosk-form-section-title{text-align:right}

/* Maintenance: one coherent workspace with controlled select geometry and local operation states. */
.maintenance-workspace{display:grid;gap:18px;max-width:1460px;margin:0 auto}
.maintenance-page-header{margin-bottom:0!important}
.maintenance-page-header .page-header-subtitle{max-width:760px;margin-top:5px;color:var(--color-text-secondary);font-size:12px}
.maintenance-panel{border:1px solid var(--color-border);border-radius:18px;background:var(--color-bg-surface);box-shadow:0 9px 26px rgba(15,23,42,.045);overflow:visible}
.maintenance-panel-head{min-height:86px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--color-border)}
.maintenance-panel-title{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-width:0}
.maintenance-panel-icon,.maintenance-tool-icon{display:grid;place-items:center;flex:none;border-radius:11px}
.maintenance-panel-icon{width:40px;height:40px}
.maintenance-panel-icon .ui-icon,.maintenance-tool-icon .ui-icon{width:18px;height:18px}
.maintenance-panel-title h2,.maintenance-section-heading h2,.maintenance-tool-head h3{margin:0;color:var(--color-text-primary)}
.maintenance-panel-title h2,.maintenance-section-heading h2{font-size:14px;line-height:1.3}
.maintenance-panel-title p,.maintenance-section-heading p{margin:4px 0 0;color:var(--color-text-secondary);font-size:10px;line-height:1.5}
.maintenance-panel-icon.tone-danger{background:color-mix(in srgb,#ef4444 10%,var(--color-bg-surface));color:#dc2626}
.maintenance-threshold-field{display:grid;grid-template-columns:auto 160px;align-items:center;gap:10px;flex:none}
.maintenance-threshold-field>label,.maintenance-tool-control>label{font-size:10px;font-weight:750;color:var(--color-text-secondary)}
.maintenance-threshold-field .kiosk-select2{width:160px!important;min-width:160px!important}
.maintenance-table-wrap{overflow:auto;border-radius:0}
.maintenance-alerts-table{margin:0!important}
.maintenance-alerts-table thead th{height:44px;padding:0 16px!important;background:var(--color-bg-subtle)!important;font-size:8.5px!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--color-text-tertiary)!important}
.maintenance-alerts-table tbody td{padding:14px 16px!important;vertical-align:middle;font-size:10px}
.maintenance-alerts-table tbody tr:hover{background:color-mix(in srgb,var(--brand-primary) 2.4%,var(--color-bg-surface))}
.maintenance-actions-column{width:52px!important;text-align:center}
.maintenance-kiosk-link{font-weight:750;color:var(--color-text-primary);text-decoration:none}.maintenance-kiosk-link:hover{color:var(--brand-primary)}
.maintenance-muted{color:var(--color-text-tertiary)}
.maintenance-time{font-weight:750;color:var(--color-text-secondary)}
.maintenance-time-now{color:var(--color-success,#16a34a)}
.maintenance-time-late{color:var(--color-danger,#dc2626)}
.maintenance-never{font-style:italic;color:#b7791f}
.maintenance-table-footer{min-height:50px;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-subtle) 62%,var(--color-bg-surface));border-radius:0 0 18px 18px}
.maintenance-table-summary{display:flex;align-items:center;gap:9px;color:var(--color-text-tertiary);font-size:9px}.maintenance-table-summary #alerts-count:not(:empty){padding:4px 7px;border-radius:999px;background:var(--brand-primary-light);color:var(--brand-primary);font-weight:800}
.maintenance-tools-section{display:grid;gap:13px}
.maintenance-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:0 2px}
.maintenance-warning-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid color-mix(in srgb,#f59e0b 24%,var(--color-border));border-radius:999px;background:color-mix(in srgb,#f59e0b 7%,var(--color-bg-surface));color:#a16207;font-size:8px;font-weight:800;white-space:nowrap}
.maintenance-warning-pill .ui-icon{width:12px;height:12px}
.maintenance-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.maintenance-tool-card{position:relative;min-width:0;min-height:265px;padding:18px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-surface);box-shadow:0 7px 22px rgba(15,23,42,.035);overflow:visible;transition:transform .16s,border-color .16s,box-shadow .16s}
.maintenance-tool-card:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(15,23,42,.055)}
.maintenance-tool-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;border-radius:16px 16px 0 0;background:var(--maintenance-tone,var(--brand-primary))}
.maintenance-tool-card.tone-danger{--maintenance-tone:#ef4444;--maintenance-soft:color-mix(in srgb,#ef4444 10%,var(--color-bg-surface));--maintenance-ink:#dc2626}
.maintenance-tool-card.tone-warning{--maintenance-tone:#f59e0b;--maintenance-soft:color-mix(in srgb,#f59e0b 11%,var(--color-bg-surface));--maintenance-ink:#a16207}
.maintenance-tool-card.tone-info{--maintenance-tone:#3b82f6;--maintenance-soft:color-mix(in srgb,#3b82f6 10%,var(--color-bg-surface));--maintenance-ink:#2563eb}
.maintenance-tool-head{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px}
.maintenance-tool-icon{width:42px;height:42px;background:var(--maintenance-soft);color:var(--maintenance-ink)}
.maintenance-tool-head h3{font-size:13px;line-height:1.3;margin-top:2px}
.maintenance-tool-head p{margin:5px 0 0;color:var(--color-text-secondary);font-size:10px;line-height:1.55}
.maintenance-tool-control{display:grid;gap:7px;margin-top:auto}
.maintenance-tool-control .kiosk-select2{width:100%!important;min-width:0!important}
.maintenance-tool-control .select2-selection{min-height:42px!important}
.maintenance-tool-spacer{margin-top:auto;min-height:63px;display:flex;align-items:flex-end}
.maintenance-note{display:flex;align-items:flex-start;gap:7px;padding:9px 10px;border-radius:10px;background:var(--color-bg-subtle);color:var(--color-text-tertiary);font-size:8.5px;line-height:1.45}.maintenance-note .ui-icon{width:13px;height:13px;flex:none;margin-top:1px}
.maintenance-tool-footer{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:13px;border-top:1px solid var(--color-border)}
.maintenance-count{min-width:26px;height:26px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--maintenance-soft);color:var(--maintenance-ink);font-size:9px;font-weight:850}.maintenance-count[hidden]{display:none!important}
.maintenance-tool-button{min-width:164px;min-height:40px}
.maintenance-tool-card .kiosk-select2.is-open{z-index:175}
.maintenance-tool-card .kiosk-select2 .select2-dropdown{z-index:176;min-width:100%}

@media(max-width:1050px){.maintenance-tool-grid{grid-template-columns:1fr 1fr}.maintenance-tool-card:last-child{grid-column:1/-1}.kiosk-form-grid-technical{grid-template-columns:1fr 1fr!important}}
@media(max-width:760px){.kiosk-form-tabs{grid-template-columns:1fr;padding:6px}.kiosk-form-tab{min-height:56px;grid-template-columns:32px minmax(0,1fr);padding:8px 10px}.kiosk-form-tab-icon{width:32px;height:32px}.kiosk-form-tab small{display:none}.kiosk-form-panel{padding:20px 18px 6px}.kiosk-form-grid,.kiosk-form-grid-technical{grid-template-columns:1fr!important}.kiosk-token-box{grid-template-columns:1fr}.kiosk-token-actions{justify-content:flex-start}.kiosk-form-actions{align-items:stretch;flex-direction:column;padding:14px 18px}.kiosk-form-actions-buttons{width:100%}.kiosk-form-actions-buttons .btn{flex:1}.maintenance-panel-head,.maintenance-section-heading{align-items:stretch;flex-direction:column}.maintenance-threshold-field{grid-template-columns:1fr}.maintenance-threshold-field .kiosk-select2{width:100%!important}.maintenance-tool-grid{grid-template-columns:1fr}.maintenance-tool-card:last-child{grid-column:auto}.maintenance-tool-card{min-height:0}.maintenance-table-footer{align-items:flex-start;flex-direction:column}.maintenance-tool-footer{align-items:stretch;flex-direction:column}.maintenance-count{width:max-content}.maintenance-tool-button{width:100%;min-width:0}}

.kiosk-select2.has-error .select2-selection{border-color:var(--color-danger,#dc2626)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger,#dc2626) 10%,transparent)!important}

/* ================================================================
   R63 — RECOVERY + MONITORING + CONTENT WORKSPACE POLISH
   ================================================================ */
.r63-recovery-head{margin-bottom:20px}.r63-recovery-head h1{margin-bottom:8px}.r63-recovery-head p{max-width:760px}
.r63-recovery{display:grid;gap:18px}.r63-recovery .recovery-metrics{margin-bottom:0}.r63-recovery-grid{gap:18px}
.r63-recovery-card{margin:0!important;padding:22px!important;border-radius:16px!important;box-shadow:0 8px 28px rgba(10,33,85,.045)}
.r63-recovery-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px!important;padding-bottom:16px;border-bottom:1px solid var(--color-border)}
.r63-recovery-card-head h2{margin:2px 0 6px;font-size:18px;letter-spacing:-.02em}.r63-recovery-card-head p{max-width:660px;font-size:12px;line-height:1.55}
.r63-recovery-detail{display:flex;align-items:center;gap:10px;min-height:36px;margin-bottom:14px;color:var(--color-text-secondary);font-size:12px}
.r63-recovery-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:end}.r63-baseline-form{grid-template-columns:minmax(0,1fr) auto}
.r63-recovery-form label{min-width:0}.r63-recovery-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:44px}.r63-baseline-form .r63-recovery-actions{align-self:end}
.r63-orphans-card .r63-recovery-card-head{align-items:center}.r63-artifact-list{display:grid;gap:8px}
.r63-artifact-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 14px!important;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}
.r63-artifact-main{display:flex;align-items:center;gap:10px;min-width:0}.r63-artifact-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--color-text-primary)}
.r63-artifact-type{flex:none;padding:4px 8px;border-radius:999px;background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:9px;font-weight:750}
.r63-recovery .timeline-item{padding:12px 0}.r63-recovery .timeline-item strong{font-size:11px}.r63-recovery .timeline-item small,.r63-recovery .timeline-item p{font-size:9px}

.r63-monitoring-filter-card{margin-bottom:16px!important}.r63-monitoring-filter-card .card-body{padding:18px 20px!important}.r63-monitoring-filters{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) auto;align-items:end;gap:14px}
.r63-monitoring-filters>div{min-width:0}.r63-monitoring-filter-actions{display:flex;align-items:center;gap:8px}.r63-monitoring-filters .btn{min-height:44px;white-space:nowrap}
.r63-access-link span{display:inline-block}

.r63-org-health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.r63-org-health-card{position:relative;overflow:hidden;margin:0!important;border:1px solid var(--color-border)!important;border-radius:15px!important;box-shadow:0 7px 24px rgba(10,33,85,.045);opacity:1!important}
.r63-org-health-card:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--color-border)}
.r63-org-health-card.is-alert:before{background:var(--color-danger)}.r63-org-health-card.is-warning:before{background:var(--color-warning)}.r63-org-health-card.is-healthy:before{background:var(--color-success)}
.r63-org-health-card .card-body{padding:18px 18px 16px!important}
.r63-details-link{display:inline-flex;align-items:center;gap:6px;color:var(--brand-primary);font-size:10px;font-weight:800;text-decoration:none;padding:6px 7px;border-radius:8px}
.r63-details-link:hover{background:var(--brand-primary-light)}.r63-details-link .ui-icon{width:13px;height:13px}.r63-details-link .ui-icon:last-child{width:11px;height:11px}
.r63-sa-alerts-card>.card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}
.r63-sa-alert-filters{display:grid;grid-template-columns:140px minmax(190px,240px) auto;align-items:center;gap:10px}.r63-sa-alert-filters .kiosk-select2{width:100%!important;min-width:0!important}.r63-sa-alert-filters #sa-alerts-count{white-space:nowrap}

.r63-screen-status-card{overflow:hidden}.r63-screen-status-card .r37-card-head{height:auto;min-height:64px;padding:14px 18px}.r63-screen-status-card .r37-card-head h2{font-size:15px}.r63-screen-status-card .r37-card-head small{font-size:10px}.r63-screen-status-card .r37-card-head>a{font-size:11px}
.r63-screen-status-card .r37-screen-row{grid-template-columns:minmax(220px,1.35fr) minmax(130px,.55fr) minmax(130px,.65fr);min-height:72px;padding:13px 18px;gap:16px;transition:background .14s}
.r63-screen-status-card .r37-screen-row:hover{background:var(--color-bg-subtle)}.r63-screen-status-card .r37-screen-preview{width:48px;height:38px;flex-basis:48px;border-radius:10px;background:var(--color-bg-subtle);display:grid;place-items:center}.r63-dashboard-device-preview .r63-device-icon{width:38px;height:34px;border-radius:9px}.r63-dashboard-device-preview .ui-icon{width:20px;height:20px}
.r63-screen-status-card .r37-screen-name strong{font-size:12px;line-height:1.35}.r63-screen-status-card .r37-screen-name small{font-size:9px;margin-top:3px}.r63-screen-status-card .r37-screen-status{width:max-content;min-height:28px;padding:0 9px;border-radius:999px;background:var(--color-success-bg);font-size:10px;font-weight:750}
.r63-screen-status-card .r37-screen-status.is-offline{background:var(--color-danger-bg);color:var(--color-danger)}.r63-screen-status-card .r37-screen-status.is-unregistered{background:color-mix(in srgb,var(--color-warning) 12%,var(--color-bg-surface));color:var(--color-warning)}
.r63-screen-status-card .r37-screen-meta{font-size:10px;color:var(--color-text-secondary);font-weight:600}
.r37-kpi-label{font-size:11px!important}.r37-quick-action strong{font-size:11px!important}.r37-quick-action small{font-size:9px!important}.r37-attention-row strong{font-size:10px!important}.r37-attention-row small{font-size:9px!important}

.r63-catalog-pagehead{align-items:center;margin-bottom:18px}.r63-catalog-pagehead .page-header-title{font-size:26px}.r63-catalog-table{border-radius:16px;box-shadow:0 8px 28px rgba(10,33,85,.045)}
.r63-catalog-table .table-toolbar{min-height:72px;padding:14px 18px}.r63-catalog-table .table-search{max-width:360px}.r63-catalog-table table.data-table thead th{height:46px}.r63-catalog-table table.data-table tbody td{padding-top:14px;padding-bottom:14px}
.r63-catalog-table .table-pagination{min-height:56px}

.r63-screens-toolbar{align-items:center;margin-bottom:18px;gap:14px}.r63-screens-toolbar .kiosk-toolbar-right{gap:8px;flex-wrap:wrap}.r63-screens-table-wrap{overflow:visible!important;border-radius:16px;box-shadow:0 8px 28px rgba(10,33,85,.045)}
.r63-screens-table-wrap .kiosk-table td{vertical-align:middle}.r63-device-thumb{background:transparent!important;width:42px!important;height:42px!important;border-radius:12px!important}.r63-device-thumb>.r63-device-icon{width:42px;height:42px}
.r63-screens-table-wrap .kiosk-table-footer{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 18px!important;border-top:1px solid var(--color-border)}
.r63-screens-table-wrap .kiosk-length,.r63-screens-table-wrap .dt-length{display:flex!important;align-items:center;gap:8px;width:auto!important;min-width:0}.r63-screens-table-wrap .dt-length label{display:flex!important;align-items:center;gap:8px;white-space:nowrap;font-size:10px;color:var(--color-text-tertiary)}
.r63-screens-table-wrap .dt-length select{width:78px!important;min-width:78px!important;max-width:78px!important}.r63-screens-table-wrap .kiosk-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.r63-screens-table-wrap .dt-info{font-size:10px;color:var(--color-text-tertiary);white-space:nowrap}
.r63-screens-table-wrap .dt-paging{margin-left:auto}.r63-screens-table-wrap .kiosk-ctx-menu{min-width:230px}.r63-screens-table-wrap .kiosk-ctx-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 11px;font-size:11px}.r63-screens-table-wrap .kiosk-ctx-item .ui-icon{width:15px;height:15px}
.r63-screens-table-wrap .kiosk-ctx-btn{width:36px;height:36px;border-radius:10px}.r63-screens-table-wrap .kiosk-checkbox{width:20px;height:20px}

.r63-screen-content-grid{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:14px;align-items:start}.r63-screen-content-grid .kiosk-form-group{min-width:0}.r63-screen-content-grid .kiosk-select2{width:100%!important;min-width:0!important}.r63-screen-content-grid .kiosk-select2 .select2-dropdown{min-width:100%!important;max-width:100%;inset-inline:0!important}.r63-screen-content-grid .select2-results__option{font-size:11px}

@media(max-width:980px){.r63-monitoring-filters{grid-template-columns:1fr 1fr}.r63-monitoring-filters .btn{width:100%}.r63-sa-alerts-card>.card-header{grid-template-columns:1fr}.r63-sa-alert-filters{grid-template-columns:1fr 1fr auto}.r63-recovery-form,.r63-baseline-form{grid-template-columns:1fr}.r63-recovery-actions{justify-content:flex-start}.r63-screen-status-card .r37-screen-row{grid-template-columns:minmax(0,1fr) auto}.r63-screen-status-card .r37-screen-meta{grid-column:1/3}.r63-screen-content-grid{grid-template-columns:1fr}}
@media(max-width:720px){.r63-recovery-card{padding:17px!important}.r63-recovery-card-head,.r63-orphans-card .r63-recovery-card-head{align-items:stretch;flex-direction:column}.r63-recovery-actions{flex-direction:column;align-items:stretch}.r63-recovery-actions .btn{width:100%}.r63-artifact-row{grid-template-columns:1fr}.r63-artifact-main{align-items:flex-start;flex-direction:column;gap:5px}.r63-monitoring-filters,.r63-sa-alert-filters{grid-template-columns:1fr}.r63-org-health-grid{grid-template-columns:1fr}.r63-catalog-pagehead{align-items:stretch;flex-direction:column}.r63-catalog-pagehead .page-header-actions,.r63-catalog-pagehead .btn{width:100%}.r63-screens-toolbar{align-items:stretch;flex-direction:column}.r63-screens-toolbar .kiosk-toolbar-left,.r63-screens-toolbar .kiosk-toolbar-right{width:100%}.r63-screens-toolbar .kiosk-toolbar-right{display:grid;grid-template-columns:44px 44px 1fr}.r63-screens-toolbar .kiosk-toolbar-right>.kiosk-btn{grid-column:span 3}.r63-screens-table-wrap .kiosk-table-footer{grid-template-columns:1fr;padding:10px 12px!important}.r63-screens-table-wrap .kiosk-pagination{justify-content:space-between;flex-wrap:wrap}.r63-screens-table-wrap .dt-paging{margin-left:0}.r63-screen-status-card .r37-screen-row{padding:12px 14px}}

/* KIOSK R64 — superadmin monitoring alert toolbar + pairing flow */
.r64-sa-alerts-card>.card-header.r64-sa-alerts-heading{
  display:block!important;
  padding:20px 22px 14px!important;
  border-bottom:0!important;
}
.r64-sa-alerts-subtitle{
  margin:5px 0 0;
  max-width:760px;
  color:var(--color-text-secondary);
  font-size:13px;
  line-height:1.55;
}
.r64-sa-alerts-body{padding:0!important}
.r64-sa-alert-toolbar{
  display:grid;
  grid-template-columns:minmax(150px,180px) minmax(220px,280px) minmax(220px,1fr) minmax(115px,130px) auto;
  align-items:end;
  gap:12px;
  padding:0 22px 18px;
  border-bottom:1px solid var(--color-border);
}
.r64-sa-alert-field{min-width:0}
.r64-sa-alert-field>label{
  display:block;
  margin:0 0 7px;
  color:var(--color-text-secondary);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.r64-sa-alert-field .form-input,
.r64-sa-alert-field .kiosk-select2,
.r64-sa-alert-field .select2-container{
  width:100%!important;
  min-width:0!important;
}
.r64-sa-alert-field .form-input{min-height:44px!important}
.r64-sa-alert-count{
  align-self:center;
  justify-self:end;
  padding-top:18px;
  color:var(--color-text-tertiary);
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}

.r64-pairing-shell{max-width:1180px;margin:0 auto}
.r64-pairing-shell>.kiosk-widget{overflow:visible}
.r64-pairing-code-card,.r64-pairing-device-card,.r64-pairing-progress-card{border:1px solid color-mix(in srgb,var(--brand-primary) 10%,var(--color-border));box-shadow:0 12px 34px rgba(10,33,85,.055)}
.r64-pairing-heading{padding:20px 22px!important;background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 3%,var(--color-bg-surface)),var(--color-bg-surface))}
.r64-pairing-heading strong{display:block;color:var(--color-text-primary);font-size:17px;font-weight:850}
.r64-pairing-heading p{margin:6px 0 0;max-width:780px;color:var(--color-text-secondary);font-size:13px;line-height:1.55}
.r64-pairing-code-row{display:grid;grid-template-columns:minmax(220px,320px) auto;align-items:end;gap:12px;max-width:620px}
.r64-pairing-code-field{margin:0!important}
.r64-pairing-code-input{font-variant-numeric:tabular-nums;letter-spacing:.2em;font-size:20px!important;font-weight:800!important;text-align:center}
.r64-pairing-primary{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.r64-pairing-primary.is-busy{cursor:wait;opacity:.82}
.r64-pairing-primary [data-pairing-button-label]{display:inline-flex;align-items:center;gap:7px}
.r64-pairing-device-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);gap:22px}
.r64-pairing-device-summary{min-width:0}
.r64-pairing-device-table{margin:0!important}
.r64-pairing-detail-label{width:40%;padding:10px 8px!important;color:var(--color-text-tertiary)!important;font-size:12px}
.r64-pairing-detail-value{padding:10px 8px!important;color:var(--color-text-primary);font-size:13px;font-weight:750}
.r64-pairing-config{min-width:0;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:color-mix(in srgb,var(--brand-primary) 2.5%,var(--color-bg-surface))}
.r64-pairing-target-choice{margin-bottom:16px!important}
.r64-pairing-choice{display:flex;align-items:flex-start;gap:10px;margin:9px 0;padding:11px 12px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-surface);cursor:pointer}
.r64-pairing-choice:has(input:checked){border-color:color-mix(in srgb,var(--brand-primary) 55%,var(--color-border));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 10%,transparent)}
.r64-pairing-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.r64-pairing-help{display:block;margin-top:6px;color:var(--color-text-tertiary);font-size:11px;line-height:1.45}
.r64-pairing-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.r64-pairing-feedback{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:700;line-height:1.45}
.r64-pairing-feedback.is-error{background:color-mix(in srgb,#ef4444 9%,var(--color-bg-surface));border:1px solid color-mix(in srgb,#ef4444 28%,var(--color-border));color:#c52d34}
.r64-pairing-feedback.is-success{background:color-mix(in srgb,#16a56b 9%,var(--color-bg-surface));border:1px solid color-mix(in srgb,#16a56b 24%,var(--color-border));color:#087a4b}
.r64-pairing-feedback.is-info{background:color-mix(in srgb,var(--brand-secondary,#0A2155) 7%,var(--color-bg-surface));border:1px solid color-mix(in srgb,var(--brand-secondary,#0A2155) 18%,var(--color-border));color:var(--brand-secondary,#0A2155)}
.r64-pairing-progress{display:flex;align-items:center;gap:12px;padding:3px 0}
.r64-pairing-progress .spinner{flex:0 0 auto}
.r64-pairing-progress strong{display:block;color:var(--color-text-primary);font-size:14px}
.r64-pairing-progress p{margin:3px 0 0;color:var(--color-text-secondary);font-size:12px}

@media(max-width:1180px){
  .r64-sa-alert-toolbar{grid-template-columns:1fr 1fr 1fr 120px}
  .r64-sa-alert-count{grid-column:1/-1;justify-self:start;padding-top:0}
}
@media(max-width:900px){
  .r64-sa-alert-toolbar{grid-template-columns:1fr 1fr}
  .r64-pairing-device-body{grid-template-columns:1fr}
}
@media(max-width:640px){
  .r64-sa-alert-toolbar{grid-template-columns:1fr;padding:0 16px 16px}
  .r64-sa-alert-count{grid-column:auto}
  .r64-pairing-code-row,.r64-pairing-fields-grid{grid-template-columns:1fr}
  .r64-pairing-primary,.r64-pairing-actions .kiosk-btn{width:100%}
  .r64-pairing-actions{flex-direction:column-reverse}
}

/* ============================================================
   R65 — OPERATIONAL UX + EXPERIENCE WIZARD
   ============================================================ */
.r65-eyebrow{display:block;margin-bottom:5px;color:#AF2665;font-size:9px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}

/* Monitoring: stronger surfaces; cards must remain visible against the page. */
.monitoring-stat-card{background:var(--color-bg-surface)!important;border:1px solid var(--color-border)!important;border-radius:16px!important;box-shadow:0 8px 24px rgba(10,33,85,.055)!important;transition:transform .16s,border-color .16s,box-shadow .16s!important}
.monitoring-stat-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,#AF2665 24%,var(--color-border))!important;box-shadow:0 12px 30px rgba(10,33,85,.085)!important}
.monitoring-stat-card.is-active,[data-filter].monitoring-stat-card:focus-visible{outline:0;border-color:#AF2665!important;box-shadow:0 0 0 3px color-mix(in srgb,#AF2665 12%,transparent),0 12px 30px rgba(10,33,85,.085)!important}

/* Superadmin organisation health cards. */
.r65-org-overview-card{overflow:hidden;border-radius:18px!important}
.r65-org-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px;border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,color-mix(in srgb,#0A2155 4%,var(--color-bg-surface)),var(--color-bg-surface))}
.r65-org-overview-head h2{margin:3px 0 0;font-size:18px;color:#0A2155}.r65-org-overview-head p{margin:5px 0 0;font-size:11px;color:var(--color-text-secondary)}
.r65-org-overview-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.r65-org-overview-summary>span{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-surface);font-size:9px;color:var(--color-text-secondary)}.r65-org-overview-summary strong{font-size:11px;color:#0A2155}
.r65-org-overview-body{padding:18px}.r65-org-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}
.r65-org-health-card{position:relative;min-width:0;padding:17px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-surface);box-shadow:0 6px 18px rgba(10,33,85,.04);overflow:hidden}.r65-org-health-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--r65-health-accent,#94a3b8)}
.r65-org-health-card.is-healthy{--r65-health-accent:#16a34a}.r65-org-health-card.is-alert{--r65-health-accent:#dc2626}.r65-org-health-card.is-warning{--r65-health-accent:#d97706}.r65-org-health-card.is-empty{--r65-health-accent:#94a3b8}
.r65-org-health-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.r65-org-health-title{display:flex;align-items:center;gap:10px;min-width:0}.r65-org-health-symbol{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:10px;background:color-mix(in srgb,var(--r65-health-accent) 10%,var(--color-bg-surface));color:var(--r65-health-accent)}.r65-org-health-symbol .ui-icon{width:16px;height:16px}.r65-org-health-title h3{max-width:170px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#0A2155}.r65-org-health-title p{margin:3px 0 0;font-size:9px;color:var(--color-text-tertiary)}
.r65-org-health-badge{display:inline-flex;min-height:28px;align-items:center;padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--r65-health-accent) 8%,var(--color-bg-surface));color:var(--r65-health-accent);font-size:9px;font-weight:800;white-space:nowrap}
.r65-org-health-meter{height:6px;margin:16px 0 13px;border-radius:999px;background:var(--color-bg-subtle);overflow:hidden}.r65-org-health-meter>span{display:block;height:100%;border-radius:inherit;background:var(--r65-health-accent);transition:width .24s}
.r65-org-health-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.r65-org-stat{min-width:0;padding:10px 8px;border:1px solid var(--color-border);border-radius:11px;background:color-mix(in srgb,#0A2155 2%,var(--color-bg-surface));text-align:center}.r65-org-stat span{display:block;font-size:8px;color:var(--color-text-tertiary)}.r65-org-stat strong{display:block;margin-top:2px;font-size:16px;color:#0A2155}.r65-org-stat.is-online{background:color-mix(in srgb,#16a34a 5%,var(--color-bg-surface))}.r65-org-stat.is-online strong{color:#15803d}.r65-org-stat.is-offline{background:color-mix(in srgb,#dc2626 5%,var(--color-bg-surface))}.r65-org-stat.is-offline strong{color:#dc2626}
.r65-org-health-footer{min-height:39px;margin-top:12px;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--color-border)}.r65-org-health-note{font-size:8.5px;color:var(--color-text-tertiary)}.r65-org-health-note .is-warning{color:#b45309}.r65-org-details-link{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;color:#AF2665;text-decoration:none;font-size:9px;font-weight:800}.r65-org-details-link:hover{background:color-mix(in srgb,#AF2665 7%,var(--color-bg-surface))}.r65-org-details-link .ui-icon{width:12px;height:12px}.r65-org-empty{margin-top:18px;padding:22px;border-radius:11px;background:var(--color-bg-subtle);text-align:center;color:var(--color-text-tertiary);font-size:10px}

/* Recovery: bounded archive browser, no kilometre-long page. */
.r65-recovery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.r65-recovery-head h1{margin:3px 0 0;font-size:24px;color:#0A2155}.r65-recovery-head p{max-width:720px;margin:5px 0 0;font-size:11px;color:var(--color-text-secondary)}
.r65-recovery{display:grid;gap:16px;max-width:1500px;margin:0 auto}.r65-recovery-metrics{gap:12px!important}.r65-recovery-grid{gap:14px!important}.r65-recovery-card{padding:0!important;overflow:hidden;border-radius:16px!important}.r65-recovery-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 18px;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,#0A2155 2.5%,var(--color-bg-surface))}.r65-recovery-card-head h2{margin:3px 0 0;font-size:14px;color:#0A2155}.r65-recovery-card-head p{max-width:620px;margin:4px 0 0;font-size:9.5px;line-height:1.5;color:var(--color-text-secondary)}.r65-recovery-detail{padding:14px 18px;font-size:10px}.r65-recovery-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:14px 18px;border-top:1px solid var(--color-border)}.r65-baseline-form{grid-template-columns:minmax(0,1fr) auto}.r65-recovery-form label{display:grid;gap:5px}.r65-recovery-form label>span{font-size:9px;font-weight:750;color:var(--color-text-secondary)}.r65-recovery-form input{min-height:40px;padding:0 11px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-primary)}.r65-recovery-actions{display:flex;align-items:center;gap:7px}
.r65-recovery-browser{overflow:hidden;border-radius:18px!important}.r65-recovery-browser-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 20px 0;background:linear-gradient(180deg,color-mix(in srgb,#0A2155 3%,var(--color-bg-surface)),var(--color-bg-surface))}.r65-recovery-browser-head h2{margin:3px 0 0;font-size:16px;color:#0A2155}.r65-recovery-browser-head p{margin:4px 0 16px;font-size:9.5px;color:var(--color-text-secondary)}.r65-recovery-tablist{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.r65-recovery-tab{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 10px;border:1px solid transparent;border-radius:10px 10px 0 0;background:transparent;color:var(--color-text-secondary);font-size:9px;font-weight:750;cursor:pointer}.r65-recovery-tab .ui-icon{width:13px;height:13px}.r65-recovery-tab b{min-width:21px;height:21px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:var(--color-bg-subtle);font-size:8px}.r65-recovery-tab.is-active{border-color:var(--color-border);border-bottom-color:var(--color-bg-surface);background:var(--color-bg-surface);color:#AF2665}.r65-recovery-panel{min-height:360px;padding:16px 20px 18px;border-top:1px solid var(--color-border)}.r65-recovery-panel[hidden]{display:none!important}.r65-recovery-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.r65-recovery-panel-toolbar>div{display:grid;gap:2px}.r65-recovery-panel-toolbar strong{font-size:11px;color:#0A2155}.r65-recovery-panel-toolbar small{font-size:8.5px;color:var(--color-text-tertiary)}.r65-recovery-list{display:grid;gap:6px;max-height:560px;overflow:auto;padding-right:3px;overscroll-behavior:contain}.r65-recovery-list>*{min-width:0}.r65-recovery-pager{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:42px;padding-top:10px;border-top:1px solid var(--color-border);margin-top:10px}.r65-recovery-pager button{min-width:34px;height:34px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:#0A2155;font-weight:750}.r65-recovery-pager button[disabled]{opacity:.42}.r65-recovery-pager span{font-size:9px;color:var(--color-text-secondary)}

/* Kiosk diagnostic logs: heartbeat is a separate, sampled diagnostic stream. */
.r65-logs-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.r65-log-health-card{display:grid;grid-template-columns:minmax(250px,1fr) auto auto;gap:18px;align-items:center;padding:18px 20px!important;border:1px solid color-mix(in srgb,#0A2155 9%,var(--color-border))!important;background:linear-gradient(135deg,color-mix(in srgb,#0A2155 4%,var(--color-bg-surface)),var(--color-bg-surface))!important}.r65-log-health-copy{display:flex;align-items:center;gap:12px;min-width:0}.r65-log-health-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:12px;background:color-mix(in srgb,#AF2665 10%,var(--color-bg-surface));color:#AF2665}.r65-log-health-icon .ui-icon{width:19px;height:19px}.r65-log-health-title h2{margin:0;font-size:14px;color:#0A2155}.r65-log-health-title p{margin:4px 0 0;font-size:9.5px;line-height:1.45;color:var(--color-text-secondary)}.r65-log-stats{display:flex;align-items:stretch;gap:7px}.r65-log-stat{min-width:94px;padding:10px 12px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-surface)}.r65-log-stat span{display:block;font-size:8px;color:var(--color-text-tertiary)}.r65-log-stat strong{display:block;margin-top:2px;font-size:17px;color:#0A2155}.r65-log-health-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.r65-heartbeat-toggle{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);font-size:9px;font-weight:700;color:var(--color-text-secondary)}.r65-heartbeat-toggle input{accent-color:#AF2665}.r65-log-filter-card{padding:16px 18px!important}.r65-log-filters{display:grid;grid-template-columns:minmax(180px,1.35fr) repeat(3,minmax(130px,.8fr)) minmax(130px,.85fr) minmax(130px,.85fr) auto;gap:10px;align-items:end}.r65-log-filters .form-group{min-width:0;margin:0}.r65-log-table-card{overflow:hidden}

/* Server inbox explicit scan action. */
.r65-manual-inbox-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.r65-manual-inbox-actions .btn[aria-busy="true"]{pointer-events:none;opacity:.7}

/* Unified themed date/time picker. */
.kiosk-picker-trigger{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:#0A2155;font:inherit;font-weight:600;text-align:start;cursor:pointer}.kiosk-picker-trigger:hover{border-color:color-mix(in srgb,#AF2665 35%,var(--color-border))}.kiosk-picker-trigger:focus-visible,.kiosk-picker-trigger.is-open{outline:0;border-color:#AF2665;box-shadow:0 0 0 3px color-mix(in srgb,#AF2665 11%,transparent)}.kiosk-picker-trigger .ui-icon{width:16px;height:16px;color:var(--color-text-tertiary)}.kiosk-picker-trigger.is-placeholder{color:var(--color-text-tertiary);font-weight:500}
.kiosk-picker-popover{position:fixed;z-index:190;width:min(328px,calc(100vw - 24px));padding:12px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-surface);box-shadow:0 22px 55px rgba(10,33,85,.18)}.kiosk-picker-head{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:6px;margin-bottom:8px}.kiosk-picker-head button{width:34px;height:34px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:#0A2155}.kiosk-picker-head strong{text-align:center;font-size:11px;color:#0A2155}.kiosk-picker-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.kiosk-picker-weekday{display:grid;place-items:center;height:25px;color:var(--color-text-tertiary);font-size:8px;font-weight:750}.kiosk-picker-day{height:34px;border:0;border-radius:9px;background:transparent;color:var(--color-text-primary);font-size:10px}.kiosk-picker-day:hover{background:var(--color-bg-subtle)}.kiosk-picker-day.is-outside{opacity:.34}.kiosk-picker-day.is-today{box-shadow:inset 0 0 0 1px color-mix(in srgb,#AF2665 40%,var(--color-border))}.kiosk-picker-day.is-selected{background:#AF2665;color:#fff;font-weight:800}.kiosk-time-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;padding:8px 2px}.kiosk-time-column{display:grid;grid-template-columns:1fr;gap:4px;max-height:260px;overflow:auto}.kiosk-time-option{height:36px;border:0;border-radius:8px;background:transparent;color:#0A2155}.kiosk-time-option:hover{background:var(--color-bg-subtle)}.kiosk-time-option.is-selected{background:#AF2665;color:#fff;font-weight:800}.kiosk-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border)}.kiosk-picker-actions button{min-height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:#0A2155;font-size:9px;font-weight:750}.kiosk-picker-actions button:last-child{border-color:#AF2665;background:#AF2665;color:#fff}

/* Select2 confinement and visual hierarchy. */
.r63-screen-content-grid .kiosk-select2,.r65-experience-wizard .kiosk-select2,.r65-layout-studio .kiosk-select2{display:block;width:100%!important;min-width:0!important}.r63-screen-content-grid .kiosk-select2 .select2-selection,.r65-experience-wizard .kiosk-select2 .select2-selection,.r65-layout-studio .kiosk-select2 .select2-selection{min-height:46px;border-radius:11px;padding-inline:13px}.r63-screen-content-grid .kiosk-select2 .select2-dropdown,.r65-experience-wizard .kiosk-select2 .select2-dropdown,.r65-layout-studio .kiosk-select2 .select2-dropdown{inset-inline:0!important;min-width:100%!important;max-width:min(520px,calc(100vw - 28px));padding:6px}.r63-screen-content-grid .kiosk-select2 .select2-search input,.r65-experience-wizard .kiosk-select2 .select2-search input,.r65-layout-studio .kiosk-select2 .select2-search input{min-height:36px!important;background:var(--color-bg-surface)!important}.r63-screen-content-grid .select2-results__option,.r65-experience-wizard .select2-results__option,.r65-layout-studio .select2-results__option{min-height:37px;padding:8px 9px;font-size:10px}.r63-screen-content-grid .kiosk-select2.is-open,.r65-experience-wizard .kiosk-select2.is-open,.r65-layout-studio .kiosk-select2.is-open{z-index:165}

/* DataTables list footer: compact, translated, no giant native length row. */
body.space-content .kiosk-table-footer{min-height:52px;display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:9px 13px;border-top:1px solid var(--color-border);background:color-mix(in srgb,#0A2155 1.6%,var(--color-bg-surface))}body.space-content .kiosk-table-footer .kiosk-length{display:flex;align-items:center;gap:7px;min-width:0}body.space-content .kiosk-table-footer .kiosk-length label{display:flex;align-items:center;gap:7px;margin:0;font-size:9px;color:var(--color-text-secondary);white-space:nowrap}body.space-content .kiosk-table-footer .kiosk-length select{width:auto!important;min-width:72px!important;min-height:36px;padding:0 28px 0 9px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:#0A2155}body.space-content .kiosk-table-footer .kiosk-pagination{display:flex;align-items:center;gap:10px;margin-left:auto}body.space-content .kiosk-table-footer .dataTables_info{padding:0!important;font-size:9px;color:var(--color-text-tertiary)}body.space-content .kiosk-table-footer .dataTables_paginate{display:flex;align-items:center;gap:3px;padding:0!important}body.space-content .kiosk-table-footer .paginate_button{min-width:34px!important;height:34px!important;display:grid!important;place-items:center;padding:0!important;margin:0!important;border:1px solid var(--color-border)!important;border-radius:9px!important;background:var(--color-bg-surface)!important;color:#0A2155!important}body.space-content .kiosk-table-footer .paginate_button.current{border-color:#AF2665!important;background:#AF2665!important;color:#fff!important}

/* Layout studio. */
.r65-layout-pagehead .page-header-left{max-width:850px}.r65-layout-pagehead .page-header-subtitle{margin:5px 0 0;font-size:11px;line-height:1.5;color:var(--color-text-secondary)}.r65-layout-studio{display:grid;gap:15px}.r65-layout-studio .card{border-radius:17px;overflow:visible}.r65-layout-meta{padding:18px}.r65-layout-meta-grid{display:grid;grid-template-columns:minmax(240px,2fr) minmax(160px,1fr) 145px 145px auto;gap:13px;align-items:end}.r65-layout-meta-grid .span-2{grid-column:auto}.r65-layout-active{min-height:44px;align-self:end;white-space:nowrap}.r65-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--color-border)}.r65-card-heading.compact{padding:14px 16px}.r65-card-heading h2{margin:2px 0 0;font-size:13px;color:#0A2155}.r65-card-heading p{margin:4px 0 0;font-size:9px;line-height:1.45;color:var(--color-text-tertiary)}.r65-layout-template-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:13px 18px 16px}.r65-layout-template-btn{display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:9px;min-height:64px;padding:8px 10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);color:#0A2155;text-align:start;cursor:pointer}.r65-layout-template-btn:hover{border-color:color-mix(in srgb,#AF2665 32%,var(--color-border));background:color-mix(in srgb,#AF2665 2.5%,var(--color-bg-surface))}.r65-layout-template-btn strong{font-size:9.5px}.r65-mini-layout{position:relative;width:50px;height:32px;border:2px solid #0A2155;border-radius:5px;overflow:hidden;background:color-mix(in srgb,#0A2155 5%,var(--color-bg-surface))}.r65-mini-layout:before,.r65-mini-layout:after{content:"";position:absolute;background:#AF2665}.r65-mini-layout.is-split:before{inset:0 auto 0 50%;width:1px}.r65-mini-layout.is-sidebar:before{inset:0 auto 0 70%;width:1px}.r65-mini-layout.is-banner:before{inset:70% 0 auto;height:1px}.r65-mini-layout.is-three:before{inset:0 auto 0 33%;width:1px}.r65-mini-layout.is-three:after{inset:0 auto 0 66%;width:1px}
.r65-layout-workspace{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(280px,1fr) minmax(300px,1.2fr);gap:14px;align-items:start}.r65-layout-zone-list{display:grid;gap:6px;padding:10px;max-height:560px;overflow:auto}.r65-zone-list-item{display:grid;grid-template-columns:28px minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:54px;padding:8px;border:1px solid transparent;border-radius:11px;background:transparent;color:#0A2155;text-align:start;cursor:pointer}.r65-zone-list-item:hover{background:var(--color-bg-subtle)}.r65-zone-list-item.is-active{border-color:color-mix(in srgb,#AF2665 24%,var(--color-border));background:color-mix(in srgb,#AF2665 6%,var(--color-bg-surface))}.r65-zone-index{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#0A2155;color:#fff;font-size:9px;font-weight:850}.r65-zone-list-item.is-active .r65-zone-index{background:#AF2665}.r65-zone-list-item>span:nth-child(2){min-width:0;display:grid;gap:2px}.r65-zone-list-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.r65-zone-list-item small{font-size:8px;color:var(--color-text-tertiary)}.r65-zone-chevron{font-size:18px;color:var(--color-text-tertiary)}
.r65-zone-inspector{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.r65-zone-inspector.is-disabled{opacity:.5;pointer-events:none}.r65-zone-inspector .span-2{grid-column:1/-1}.r65-inspector-group{display:grid;gap:6px}.r65-inspector-group>strong{font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.r65-inspector-grid{display:grid;gap:8px}.r65-inspector-grid.two{grid-template-columns:1fr 1fr}.r65-layout-preview-stage{padding:16px}.r65-layout-preview{position:relative;width:100%;min-height:180px;border:7px solid #0A2155;border-radius:12px;background:#202A4F;overflow:hidden;box-shadow:0 12px 30px rgba(10,33,85,.14)}.r65-preview-zone{position:absolute;display:grid;place-items:center;align-content:center;gap:3px;border:1px solid rgba(255,255,255,.78);background:color-mix(in srgb,#AF2665 22%,transparent);color:#fff;overflow:hidden;cursor:pointer}.r65-preview-zone:nth-child(even){background:color-mix(in srgb,#fff 12%,transparent)}.r65-preview-zone.is-active{outline:3px solid #fff;outline-offset:-4px;background:color-mix(in srgb,#AF2665 55%,transparent)}.r65-preview-zone>span{width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:#fff;color:#0A2155;font-size:8px;font-weight:850}.r65-preview-zone strong{max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.r65-layout-preview-meta{display:flex;align-items:center;justify-content:space-between;padding:0 16px 14px;font-size:8.5px;color:var(--color-text-tertiary)}.r65-layout-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 0 4px}

/* Guided experience creator. */
.r65-experience-wizard{max-width:1500px;margin:0 auto;display:grid;gap:15px}.r65-wizard-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}.r65-wizard-pagehead h1{margin:2px 0 0;font-size:27px;letter-spacing:-.025em;color:#0A2155}.r65-wizard-pagehead p{max-width:780px;margin:6px 0 0;font-size:11px;line-height:1.55;color:var(--color-text-secondary)}.r65-wizard-shell{border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-surface);box-shadow:0 14px 36px rgba(10,33,85,.065);overflow:visible}.r65-wizard-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:8px;border-bottom:1px solid var(--color-border);border-radius:20px 20px 0 0;background:color-mix(in srgb,#0A2155 2.5%,var(--color-bg-surface))}.r65-wizard-step{position:relative;min-width:0;min-height:64px;display:grid;grid-template-columns:22px 32px minmax(0,1fr);align-items:center;gap:7px;padding:7px 9px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--color-text-secondary);text-align:start;cursor:pointer}.r65-wizard-step:disabled{cursor:default;opacity:.68}.r65-wizard-step.is-active{border-color:color-mix(in srgb,#AF2665 20%,var(--color-border));background:var(--color-bg-surface);box-shadow:0 5px 15px rgba(10,33,85,.05);color:#0A2155}.r65-wizard-step.is-complete{color:#0A2155}.r65-wizard-step-number{width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:var(--color-bg-subtle);font-size:8px;font-weight:850}.r65-wizard-step.is-active .r65-wizard-step-number,.r65-wizard-step.is-complete .r65-wizard-step-number{background:#AF2665;color:#fff}.r65-wizard-step-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,#0A2155 5%,var(--color-bg-surface));color:#0A2155}.r65-wizard-step-icon .ui-icon{width:15px;height:15px}.r65-wizard-step>span:last-child{min-width:0;display:grid;gap:2px}.r65-wizard-step strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.r65-wizard-step small{font-size:7.7px;line-height:1.25;color:var(--color-text-tertiary)}
.r65-wizard-main{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0}.r65-wizard-panels{min-height:610px;padding:24px 26px 18px;border-right:1px solid var(--color-border)}.r65-wizard-panel[hidden]{display:none!important}.r65-wizard-panel-head{padding-bottom:18px;border-bottom:1px solid var(--color-border);margin-bottom:20px}.r65-wizard-panel-head>div{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;align-items:start}.r65-wizard-panel-head>div>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#0A2155;color:#fff;font-size:9px;font-weight:850}.r65-wizard-panel-head h2{margin:0;font-size:18px;color:#0A2155}.r65-wizard-panel-head p{margin:4px 0 0;font-size:9.5px;color:var(--color-text-secondary)}.r65-wizard-form-grid{display:grid;gap:13px}.r65-wizard-form-grid.two{grid-template-columns:1fr 1fr}.r65-wizard-form-grid.four{grid-template-columns:repeat(4,1fr)}.r65-wizard-form-grid .span-2{grid-column:1/-1}.r65-field{display:grid;gap:6px;min-width:0}.r65-field>span{font-size:10px;font-weight:750;color:#0A2155}.r65-field>small{font-size:8.5px;line-height:1.4;color:var(--color-text-tertiary)}.r65-field textarea{resize:vertical;min-height:88px}.r65-field .kiosk-select2{min-width:0}
.r65-choice-grid{display:grid;gap:10px}.r65-choice-grid.two{grid-template-columns:1fr 1fr}.r65-choice-card{position:relative;min-height:112px;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:11px;padding:15px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-surface);cursor:pointer}.r65-choice-card input{position:absolute;opacity:0}.r65-choice-card.is-selected{border-color:#AF2665;background:color-mix(in srgb,#AF2665 4%,var(--color-bg-surface));box-shadow:0 0 0 3px color-mix(in srgb,#AF2665 8%,transparent)}.r65-choice-icon{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,#0A2155 6%,var(--color-bg-surface));color:#0A2155}.r65-choice-card.is-selected .r65-choice-icon{background:color-mix(in srgb,#AF2665 11%,var(--color-bg-surface));color:#AF2665}.r65-choice-icon .ui-icon{width:18px;height:18px}.r65-choice-card strong{font-size:11px;color:#0A2155}.r65-choice-card small{margin-top:3px;font-size:8.5px;line-height:1.35;color:var(--color-text-tertiary)}.r65-layout-source-panel{margin-top:16px}.r65-template-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.r65-template-card{position:relative;display:grid;gap:6px;padding:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);cursor:pointer}.r65-template-card input{position:absolute;opacity:0}.r65-template-card.is-selected{border-color:#AF2665;background:color-mix(in srgb,#AF2665 4%,var(--color-bg-surface))}.r65-template-card strong{font-size:9.5px;color:#0A2155}.r65-template-card small{font-size:7.6px;line-height:1.35;color:var(--color-text-tertiary)}.r65-template-preview{position:relative;height:64px;border:4px solid #0A2155;border-radius:8px;background:#202A4F;overflow:hidden}.r65-template-preview i{position:absolute;border:1px solid rgba(255,255,255,.75);background:color-mix(in srgb,#AF2665 34%,transparent)}.r65-template-options{margin-top:13px}
.r65-zone-builder{display:grid;gap:9px}.r65-zone-placeholder{min-height:210px;display:grid;place-items:center;border:1px dashed var(--color-border);border-radius:14px;background:var(--color-bg-subtle);color:var(--color-text-tertiary);font-size:10px}.r65-zone-card{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.25fr);gap:14px;align-items:center;padding:12px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface)}.r65-zone-visual{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;column-gap:9px;min-width:0}.r65-zone-visual i{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#0A2155;color:#fff;font-style:normal;font-size:9px;font-weight:850}.r65-zone-visual b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#0A2155}.r65-zone-visual small{font-size:8px;color:var(--color-text-tertiary)}.r65-zone-controls{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(170px,1.2fr);gap:9px}.r65-zone-controls label{display:grid;gap:4px;min-width:0}.r65-zone-controls label>span{font-size:8px;font-weight:750;color:var(--color-text-tertiary)}
.r65-delivery-section{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--color-border)}.r65-delivery-section:last-child{border-bottom:0}.r65-section-title{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:start;margin-bottom:13px}.r65-section-title>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,#0A2155 6%,var(--color-bg-surface));color:#0A2155}.r65-section-title>span .ui-icon{width:16px;height:16px}.r65-section-title h3{margin:0;font-size:12px;color:#0A2155}.r65-section-title p{margin:3px 0 0;font-size:8.5px;color:var(--color-text-tertiary)}.r65-target-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.r65-target-columns h4{margin:0 0 7px;font-size:9px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.07em}.r65-target-list{display:grid;gap:5px;max-height:190px;overflow:auto}.r65-target-card{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:9px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);cursor:pointer}.r65-target-card input{position:absolute;opacity:0}.r65-checkbox-ui{width:22px;height:22px;display:grid;place-items:center;border:1.5px solid var(--color-border);border-radius:7px;background:var(--color-bg-surface);color:transparent}.r65-target-card:has(input:checked){border-color:color-mix(in srgb,#AF2665 26%,var(--color-border));background:color-mix(in srgb,#AF2665 4%,var(--color-bg-surface))}.r65-target-card input:checked+.r65-checkbox-ui{border-color:#AF2665;background:#AF2665;color:#fff}.r65-checkbox-ui .ui-icon{width:12px;height:12px}.r65-target-card>span:last-child{min-width:0;display:grid;gap:1px}.r65-target-card strong{font-size:9.5px;color:#0A2155}.r65-target-card small{font-size:7.8px;color:var(--color-text-tertiary)}.r65-day-grid{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px}.r65-priority-field{max-width:360px;margin-top:12px}.r65-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.r65-review-grid>div{display:grid;gap:4px;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:color-mix(in srgb,#0A2155 2%,var(--color-bg-surface))}.r65-review-grid .span-2{grid-column:1/-1}.r65-review-grid span{font-size:8px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.r65-review-grid strong{font-size:11px;color:#0A2155}.r65-atomic-note{display:flex;align-items:flex-start;gap:8px;margin-top:13px;padding:12px;border-radius:11px;background:color-mix(in srgb,#16a34a 6%,var(--color-bg-surface));color:#15803d;font-size:9px;line-height:1.45}.r65-atomic-note .ui-icon{width:16px;height:16px;flex:none}
.r65-wizard-summary{padding:22px 18px;background:linear-gradient(180deg,color-mix(in srgb,#0A2155 4%,var(--color-bg-surface)),var(--color-bg-surface));border-radius:0}.r65-wizard-summary h3{margin:0 0 14px;font-size:15px;color:#0A2155;overflow-wrap:anywhere}.r65-summary-preview{position:relative;width:100%;aspect-ratio:16/10;margin-bottom:15px;border:6px solid #0A2155;border-radius:11px;background:#202A4F;overflow:hidden;display:grid;place-items:center;color:#fff}.r65-summary-preview>span .ui-icon{width:28px;height:28px}.r65-summary-preview>i{position:absolute;border:1px solid rgba(255,255,255,.72);background:color-mix(in srgb,#AF2665 30%,transparent);display:grid;place-items:center}.r65-summary-preview>i>span{width:19px;height:19px;display:grid;place-items:center;border-radius:999px;background:#fff;color:#0A2155;font-style:normal;font-size:7px;font-weight:850}.r65-wizard-summary dl{display:grid;gap:0;margin:0}.r65-wizard-summary dl>div{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border)}.r65-wizard-summary dt{font-size:8px;color:var(--color-text-tertiary)}.r65-wizard-summary dd{margin:0;max-width:140px;text-align:end;font-size:9px;font-weight:750;color:#0A2155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r65-wizard-footer{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:8px;padding:13px 16px;border-top:1px solid var(--color-border);background:color-mix(in srgb,#0A2155 1.6%,var(--color-bg-surface));border-radius:0 0 20px 20px}.r65-wizard-error{margin:0 16px 14px;padding:10px 12px;border:1px solid color-mix(in srgb,#dc2626 24%,var(--color-border));border-radius:10px;background:color-mix(in srgb,#dc2626 5%,var(--color-bg-surface));color:#b91c1c;font-size:9.5px;font-weight:700}

/* Experience list primary guided action. */
.r63-experiences-pagehead .page-header-actions{display:flex;gap:8px;align-items:center}.r65-wizard-launch{display:inline-flex;align-items:center;gap:7px}

@media(max-width:1180px){.r65-layout-meta-grid{grid-template-columns:2fr 1fr 1fr 1fr}.r65-layout-active{grid-column:1/-1}.r65-layout-template-strip{grid-template-columns:repeat(3,1fr)}.r65-layout-workspace{grid-template-columns:minmax(230px,.8fr) minmax(280px,1.2fr)}.r65-layout-preview-card{grid-column:1/-1}.r65-wizard-main{grid-template-columns:1fr}.r65-wizard-panels{border-right:0}.r65-wizard-summary{display:none}.r65-wizard-step{grid-template-columns:22px minmax(0,1fr)}.r65-wizard-step-icon{display:none}.r65-log-filters{grid-template-columns:repeat(3,1fr)}.r65-log-health-card{grid-template-columns:1fr}.r65-log-health-actions{justify-content:flex-start}}
@media(max-width:820px){.r65-recovery-head,.r65-wizard-pagehead,.r65-org-overview-head{align-items:stretch;flex-direction:column}.r65-recovery-form,.r65-baseline-form{grid-template-columns:1fr}.r65-recovery-browser-head{align-items:stretch;flex-direction:column;padding-bottom:0}.r65-recovery-tablist{overflow:auto;flex-wrap:nowrap}.r65-org-overview-summary{justify-content:flex-start}.r65-layout-meta-grid{grid-template-columns:1fr 1fr}.r65-layout-meta-grid .span-2{grid-column:1/-1}.r65-layout-template-strip{grid-template-columns:1fr 1fr}.r65-layout-workspace{grid-template-columns:1fr}.r65-zone-inspector-card,.r65-layout-preview-card{grid-column:auto}.r65-wizard-steps{grid-template-columns:repeat(5,42px);justify-content:center}.r65-wizard-step{min-height:42px;grid-template-columns:1fr;padding:4px}.r65-wizard-step-number{margin:auto}.r65-wizard-step>span:last-child{display:none}.r65-wizard-panels{min-height:0;padding:18px}.r65-wizard-form-grid.two,.r65-wizard-form-grid.four,.r65-choice-grid.two,.r65-target-columns,.r65-review-grid{grid-template-columns:1fr}.r65-review-grid .span-2{grid-column:auto}.r65-template-grid{grid-template-columns:1fr 1fr}.r65-zone-card{grid-template-columns:1fr}.r65-zone-controls{grid-template-columns:1fr}.r65-wizard-footer{grid-template-columns:auto auto 1fr auto}.r65-wizard-footer [data-wizard-submit]{grid-column:4}.r65-log-filters{grid-template-columns:1fr 1fr}.r65-log-health-actions,.r65-log-stats{align-items:stretch;flex-direction:column}.r65-log-stat{min-width:0}}
@media(max-width:560px){.r65-layout-meta-grid,.r65-layout-template-strip,.r65-template-grid,.r65-log-filters{grid-template-columns:1fr}.r65-zone-inspector{grid-template-columns:1fr}.r65-zone-inspector .span-2{grid-column:auto}.r65-inspector-grid.two{grid-template-columns:1fr 1fr}.r65-wizard-footer{grid-template-columns:1fr 1fr}.r65-wizard-footer>span{display:none}.r65-wizard-footer .btn{width:100%;justify-content:center}.r65-wizard-footer [data-wizard-submit]{grid-column:1/-1}.r65-recovery-panel{padding:13px}.r65-recovery-panel-toolbar{align-items:stretch;flex-direction:column}.r65-org-health-grid{grid-template-columns:1fr}}

/* ============================================================
   R66 — ANDROID RUNTIME UPDATE CONTROL PLANE
   ============================================================ */
.runtime-updates-page-header{align-items:flex-end;gap:24px}.runtime-updates-kicker{display:block;margin-bottom:8px;color:#AF2665;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.runtime-policy-chip{min-width:220px;padding:14px 18px;border:1px solid var(--border,#dce3ec);border-radius:16px;background:var(--surface,#fff);box-shadow:0 8px 22px rgba(10,33,85,.06)}.runtime-policy-chip small,.runtime-policy-chip strong{display:block}.runtime-policy-chip small{color:var(--muted,#8793a5);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.runtime-policy-chip strong{margin-top:3px;color:#0A2155;font-size:15px}.runtime-update-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.runtime-update-kpi{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border:1px solid var(--border,#dce3ec);border-radius:16px;background:var(--surface,#fff);box-shadow:0 7px 18px rgba(10,33,85,.045)}.runtime-update-kpi small{color:var(--muted,#8b96a8);font-size:11px;font-weight:800;letter-spacing:.1em}.runtime-update-kpi strong{color:#0A2155;font-size:24px}.runtime-update-workspace{margin-bottom:32px}.runtime-update-tabs{display:flex;gap:6px;padding:6px;border:1px solid var(--border,#dce3ec);border-radius:18px;background:var(--surface,#fff);overflow:auto}.runtime-update-tabs button{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 16px;border:0;border-radius:13px;background:transparent;color:#526176;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}.runtime-update-tabs button svg{width:18px;height:18px}.runtime-update-tabs button.is-active{background:rgba(175,38,101,.09);color:#AF2665;box-shadow:inset 0 0 0 1px rgba(175,38,101,.16)}.runtime-update-panel{margin-top:16px}.runtime-update-grid-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.8fr);gap:16px;align-items:start}.runtime-release-list-card,.runtime-release-form,.runtime-deploy-form,.runtime-table-card,.runtime-signing-card{padding:0;overflow:hidden}.runtime-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--border,#e1e6ed)}.runtime-card-head small,.runtime-card-head h2{display:block;margin:0}.runtime-card-head small{color:#AF2665;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.runtime-card-head h2{margin-top:4px;color:#0A2155;font-size:20px}.runtime-card-head>span{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:11px;background:#f3f5f8;color:#202A4F;font-weight:800}.runtime-card-head>svg{width:22px;height:22px;color:#AF2665}.runtime-release-list{display:flex;flex-direction:column}.runtime-release-row{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:16px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border,#e7ebf0)}.runtime-release-row:last-child{border-bottom:0}.runtime-release-main{display:flex;align-items:center;gap:13px;min-width:0}.runtime-release-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:rgba(175,38,101,.09);color:#AF2665}.runtime-release-icon svg{width:20px;height:20px}.runtime-release-main strong,.runtime-release-main small{display:block}.runtime-release-main strong{color:#0A2155;font-size:15px}.runtime-release-main small{margin-top:3px;color:#8b96a8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.runtime-release-meta{display:flex;align-items:center;gap:10px;color:#78869a;font-size:12px}.runtime-state-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:#eef1f5;color:#647287;font-size:11px;font-weight:800;text-transform:uppercase}.runtime-state-badge.is-stable,.runtime-state-badge.is-success{background:#e5f8ef;color:#138a59}.runtime-state-badge.is-test,.runtime-state-badge.is-update_available,.runtime-state-badge.is-downloading,.runtime-state-badge.is-installing{background:#edf3ff;color:#2c5db4}.runtime-state-badge.is-failed,.runtime-state-badge.is-blocked,.runtime-state-badge.is-installed_health_failed{background:#ffeded;color:#d93c3c}.runtime-state-badge.is-draft{background:#f2f3f6;color:#687589}.runtime-release-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.runtime-release-actions form{margin:0}.runtime-release-form{padding-bottom:20px}.runtime-release-fields,.runtime-deploy-fields{padding:20px 22px 0}.runtime-release-form>.form-group,.runtime-release-form>.form-switch{margin-left:22px;margin-right:22px}.runtime-file-input{padding:10px}.runtime-form-actions{display:flex;justify-content:flex-end;padding:18px 22px 0}.runtime-deploy-form{padding-bottom:20px}.runtime-deploy-form>[data-runtime-kiosk-selector]{margin:4px 22px 0}.runtime-deploy-scope{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:16px}.runtime-deploy-scope small{margin-top:8px;color:#8b96a8;line-height:1.4}.runtime-deploy-form [data-runtime-kiosk-selector].is-disabled{opacity:.5}.runtime-table-card{margin-top:16px}.runtime-table td>strong,.runtime-table td>small{display:block}.runtime-table td>small{margin-top:3px;color:#8b96a8}.runtime-empty{padding:44px 24px}.runtime-signing-card{padding-bottom:22px}.runtime-signing-card>p,.runtime-signing-row{margin-left:22px;margin-right:22px}.runtime-signing-card>p{color:#687589;line-height:1.6}.runtime-signing-row{margin-top:16px}.runtime-signing-row small{display:block;margin-bottom:7px;color:#8793a5;font-weight:700}.runtime-signing-row code{display:block;padding:12px 14px;border-radius:11px;background:#f4f6f9;color:#202A4F;word-break:break-all}.kiosk-runtime-policy-effective{display:flex;flex-direction:column;justify-content:center;min-height:86px;padding:14px 16px;border:1px solid var(--border,#dce3ec);border-radius:14px;background:#f7f9fc}.kiosk-runtime-policy-effective small{color:#8995a6;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.kiosk-runtime-policy-effective strong{margin-top:3px;color:#0A2155;font-size:16px}.kiosk-runtime-policy-effective span{margin-top:4px;color:#78869a;font-size:12px}.kiosk-runtime-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kiosk-runtime-state-grid>div{padding:14px;border-radius:13px;background:#f5f7fa;border:1px solid #e6eaf0}.kiosk-runtime-state-grid small,.kiosk-runtime-state-grid strong{display:block}.kiosk-runtime-state-grid small{color:#8a96a8;font-size:11px}.kiosk-runtime-state-grid strong{margin-top:4px;color:#202A4F;font-size:14px;overflow-wrap:anywhere}.kiosk-empty-inline{padding:18px;border:1px dashed #d6dde7;border-radius:13px;background:#f8fafc;color:#7c899a;text-align:center}.kiosk-runtime-history-disclosure{margin-top:14px;border:1px solid #e1e6ed;border-radius:13px;overflow:hidden}.kiosk-runtime-history-disclosure summary{display:flex;justify-content:space-between;padding:13px 15px;cursor:pointer;color:#0A2155;font-weight:700}.kiosk-runtime-history-list{border-top:1px solid #e8ebf0}.kiosk-runtime-history-row{display:grid;grid-template-columns:150px minmax(120px,1fr) 80px 140px;gap:10px;padding:11px 15px;border-bottom:1px solid #edf0f4;font-size:12px}.kiosk-runtime-history-row:last-child{border-bottom:0}
html[data-theme="dark"] .runtime-policy-chip,html[data-theme="dark"] .runtime-update-kpi,html[data-theme="dark"] .runtime-update-tabs,html[data-theme="dark"] .runtime-release-list-card,html[data-theme="dark"] .runtime-release-form,html[data-theme="dark"] .runtime-deploy-form,html[data-theme="dark"] .runtime-table-card,html[data-theme="dark"] .runtime-signing-card{background:var(--surface,#182236)}html[data-theme="dark"] .runtime-card-head h2,html[data-theme="dark"] .runtime-update-kpi strong,html[data-theme="dark"] .runtime-policy-chip strong,html[data-theme="dark"] .runtime-release-main strong,html[data-theme="dark"] .kiosk-runtime-policy-effective strong{color:#f3f6fb}html[data-theme="dark"] .kiosk-runtime-policy-effective,html[data-theme="dark"] .kiosk-runtime-state-grid>div,html[data-theme="dark"] .runtime-signing-row code{background:#121b2c}
@media(max-width:1100px){.runtime-update-grid-main{grid-template-columns:1fr}.runtime-release-row{grid-template-columns:1fr auto}.runtime-release-actions{grid-column:1/-1;justify-content:flex-start}.kiosk-runtime-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.runtime-update-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.runtime-updates-page-header{align-items:stretch}.runtime-policy-chip{min-width:0}.runtime-release-fields,.runtime-deploy-fields{grid-template-columns:1fr}.runtime-release-row{grid-template-columns:1fr}.runtime-release-meta{justify-content:flex-start}.kiosk-runtime-state-grid{grid-template-columns:1fr}.kiosk-runtime-history-row{grid-template-columns:1fr 1fr}}

/* R66 — runtime version cells on fleet tables */
.runtime-list-version{display:inline-flex;flex-direction:column;gap:2px;line-height:1.15;min-width:86px}.runtime-list-version strong{font-size:12px;color:#0A2155;font-weight:750}.runtime-list-version small{font-size:10px;color:#7B8798;letter-spacing:.02em}.runtime-list-empty{display:inline-block;max-width:150px;font-size:11px;line-height:1.25;color:#9AA5B4}.theme-dark .runtime-list-version strong{color:#fff}.theme-dark .runtime-list-version small,.theme-dark .runtime-list-empty{color:#AEB8C7}

/* R66 — deployment targeting + preview */
.runtime-deploy-builder{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.7fr);gap:14px;padding:20px 22px 0}.runtime-scope-fields{padding:4px 22px 0}.runtime-scope-fields>.form-group{margin:0}.runtime-fleet-warning,.runtime-policy-note,.runtime-fleet-confirm-note{display:flex;align-items:flex-start;gap:11px;border-radius:13px;line-height:1.45}.runtime-fleet-warning{padding:15px 16px;border:1px solid rgba(245,158,11,.28);background:rgba(245,158,11,.08);color:#6f5411}.runtime-fleet-warning .ui-icon{flex:0 0 18px;width:18px;height:18px;margin-top:1px}.runtime-fleet-warning strong,.runtime-fleet-warning span{display:block}.runtime-fleet-warning strong{color:#202A4F}.runtime-fleet-warning span{margin-top:3px;font-size:12px}.runtime-policy-note{margin:15px 22px 0;padding:12px 14px;border:1px solid rgba(10,33,85,.09);background:#f6f8fb;color:#66758a;font-size:12px}.runtime-policy-note .ui-icon{flex:0 0 17px;width:17px;height:17px;color:#AF2665}.runtime-preview-modal{width:min(680px,calc(100vw - 32px))}.runtime-preview-release{padding:14px 16px;border-radius:13px;background:#f4f6f9;color:#0A2155;font-weight:800}.runtime-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.runtime-preview-grid>div{padding:14px;border:1px solid #e1e6ed;border-radius:13px;background:#fff}.runtime-preview-grid small,.runtime-preview-grid strong{display:block}.runtime-preview-grid small{min-height:30px;color:#8290a3;font-size:11px;line-height:1.35}.runtime-preview-grid strong{margin-top:5px;color:#0A2155;font-size:24px}.runtime-fleet-confirm-note{margin-top:14px;padding:13px 14px;background:rgba(175,38,101,.07);border:1px solid rgba(175,38,101,.16);color:#202A4F;font-size:12px}.runtime-fleet-confirm-note .ui-icon{width:17px;height:17px;color:#AF2665;flex:0 0 17px}.runtime-scope-fields [hidden],.runtime-fleet-warning[hidden],.runtime-fleet-confirm-note[hidden]{display:none!important}
html[data-theme="dark"] .runtime-policy-note,html[data-theme="dark"] .runtime-preview-release{background:#121b2c;color:#eaf0f8}html[data-theme="dark"] .runtime-preview-grid>div{background:#182236;border-color:#29364b}html[data-theme="dark"] .runtime-preview-grid strong,html[data-theme="dark"] .runtime-fleet-warning strong{color:#f3f6fb}html[data-theme="dark"] .runtime-fleet-warning{color:#e7d19a;background:rgba(245,158,11,.10)}html[data-theme="dark"] .runtime-fleet-confirm-note{color:#e8dbe2}
@media(max-width:760px){.runtime-deploy-builder{grid-template-columns:1fr}.runtime-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* R66 — runtime version cells on fleet tables (dark mode aligned with KIOSK theme contract) */
html[data-theme="dark"] .runtime-list-version strong{color:#f3f6fb}html[data-theme="dark"] .runtime-list-version small,html[data-theme="dark"] .runtime-list-empty{color:#aeb8c7}
.runtime-available-note{display:block;margin-top:5px;color:#AF2665;font-size:10px;font-weight:700;line-height:1.35}.kiosk-runtime-state-grid>div{min-width:0}.kiosk-runtime-state-grid>div>strong{word-break:break-word}
.runtime-window-note{padding:11px 22px;border-bottom:1px solid #e7ebf0;background:#f8fafc;color:#7c899a;font-size:11px}.runtime-event-table code{font-size:10px;white-space:nowrap}.runtime-event-message{max-width:320px;white-space:normal!important;line-height:1.4}html[data-theme="dark"] .runtime-window-note{background:#121b2c;border-color:#29364b;color:#aeb8c7}
.runtime-row-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end;flex-wrap:wrap}.runtime-row-actions form{margin:0}.runtime-state-badge.is-active{background:#e5f8ef;color:#138a59}.runtime-state-badge.is-paused{background:#fff4d8;color:#a86c00}.runtime-state-badge.is-completed{background:#edf3ff;color:#2c5db4}.runtime-state-badge.is-cancelled{background:#f1f3f6;color:#6e7888}

/* ============================================================
   SCREENFLOW BACKOFFICE — RESPONSIVE.CSS
   Mobile-first media query overrides
   ============================================================ */

/* ============================================================
   TABLET — 992px and below
   ============================================================ */
@media (max-width: 992px) {
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }

  .settings-layout { grid-template-columns: 1fr; }
  .settings-sidebar { position: static; }

  .platform-health-grid { grid-template-columns: 1fr; }

  table.data-table thead th:nth-child(n+5):not(:last-child) { display: none; }
  table.data-table tbody td:nth-child(n+5):not(:last-child) { display: none; }

  .auth-right { display: none; }

  .calendar-grid { grid-template-columns: 1fr; }
  .calendar-cell { min-height: auto; }
}

/* ============================================================
   MOBILE — 768px and below
   ============================================================ */
@media (max-width: 768px) {
  /* Page header */
  .page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .page-header-actions { width: 100%; }
  .page-header-actions .btn { flex: 1; justify-content: center; }

  /* KPI grid */
  .kpi-grid { grid-template-columns: 1fr; }

  /* Tables */
  .table-toolbar { flex-direction: column; align-items: stretch; }
  .table-toolbar-left, .table-toolbar-right { width: 100%; }
  .table-search { min-width: 0; width: 100%; }

  table.data-table thead th:nth-child(n+4):not(:last-child) { display: none; }
  table.data-table tbody td:nth-child(n+4):not(:last-child) { display: none; }

  .table-pagination {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  /* Cards */
  .device-grid { grid-template-columns: 1fr; }
  .media-grid  { grid-template-columns: repeat(2, 1fr); }

  /* Auth */
  .auth-left  { padding: var(--space-5) var(--space-4); }
  .auth-box   { max-width: 100%; }
  .auth-title { font-size: var(--text-3xl); }

  /* Modals */
  .modal-backdrop {
    align-items: flex-end;
    padding: 0;
  }

  .modal {
    max-width: 100%;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    max-height: 90vh;
    transform: translateY(100%);
  }

  .modal-backdrop.open .modal { transform: translateY(0); }

  /* Offcanvas */
  .offcanvas { width: 100%; max-width: 100%; }

  /* Toast */
  .toast-container {
    left: var(--space-3);
    right: var(--space-3);
    bottom: var(--space-3);
  }

  .toast { max-width: 100%; }

  /* Settings */
  .settings-row { flex-direction: column; gap: var(--space-2); }
  .settings-row-control { text-align: left; min-width: 0; width: 100%; }

  /* Upload */
  .upload-area { padding: var(--space-5); }

  /* Calendar */
  .calendar-toolbar { flex-direction: column; align-items: flex-start; }
  .calendar-grid { grid-template-columns: repeat(7, 1fr); }
  .calendar-day-header { font-size: 9px; padding: var(--space-1); }
  .calendar-cell { min-height: 60px; padding: var(--space-1); }
  .calendar-event { display: none; }
  .calendar-cell.has-events::after {
    content: '';
    display: block;
    width: 4px;
    height: 4px;
    background: var(--brand-primary);
    border-radius: var(--radius-full);
    margin: 0 auto;
  }

  /* Error pages */
  .error-code { font-size: 80px; }

  /* Org cards */
  .org-stats { grid-template-columns: 1fr; gap: var(--space-2); }
}

/* ============================================================
   SMALL MOBILE — 480px and below
   ============================================================ */
@media (max-width: 480px) {
  .page-header-title { font-size: var(--text-2xl); }

  .media-grid { grid-template-columns: repeat(2, 1fr); }

  .auth-title { font-size: var(--text-2xl); }

  .kpi-grid { grid-template-columns: 1fr; }

  .topbar { padding: 0 var(--space-3); gap: var(--space-2); }

  .breadcrumbs { display: none; }

  /* Hide non-critical table columns on very small screens */
  table.data-table thead th:nth-child(n+3):not(:last-child) { display: none; }
  table.data-table tbody td:nth-child(n+3):not(:last-child) { display: none; }

  /* Stack auth form elements */
  .auth-form .btn { width: 100%; }

  .modal-header { padding: var(--space-4); }
  .modal-body   { padding: var(--space-4); }
  .modal-footer { padding: var(--space-3) var(--space-4); flex-direction: column; }
  .modal-footer .btn { width: 100%; }
}

/* ============================================================
   PRINT STYLES
   ============================================================ */
@media print {
  .sidebar,
  .topbar,
  .upgrade-banner,
  .toast-container,
  .modal-backdrop,
  .btn-sync,
  .page-header-actions { display: none !important; }

  .app-main { margin-left: 0 !important; }

  body { background: white; color: black; }

  .card, .stat-card, .table-container {
    box-shadow: none;
    border: 1px solid #ddd;
    page-break-inside: avoid;
  }
}

/* ============================================================
   ScreenFlow — custom.css  (v1)
   Only classes genuinely absent from core/layout/components/pages.
   Load order: after responsive.css.
   ============================================================ */

.modal {overflow: scroll;}
.form-switch {margin-top: var(--space-3);}

/* ============================================================
   ScreenFlow — custom_bare.css  (v1)
   Only classes genuinely absent from core/layout/components/pages.
   Load order: after responsive.css.
   ============================================================ */

.form-switch {margin-top:var(--space-3)}

/* ============================================================
   KIOSK SHELL — CSS Override pour l'espace content
   Appliqué sur body.space-content uniquement.
   Reproduit fidèlement l'UI de KIOSK (sidebar, topbar,
   nav items, cards, badges, menus contextuels, états vides).
   ============================================================ */

/* ---- Variables spécifiques KIOSK ---- */
body.space-content {
  --kiosk-brand:           #AF2665;
  --kiosk-brand-hover:     #942056;
  --kiosk-brand-light:     #F9EAF1;
  --kiosk-brand-muted:     rgba(175,38,101,0.10);
  --kiosk-sidebar-width:    220px;
  --kiosk-topbar-height:    56px;
  --kiosk-nav-item-h:       40px;
  --kiosk-font:             'Inter', 'DM Sans', sans-serif;

  /* Override tokens pour aligner KIOSK */
  --brand-primary:        #AF2665;
  --brand-primary-hover:  #942056;
  --brand-primary-light:  #F9EAF1;
  --brand-primary-muted:  rgba(175,38,101,0.10);
  --sidebar-width:        220px;
  --topbar-height:        56px;
  --color-bg-app:         #F5F6FA;
  --color-bg-surface:     #FFFFFF;
  --color-border:         #E8ECF0;
  font-family: var(--kiosk-font);
}

/* ---- Import Inter font (KIOSK équivalent) ---- */
body.space-content {
  font-family: 'Inter', 'DM Sans', sans-serif;
}

/* ============================================================
   SIDEBAR KIOSK
   ============================================================ */

body.space-content .sidebar {
  width: var(--kiosk-sidebar-width);
  background: #FFFFFF;
  border-right: 1px solid #E8ECF0;
  padding: 0;
  overflow: visible;
}

/* Logo / Brand */
body.space-content .sidebar-brand {
  height: var(--kiosk-topbar-height);
  padding: 0 16px;
  border-bottom: 1px solid #E8ECF0;
  gap: 10px;
}

body.space-content .sidebar-brand-icon {
  width: 30px;
  height: 30px;
  background: var(--kiosk-brand);
  border-radius: 6px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: -0.03em;
  font-family: var(--kiosk-font);
  flex-shrink: 0;
}

body.space-content .sidebar-brand-name {
  font-family: var(--kiosk-font);
  font-size: 15px;
  font-weight: 700;
  color: #1A1A2E;
  letter-spacing: -0.02em;
}

/* Toggle collapse */
body.space-content .sidebar-toggle {
  right: -10px;
  width: 20px;
  height: 20px;
}

/* ---- NAV — Structure KIOSK (flat, pas de groupes) ---- */

body.space-content .sidebar-nav {
  padding: 8px 0;
  flex: 1;
}

body.space-content .sidebar-nav .nav-group {
  margin: 0;
  padding: 0;
}

/* Masquer les labels de groupe dans l'espace content KIOSK */
body.space-content .sidebar-nav .nav-group-label {
  display: none;
}

/* Item de nav */
body.space-content .sidebar-nav .nav-item {
  margin: 1px 8px;
}

body.space-content .sidebar-nav .nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  height: var(--kiosk-nav-item-h);
  border-radius: 8px;
  color: #3D4555;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--kiosk-font);
  text-decoration: none;
  transition: background 0.13s, color 0.13s;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
}

body.space-content .sidebar-nav .nav-link:hover {
  background: #F5F6FA;
  color: #1A1A2E;
}

body.space-content .sidebar-nav .nav-link.active {
  background: var(--kiosk-brand-light);
  color: var(--kiosk-brand);
  font-weight: 600;
  box-shadow: inset 3px 0 var(--kiosk-brand);
}
[dir=rtl] body.space-content .sidebar-nav .nav-link.active { box-shadow: inset -3px 0 var(--kiosk-brand); }

body.space-content .sidebar-nav .nav-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: #8A93A2;
  font-size: 20px; /* Material Icons size */
  transition: color 0.13s;
}

body.space-content .sidebar-nav .nav-link.active .nav-icon {
  color: var(--kiosk-brand);
}

body.space-content .sidebar-nav .nav-link:hover .nav-icon {
  color: #1A1A2E;
}

body.space-content .sidebar-nav .nav-label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Chevron pour dropdown Media */
body.space-content .sidebar-nav .nav-chevron {
  margin-left: auto;
  font-size: 16px;
  color: #B0B8C1;
  transition: transform 0.2s;
  flex-shrink: 0;
}

body.space-content .sidebar-nav .nav-link.expanded .nav-chevron,
body.space-content .sidebar-nav .nav-item.open .nav-chevron {
  transform: rotate(180deg);
}

/* Sous-items Media (dropdown) */
body.space-content .sidebar-nav .nav-subnav {
  list-style: none;
  margin: 0;
  padding: 2px 0 4px 0;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.25s ease;
}

body.space-content .sidebar-nav .nav-item.open .nav-subnav {
  max-height: 300px;
}

body.space-content .sidebar-nav .nav-subitem {
  margin: 1px 8px 1px 30px;
}

body.space-content .sidebar-nav .nav-sublink {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  height: 34px;
  border-radius: 6px;
  color: #5E687A;
  font-size: 13px;
  font-weight: 500;
  font-family: var(--kiosk-font);
  text-decoration: none;
  transition: background 0.12s, color 0.12s;
}

body.space-content .sidebar-nav .nav-sublink:hover {
  background: #F5F6FA;
  color: #1A1A2E;
}

body.space-content .sidebar-nav .nav-sublink.active {
  background: var(--kiosk-brand-light);
  color: var(--kiosk-brand);
  font-weight: 600;
}

body.space-content .sidebar-nav .nav-subicon {
  font-size: 16px;
  color: #B0B8C1;
  width: 18px;
  flex-shrink: 0;
}

body.space-content .sidebar-nav .nav-sublink.active .nav-subicon {
  color: var(--kiosk-brand);
}

/* ---- Sidebar footer (Knowledge Hub) ---- */
body.space-content .sidebar-footer {
  border-top: 1px solid #E8ECF0;
  padding: 8px;
}

/* Knowledge Hub accordéon */
body.space-content .kiosk-knowledge-hub {
  border-radius: 8px;
  overflow: hidden;
}

body.space-content .kiosk-knowledge-hub-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  cursor: pointer;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #5E687A;
  font-family: var(--kiosk-font);
  transition: background 0.12s;
  user-select: none;
}

body.space-content .kiosk-knowledge-hub-header:hover {
  background: #F5F6FA;
}

body.space-content .kiosk-knowledge-hub-chevron {
  font-size: 16px;
  margin-left: auto;
  color: #B0B8C1;
  transition: transform 0.2s;
}

body.space-content .kiosk-knowledge-hub.open .kiosk-knowledge-hub-chevron {
  transform: rotate(180deg);
}

body.space-content .kiosk-knowledge-hub-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
}

body.space-content .kiosk-knowledge-hub.open .kiosk-knowledge-hub-body {
  max-height: 200px;
}

body.space-content .kiosk-knowledge-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px 6px 36px;
  font-size: 12px;
  color: #5E687A;
  text-decoration: none;
  transition: color 0.12s;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-knowledge-link:hover {
  color: var(--kiosk-brand);
}

/* ============================================================
   TOPBAR KIOSK
   ============================================================ */

body.space-content .topbar {
  height: var(--kiosk-topbar-height);
  background: #FFFFFF;
  border-bottom: 1px solid #E8ECF0;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  flex-shrink: 0;
}

body.space-content .topbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.space-content .topbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Titre de page dans topbar */
body.space-content .topbar-page-title {
  font-size: 18px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  letter-spacing: -0.02em;
}

/* Icône boutons topbar */
body.space-content .topbar-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  color: #5E687A;
  font-size: 22px;
  transition: background 0.12s, color 0.12s;
}

body.space-content .topbar-icon-btn:hover {
  background: #F5F6FA;
  color: #1A1A2E;
}

/* Workspace selector */
body.space-content .kiosk-workspace-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  height: 36px;
  border: 1px solid #E8ECF0;
  border-radius: 8px;
  background: #FFFFFF;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: #3D4555;
  font-family: var(--kiosk-font);
  transition: border-color 0.12s, background 0.12s;
}

body.space-content .kiosk-workspace-btn:hover {
  background: #F5F6FA;
  border-color: #D0D7DE;
}

/* User avatar topbar */
body.space-content .kiosk-user-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 6px;
  height: 36px;
  border: 1px solid #E8ECF0;
  border-radius: 8px;
  background: #FFFFFF;
  cursor: pointer;
  font-family: var(--kiosk-font);
  transition: background 0.12s;
}

body.space-content .kiosk-user-btn:hover {
  background: #F5F6FA;
}

body.space-content .kiosk-user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--kiosk-brand-muted);
  color: var(--kiosk-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  font-family: var(--kiosk-font);
  flex-shrink: 0;
}

/* CTA "Push to Screens" */
body.space-content .btn-push-screens {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 36px;
  background: var(--kiosk-brand);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--kiosk-font);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.13s, box-shadow 0.13s;
  white-space: nowrap;
}

body.space-content .btn-push-screens:hover {
  background: var(--kiosk-brand-hover);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(175,38,101,0.30);
}

body.space-content .btn-push-screens .material-icons {
  font-size: 18px;
}

/* ============================================================
   APP MAIN (ajustement sidebar width)
   ============================================================ */

body.space-content .app-main {
  margin-left: var(--kiosk-sidebar-width);
}

/* R33 — collapsed content sidebar follows the canonical shell instead of keeping 220px. */
body.space-content .app-shell.sidebar-mini .sidebar,
html.kiosk-sidebar-mini-pref body.space-content .sidebar {
  width: var(--sidebar-width-mini);
}
body.space-content .app-shell.sidebar-mini .app-main,
html.kiosk-sidebar-mini-pref body.space-content .app-main {
  margin-left: var(--sidebar-width-mini);
}
body.space-content .app-shell.sidebar-mini .sidebar-brand { padding-inline:0; justify-content:center; }
body.space-content .app-shell.sidebar-mini .sidebar-nav .nav-item { margin-inline:0; }
body.space-content .app-shell.sidebar-mini .sidebar-nav .nav-link { width:44px; margin:2px auto; padding:0; justify-content:center; gap:0; }
body.space-content .app-shell.sidebar-mini .sidebar-nav .nav-label,
body.space-content .app-shell.sidebar-mini .sidebar-nav .nav-arrow { display:none; }
body.space-content .app-shell.sidebar-mini .sidebar-footer { padding-inline:8px; }

body.space-content .page-content {
  padding: 24px;
  background: #F5F6FA;
  min-height: calc(100vh - var(--kiosk-topbar-height));
}

/* ============================================================
   PAGE HEADER KIOSK
   ============================================================ */

body.space-content .kiosk-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

body.space-content .kiosk-page-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.space-content .kiosk-page-title {
  font-size: 22px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  letter-spacing: -0.02em;
  margin: 0;
}

body.space-content .kiosk-page-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ============================================================
   TOOLBAR KIOSK (au-dessus des listes)
   ============================================================ */

body.space-content .kiosk-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}

body.space-content .kiosk-toolbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}

body.space-content .kiosk-toolbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Search bar */
body.space-content .kiosk-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  height: 36px;
  border: 1px solid #E8ECF0;
  border-radius: 8px;
  background: #FFFFFF;
  min-width: 220px;
  max-width: 340px;
  transition: border-color 0.13s, box-shadow 0.13s;
}

body.space-content .kiosk-search:focus-within {
  border-color: var(--kiosk-brand);
  box-shadow: 0 0 0 3px rgba(175,38,101,0.12);
}

body.space-content .kiosk-search .material-icons {
  font-size: 18px;
  color: #B0B8C1;
  flex-shrink: 0;
}

body.space-content .kiosk-search input {
  border: none;
  outline: none;
  background: transparent;
  font-size: 13px;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  width: 100%;
}

body.space-content .kiosk-search input::placeholder {
  color: #B0B8C1;
}

/* Bouton icône toolbar */
body.space-content .kiosk-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #E8ECF0;
  border-radius: 8px;
  background: #FFFFFF;
  cursor: pointer;
  color: #5E687A;
  font-size: 20px;
  transition: background 0.12s, border-color 0.12s;
  text-decoration: none;
}

body.space-content .kiosk-icon-btn:hover {
  background: #F5F6FA;
  border-color: #D0D7DE;
  color: #1A1A2E;
}

body.space-content .kiosk-icon-btn.active {
  background: var(--kiosk-brand-light);
  border-color: var(--kiosk-brand);
  color: var(--kiosk-brand);
}

/* Per-page selector */
body.space-content .kiosk-per-page {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #8A93A2;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-per-page select {
  border: 1px solid #E8ECF0;
  border-radius: 6px;
  background: #fff;
  padding: 3px 6px;
  font-size: 12px;
  color: #3D4555;
  font-family: var(--kiosk-font);
  cursor: pointer;
}

/* ============================================================
   TABLEAU KIOSK
   ============================================================ */

body.space-content .kiosk-table-wrap {
  background: #FFFFFF;
  border-radius: 10px;
  border: 1px solid #E8ECF0;
  overflow: hidden;
}

body.space-content .kiosk-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-table thead th {
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 600;
  color: #8A93A2;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid #E8ECF0;
  background: #FAFBFC;
  white-space: nowrap;
  text-align: left;
}

body.space-content .kiosk-table thead th.check-col {
  width: 44px;
  padding: 10px 16px 10px 16px;
}

body.space-content .kiosk-table tbody tr {
  border-bottom: 1px solid #F0F3F5;
  transition: background 0.10s;
}

body.space-content .kiosk-table tbody tr:last-child {
  border-bottom: none;
}

body.space-content .kiosk-table tbody tr:hover {
  background: #FAFBFC;
}

body.space-content .kiosk-table tbody td {
  padding: 12px 16px;
  font-size: 13px;
  color: #3D4555;
  vertical-align: middle;
}

body.space-content .kiosk-table tbody td.check-col {
  padding: 12px 16px;
}

/* Thumbnail + name cell */
body.space-content .kiosk-cell-name {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.space-content .kiosk-thumb {
  width: 48px;
  height: 36px;
  border-radius: 4px;
  background: #F0F3F5;
  object-fit: cover;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

body.space-content .kiosk-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.space-content .kiosk-thumb .material-icons {
  font-size: 20px;
  color: #C0C8D0;
}

body.space-content .kiosk-item-name {
  font-size: 13px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-item-meta {
  font-size: 11px;
  color: #8A93A2;
  margin-top: 1px;
}

/* Badge type media */
body.space-content .kiosk-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  font-family: var(--kiosk-font);
  white-space: nowrap;
}

body.space-content .kiosk-badge-gray {
  background: #F0F3F5;
  color: #5E687A;
}

body.space-content .kiosk-badge-green {
  background: #EDFBF3;
  color: #1E8A4A;
}

body.space-content .kiosk-badge-red {
  background: #FEE8E4;
  color: #CC3320;
}

body.space-content .kiosk-badge-orange {
  background: var(--kiosk-brand-light);
  color: var(--kiosk-brand);
}

body.space-content .kiosk-badge-blue {
  background: #EEF4FF;
  color: #3B6FD4;
}

body.space-content .kiosk-badge-premium {
  background: #FFF8E1;
  color: #B45309;
}

/* Status dot */
body.space-content .kiosk-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-family: var(--kiosk-font);
  font-weight: 500;
}

body.space-content .kiosk-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

body.space-content .kiosk-status-dot.online   { background: #28C76F; }
body.space-content .kiosk-status-dot.offline  { background: #EA5455; }
body.space-content .kiosk-status-dot.init     { background: #A8B0BE; }
body.space-content .kiosk-status-dot.pending  { background: #FF9F43; }

/* ============================================================
   MENU CONTEXTUEL ⋮ (3 points)
   ============================================================ */

body.space-content .kiosk-ctx-wrap {
  position: relative;
  display: inline-flex;
}

body.space-content .kiosk-ctx-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  border-radius: 6px;
  cursor: pointer;
  color: #8A93A2;
  font-size: 20px;
  transition: background 0.12s, color 0.12s;
}

body.space-content .kiosk-ctx-btn:hover,
body.space-content .kiosk-ctx-wrap.open .kiosk-ctx-btn {
  background: #F0F3F5;
  color: #1A1A2E;
}

body.space-content .kiosk-ctx-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  min-width: 180px;
  background: #FFFFFF;
  border: 1px solid #E8ECF0;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(26,26,46,0.12), 0 2px 6px rgba(26,26,46,0.06);
  padding: 4px 0;
  z-index: 999;
  display: none;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.15s, transform 0.15s;
}

body.space-content .kiosk-ctx-wrap.open .kiosk-ctx-menu {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

body.space-content .kiosk-ctx-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  font-size: 13px;
  color: #3D4555;
  font-family: var(--kiosk-font);
  cursor: pointer;
  transition: background 0.10s;
  text-decoration: none;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
}

body.space-content .kiosk-ctx-item:hover {
  background: #F5F6FA;
}

body.space-content .kiosk-ctx-item .material-icons {
  font-size: 18px;
  color: #8A93A2;
  flex-shrink: 0;
}

body.space-content .kiosk-ctx-item.danger {
  color: #CC3320;
}

body.space-content .kiosk-ctx-item.danger .material-icons {
  color: #CC3320;
}

body.space-content .kiosk-ctx-separator {
  height: 1px;
  background: #F0F3F5;
  margin: 4px 0;
}

/* ============================================================
   EMPTY STATE KIOSK
   ============================================================ */

body.space-content .kiosk-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
  text-align: center;
}

body.space-content .kiosk-empty-icon {
  width: 80px;
  height: 80px;
  border-radius: 20px;
  background: #F0F3F5;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

body.space-content .kiosk-empty-icon .material-icons {
  font-size: 40px;
  color: #C0C8D0;
}

body.space-content .kiosk-empty-title {
  font-size: 17px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  margin-bottom: 8px;
}

body.space-content .kiosk-empty-desc {
  font-size: 13px;
  color: #8A93A2;
  font-family: var(--kiosk-font);
  max-width: 320px;
  line-height: 1.6;
  margin-bottom: 24px;
}

/* ============================================================
   CARDS GRILLE KIOSK (media, screens, etc.)
   ============================================================ */

body.space-content .kiosk-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

body.space-content .kiosk-card {
  background: #FFFFFF;
  border: 1px solid #E8ECF0;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow 0.15s, border-color 0.15s;
  position: relative;
}

body.space-content .kiosk-card:hover {
  border-color: #D0D7DE;
  box-shadow: 0 4px 16px rgba(26,26,46,0.08);
}

body.space-content .kiosk-card-thumb {
  aspect-ratio: 16/9;
  background: #F0F3F5;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

body.space-content .kiosk-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.space-content .kiosk-card-thumb .material-icons {
  font-size: 32px;
  color: #C0C8D0;
}

/* Hover reveal actions sur les cards */
body.space-content .kiosk-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26,26,46,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  opacity: 0;
  transition: opacity 0.15s;
}

body.space-content .kiosk-card:hover .kiosk-card-overlay {
  opacity: 1;
}

body.space-content .kiosk-card-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255,255,255,0.20);
  border: 1px solid rgba(255,255,255,0.35);
  cursor: pointer;
  color: #FFFFFF;
  font-size: 18px;
  transition: background 0.12s;
}

body.space-content .kiosk-card-action:hover {
  background: rgba(255,255,255,0.35);
}

body.space-content .kiosk-card-body {
  padding: 10px 12px;
}

body.space-content .kiosk-card-name {
  font-size: 13px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.space-content .kiosk-card-sub {
  font-size: 11px;
  color: #8A93A2;
  margin-top: 2px;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-card-check {
  position: absolute;
  top: 8px;
  left: 8px;
  opacity: 0;
  transition: opacity 0.12s;
}

body.space-content .kiosk-card:hover .kiosk-card-check,
body.space-content .kiosk-card.selected .kiosk-card-check {
  opacity: 1;
}

body.space-content .kiosk-card.selected {
  border-color: var(--kiosk-brand);
  box-shadow: 0 0 0 2px var(--kiosk-brand-muted);
}

/* ============================================================
   DASHBOARD WIDGETS KIOSK
   ============================================================ */

body.space-content .kiosk-greeting-card {
  background: var(--kiosk-brand);
  border-radius: 12px;
  padding: 24px 28px;
  color: #FFFFFF;
  font-family: var(--kiosk-font);
  margin-bottom: 20px;
}

body.space-content .kiosk-greeting-card h2 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 6px 0;
  letter-spacing: -0.02em;
}

body.space-content .kiosk-greeting-card p {
  font-size: 13px;
  margin: 0;
  opacity: 0.85;
}

/* Widget cards */
body.space-content .kiosk-widget {
  background: #FFFFFF;
  border: 1px solid #E8ECF0;
  border-radius: 12px;
  overflow: hidden;
}

body.space-content .kiosk-widget-header {
  padding: 14px 20px 12px;
  font-size: 14px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  border-bottom: 1px solid #F0F3F5;
}

body.space-content .kiosk-widget-body {
  padding: 16px 20px;
}

/* Screen status counters */
body.space-content .kiosk-status-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #F0F3F5;
}

body.space-content .kiosk-status-cell {
  background: #FFFFFF;
  padding: 16px 20px;
  cursor: pointer;
  transition: background 0.12s;
  text-decoration: none;
  display: block;
}

body.space-content .kiosk-status-cell:hover {
  background: #FAFBFC;
}

body.space-content .kiosk-status-cell-label {
  font-size: 12px;
  color: #8A93A2;
  font-family: var(--kiosk-font);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 6px;
}

body.space-content .kiosk-status-cell-label .material-icons {
  font-size: 14px;
}

body.space-content .kiosk-status-cell-count {
  font-size: 28px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  letter-spacing: -0.03em;
  line-height: 1;
}

/* Recent activities */
body.space-content .kiosk-activity-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #F0F3F5;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-activity-item:last-child {
  border-bottom: none;
}

body.space-content .kiosk-activity-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #C0C8D0;
  flex-shrink: 0;
  margin-top: 4px;
}

body.space-content .kiosk-activity-time {
  font-size: 11px;
  color: #B0B8C1;
  white-space: nowrap;
  flex-shrink: 0;
}

body.space-content .kiosk-activity-text {
  font-size: 12px;
  color: #5E687A;
  line-height: 1.5;
  flex: 1;
}

body.space-content .kiosk-activity-link {
  color: var(--kiosk-brand);
  text-decoration: none;
  font-weight: 600;
}

body.space-content .kiosk-activity-link:hover {
  text-decoration: underline;
}

/* ============================================================
   MODAL KIOSK — R34 canonical dialog surface
   ============================================================ */

body.space-content .kiosk-modal-overlay {
  position: fixed; inset: 0; z-index: 1050; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(16,24,40,.50); backdrop-filter: blur(5px); opacity: 0; pointer-events: none; transition: opacity .16s ease;
}
body.space-content .kiosk-modal-overlay.show { opacity: 1; pointer-events: auto; }
body.space-content .kiosk-modal {
  width: min(500px,calc(100vw - 32px)); overflow: hidden; background: var(--color-bg-surface,#fff);
  border: 1px solid var(--color-border,#e3e8ef); border-radius: 18px;
  box-shadow: 0 28px 80px rgba(16,24,40,.25); transform: translateY(8px) scale(.985); transition: transform .16s ease;
  font-family: var(--kiosk-font);
}
body.space-content .kiosk-modal-overlay.show .kiosk-modal { transform: translateY(0) scale(1); }
body.space-content .kiosk-modal-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:19px 20px 14px; border-bottom:1px solid var(--color-border,#e3e8ef); }
body.space-content .kiosk-modal-title { display:flex; align-items:center; gap:9px; margin:0; font-size:17px; line-height:1.3; font-weight:800; color:var(--color-text-primary,#1A1A2E); letter-spacing:-.02em; }
body.space-content .kiosk-modal-title .ui-icon { width:20px; height:20px; color:var(--kiosk-brand); }
body.space-content .kiosk-modal-close { width:34px; height:34px; border:0; background:transparent; border-radius:9px; cursor:pointer; color:var(--color-text-tertiary,#8A93A2); display:grid; place-items:center; transition:background .12s,color .12s; }
body.space-content .kiosk-modal-close:hover { background:var(--color-bg-subtle,#F0F3F5); color:var(--color-text-primary,#1A1A2E); }
body.space-content .kiosk-modal-body { padding:19px 20px; color:var(--color-text-secondary,#5E687A); font-size:13px; line-height:1.6; }
body.space-content .kiosk-modal-body p { margin:0!important; color:inherit!important; font-size:inherit!important; }
body.space-content .kiosk-modal-footer { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding:14px 20px 18px; border-top:1px solid var(--color-border,#e3e8ef); background:var(--color-bg-subtle,#F8FAFC); }
body.space-content .kiosk-modal-footer .kiosk-btn { min-height:40px; height:40px; border-radius:10px; padding-inline:16px; }

/* ============================================================
   BOUTONS KIOSK
   ============================================================ */

body.space-content .kiosk-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 36px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--kiosk-font);
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: background 0.13s, box-shadow 0.13s, border-color 0.13s;
  white-space: nowrap;
}

body.space-content .kiosk-btn-primary {
  background: var(--kiosk-brand);
  color: #FFFFFF;
}

body.space-content .kiosk-btn-primary:hover {
  background: var(--kiosk-brand-hover);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(175,38,101,0.28);
}

body.space-content .kiosk-btn-ghost {
  background: #FFFFFF;
  color: #3D4555;
  border: 1px solid #E8ECF0;
}

body.space-content .kiosk-btn-ghost:hover {
  background: #F5F6FA;
  border-color: #D0D7DE;
  color: #1A1A2E;
}

body.space-content .kiosk-btn-danger {
  background: #FFFFFF;
  color: #CC3320;
  border: 1px solid #FCCBC5;
}

body.space-content .kiosk-btn-danger:hover {
  background: #FEE8E4;
}

body.space-content .kiosk-btn .material-icons {
  font-size: 18px;
}

/* ============================================================
   BREADCRUMB KIOSK
   ============================================================ */

body.space-content .kiosk-breadcrumb {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-family: var(--kiosk-font);
  margin-bottom: 16px;
}

body.space-content .kiosk-breadcrumb a {
  color: #8A93A2;
  text-decoration: none;
  transition: color 0.12s;
}

body.space-content .kiosk-breadcrumb a:hover {
  color: var(--kiosk-brand);
}

body.space-content .kiosk-breadcrumb .sep {
  color: #C0C8D0;
  font-size: 16px;
}

body.space-content .kiosk-breadcrumb .current {
  color: #1A1A2E;
  font-weight: 500;
}

/* ============================================================
   CHECKBOXES KIOSK
   ============================================================ */

body.space-content .kiosk-checkbox {
  width: 16px;
  height: 16px;
  accent-color: var(--kiosk-brand);
  cursor: pointer;
}

/* ============================================================
   TOGGLE SWITCH KIOSK
   ============================================================ */

body.space-content .kiosk-toggle {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
}

body.space-content .kiosk-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

body.space-content .kiosk-toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #D0D7DE;
  border-radius: 100px;
  transition: background 0.2s;
}

body.space-content .kiosk-toggle-slider::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  left: 3px;
  top: 3px;
  background: #FFFFFF;
  border-radius: 50%;
  transition: transform 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

body.space-content .kiosk-toggle input:checked + .kiosk-toggle-slider {
  background: var(--kiosk-brand);
}

body.space-content .kiosk-toggle input:checked + .kiosk-toggle-slider::before {
  transform: translateX(16px);
}

/* ============================================================
   FORMULAIRES KIOSK
   ============================================================ */

body.space-content .kiosk-form-group {
  margin-bottom: 18px;
}

body.space-content .kiosk-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  margin-bottom: 6px;
}

body.space-content .kiosk-input,
body.space-content .kiosk-select,
body.space-content .kiosk-textarea {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #D0D7DE;
  border-radius: 8px;
  font-size: 13px;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  background: #FFFFFF;
  transition: border-color 0.13s, box-shadow 0.13s;
  outline: none;
  box-sizing: border-box;
}

body.space-content .kiosk-input:focus,
body.space-content .kiosk-select:focus,
body.space-content .kiosk-textarea:focus {
  border-color: var(--kiosk-brand);
  box-shadow: 0 0 0 3px rgba(175,38,101,0.12);
}

body.space-content .kiosk-textarea {
  resize: vertical;
  min-height: 90px;
}

body.space-content .kiosk-hint {
  font-size: 11px;
  color: #8A93A2;
  margin-top: 4px;
  font-family: var(--kiosk-font);
}

/* ============================================================
   PAGINATION KIOSK
   ============================================================ */

body.space-content .kiosk-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-top: 1px solid #F0F3F5;
  font-family: var(--kiosk-font);
}

body.space-content .kiosk-pagination-info {
  font-size: 12px;
  color: #8A93A2;
}

body.space-content .kiosk-pagination-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

body.space-content .kiosk-page-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: 1px solid #E8ECF0;
  background: #FFFFFF;
  font-size: 12px;
  color: #5E687A;
  cursor: pointer;
  font-family: var(--kiosk-font);
  transition: background 0.12s, border-color 0.12s;
}

body.space-content .kiosk-page-btn:hover {
  background: #F5F6FA;
  border-color: #D0D7DE;
}

body.space-content .kiosk-page-btn.active {
  background: var(--kiosk-brand);
  border-color: var(--kiosk-brand);
  color: #FFFFFF;
  font-weight: 600;
}

body.space-content .kiosk-page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ============================================================
   NOTIFICATION TOAST
   ============================================================ */

body.space-content .kiosk-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

body.space-content .kiosk-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #FFFFFF;
  border: 1px solid #E8ECF0;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(26,26,46,0.12);
  font-size: 13px;
  font-family: var(--kiosk-font);
  color: #1A1A2E;
  min-width: 240px;
  max-width: 360px;
  pointer-events: all;
  animation: kiosk-toast-in 0.25s ease;
}

body.space-content .kiosk-toast.success { border-left: 3px solid #28C76F; }
body.space-content .kiosk-toast.error   { border-left: 3px solid #EA5455; }
body.space-content .kiosk-toast.info    { border-left: 3px solid #3B82F6; }

@keyframes kiosk-toast-in {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
  body.space-content .sidebar {
    transform: translateX(-100%);
    z-index: 200;
  }

  body.space-content .app-shell.sidebar-open .sidebar {
    transform: translateX(0);
  }

  body.space-content .app-main {
    margin-left: 0;
  }
}

/* ============================================================
   COMPAT LAYER — Ancien design system → KIOSK Shell
   Override les classes .card, .btn, .page-header, .alert
   dans l'espace content pour utiliser les styles KIOSK.
   ============================================================ */

body.space-content .card {
  background: #FFFFFF;
  border: 1px solid #E8ECF0;
  border-radius: 12px;
  box-shadow: none;
  font-family: var(--kiosk-font);
}

body.space-content .card-header {
  padding: 14px 20px;
  border-bottom: 1px solid #F0F3F5;
  font-size: 14px;
  font-weight: 600;
  color: #1A1A2E;
}

body.space-content .card-body {
  padding: 20px;
}

body.space-content .page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

body.space-content .page-header-title {
  font-size: 22px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  letter-spacing: -0.02em;
  margin: 0;
}

body.space-content .page-header-left { display: flex; align-items: center; gap: 12px; }
body.space-content .page-header-actions { display: flex; gap: 8px; }

/* Override .btn vers .kiosk-btn */
body.space-content .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 36px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--kiosk-font);
  cursor: pointer;
  border: 1px solid #E8ECF0;
  text-decoration: none;
  transition: background 0.13s, border-color 0.13s;
}

body.space-content .btn-primary {
  background: var(--kiosk-brand);
  color: #FFFFFF;
  border-color: var(--kiosk-brand);
}
body.space-content .btn-primary:hover { background: var(--kiosk-brand-hover); color: #fff; }

body.space-content .btn-secondary,
body.space-content .btn-ghost {
  background: #FFFFFF;
  color: #3D4555;
}
body.space-content .btn-secondary:hover,
body.space-content .btn-ghost:hover { background: #F5F6FA; }

body.space-content .btn-danger {
  background: #FFFFFF;
  color: #CC3320;
  border-color: #FCCBC5;
}
body.space-content .btn-danger:hover { background: #FEE8E4; }

body.space-content .btn-sm {
  height: 28px;
  padding: 0 10px;
  font-size: 11px;
}

/* Form controls */
body.space-content .form-group { margin-bottom: 18px; }
body.space-content .form-label,
body.space-content label.label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  margin-bottom: 6px;
}

body.space-content .form-control,
body.space-content input[type="text"]:not(.kiosk-input):not(.kiosk-search input),
body.space-content input[type="url"]:not(.kiosk-input),
body.space-content input[type="email"]:not(.kiosk-input),
body.space-content input[type="number"]:not(.kiosk-input),
body.space-content select:not(.kiosk-select):not(.kiosk-per-page select),
body.space-content textarea:not(.kiosk-textarea) {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #D0D7DE;
  border-radius: 8px;
  font-size: 13px;
  color: #1A1A2E;
  font-family: var(--kiosk-font);
  background: #FFFFFF;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.13s, box-shadow 0.13s;
}

body.space-content .form-control:focus {
  border-color: var(--kiosk-brand);
  box-shadow: 0 0 0 3px rgba(175,38,101,0.12);
}

/* Alerts */
body.space-content .alert {
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-family: var(--kiosk-font);
  margin-bottom: 16px;
}
body.space-content .alert-success { background: #EDFBF3; border: 1px solid #43B577; color: #1E8A4A; }
body.space-content .alert-danger  { background: #FEE8E4; border: 1px solid #FCCBC5; color: #CC3320; }
body.space-content .alert-warning { background: #FFF8E1; border: 1px solid #F8C236; color: #B45309; }
body.space-content .alert-info    { background: #EEF4FF; border: 1px solid #4D92E7; color: #3B6FD4; }

/* Badge legacy */
body.space-content .badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
}
body.space-content .badge-secondary { background: #F0F3F5; color: #5E687A; }

/* Tables legacy */
body.space-content table.table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--kiosk-font);
  font-size: 13px;
}
body.space-content table.table th {
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 600;
  color: #8A93A2;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid #E8ECF0;
  background: #FAFBFC;
  text-align: left;
}
body.space-content table.table td {
  padding: 12px 16px;
  border-bottom: 1px solid #F0F3F5;
  color: #3D4555;
  vertical-align: middle;
}
body.space-content table.table tbody tr:hover { background: #FAFBFC; }

/* DataTables pagination */
body.space-content .dataTables_wrapper .dataTables_info,
body.space-content .dataTables_wrapper .dataTables_paginate {
  font-size: 12px;
  color: #8A93A2;
  font-family: var(--kiosk-font);
  margin-top: 12px;
}

body.space-content .dataTables_wrapper .dataTables_paginate .paginate_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: 1px solid #E8ECF0;
  background: #FFFFFF;
  font-size: 12px;
  color: #5E687A;
  cursor: pointer;
  margin: 0 2px;
  text-decoration: none;
}

body.space-content .dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--kiosk-brand);
  border-color: var(--kiosk-brand);
  color: #FFFFFF;
  font-weight: 600;
}

body.space-content .dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.current) {
  background: #F5F6FA;
}

body.space-content .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/**
 * kiosk-patch.css — correctifs et extensions CSS kiosk-v4
 * Charger après components.css dans le layout principal.
 */

/* ─── Validation States (forms.html #validation) ─────────────────────── */

.form-control.is-invalid,
.form-input.is-invalid {
  border-color: var(--color-danger);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='%23ef4444' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 40px;
}

.invalid-feedback {
  font-size: .78rem;
  color: var(--color-danger);
  margin-top: var(--space-1);
  display: flex;
  align-items: center;
  gap: 4px;
  line-height: 1.4;
}

/* ─── Skeleton pulse (tables.html #loading-table) ─────────────────────── */

@keyframes skeleton-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}

.skeleton-pulse {
  animation: skeleton-pulse 1.5s ease-in-out infinite;
  background: var(--bg-tertiary, #f1f5f9);
  border-radius: var(--radius-md);
}

/* ============================================================
   ScreenFlow — fixes.css  (v2 — slim, targeted)
   Only classes genuinely absent from core/layout/components/pages.
   Load order: after responsive.css.
   ============================================================ */


/* ============================================================
   1. CSS VARIABLE ALIASES
   Short names used in some inline styles → real tokens
   ============================================================ */
:root {
  --primary:            var(--brand-primary);
  --primary-hover:      var(--brand-primary-hover);
  --primary-ghost:      var(--brand-primary-muted);
  --primary-muted:      var(--brand-primary-muted);
  --surface-card:       var(--color-bg-surface);
  --surface-overlay:    var(--color-bg-subtle);
  --surface-bg:         var(--color-bg-primary);
  --bg-primary:         var(--color-bg-surface);
  --bg-secondary:       var(--color-bg-subtle);
  --bg-tertiary:        var(--color-bg-subtle);
  --text-primary:       var(--color-text-primary);
  --text-secondary:     var(--color-text-secondary);
  --text-muted:         var(--color-text-tertiary);
  --text-tertiary:      var(--color-text-tertiary);
  --border-color:       var(--color-border);
  --border-primary:     var(--color-border);
  --border-strong:      var(--color-border-strong);
  --color-primary:      var(--brand-primary);
  --color-success:      #10B981;
  --color-warning:      #F59E0B;
  --color-danger:       #EF4444;
  --color-info:         #3B82F6;
  --color-success-bg:   rgba(16,185,129,0.10);
  --color-warning-bg:   rgba(245,158,11,0.10);
  --color-danger-bg:    rgba(239,68,68,0.10);
  --color-info-bg:      rgba(59,130,246,0.10);
  --color-success-border: rgba(16,185,129,0.30);
  --color-danger-border:  rgba(239,68,68,0.30);
  --brand-primary-focus:  rgba(175,38,101,0.12);
  --input-bg: var(--color-bg-surface);
}


/* ============================================================
   2. BOOTSTRAP-COMPAT UTILITIES (absent from core.css)
   ============================================================ */
.w-100 { width: 100% !important; }
.me-1  { margin-right: var(--space-1) !important; }
.me-2  { margin-right: var(--space-2) !important; }
.me-3  { margin-right: var(--space-3) !important; }
.ms-1  { margin-left: var(--space-1) !important; }
.ms-2  { margin-left: var(--space-2) !important; }
.ms-3  { margin-left: var(--space-3) !important; }
.ml-auto { margin-left: auto !important; }
.align-items-center       { align-items: center !important; }
.align-items-start        { align-items: flex-start !important; }
.justify-content-between  { justify-content: space-between !important; }
.justify-content-center   { justify-content: center !important; }

/* btn-group */
.btn-group { display:inline-flex; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--color-border); }
.btn-group .btn { border-radius:0; border:none; border-right:1px solid var(--color-border); margin:0; }
.btn-group .btn:last-child { border-right:none; }
.btn-group .btn.active { background:var(--brand-primary-muted); color:var(--brand-primary); font-weight:600; }

/* table variants */
.table { width:100%; border-collapse:collapse; }
.table thead th { padding:var(--space-3) var(--space-4); text-align:left; font-size:var(--text-xs); font-weight:700; color:var(--color-text-tertiary); letter-spacing:.06em; text-transform:uppercase; background:var(--color-bg-subtle); border-bottom:1px solid var(--color-border); }
.table tbody tr { border-bottom:1px solid var(--color-border); transition:var(--transition-fast); }
.table tbody tr:last-child { border-bottom:none; }
.table tbody tr:hover { background:var(--color-bg-subtle); }
.table tbody td { padding:var(--space-3) var(--space-4); font-size:var(--text-sm); color:var(--color-text-secondary); vertical-align:middle; }
.table tbody td strong { color:var(--color-text-primary); font-weight:600; }
.table-footer { display:flex; align-items:center; justify-content:space-between; padding:var(--space-3) var(--space-5); border-top:1px solid var(--color-border); font-size:var(--text-sm); color:var(--color-text-tertiary); background:var(--color-bg-subtle); }
.table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-hover tbody tr:hover { background:var(--color-bg-subtle); }
.table-striped tbody tr:nth-child(even) { background:var(--color-bg-subtle); }
.table-sm th, .table-sm td { padding:var(--space-2) var(--space-3) !important; }

/* modal aliases */
.modal-overlay { position:fixed; inset:0; background:var(--color-bg-overlay,rgba(0,0,0,.5)); z-index:var(--z-modal-bg,1040); display:flex; align-items:center; justify-content:center; padding:var(--space-4); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .18s ease; }
.modal-overlay.open { opacity:1; pointer-events:auto; }
.modal-overlay .modal { transform:translateY(20px) scale(.97); transition:transform .22s cubic-bezier(.34,1.56,.64,1); }
.modal-overlay.open .modal { transform:translateY(0) scale(1); }


/* ============================================================
   3. FORM ELEMENTS (aliases / missing variants)
   ============================================================ */

/* form-input = alias of form-control */
.form-input { display:block; width:100%; padding:var(--space-2) var(--space-3); font-size:var(--text-sm); font-family:var(--font-body); color:var(--color-text-primary); background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); height:40px; outline:none; line-height:1.5; transition:border-color .15s,box-shadow .15s; }
.form-input:hover  { border-color:var(--color-border-hover); }
.form-input:focus  { border-color:var(--brand-primary); box-shadow:0 0 0 3px var(--brand-primary-focus); }
.form-input::placeholder { color:var(--color-text-tertiary); }
.form-input:disabled { background:var(--color-bg-subtle); cursor:not-allowed; opacity:.7; }

.form-checkbox { width:16px; height:16px; accent-color:var(--brand-primary); cursor:pointer; flex-shrink:0; }

.form-label { display:flex; align-items:center; justify-content:space-between; font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); margin-bottom:0; }
.form-label-link { font-size:var(--text-xs); color:var(--brand-primary); font-weight:500; text-decoration:none; margin-left:auto; }
.form-label-link:hover { text-decoration:underline; }
.form-label-required::after { content:' *'; color:var(--color-danger); }

/* has-prefix / has-suffix — input padding adjustments */
.input-group { position:relative; display:flex; width:100%; }
.input-group > .form-input,
.input-group > .form-control { width:100%; }

.input-prefix { position:absolute; left:0; top:0; bottom:0; display:flex; align-items:center; padding:0 var(--space-3); color:var(--color-text-tertiary); pointer-events:none; z-index:1; }
.input-prefix svg { width:16px; height:16px; }
.has-prefix { padding-left:38px !important; }
.has-suffix { padding-right:38px !important; }

.input-suffix-btn { position:absolute; right:0; top:0; bottom:0; display:flex; align-items:center; padding:0 var(--space-3); background:none; border:none; cursor:pointer; color:var(--color-text-tertiary); z-index:1; transition:color .15s; }
.input-suffix-btn:hover { color:var(--color-text-primary); }

/* password field */
.password-field { position:relative; }
.password-toggle { position:absolute; right:0; top:0; bottom:0; display:flex; align-items:center; padding:0 var(--space-3); background:none; border:none; cursor:pointer; color:var(--color-text-tertiary); z-index:1; }

/* form-control-sm / form-select-sm */
.form-control-sm { height:32px; padding:var(--space-1) var(--space-2); font-size:var(--text-xs); border-radius:var(--radius-sm); border:1px solid var(--color-border); background:var(--color-bg-surface); color:var(--color-text-primary); outline:none; }
.form-control-sm:focus { border-color:var(--brand-primary); box-shadow:0 0 0 2px var(--brand-primary-focus); }
.form-select-sm { height:32px; padding:var(--space-1) var(--space-2); padding-right:28px; font-size:var(--text-xs); border-radius:var(--radius-sm); border:1px solid var(--color-border); background:var(--color-bg-surface); color:var(--color-text-primary); outline:none; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%238B96A5'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 6px center; background-size:14px; cursor:pointer; }

/* form-grid */
.form-grid   { display:grid; gap:var(--space-4); }
.form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }

/* toggle switch */
.form-switch-track { display:inline-flex; align-items:center; width:40px; height:22px; border-radius:11px; background:var(--color-border); position:relative; cursor:pointer; transition:background .2s; flex-shrink:0; }
.form-switch-track::after { content:''; width:16px; height:16px; border-radius:50%; background:#fff; position:absolute; left:3px; top:3px; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
input:checked + .form-switch-track,
.form-switch-track.on { background:var(--brand-primary); }
input:checked + .form-switch-track::after,
.form-switch-track.on::after { transform:translateX(18px); }


.toggle { position:relative; display:inline-flex; align-items:center; cursor:pointer; }
.toggle-track { width:40px; height:22px; border-radius:11px; background:var(--color-border); position:relative; transition:background .2s; flex-shrink:0; }
.toggle-track::after { content:''; width:16px; height:16px; border-radius:50%; background:#fff; position:absolute; left:3px; top:3px; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.toggle input:checked ~ .toggle-track,
.toggle.on .toggle-track { background:var(--brand-primary); }
.toggle input:checked ~ .toggle-track::after,
.toggle.on .toggle-track::after { transform:translateX(18px); }

.form-switch input[type="checkbox"] {display: none;}
/* ============================================================
   4. AUTH PAGES (new class names not in pages.css)
   ============================================================ */

.auth-shell { display:flex; min-height:100vh; background:var(--color-bg-primary); }
.auth-panel { flex:0 0 480px; max-width:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:var(--space-10) var(--space-8); background:var(--color-bg-surface); border-right:1px solid var(--color-border); overflow-y:auto; }
.auth-card  { width:100%; max-width:380px; }

/* Centered auth (forgot/reset) */
.auth-shell.auth-shell-centered { align-items:center; justify-content:center; background:var(--color-bg-secondary); }
.auth-shell.auth-shell-centered .auth-visual { display:none; }
.auth-shell.auth-shell-centered .auth-panel  { flex:none; max-width:100%; background:transparent; border:none; padding:var(--space-8) var(--space-5); }
.auth-card-centered { width:100%; max-width:440px; background:var(--color-bg-surface); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); padding:var(--space-8); border:1px solid var(--color-border); }

/* Visual right panel */
.auth-visual { flex:1; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1E1C24 0%,#2D2840 60%,#1a1631 100%); padding:var(--space-12) var(--space-10); position:relative; overflow:hidden; }
.auth-visual::before { content:''; position:absolute; top:-120px; right:-120px; width:400px; height:400px; background:radial-gradient(circle,rgba(175,38,101,.18) 0%,transparent 70%); pointer-events:none; }
.auth-visual-content { position:relative; z-index:1; max-width:440px; color:#fff; }
.auth-visual-badge { display:inline-flex; align-items:center; gap:var(--space-2); background:rgba(175,38,101,.15); border:1px solid rgba(175,38,101,.30); color:#AF2665; padding:var(--space-1) var(--space-3); border-radius:20px; font-size:var(--text-xs); font-weight:600; margin-bottom:var(--space-5); }
.auth-visual-title { font-family:var(--font-display); font-size:36px; font-weight:800; color:#fff; line-height:1.15; letter-spacing:-.03em; margin-bottom:var(--space-4); }
.auth-visual-subtitle { font-size:var(--text-base); color:rgba(255,255,255,.65); line-height:1.65; margin-bottom:var(--space-8); }

.auth-features { display:flex; flex-direction:column; gap:var(--space-4); margin-bottom:var(--space-8); }
.auth-feature { display:flex; align-items:flex-start; gap:var(--space-3); }
.auth-feature-icon { width:32px; height:32px; border-radius:var(--radius-md); background:rgba(175,38,101,.18); border:1px solid rgba(175,38,101,.25); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#AF2665; }
.auth-feature-desc { font-size:var(--text-xs); color:rgba(255,255,255,.5); line-height:1.5; }

.auth-testimonial { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-lg); padding:var(--space-5); }
.auth-testimonial-text { font-size:var(--text-sm); color:rgba(255,255,255,.8); line-height:1.65; font-style:italic; margin-bottom:var(--space-4); }
.auth-testimonial-author { display:flex; align-items:center; gap:var(--space-3); }
.auth-testimonial-name { font-size:var(--text-sm); font-weight:600; color:#fff; }
.auth-testimonial-role { font-size:var(--text-xs); color:rgba(255,255,255,.5); margin-top:1px; }

.auth-sso { display:flex; flex-direction:column; gap:var(--space-2); margin-bottom:var(--space-4); }
.btn-sso { display:flex; align-items:center; justify-content:center; gap:var(--space-2); width:100%; padding:var(--space-3) var(--space-4); background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); font-size:var(--text-sm); font-weight:500; color:var(--color-text-primary); cursor:pointer; transition:var(--transition-fast); }
.btn-sso:hover { border-color:var(--color-border-hover); background:var(--color-bg-subtle); }

.auth-steps { display:flex; align-items:center; gap:0; margin-bottom:var(--space-6); }
.auth-step  { display:flex; align-items:center; gap:var(--space-2); }

@media (max-width:900px) {
  .auth-panel  { flex:1; max-width:100%; border-right:none; padding:var(--space-8) var(--space-5); }
  .auth-visual { display:none; }
}


/* ============================================================
   5. LOCK SCREEN
   ============================================================ */
.lock-shell { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1E1C24 0%,#2D2840 100%); padding:var(--space-6); position:relative; overflow:hidden; }
.lock-card  { width:100%; max-width:380px; background:var(--color-bg-surface); border-radius:var(--radius-2xl); box-shadow:0 24px 64px rgba(0,0,0,.4); padding:var(--space-8); position:relative; z-index:1; text-align:center; }
.lock-brand { display:flex; align-items:center; justify-content:center; gap:var(--space-2); margin-bottom:var(--space-6); }
.lock-brand-icon { width:32px; height:32px; border-radius:var(--radius-md); background:var(--brand-primary); display:flex; align-items:center; justify-content:center; }
.lock-brand-name { font-family:var(--font-display); font-size:18px; font-weight:800; color:var(--color-text-primary); letter-spacing:-.02em; }
.lock-brand-name span { color:var(--brand-primary); }
.lock-avatar-wrap { position:relative; display:inline-block; margin-bottom:var(--space-4); }
.lock-avatar { width:72px; height:72px; border-radius:50%; background:var(--brand-primary-muted); color:var(--brand-primary); font-family:var(--font-display); font-size:26px; font-weight:800; display:flex; align-items:center; justify-content:center; border:3px solid var(--color-bg-surface); box-shadow:0 4px 12px rgba(175,38,101,.20); }
.lock-badge { position:absolute; bottom:0; right:-4px; width:20px; height:20px; background:var(--color-success); border-radius:50%; border:2px solid var(--color-bg-surface); display:flex; align-items:center; justify-content:center; }
.lock-name  { font-family:var(--font-display); font-size:var(--text-xl); font-weight:700; color:var(--color-text-primary); margin-bottom:var(--space-1); }
.lock-email { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-bottom:var(--space-5); }
.lock-time  { font-family:var(--font-display); font-size:40px; font-weight:800; color:var(--color-text-primary); letter-spacing:-.04em; line-height:1; margin-bottom:2px; }
.lock-date-str { font-size:var(--text-sm); color:var(--color-text-tertiary); margin-bottom:var(--space-5); }
.lock-divider  { height:1px; background:var(--color-border); margin:var(--space-5) 0; }
.lock-hint     { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:var(--space-3); }
.lock-switch-link { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:var(--space-4); display:block; }
.lock-switch-link a { color:var(--brand-primary); font-weight:500; }
.lock-actions { display:flex; flex-direction:column; gap:var(--space-2); margin-top:var(--space-4); }
.lock-role-badge { display:inline-block; margin-bottom:var(--space-2); }


/* ============================================================
   6. TOPBAR CLASSES (missing from layout.css)
   ============================================================ */
.topbar-breadcrumb { display:flex; align-items:center; gap:var(--space-2); font-size:var(--text-sm); color:var(--color-text-tertiary); }
.topbar-breadcrumb a { color:var(--color-text-tertiary); text-decoration:none; }
.topbar-breadcrumb a:hover { color:var(--color-text-primary); }
.topbar-breadcrumb span { color:var(--color-text-primary); font-weight:500; }
.topbar-breadcrumb svg { width:12px; height:12px; opacity:.4; flex-shrink:0; }

.topbar-search { display:flex; align-items:center; gap:var(--space-2); background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:0 var(--space-3); height:36px; min-width:200px; transition:border-color .15s; }
.topbar-search:focus-within { border-color:var(--brand-primary); background:var(--color-bg-surface); }
.topbar-search input { border:none; background:none; outline:none; font-size:var(--text-sm); color:var(--color-text-primary); width:100%; }
.topbar-search input::placeholder { color:var(--color-text-tertiary); }

.topbar-icon-btn { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border:none; background:none; color:var(--color-text-secondary); border-radius:var(--radius-md); cursor:pointer; transition:var(--transition-fast); }
.topbar-icon-btn:hover { background:var(--color-bg-subtle); color:var(--color-text-primary); }

.topbar-user { display:flex; align-items:center; gap:var(--space-2); cursor:pointer; padding:var(--space-1) var(--space-2); border-radius:var(--radius-md); transition:var(--transition-fast); }
.topbar-user:hover { background:var(--color-bg-subtle); }
.topbar-user-name { font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); }

.topbar-actions { display:flex; align-items:center; gap:var(--space-2); }
.topbar-notif-dot { position:absolute; top:4px; right:4px; width:8px; height:8px; border-radius:50%; background:var(--color-danger); border:2px solid var(--color-bg-surface); }
.topbar-btn-badge { position:absolute; top:2px; right:2px; min-width:16px; height:16px; border-radius:8px; background:var(--color-danger); color:#fff; font-size:9px; font-weight:700; display:flex; align-items:center; justify-content:center; padding:0 3px; border:2px solid var(--color-bg-surface); }

.notif-dot { position:absolute; top:4px; right:4px; width:8px; height:8px; border-radius:50%; background:var(--color-danger); border:2px solid var(--color-bg-surface); }


/* ============================================================
   7. SIDEBAR EXTRAS
   ============================================================ */
.sidebar-nav-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--brand-primary-muted); color:var(--brand-primary); font-size:10px; font-weight:700; margin-left:auto; flex-shrink:0; }
.sidebar-collapse-btn { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-bg-surface); cursor:pointer; color:var(--color-text-tertiary); transition:var(--transition-fast); }
.sidebar-collapse-btn:hover { color:var(--color-text-primary); border-color:var(--color-border-hover); }


/* ============================================================
   8. TABS (new class names not in components.css)
   ============================================================ */
.tabs-line { display:flex; flex-direction:row; align-items:center; gap:0; border-bottom:2px solid var(--color-border); }
.tab-item  { padding:var(--space-2) var(--space-4); font-size:var(--text-sm); font-weight:500; color:var(--color-text-tertiary); border:none; background:none; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .15s,border-color .15s; white-space:nowrap; }
.tab-item:hover  { color:var(--color-text-secondary); }
.tab-item.active { color:var(--brand-primary); border-bottom-color:var(--brand-primary); font-weight:600; }
.tab-panel { animation:fade-in .18s ease; }

.device-tabs { display:flex; border-bottom:2px solid var(--color-border); gap:0; }
.device-tab  { padding:var(--space-2) var(--space-4); font-size:var(--text-sm); font-weight:500; color:var(--color-text-tertiary); border:none; background:none; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .15s,border-color .15s; }
.device-tab:hover  { color:var(--color-text-secondary); }
.device-tab.active { color:var(--brand-primary); border-bottom-color:var(--brand-primary); font-weight:600; }
.device-tab-pane        { display:none; }
.device-tab-pane.active { display:block; }


/* ============================================================
   9. STAT / KPI
   ============================================================ */
.stat-icon { width:40px; height:40px; border-radius:var(--radius-lg); background:var(--brand-primary-muted); color:var(--brand-primary); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.stat-icon svg { width:20px; height:20px; }
.stat-icon.stat-icon-success { background:var(--color-success-bg); color:var(--color-success); }
.stat-icon.stat-icon-warning { background:var(--color-warning-bg); color:var(--color-warning); }
.stat-icon.stat-icon-danger  { background:var(--color-danger-bg);  color:var(--color-danger); }
.stat-icon.stat-icon-info    { background:var(--color-info-bg);    color:var(--color-info); }
.stat-icon.stat-icon-purple  { background:#EDE9FE; color:#7C3AED; }
.stat-value  { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.03em; line-height:1; }
.stat-label  { font-size:var(--text-sm); color:var(--color-text-secondary); margin-top:var(--space-1); }
.stat-delta  { display:inline-flex; align-items:center; gap:3px; font-size:var(--text-xs); font-weight:600; margin-top:var(--space-1); }
.delta-up    { color:var(--color-success); }
.delta-down  { color:var(--color-danger); }
.kpi-trend   { display:inline-flex; align-items:center; gap:3px; font-size:var(--text-xs); font-weight:600; margin-top:var(--space-1); }

.kpi-card    { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-xl); padding:var(--space-4) var(--space-5); }
.kpi-value   { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.03em; line-height:1; }
.kpi-label   { font-size:var(--text-xs); color:var(--color-text-tertiary); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.kpi-delta   { display:inline-flex; align-items:center; gap:3px; font-size:var(--text-xs); font-weight:700; padding:2px 7px; border-radius:20px; }
.kpi-delta.up   { background:var(--color-success-bg); color:var(--color-success); }
.kpi-delta.down { background:var(--color-danger-bg);  color:var(--color-danger); }


/* ============================================================
   10. DEVICE PAGE COMPONENTS
   ============================================================ */
.device-monitoring-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:var(--space-4); }
.incident-list  { display:flex; flex-direction:column; gap:0; }
.incident-item  { display:flex; align-items:flex-start; gap:var(--space-3); padding:var(--space-3) var(--space-5); border-bottom:1px solid var(--color-border); font-size:var(--text-sm); transition:var(--transition-fast); }
.incident-item:last-child { border-bottom:none; }
.incident-item:hover { background:var(--color-bg-subtle); }

.device-hero       { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-xl); padding:var(--space-6); display:flex; align-items:flex-start; gap:var(--space-5); margin-bottom:var(--space-6); flex-wrap:wrap; }
.device-hero-icon  { width:60px; height:60px; border-radius:var(--radius-xl); background:var(--brand-primary-muted); color:var(--brand-primary); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:26px; }
.device-hero-info  { flex:1; min-width:0; }
.device-hero-name  { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.02em; margin-bottom:var(--space-2); }
.device-hero-meta  { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; font-size:var(--text-sm); color:var(--color-text-tertiary); }
.device-hero-actions { display:flex; align-items:center; gap:var(--space-2); flex-shrink:0; }
.device-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:var(--space-4); margin-bottom:var(--space-6); }
.device-stat-card { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); }
.device-stat-icon { width:32px; height:32px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; margin-bottom:var(--space-3); font-size:14px; background:var(--color-bg-subtle); color:var(--color-text-secondary); }
.device-stat-value { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.03em; line-height:1; }
.device-stat-label { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:3px; text-transform:uppercase; letter-spacing:.05em; }
.detail-row  { display:flex; align-items:flex-start; padding:var(--space-2) 0; border-bottom:1px solid var(--color-border); gap:var(--space-4); font-size:var(--text-sm); }
.detail-row:last-child { border-bottom:none; }
.detail-key  { width:160px; flex-shrink:0; color:var(--color-text-tertiary); font-weight:500; }
.detail-val  { flex:1; color:var(--color-text-primary); font-weight:500; }
.spec-chip   { display:inline-flex; align-items:center; gap:4px; background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:2px 8px; font-size:var(--text-xs); font-family:var(--font-mono); color:var(--color-text-secondary); }


/* ============================================================
   11. MEDIA LIBRARY
   ============================================================ */
.media-check { position:absolute; top:var(--space-2); left:var(--space-2); width:20px; height:20px; border-radius:var(--radius-sm); border:2px solid rgba(255,255,255,.6); background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--transition-fast); z-index:2; }
.media-check:hover, .media-check.checked { background:var(--brand-primary); border-color:var(--brand-primary); }
.view-toggle     { display:flex; border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden; }
.view-toggle-btn { padding:var(--space-2) var(--space-3); background:none; border:none; cursor:pointer; color:var(--color-text-tertiary); transition:var(--transition-fast); border-right:1px solid var(--color-border); display:flex; align-items:center; justify-content:center; }
.view-toggle-btn:last-child { border-right:none; }
.view-toggle-btn:hover  { background:var(--color-bg-subtle); color:var(--color-text-primary); }
.view-toggle-btn.active { background:var(--brand-primary-muted); color:var(--brand-primary); }
.view-toggle-btn svg { width:14px; height:14px; }


/* ============================================================
   12. BULK ACTIONS / SEARCH
   ============================================================ */
.bulk-actions-bar { display:none; align-items:center; gap:var(--space-3); padding:var(--space-3) var(--space-5); background:var(--brand-primary-muted); border-bottom:1px solid rgba(175,38,101,.20); font-size:var(--text-sm); animation:fade-in .15s ease; }
.bulk-actions-bar.visible { display:flex; }
.search-bar   { display:flex; align-items:center; gap:var(--space-2); background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:0 var(--space-3); height:36px; min-width:220px; }
.search-bar:focus-within { border-color:var(--brand-primary); }
.search-bar input { border:none; background:none; outline:none; font-size:var(--text-sm); color:var(--color-text-primary); width:100%; }
.search-bar input::placeholder { color:var(--color-text-tertiary); }
.search-box { display:flex; align-items:center; gap:var(--space-2); background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:0 var(--space-3); height:36px; transition:border-color .15s; }
.search-box:focus-within { border-color:var(--brand-primary); background:var(--color-bg-surface); }
.search-input { border:none; background:none; outline:none; font-size:var(--text-sm); color:var(--color-text-primary); width:100%; min-width:160px; }
.search-input::placeholder { color:var(--color-text-tertiary); }


/* ============================================================
   13. PAGINATION (new class names)
   ============================================================ */
.pagination-controls { display:flex; align-items:center; gap:var(--space-1); }
.pagination-ellipsis { padding:0 var(--space-2); color:var(--color-text-tertiary); font-size:var(--text-sm); }
.pagination-info { font-size:var(--text-sm); color:var(--color-text-tertiary); }


/* ============================================================
   14. SETTINGS PAGE
   ============================================================ */
.settings-layout { display:grid; grid-template-columns:220px 1fr; gap:var(--space-5); }
.settings-nav    { display:flex; flex-direction:column; gap:2px; }
.settings-nav-item { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-2) var(--space-3); border-radius:var(--radius-lg); font-size:13px; font-weight:500; color:var(--color-text-secondary); cursor:pointer; transition:background var(--transition-fast),color var(--transition-fast); text-decoration:none; border:none; background:none; width:100%; text-align:left; }
.settings-nav-item:hover  { background:var(--color-bg-subtle); color:var(--color-text-primary); }
.settings-nav-item.active { background:var(--brand-primary-muted); color:var(--brand-primary); font-weight:600; }
.settings-nav-item svg { flex-shrink:0; }
.settings-nav-section { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-tertiary); padding:var(--space-3) var(--space-3) var(--space-1); margin-top:var(--space-2); }
.settings-panel { display:none; }
.settings-panel.is-active { display:block; }
.settings-section { margin-bottom:var(--space-6); }
.settings-section-title { font-size:14px; font-weight:700; margin-bottom:var(--space-1); color:var(--color-text-primary); }
.settings-section-desc  { font-size:13px; color:var(--color-text-secondary); margin-bottom:var(--space-4); line-height:1.6; }
.setting-row { display:flex; align-items:center; justify-content:space-between; padding:var(--space-4) 0; border-bottom:1px solid var(--color-border); gap:var(--space-4); }
.setting-row:last-child { border-bottom:none; }
.setting-label-title { font-size:14px; font-weight:600; margin-bottom:3px; color:var(--color-text-primary); }
.setting-label-desc  { font-size:12px; color:var(--color-text-tertiary); line-height:1.5; }
.setting-control { flex-shrink:0; }
.api-key-row { display:flex; align-items:center; gap:var(--space-2); }
.api-key-input { font-family:var(--font-mono); font-size:12px; background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:6px 12px; flex:1; color:var(--color-text-secondary); }
.plan-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:var(--radius-full); font-size:12px; font-weight:700; background:#EDE9FE; color:#7C3AED; }
.danger-zone { background:var(--color-danger-bg); border:1px solid rgba(239,68,68,.2); border-radius:var(--radius-xl); padding:var(--space-5); }
.danger-zone-title { font-size:14px; font-weight:700; color:var(--color-danger); margin-bottom:var(--space-1); }
.danger-zone-desc  { font-size:13px; color:var(--color-text-secondary); margin-bottom:var(--space-4); }
.webhook-row { background:var(--color-bg-subtle); border-radius:var(--radius-lg); padding:var(--space-3) var(--space-4); margin-bottom:var(--space-2); display:flex; align-items:center; gap:var(--space-3); }
.webhook-url { font-family:var(--font-mono); font-size:12px; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notification-channel { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-3) var(--space-4); background:var(--color-bg-subtle); border-radius:var(--radius-lg); margin-bottom:var(--space-2); }
@media (max-width:768px) { .settings-layout { grid-template-columns:1fr; } }


/* ============================================================
   15. AUDIT LOGS
   ============================================================ */
.log-filter { padding:var(--space-1) var(--space-3); background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:20px; font-size:var(--text-xs); font-weight:500; color:var(--color-text-secondary); cursor:pointer; transition:var(--transition-fast); }
.log-filter:hover  { border-color:var(--color-border-hover); color:var(--color-text-primary); }
.log-filter.active { background:var(--brand-primary-muted); border-color:var(--brand-primary); color:var(--brand-primary); }
.audit-filters { display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; margin-bottom:var(--space-4); }
.audit-stats  { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:var(--space-4); margin-bottom:var(--space-6); }
.audit-stat-card  { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); display:flex; align-items:flex-start; gap:var(--space-3); }
.audit-stat-icon  { width:36px; height:36px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:15px; }
.audit-stat-value { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.03em; line-height:1; }
.audit-stat-label { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:2px; }
.log-action      { font-size:var(--text-sm); color:var(--color-text-secondary); }
.log-actor-name  { font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); }
.log-actor-role  { font-size:var(--text-xs); color:var(--color-text-tertiary); }
.log-event-type  { font-size:var(--text-xs); font-weight:700; }
.log-pagination  { display:flex; align-items:center; justify-content:space-between; padding:var(--space-3) var(--space-5); border-top:1px solid var(--color-border); font-size:var(--text-sm); color:var(--color-text-tertiary); background:var(--color-bg-subtle); }
.filter-group    { display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; }
.page-info       { font-size:var(--text-sm); color:var(--color-text-tertiary); }


/* ============================================================
   16. ORGANIZATIONS
   ============================================================ */
.org-list-row    { display:flex; align-items:center; gap:var(--space-4); padding:var(--space-3) var(--space-5); border-bottom:1px solid var(--color-border); transition:var(--transition-fast); }
.org-list-row:hover { background:var(--color-bg-subtle); }
.org-list-header { display:flex; align-items:center; gap:var(--space-4); padding:var(--space-2) var(--space-5); font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--color-text-tertiary); background:var(--color-bg-subtle); border-bottom:1px solid var(--color-border); }
.org-list-org    { display:flex; align-items:center; gap:var(--space-3); min-width:0; }
.org-logo-sm     { width:36px; height:36px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; flex-shrink:0; color:#fff; }
.logo-blue  { background:#3B82F6; } .logo-green  { background:#10B981; }
.logo-purple{ background:#7C3AED; } .logo-pink   { background:#EC4899; }
.logo-teal  { background:#14B8A6; }
.org-domain  { font-size:var(--text-xs); color:var(--color-text-tertiary); font-family:var(--font-mono); }
.health-bar  { width:80px; height:4px; background:var(--color-border); border-radius:2px; overflow:hidden; }
.health-bar-fill { height:100%; border-radius:2px; background:var(--color-success); transition:width .3s ease; }
.notif-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; border-radius:9px; background:var(--color-danger); color:#fff; font-size:10px; font-weight:700; padding:0 5px; }
.plan-starter    { background:var(--color-bg-subtle);  color:var(--color-text-secondary); }
.plan-business   { background:var(--brand-primary-muted); color:var(--brand-primary); }
.plan-enterprise { background:#EDE9FE; color:#7C3AED; }
.plan-trial      { background:#FEF3C7; color:#D97706; }
.form-label-required::after { content:' *'; color:var(--color-danger); }


/* ============================================================
   17. ROLES / PERMISSIONS MATRIX
   Card presentation is owned by pages.css. Shared matrix rules remain here.
   ============================================================ */
.perm-matrix  { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-xl); overflow:hidden; }
.perm-matrix-toolbar { display:flex; align-items:center; justify-content:space-between; padding:var(--space-4) var(--space-5); border-bottom:1px solid var(--color-border); flex-wrap:wrap; gap:var(--space-3); }
.perm-matrix-title { font-weight:700; font-size:var(--text-base); color:var(--color-text-primary); }
.perm-table-wrap { overflow-x:auto; }
.perm-table { width:100%; border-collapse:collapse; min-width:700px; }
.perm-table thead th { padding:var(--space-3) var(--space-4); font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--color-text-tertiary); background:var(--color-bg-subtle); text-align:center; white-space:nowrap; }
.perm-table thead th:first-child { text-align:left; min-width:220px; position:sticky; left:0; background:var(--color-bg-subtle); z-index:2; }
.perm-table tbody tr { border-bottom:1px solid var(--color-border); }
.perm-table tbody tr:last-child { border-bottom:none; }
.perm-table tbody tr:hover { background:var(--color-bg-subtle); }
.perm-table tbody td { padding:var(--space-3) var(--space-4); text-align:center; vertical-align:middle; }
.perm-table tbody td:first-child { text-align:left; position:sticky; left:0; background:var(--color-bg-surface); z-index:1; }
.perm-table tbody tr:hover td:first-child { background:var(--color-bg-subtle); }
.perm-section-header td { background:var(--color-bg-subtle) !important; font-weight:700; font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-tertiary); padding:var(--space-2) var(--space-4) !important; }
.perm-label { font-size:var(--text-sm); font-weight:500; color:var(--color-text-primary); }
.perm-label small { display:block; font-size:var(--text-xs); color:var(--color-text-tertiary); font-weight:400; }
.perm-check { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; }
.perm-check.yes { background:rgba(16,185,129,.12); color:#059669; }
.perm-check.no  { background:var(--color-bg-subtle); color:var(--color-text-tertiary); }
.perm-role-header { display:flex; flex-direction:column; align-items:center; gap:4px; }
.legend { display:flex; gap:var(--space-4); flex-wrap:wrap; }
.legend-item { display:flex; align-items:center; gap:var(--space-2); font-size:var(--text-xs); color:var(--color-text-secondary); }
.legend-dot  { width:10px; height:10px; border-radius:50%; flex-shrink:0; }


/* ============================================================
   18. LAYOUT EDITOR (playlists/layouts.html)
   ============================================================ */
.layouts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:var(--space-4); }
.layout-card  { background:var(--color-bg-surface); border:2px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; transition:var(--transition-fast); }
.layout-card:hover    { border-color:var(--color-border-hover); box-shadow:var(--shadow-sm); }
.layout-card.is-selected { border-color:var(--brand-primary); box-shadow:0 0 0 3px var(--brand-primary-muted); }
.layout-preview { aspect-ratio:16/9; background:#111; position:relative; overflow:hidden; }
.layout-screen  { position:absolute; inset:8px; background:#1a1a2e; border-radius:3px; overflow:hidden; }
.layout-name { font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); }
.layout-desc { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:2px; }
.layout-meta { display:flex; align-items:center; gap:var(--space-2); font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:var(--space-2); }
.layout-footer { padding:var(--space-3); border-top:1px solid var(--color-border); background:var(--color-bg-subtle); display:flex; align-items:center; justify-content:space-between; }
.layout-badge { display:inline-flex; align-items:center; padding:1px 7px; border-radius:20px; font-size:10px; font-weight:700; background:var(--color-bg-subtle); color:var(--color-text-secondary); border:1px solid var(--color-border); }
.is-selected  { border-color:var(--brand-primary) !important; }

/* Zone layout classes */
.lz { position:absolute; border-radius:2px; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:700; color:rgba(255,255,255,.7); overflow:hidden; }
.lz-main   { background:rgba(175,38,101,.50); }
.lz-side   { background:rgba(59,130,246,.5); }
.lz-ticker { background:rgba(16,185,129,.5); }
.lz-corner { background:rgba(124,58,237,.5); }
.ls-fullscreen .lz-main { inset:0; }
.ls-sidepanel .lz-main  { top:0; left:0; right:30%; bottom:0; }
.ls-sidepanel .lz-side  { top:0; left:70%; right:0; bottom:0; }
.ls-quad .lz:nth-child(1){ top:0;left:0;width:50%;height:50%; }
.ls-quad .lz:nth-child(2){ top:0;left:50%;width:50%;height:50%; }
.ls-quad .lz:nth-child(3){ top:50%;left:0;width:50%;height:50%; }
.ls-quad .lz:nth-child(4){ top:50%;left:50%;width:50%;height:50%; }
.ls-ticker .lz-main   { top:0;left:0;right:0;height:88%; }
.ls-ticker .lz-ticker { bottom:0;left:0;right:0;height:12%; }
.ls-pip .lz-main      { inset:0; }
.ls-pip .lz-corner    { bottom:8px;right:8px;width:30%;height:28%; border-radius:3px; }

/* Editor panels */
.editor-canvas-wrap { position:relative; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; background:#0f0f0f; }
.editor-canvas { display:block; width:100%; aspect-ratio:16/9; background:#111; position:relative; }
.editor-zone   { position:absolute; border:2px solid rgba(175,38,101,.70); background:rgba(175,38,101,.08); cursor:move; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:11px; color:rgba(255,255,255,.8); font-weight:600; transition:border-color .15s; }
.editor-zone:hover, .editor-zone.selected { border-color:var(--brand-primary); background:rgba(175,38,101,.18); }
.editor-sidebar { width:260px; flex-shrink:0; border-left:1px solid var(--color-border); background:var(--color-bg-surface); display:flex; flex-direction:column; }
.editor-sidebar-tabs { display:flex; border-bottom:1px solid var(--color-border); }
.editor-stab  { flex:1; padding:var(--space-2) var(--space-3); font-size:var(--text-xs); font-weight:600; text-align:center; cursor:pointer; color:var(--color-text-tertiary); background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-1px; transition:var(--transition-fast); }
.editor-stab:hover  { color:var(--color-text-secondary); }
.editor-stab.active { color:var(--brand-primary); border-bottom-color:var(--brand-primary); }
.editor-props { flex:1; overflow-y:auto; padding:var(--space-4); }
.editor-prop-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-disabled); margin-bottom:var(--space-2); }
.editor-prop-row { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-2); font-size:var(--text-sm); }
.editor-input-mini { width:72px; padding:var(--space-1) var(--space-2); border:1px solid var(--color-border); border-radius:var(--radius-sm); font-size:var(--text-xs); text-align:center; background:var(--color-bg-subtle); color:var(--color-text-primary); outline:none; }
.editor-input-mini:focus { border-color:var(--brand-primary); }
.editor-toolbar { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-3); border-bottom:1px solid var(--color-border); background:var(--color-bg-subtle); }
.editor-toolbar-title { font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); flex:1; }
.editor-panel { display:flex; flex:1; overflow:hidden; }
.editor-stage { flex:1; padding:var(--space-5); background:var(--color-bg-secondary); display:flex; flex-direction:column; gap:var(--space-4); overflow:auto; }
.zones-list { display:flex; flex-direction:column; gap:var(--space-2); padding:var(--space-3); }
.zone-list-item { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-3); border-radius:var(--radius-md); background:var(--color-bg-subtle); border:1px solid var(--color-border); font-size:var(--text-sm); cursor:pointer; transition:var(--transition-fast); }
.zone-list-item:hover, .zone-list-item.selected { border-color:var(--brand-primary); background:var(--brand-primary-muted); }
.zone-list-dot  { width:10px; height:10px; border-radius:2px; flex-shrink:0; }
.zone-list-name { flex:1; font-weight:500; color:var(--color-text-primary); }
.zone-list-btn  { width:24px; height:24px; border:none; background:none; cursor:pointer; color:var(--color-text-tertiary); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; transition:var(--transition-fast); font-size:12px; }
.zone-list-btn:hover { background:var(--color-border); color:var(--color-text-primary); }
.zone-chip      { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:20px; background:var(--color-bg-subtle); border:1px solid var(--color-border); font-size:11px; font-weight:500; color:var(--color-text-secondary); }
.zone-chip-dot  { width:8px; height:8px; border-radius:50%; background:var(--brand-primary); flex-shrink:0; }
.res-pills { display:flex; gap:var(--space-2); flex-wrap:wrap; margin-bottom:var(--space-4); }
.res-pill  { padding:3px 10px; border-radius:20px; border:1px solid var(--color-border); font-size:var(--text-xs); font-weight:500; color:var(--color-text-secondary); background:var(--color-bg-subtle); cursor:pointer; transition:var(--transition-fast); }
.res-pill:hover  { border-color:var(--brand-primary); color:var(--brand-primary); }
.res-pill.active { background:var(--brand-primary-muted); border-color:var(--brand-primary); color:var(--brand-primary); font-weight:600; }


/* ============================================================
   19. CALENDAR (fixes wrong token names in inline style)
   The inline style uses --bg-primary, --border-primary etc.
   The :root aliases above handle those.
   Additional calendar-specific corrections:
   ============================================================ */
.calendar-wrap { background:var(--color-bg-surface); border:1px solid var(--color-border); border-radius:var(--radius-xl); overflow:hidden; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.cal-day-header { padding:var(--space-2) var(--space-3); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--color-text-tertiary); text-align:center; border-bottom:1px solid var(--color-border); background:var(--color-bg-subtle); }
.cal-day { min-height:110px; padding:var(--space-2); border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); position:relative; vertical-align:top; transition:background .15s; cursor:pointer; }
.cal-day:hover { background:var(--color-bg-subtle); }
.cal-day:nth-child(7n){ border-right:none; }
.cal-day.other-month  { opacity:.45; }
.cal-day.today        { background:rgba(175,38,101,.04); }
.cal-day-num { font-size:.8rem; font-weight:700; color:var(--color-text-secondary); margin-bottom:var(--space-1); display:inline-flex; width:24px; height:24px; align-items:center; justify-content:center; border-radius:50%; }
.cal-day.today .cal-day-num { background:var(--brand-primary); color:#fff; }
.cal-event { display:block; padding:2px 6px; border-radius:var(--radius-sm); font-size:.7rem; font-weight:600; margin-bottom:2px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:opacity .15s; }
.cal-event:hover { opacity:.8; }
.cal-event.ev-primary { background:rgba(175,38,101,.15); color:var(--brand-primary); border-left:3px solid var(--brand-primary); }
.cal-event.ev-success { background:rgba(16,185,129,.15); color:var(--color-success); border-left:3px solid var(--color-success); }
.cal-event.ev-purple  { background:rgba(139,92,246,.15); color:#8b5cf6; border-left:3px solid #8b5cf6; }
.cal-event.ev-blue    { background:rgba(59,130,246,.15); color:#3b82f6; border-left:3px solid #3b82f6; }
.cal-event.ev-warning { background:rgba(234,179,8,.15); color:var(--color-warning); border-left:3px solid var(--color-warning); }
.cal-more { font-size:.65rem; color:var(--color-text-tertiary); font-weight:600; cursor:pointer; padding:1px 4px; }
.cal-more:hover { color:var(--brand-primary); }
.cal-nav-btn { width:32px; height:32px; border-radius:var(--radius-md); border:1px solid var(--color-border); background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--color-text-secondary); transition:all .15s; }
.cal-nav-btn:hover { background:var(--color-bg-subtle); color:var(--color-text-primary); }
.cal-view-tab { padding:5px 12px; font-size:.8rem; font-weight:600; border-radius:var(--radius-md); cursor:pointer; border:none; background:none; color:var(--color-text-secondary); transition:all .15s; }
.cal-view-tab.active { background:var(--color-bg-surface); color:var(--color-text-primary); box-shadow:var(--shadow-sm); }
.upcoming-item { display:flex; gap:var(--space-3); padding:var(--space-3) 0; border-bottom:1px solid var(--color-border); }
.upcoming-item:last-child { border-bottom:none; }
.upcoming-date-col { text-align:center; min-width:40px; }
.upcoming-day   { font-size:1.4rem; font-weight:900; font-family:var(--font-mono); color:var(--color-text-primary); line-height:1; }
.upcoming-month { font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-tertiary); font-weight:700; }
.upcoming-name  { font-size:.85rem; font-weight:700; color:var(--color-text-primary); margin-bottom:2px; }
.upcoming-meta  { font-size:.72rem; color:var(--color-text-tertiary); }
.upcoming-dot   { width:10px; height:10px; border-radius:50%; flex-shrink:0; margin-top:5px; }


/* ============================================================
   20. UI KIT SPECIFIC
   ============================================================ */
.uikit-body    { display:flex; min-height:100vh; }
.uikit-nav     { width:220px; flex-shrink:0; border-right:1px solid var(--color-border); background:var(--color-bg-surface); padding:var(--space-5) 0; position:sticky; top:0; height:100vh; overflow-y:auto; }
.uikit-nav-label { padding:var(--space-2) var(--space-4); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-disabled); }
.uikit-nav-link  { display:block; padding:var(--space-2) var(--space-4); font-size:var(--text-sm); color:var(--color-text-secondary); text-decoration:none; transition:var(--transition-fast); border-left:2px solid transparent; }
.uikit-nav-link:hover  { color:var(--color-text-primary); background:var(--color-bg-subtle); }
.uikit-nav-link.active { color:var(--brand-primary); background:var(--brand-primary-muted); border-left-color:var(--brand-primary); font-weight:600; }
.uikit-content { flex:1; overflow-y:auto; padding:var(--space-8); }
.uikit-section { margin-bottom:var(--space-12); padding-bottom:var(--space-12); border-bottom:1px solid var(--color-border); }
.uikit-section:last-child { border-bottom:none; }
.uikit-section-title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:800; color:var(--color-text-primary); letter-spacing:-.02em; margin-bottom:var(--space-2); }
.uikit-section-desc  { font-size:var(--text-sm); color:var(--color-text-secondary); margin-bottom:var(--space-6); line-height:1.6; }
.demo-block   { background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; margin-bottom:var(--space-4); }
.demo-preview { padding:var(--space-8); background:var(--color-bg-primary); display:flex; align-items:flex-start; flex-wrap:wrap; gap:var(--space-3); }
.demo-label   { padding:var(--space-2) var(--space-4); background:var(--color-bg-subtle); border-top:1px solid var(--color-border); font-size:var(--text-xs); color:var(--color-text-tertiary); font-family:var(--font-mono); }
.variant-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:var(--space-3); }
.acc-body { padding:0 var(--space-4) var(--space-4); font-size:var(--text-sm); color:var(--color-text-secondary); line-height:1.65; border-top:1px solid var(--color-border); padding-top:var(--space-3); }
.skeleton-line { height:14px; border-radius:var(--radius-sm); background:linear-gradient(90deg,var(--color-bg-subtle) 25%,var(--color-border) 50%,var(--color-bg-subtle) 75%); background-size:200% 100%; animation:skeleton-shimmer 1.5s infinite; margin-bottom:var(--space-2); }
@keyframes skeleton-shimmer { from{background-position:200% 0} to{background-position:-200% 0} }
.tooltip-wrap { position:relative; display:inline-flex; align-items:center; }
.tooltip-box  { position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%); background:#1E1C24; color:#fff; font-size:11px; font-weight:500; padding:4px 10px; border-radius:var(--radius-sm); white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .15s; z-index:100; }
.tooltip-wrap:hover .tooltip-box { opacity:1; }
.tl-item { display:flex; gap:var(--space-3); position:relative; }
.tl-dot-wrap { display:flex; flex-direction:column; align-items:center; flex-shrink:0; }
.tl-dot  { width:12px; height:12px; border-radius:50%; background:var(--brand-primary); border:2px solid var(--color-bg-surface); box-shadow:0 0 0 2px var(--brand-primary-muted); flex-shrink:0; margin-top:3px; }
.tl-line { width:2px; flex:1; background:var(--color-border); margin-top:4px; min-height:20px; }
.tl-body { flex:1; padding-bottom:var(--space-5); }
.tl-title { font-size:var(--text-sm); font-weight:600; color:var(--color-text-primary); margin-bottom:2px; }
.tl-desc  { font-size:var(--text-xs); color:var(--color-text-secondary); line-height:1.5; }
.tl-time  { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:3px; }
.timeline-meta { font-size:var(--text-xs); color:var(--color-text-tertiary); margin-top:3px; }
.stepper-wrap { display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-6); }
.step-dot  { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; background:var(--color-bg-subtle); color:var(--color-text-tertiary); border:2px solid var(--color-border); transition:var(--transition-fast); }
.step-dot.active { background:var(--brand-primary); color:#fff; border-color:var(--brand-primary); }
.step-dot.done   { background:var(--color-success); color:#fff; border-color:var(--color-success); }
.step-line { flex:1; height:2px; background:var(--color-border); border-radius:1px; }
.step-line.done { background:var(--color-success); }


/* ============================================================
   21. MISC / SHARED
   ============================================================ */
.status-dot { display:inline-block; width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.status-dot-online  { background:var(--color-success); box-shadow:0 0 0 2px rgba(16,185,129,.15); }
.status-dot-offline { background:var(--color-danger);  box-shadow:0 0 0 2px rgba(239,68,68,.15); }
.status-dot-idle    { background:var(--color-warning); box-shadow:0 0 0 2px rgba(245,158,11,.15); }
.badge-secondary    { background:var(--color-bg-subtle); color:var(--color-text-secondary); border:1px solid var(--color-border); }
.badge-xs           { padding:1px 5px; font-size:9px; border-radius:4px; }
.btn-warning        { background:var(--color-warning); color:#fff; border:none; }
.btn-warning:hover  { background:#d97706; }
.btn-spinner        { display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:spin .65s linear infinite; flex-shrink:0; }
.main-wrapper { display:flex; flex:1; min-height:0; overflow:hidden; }
.main-content { flex:1; overflow-y:auto; padding:var(--space-6) var(--space-8); }
.page-header-content { display:block; min-width:0; flex:1; }
.page-actions { display:flex; align-items:center; gap:var(--space-2); }
.section-desc { font-size:var(--text-sm); color:var(--color-text-secondary); margin-bottom:var(--space-4); line-height:1.6; }
.responsive-note { display:none; font-size:var(--text-xs); color:var(--color-text-tertiary); background:var(--color-bg-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); margin-bottom:var(--space-4); }
@media(max-width:768px){ .responsive-note{ display:block; } .form-grid-2{ grid-template-columns:1fr; } .main-content{ padding:var(--space-4); } }
.hide-mobile { }
@media(max-width:768px){ .hide-mobile{ display:none !important; } }
@keyframes sf-fade-in { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
.sf-fade-in { animation:sf-fade-in .2s ease forwards; }
.bronze { color:#CD7F32; } .silver { color:#A8A9AD; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:992px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }


/* ============================================================
   TOPBAR SVG SIZE FIXES — prevents giant search icons
   ============================================================ */

/* Constrain ALL SVGs inside topbar to reasonable sizes */
.topbar svg,
.topbar-search svg,
.topbar-icon-btn svg,
.topbar-actions svg,
.topbar-btn svg,
.topbar-left svg,
.topbar-right svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Menu button (hamburger) can be slightly bigger */
.topbar-menu-btn svg,
.topbar-mobile-toggle svg {
  width: 20px;
  height: 20px;
}

/* Search icon specifically smaller */
.topbar-search svg {
  width: 15px;
  height: 15px;
  color: var(--color-text-tertiary);
  flex-shrink: 0;
}

/* Breadcrumb separator arrow */
.topbar-breadcrumb svg {
  width: 12px;
  height: 12px;
  opacity: 0.4;
}

/* Dropdown chevron */
.topbar-avatar svg,
.topbar-user svg {
  width: 12px;
  height: 12px;
}

/* Settings panel improvements */
.settings-section + .settings-section {
  margin-top: var(--space-2);
}

/* Calendar grid must be visible */
.cal-shell {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: var(--space-6);
  align-items: start;
}
@media (max-width: 1024px) {
  .cal-shell { grid-template-columns: 1fr; }
}
.cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.cal-nav {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.cal-title {
  font-size: 1.1rem;
  font-weight: 700;
  font-family: var(--font-display);
  color: var(--color-text-primary);
}
.cal-view-tabs {
  display: flex;
  gap: 2px;
  background: var(--color-bg-subtle);
  padding: 3px;
  border-radius: var(--radius-lg);
}

/* Campaign table column widths */
.campaigns-table th:nth-child(1) { width: 32px; }
.campaigns-table th:nth-child(2) { min-width: 200px; }
.campaigns-table th:nth-child(3) { width: 90px; }
.campaigns-table th:nth-child(4) { min-width: 140px; }
.campaigns-table th:nth-child(5) { width: 80px; }
.campaigns-table th:nth-child(6) { width: 110px; }
.campaigns-table th:nth-child(7) { width: 110px; }
.campaigns-table th:nth-child(8) { width: 80px; }
.campaigns-table td { white-space: nowrap; }
.campaigns-table td:nth-child(2) { white-space: normal; }


/* ============================================================
   SETTINGS PAGE — fix .settings-section inside .card-body
   pages.css treats it as a standalone card, but settings.html
   uses it as a sub-section divider inside an existing card.
   ============================================================ */
.card-body .settings-section {
  background: none;
  border: none;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  padding: 0;
  margin-bottom: var(--space-6);
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--space-6);
}
.card-body .settings-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.card-body .settings-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: 3px;
}
.card-body .settings-section-desc {
  font-size: 12px;
  color: var(--color-text-tertiary);
  margin-bottom: var(--space-4);
  line-height: 1.5;
}


/* ============================================================
   SUPPLEMENTAL — missing utility and typography classes
   ============================================================ */

/* page-subtitle — text below page-title in page-header */
.page-subtitle {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  margin-top: var(--space-1);
  line-height: 1.5;
}

/* Bootstrap-compat flex utilities */
.d-flex  { display: flex !important; }
.gap-2   { gap: var(--space-2) !important; }
.gap-3   { gap: var(--space-3) !important; }
.gap-4   { gap: var(--space-4) !important; }
.flex-1  { flex: 1 !important; }

/* zone-label / zone-handle — used in layout editor zones */
.zone-label  { font-size:.55rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:rgba(255,255,255,.7); pointer-events:none; }
.zone-handle { position:absolute; bottom:2px; right:2px; width:8px; height:8px; border-right:2px solid rgba(255,255,255,.4); border-bottom:2px solid rgba(255,255,255,.4); }

/* editor-panel-pane — used by data-editor-tab switching */
.editor-panel-pane { display:none; }
.editor-panel-pane.active { display:block; }

/* layout-card missing state style */
.layout-card.active { border-color:var(--brand-primary); box-shadow:0 0 0 3px var(--brand-primary-muted); }

/* KIOSK R8 — auth parity helpers. */
.kiosk-auth-page{margin:0;min-height:100vh}
.auth-remember-row{flex-direction:row;align-items:center;gap:8px;margin-bottom:var(--space-5)}
.auth-remember-row .form-switch{cursor:pointer}
.auth-remember-row .switch-label{font-size:13px;color:var(--color-text-secondary)}
.auth-submit{width:100%;justify-content:center;height:44px}

/* ============================================================
   KIOSK R28 — installer visual contract
   Restores the product-grade setup presentation that was lost
   when the R8 canonical theme was rebuilt. This lives in the
   single KIOSK theme owner; no extra setup stylesheet is loaded.
   ============================================================ */
.kiosk-auth-page:has(.setup-shell){
  min-height:100dvh;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 32rem),
    linear-gradient(180deg,var(--surface-soft) 0%,var(--bg) 100%);
  color:var(--text);
}
.kiosk-auth-page:has(.setup-shell)>.auth-language{
  position:fixed;
  inset-block-start:22px;
  inset-inline-end:32px;
  z-index:20;
}
.kiosk-auth-page:has(.setup-shell)>.auth-language .language-select{
  min-width:118px;
  min-height:38px;
  background:var(--surface);
  box-shadow:0 8px 24px rgba(23,32,51,.06);
}
.setup-shell{width:min(1380px,100%);margin:0 auto;padding:28px 32px 56px}
.setup-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-inline-end:150px;margin-bottom:30px}
.setup-brand{display:flex;align-items:center;gap:12px;min-width:0}
.setup-brand-mark{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--accent),#D85A91);color:#fff;font-size:22px;font-weight:850;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 28%,transparent)}
.setup-brand strong,.setup-brand small{display:block}.setup-brand strong{font-size:19px;line-height:1.15;letter-spacing:-.025em}.setup-brand small{margin-top:3px;color:var(--muted);font-size:12px}
.setup-secure{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:700;box-shadow:0 4px 14px rgba(23,32,51,.04)}
.setup-secure:before{content:'✓';display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:10px;font-weight:900}
.setup-steps{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 5px 20px rgba(23,32,51,.04)}
.setup-steps li{position:relative;display:flex;align-items:center;gap:11px;min-width:0;padding:17px 18px;border-inline-end:1px solid var(--border);color:var(--muted)}
.setup-steps li:last-child{border-inline-end:0}.setup-steps li>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--surface-soft);border:1px solid var(--border);font-size:12px;font-weight:850}
.setup-steps li>div{min-width:0}.setup-steps strong,.setup-steps small{display:block;white-space:normal}.setup-steps strong{font-size:12px;color:inherit}.setup-steps small{margin-top:2px;font-size:10px;color:var(--muted)}
.setup-steps li.active{background:var(--accent-soft);color:var(--text)}.setup-steps li.active:after{content:'';position:absolute;inset-inline:0;bottom:0;height:3px;background:var(--accent)}.setup-steps li.active>span{background:var(--accent);border-color:var(--accent);color:#fff}
.setup-steps li.done{color:var(--success)}.setup-steps li.done>span{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 28%,var(--border));color:var(--success)}
.setup-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.82fr);gap:22px;align-items:start}
.setup-main,.setup-side{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 10px 32px rgba(23,32,51,.055)}
.setup-main{padding:30px}.setup-side{padding:22px;position:sticky;top:82px}
.setup-section-head,.setup-side-head,.setup-form-footer,.setup-success-strip,.setup-check-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.setup-section-head{padding-bottom:24px;border-bottom:1px solid var(--border)}.setup-section-head>div{min-width:0}.setup-section-head h1{font-size:clamp(24px,2.1vw,30px);margin-bottom:7px}.setup-section-head p{max-width:780px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}
.setup-section-head .btn{flex:none}.setup-form{padding-top:22px}.setup-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.36fr);gap:17px 18px}.setup-fields label{min-width:0}.setup-fields label:nth-child(3),.setup-fields label:nth-child(4){grid-column:auto}.setup-fields label:nth-child(5){grid-column:1/-1}
.setup-main label{gap:8px;color:var(--text);font-size:12px;font-weight:750}.setup-main input:not([type=checkbox]):not([type=radio]){min-height:48px;background:var(--surface-soft);border-color:var(--border);border-radius:10px;padding-inline:13px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.setup-main input:not([type=checkbox]):not([type=radio]):hover{border-color:color-mix(in srgb,var(--text) 20%,var(--border))}.setup-main input:not([type=checkbox]):not([type=radio]):focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);outline:0}
.setup-form-footer{align-items:center;margin-top:27px;padding-top:22px;border-top:1px solid var(--border)}.setup-form-footer small{max-width:580px;line-height:1.55}.setup-form-footer .setup-submit,.setup-form-footer .btn.primary{flex:none;min-width:220px;min-height:48px;padding-inline:22px;background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 20%,transparent)}.setup-form-footer .setup-submit:disabled,.setup-form-footer .btn.primary:disabled{box-shadow:none;opacity:.48}
.setup-side-head{align-items:center;padding-bottom:16px;border-bottom:1px solid var(--border)}.setup-side-head>div{min-width:0}.setup-side-head strong,.setup-side-head small{display:block}.setup-side-head strong{font-size:13px}.setup-side-head small{margin-top:2px;font-size:10px}.setup-side-head>.status{flex:none}
.setup-checks{display:grid}.setup-check-row{align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--border)}.setup-check-row:last-child{border-bottom:0}.setup-check-icon{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:8px;background:var(--surface-soft);color:var(--muted);font-weight:850}.setup-check-copy{min-width:0;flex:1}.setup-check-copy strong,.setup-check-copy small{display:block}.setup-check-copy strong{font-size:12px;line-height:1.4}.setup-check-copy small{margin-top:3px;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.setup-check-row>.status{flex:none;margin-top:1px}.setup-remediation{color:var(--warning)!important}
.setup-error{display:grid;gap:4px;margin:20px 0 0;padding:14px 16px;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--border));border-radius:11px;background:var(--danger-soft);color:var(--danger)}.setup-error strong{font-size:12px}.setup-error span{font-size:11px;line-height:1.5}
.setup-success-strip{justify-content:flex-start;align-items:center;margin:20px 0 0;padding:15px 16px;border:1px solid color-mix(in srgb,var(--success) 22%,var(--border));border-radius:11px;background:var(--success-soft);color:var(--success)}.setup-success-strip>span{font-size:20px}.setup-success-strip strong,.setup-success-strip small{display:block}.setup-success-strip small{margin-top:2px}
.setup-side details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.setup-side summary{font-size:11px;color:var(--text)}.setup-side details>p{margin:8px 0 2px;color:var(--muted);font-size:10px;line-height:1.5}
[dir=rtl] .setup-hero{padding-inline-end:150px}[dir=rtl] .setup-steps li:last-child{border-inline-end:0}
@media(max-width:1050px){.setup-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr)}.setup-shell{padding-inline:22px}}
@media(max-width:900px){.kiosk-auth-page:has(.setup-shell)>.auth-language{inset-block-start:20px;inset-inline-end:16px}.setup-shell{padding:20px 16px 40px}.setup-hero{padding-inline-end:0;margin-bottom:68px}.setup-grid{grid-template-columns:1fr}.setup-side{position:static}.setup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-steps li:nth-child(2){border-inline-end:0}.setup-steps li:nth-child(-n+2){border-bottom:1px solid var(--border)}.setup-fields{grid-template-columns:minmax(0,1fr) minmax(150px,.34fr)}}
@media(max-width:620px){.setup-hero{align-items:flex-start}.setup-secure{display:none}.setup-steps{grid-template-columns:1fr}.setup-steps li{border-inline-end:0;border-bottom:1px solid var(--border)}.setup-steps li:last-child{border-bottom:0}.setup-main{padding:22px 18px}.setup-side{padding:20px 18px}.setup-section-head,.setup-form-footer{flex-direction:column;align-items:stretch}.setup-section-head .btn{align-self:flex-start}.setup-fields{grid-template-columns:1fr}.setup-fields label:nth-child(5){grid-column:auto}.setup-form-footer .setup-submit,.setup-form-footer .btn.primary{width:100%;min-width:0}.setup-check-row{gap:10px}.setup-check-row>.status{font-size:9px}.kiosk-auth-page:has(.setup-shell)>.auth-language .language-select{min-width:102px}}

/* ============================================================
   R34 — CANONICAL SHELL / COMPONENT STABILIZATION
   These rules normalize the existing KIOSK theme sources. They
   replace browser-default / legacy presentation without adding a
   second runtime theme.
   ============================================================ */

/* Hide the unpainted legacy shell until the persisted UI state is applied. */
html.kiosk-preboot body { opacity:1; visibility:visible; }
html:not(.kiosk-preboot) body { opacity:1; visibility:visible; }

/* ---- Compact sidebar ---- */
.app-shell.sidebar-mini .sidebar,
html.kiosk-sidebar-mini-pref .sidebar { width:var(--sidebar-width-mini); }
.app-shell.sidebar-mini .app-main,
html.kiosk-sidebar-mini-pref .app-main { margin-left:var(--sidebar-width-mini); }
.app-shell.sidebar-mini .sidebar-brand,
html.kiosk-sidebar-mini-pref .sidebar-brand { justify-content:center; padding:0; }
.app-shell.sidebar-mini .sidebar-brand-icon,
html.kiosk-sidebar-mini-pref .sidebar-brand-icon { width:38px; height:38px; border-radius:11px; }
.app-shell.sidebar-mini .sidebar-role-badge,
html.kiosk-sidebar-mini-pref .sidebar-role-badge {
  width:42px; height:38px; min-height:38px; padding:0; margin:14px auto 10px;
  justify-content:center; border-radius:12px;
}
.app-shell.sidebar-mini .sidebar-role-badge .role-dot,
html.kiosk-sidebar-mini-pref .sidebar-role-badge .role-dot { width:8px; height:8px; }
.app-shell.sidebar-mini .sidebar-nav,
html.kiosk-sidebar-mini-pref .sidebar-nav { padding:7px 0 14px; }
.app-shell.sidebar-mini .nav-group,
html.kiosk-sidebar-mini-pref .nav-group { margin:0 0 6px; padding:0; }
.app-shell.sidebar-mini .nav-link,
html.kiosk-sidebar-mini-pref .nav-link,
body.space-content .app-shell.sidebar-mini .sidebar-nav .nav-link,
html.kiosk-sidebar-mini-pref body.space-content .sidebar-nav .nav-link {
  width:44px; height:44px; min-height:44px; margin:3px auto; padding:0;
  justify-content:center; gap:0; border-radius:12px; box-shadow:none;
}
.app-shell.sidebar-mini .nav-link.active,
html.kiosk-sidebar-mini-pref .nav-link.active {
  background:var(--brand-primary-light); color:var(--brand-primary); box-shadow:none;
}
.app-shell.sidebar-mini .nav-icon,
html.kiosk-sidebar-mini-pref .nav-icon { width:22px; height:22px; color:var(--color-text-tertiary); }
.app-shell.sidebar-mini .nav-icon svg,
html.kiosk-sidebar-mini-pref .nav-icon svg { width:19px; height:19px; }
.app-shell.sidebar-mini .nav-link.active .nav-icon,
html.kiosk-sidebar-mini-pref .nav-link.active .nav-icon { color:var(--brand-primary); }
.app-shell.sidebar-mini .sidebar-footer,
html.kiosk-sidebar-mini-pref .sidebar-footer { padding:12px 8px; }
.app-shell.sidebar-mini .sidebar-user,
html.kiosk-sidebar-mini-pref .sidebar-user { width:44px; height:44px; margin:auto; padding:0; justify-content:center; }
.app-shell.sidebar-mini .sidebar-user .avatar,
html.kiosk-sidebar-mini-pref .sidebar-user .avatar { width:34px; height:34px; }
.sidebar-toggle {
  right:-17px; width:34px; height:34px; border:1px solid var(--color-border-hover);
  box-shadow:0 4px 14px rgba(23,32,51,.12); background:var(--color-bg-surface);
}
.sidebar-toggle svg { width:16px; height:16px; }
.sidebar-toggle:hover { transform:translateY(-50%) scale(1.04); }

/* ---- Unified topbar ---- */
.topbar,
body.space-content .topbar {
  min-height:64px; height:64px; padding:0 24px; gap:16px;
  background:rgba(255,255,255,.97); border-bottom:1px solid var(--color-border);
  box-shadow:0 4px 22px rgba(23,32,51,.045); backdrop-filter:saturate(140%) blur(10px);
}
[data-theme="dark"] .topbar,
[data-theme="dark"] body.space-content .topbar { background:rgba(24,27,35,.97); }
.topbar-left,body.space-content .topbar-left { flex:1; min-width:0; gap:12px; }
.topbar-right,body.space-content .topbar-right { gap:8px; min-width:0; }
.topbar-page-title { font-size:19px!important; font-weight:750!important; white-space:nowrap; }
.topbar-control.language-control {
  height:40px; min-width:126px; display:flex; align-items:center; gap:7px; padding:0 9px;
  border:1px solid var(--color-border); border-radius:10px; background:var(--color-bg-surface);
}
.topbar-control.language-control>svg { width:16px; height:16px; color:var(--color-text-tertiary); flex:none; }
.language-control .language-select {
  appearance:none; border:0!important; outline:0!important; background:transparent!important;
  min-height:0!important; height:36px!important; padding:0 22px 0 0!important; width:auto;
  color:var(--color-text-primary); font-size:13px; font-weight:600;
  background-image:linear-gradient(45deg,transparent 50%,var(--color-text-tertiary) 50%),linear-gradient(135deg,var(--color-text-tertiary) 50%,transparent 50%)!important;
  background-position:calc(100% - 9px) 15px,calc(100% - 5px) 15px!important;
  background-size:4px 4px,4px 4px!important; background-repeat:no-repeat!important;
}
.theme-control.topbar-btn { width:40px; height:40px; border:1px solid var(--color-border); background:var(--color-bg-surface); border-radius:10px; }
.theme-control.topbar-btn:hover { border-color:var(--brand-primary); color:var(--brand-primary); background:var(--brand-primary-light); }
.profile-dropdown { position:relative; }
.topbar-avatar {
  min-width:184px; height:44px; padding:4px 9px 4px 6px; border:1px solid var(--color-border);
  border-radius:12px; background:var(--color-bg-surface); gap:9px; justify-content:flex-start;
}
.topbar-avatar:hover,.topbar-avatar[aria-expanded="true"] { background:var(--color-bg-subtle); border-color:var(--color-border-hover); }
.topbar-avatar>.ui-icon { margin-left:auto; width:14px; height:14px; color:var(--color-text-tertiary); }
.topbar-user-copy { display:grid; min-width:0; text-align:left; line-height:1.15; }
.topbar-user-copy strong { max-width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.topbar-user-copy small { margin-top:3px; font-size:10px; color:var(--color-text-tertiary); }
.profile-menu.dropdown-menu {
  width:286px; right:0; left:auto; top:calc(100% + 9px); padding:8px; border-radius:14px;
  border:1px solid var(--color-border); box-shadow:0 18px 45px rgba(23,32,51,.16);
}
.profile-menu-head { display:flex; gap:10px; align-items:center; padding:10px 10px 12px; margin-bottom:5px; border-bottom:1px solid var(--color-border); }
.profile-menu-head>div { display:grid; min-width:0; }
.profile-menu-head strong { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-menu-head small { margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-menu .dropdown-item { min-height:40px; border-radius:9px; padding:9px 10px; gap:10px; display:flex; align-items:center; }
.org-context-switcher {
  height:44px; padding:4px; gap:3px; border-radius:12px; background:var(--color-bg-subtle); box-shadow:none;
  border:1px solid var(--color-border); max-width:min(590px,45vw);
}
.org-context-name { min-width:118px; max-width:160px; padding:0 8px; }
.org-context-tabs { display:flex; align-items:center; gap:2px; }
.org-context-link,.org-context-exit { height:34px; border-radius:8px; padding:0 10px; }
.org-context-link.active { background:var(--color-bg-surface); box-shadow:0 1px 4px rgba(23,32,51,.09); }
.org-context-exit { width:36px; padding:0; background:transparent; border-color:transparent; }
.org-context-exit span { display:none; }
.org-context-exit svg { width:16px; height:16px; }
.btn-push-screens,body.space-content .btn-push-screens { height:40px; border-radius:10px; padding:0 14px; box-shadow:0 4px 12px rgba(175,38,101,.16); }

/* ---- Foundation dialog / confirmations ---- */
.dialog-backdrop {
  z-index:var(--z-modal-bg); background:rgba(16,24,40,.48); backdrop-filter:blur(5px);
  opacity:0; transition:opacity .14s ease;
}
.dialog-backdrop.is-open { opacity:1; }
.dialog-backdrop.is-closing { opacity:0; }
.dialog-card {
  width:min(500px,calc(100vw - 32px)); padding:0; overflow:hidden; border-radius:18px;
  border:1px solid var(--color-border); box-shadow:0 28px 80px rgba(16,24,40,.25);
  transform:translateY(8px) scale(.985); transition:transform .14s ease; background:var(--color-bg-surface);
}
.dialog-backdrop.is-open .dialog-card { transform:translateY(0) scale(1); }
.dialog-head { display:flex; align-items:center; gap:12px; padding:20px 20px 14px; }
.dialog-symbol { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:var(--brand-primary-light); color:var(--brand-primary); flex:none; }
.dialog-symbol svg { width:19px; height:19px; }
.dialog-tone-danger .dialog-symbol { background:var(--color-danger-bg); color:var(--color-danger); }
.dialog-heading { min-width:0; flex:1; }
.dialog-heading h3 { font-size:18px; margin:0; letter-spacing:-.02em; }
.dialog-eyebrow { display:block; margin-top:3px; color:var(--color-text-tertiary); }
.dialog-close { width:32px; height:32px; display:grid; place-items:center; border:0; border-radius:9px; background:transparent; color:var(--color-text-tertiary); font-size:24px; line-height:1; }
.dialog-close:hover { background:var(--color-bg-subtle); color:var(--color-text-primary); }
.dialog-body { padding:0 20px 18px; color:var(--color-text-secondary); font-size:14px; line-height:1.6; }
.dialog-body>p:last-child { margin-bottom:0; }
.dialog-actions { margin:0; padding:14px 20px 18px; border-top:1px solid var(--color-border); background:var(--color-bg-subtle); gap:9px; }
.dialog-actions .btn { min-height:40px; padding:9px 16px; }

/* ---- Settings tabs: visible real content, no fragment navigation ---- */
.settings-shell { display:grid; gap:18px; }
.settings-tabs { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:7px; border:1px solid var(--color-border); border-radius:14px; background:var(--color-bg-surface); }
.settings-tab { min-height:42px; display:inline-flex; align-items:center; gap:9px; padding:0 15px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--color-text-secondary); font-weight:700; }
.settings-tab:hover { background:var(--color-bg-subtle); color:var(--color-text-primary); }
.settings-tab.is-active { background:var(--brand-primary-light); border-color:color-mix(in srgb,var(--brand-primary) 28%,transparent); color:var(--brand-primary); }
.settings-tab-count { display:grid; place-items:center; min-width:24px; height:24px; padding:0 7px; border-radius:999px; background:var(--color-bg-subtle); font-size:11px; }
.settings-tab.is-active .settings-tab-count { background:var(--color-bg-surface); }
.settings-panels { min-height:180px; }
.settings-panel { display:none!important; padding:0!important; overflow:hidden; border-radius:16px; }
.settings-panel.is-active { display:block!important; }
.settings-panel-head { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--color-border); background:var(--color-bg-subtle); }
.settings-panel-head h2 { margin:2px 0 0; font-size:17px; }
.settings-panel-kicker { font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-text-tertiary); }
.settings-panel-count { display:grid; place-items:center; min-width:32px; height:32px; padding:0 9px; border-radius:10px; background:var(--color-bg-surface); border:1px solid var(--color-border); font-weight:800; }
.settings-fields-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
.settings-field { padding:18px 22px; margin:0!important; border-bottom:1px solid var(--color-border); }
.settings-field:nth-child(odd):not(.settings-field-wide) { border-right:1px solid var(--color-border); }
.settings-field-wide { grid-column:1/-1; }
.settings-help { display:block; margin-top:6px; line-height:1.45; }
.settings-savebar { position:sticky; bottom:14px; display:flex; justify-content:flex-end; padding:12px; border:1px solid var(--color-border); background:color-mix(in srgb,var(--color-bg-surface) 94%,transparent); backdrop-filter:blur(8px); border-radius:14px; box-shadow:0 8px 26px rgba(23,32,51,.08); }
.settings-savebar .btn-primary { box-shadow:0 5px 14px rgba(175,38,101,.18); }

/* ---- Select2-compatible local control ---- */
.select2-hidden-accessible { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; border:0!important; }
.kiosk-select2 { position:relative; width:100%; font:inherit; }
.select2-selection { width:100%; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 12px; border:1px solid var(--color-border); border-radius:10px; background:var(--color-bg-surface); color:var(--color-text-primary); text-align:left; }
.select2-selection:hover { border-color:var(--color-border-hover); }
.kiosk-select2.is-open .select2-selection { border-color:var(--brand-primary); box-shadow:0 0 0 3px var(--brand-primary-muted); }
.select2-selection__rendered { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.select2-selection__arrow { width:18px; height:18px; display:grid; place-items:center; color:var(--color-text-tertiary); flex:none; }
.select2-selection__arrow svg { width:16px; height:16px; }
.kiosk-select2.is-open .select2-selection__arrow { transform:rotate(180deg); }
.select2-dropdown { position:absolute; z-index:var(--z-popover); inset:calc(100% + 6px) 0 auto; padding:7px; border:1px solid var(--color-border); border-radius:12px; background:var(--color-bg-surface); box-shadow:0 18px 45px rgba(23,32,51,.16); }
.select2-search { padding:2px 2px 7px; }
.select2-search input { min-height:38px!important; border-radius:8px!important; }
.select2-results { max-height:260px; overflow:auto; display:grid; gap:2px; }
.select2-results__option { min-height:38px; width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border:0; border-radius:8px; background:transparent; color:var(--color-text-primary); text-align:left; }
.select2-results__option:hover { background:var(--color-bg-subtle); }
.select2-results__option.is-selected { background:var(--brand-primary-light); color:var(--brand-primary); font-weight:700; }
.select2-results__option svg { width:15px; height:15px; flex:none; }
.kiosk-select2.is-disabled { opacity:.6; pointer-events:none; }

/* ---- DataTables / table list controls ---- */
.dt-container .dt-layout-row,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate { font-size:12px; color:var(--color-text-secondary); }
.dt-container .dt-layout-row:first-child,.dataTables_wrapper>.dataTables_length,.dataTables_wrapper>.dataTables_filter { margin:0 0 12px; }
.dt-container .dt-length,.dataTables_wrapper .dataTables_length { display:flex; align-items:center; gap:8px; }
.dt-container .dt-length select,.dataTables_wrapper .dataTables_length select { width:auto!important; min-width:72px; min-height:36px!important; padding:6px 28px 6px 10px!important; border-radius:9px; background:var(--color-bg-surface); }
.dt-container .dt-search input,.dataTables_wrapper .dataTables_filter input { min-height:36px!important; max-width:240px; border-radius:9px!important; }
.dt-container .dt-layout-row:last-child { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 2px 2px; }
.dt-paging,.dataTables_paginate { display:flex; align-items:center; gap:4px; }
.dt-paging .dt-paging-button,.dataTables_wrapper .dataTables_paginate .paginate_button { min-width:34px!important; width:auto!important; height:34px!important; padding:0 10px!important; display:inline-grid!important; place-items:center; border:1px solid var(--color-border)!important; border-radius:9px!important; background:var(--color-bg-surface)!important; color:var(--color-text-secondary)!important; margin:0!important; }
.dt-paging .dt-paging-button:hover:not(.disabled),.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) { border-color:var(--brand-primary)!important; color:var(--brand-primary)!important; background:var(--brand-primary-light)!important; }
.dt-paging .dt-paging-button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current { background:var(--brand-primary)!important; border-color:var(--brand-primary)!important; color:#fff!important; }

/* ---- Update manager: compact completed lane + FTP intake ---- */
.deployment-board { align-items:start; }
.lane-success .lane-content { gap:6px; }
.lane-success .deployment-card.success-compact { padding:11px 12px; border-radius:10px; display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:10px; align-items:center; }
.lane-success .deployment-card.success-compact .deployment-card-head { display:contents; }
.lane-success .deployment-card.success-compact h3 { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lane-success .deployment-card.success-compact .status { grid-column:2; grid-row:1; }
.lane-success .deployment-card.success-compact .version-path { grid-column:1/-1; margin-top:3px; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lane-success .deployment-card.success-compact .deployment-actions { grid-column:1; margin:7px 0 0; padding:0; border:0; }
.lane-success .deployment-card.success-compact>.muted { grid-column:2; align-self:end; margin-top:7px; font-size:9px; }
.manual-update-card { padding:18px; }
.manual-update-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }
.manual-update-head h2 { margin:2px 0 4px; }
.manual-update-head p { margin:0; color:var(--color-text-secondary); }
.manual-inbox-path { max-width:48%; display:flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid var(--color-border); border-radius:9px; background:var(--color-bg-subtle); }
.manual-inbox-path svg { width:15px; height:15px; flex:none; }
.manual-inbox-path code { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:10px; }
.manual-update-list { display:grid; gap:7px; }
.manual-update-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:10px; border:1px solid var(--color-border); border-radius:11px; background:var(--color-bg-surface); }
.manual-update-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--brand-primary-light); color:var(--brand-primary); }
.manual-update-icon svg { width:17px; height:17px; }
.manual-update-copy { min-width:0; display:grid; gap:2px; }
.manual-update-copy>strong,.manual-update-copy>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.manual-update-copy>span { color:var(--color-text-tertiary); font-size:11px; }
.manual-update-meta { display:grid; gap:2px; text-align:right; color:var(--color-text-tertiary); font-size:10px; }
.manual-update-row .btn { min-height:36px; padding:7px 11px; }

/* ---- Backup operations ---- */
.backup-overview-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(260px,.8fr); gap:18px; margin-bottom:18px; }
.backup-overview-grid .card,.backup-destinations-card,.backup-history-card { border-radius:16px; box-shadow:0 5px 18px rgba(23,32,51,.035); }
.backup-card-head { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.backup-card-head h2 { margin:1px 0 4px; }
.backup-card-head p { margin:0; color:var(--color-text-secondary); }
.backup-card-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:11px; background:var(--brand-primary-light); color:var(--brand-primary); flex:none; }
.backup-card-icon svg { width:20px; height:20px; }
.backup-card-icon.soft { background:var(--color-bg-subtle); color:var(--color-text-secondary); }
.backup-segmented { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.backup-segmented label { position:relative; display:block!important; }
.backup-segmented input { position:absolute; opacity:0; pointer-events:none; }
.backup-segmented label>span { min-height:78px; display:grid; align-content:center; gap:4px; padding:13px 14px; border:1px solid var(--color-border); border-radius:12px; cursor:pointer; background:var(--color-bg-surface); }
.backup-segmented input:checked+span { border-color:var(--brand-primary); background:var(--brand-primary-light); box-shadow:0 0 0 2px var(--brand-primary-muted); }
.backup-segmented small { line-height:1.35; }
.backup-create-row { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; }
.backup-format-field>span,.backup-destination-picker>span { display:block; margin-bottom:7px; font-size:12px; font-weight:700; }
.backup-destination-chips { display:flex; flex-wrap:wrap; gap:7px; min-height:44px; align-items:center; }
.check-chip { display:inline-flex!important; }
.check-chip input { position:absolute; opacity:0; }
.check-chip span { display:inline-flex; align-items:center; min-height:34px; padding:0 11px; border:1px solid var(--color-border); border-radius:999px; background:var(--color-bg-surface); cursor:pointer; font-size:11px; font-weight:700; }
.check-chip input:checked+span { background:var(--brand-primary); border-color:var(--brand-primary); color:#fff; }
.backup-create-actions { margin-top:16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.private-path { min-width:0; display:flex; align-items:center; gap:6px; color:var(--color-text-tertiary); }
.private-path svg { width:14px; height:14px; }
.private-path code { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:440px; font-size:10px; }
.capability-list { display:grid; gap:7px; }
.capability-list>div { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:36px; padding:6px 0; border-bottom:1px solid var(--color-border); }
.capability-list>div:last-child { border-bottom:0; }
.backup-destination-list { display:grid; gap:8px; }
.backup-destination-row { display:grid; grid-template-columns:40px minmax(0,1fr) auto auto; gap:11px; align-items:center; padding:11px 12px; border:1px solid var(--color-border); border-radius:12px; }
.backup-provider-mark { width:40px; height:40px; display:grid; place-items:center; border-radius:11px; background:var(--brand-primary-light); color:var(--brand-primary); }
.backup-provider-mark svg { width:20px; height:20px; }
.backup-destination-copy { min-width:0; display:grid; gap:2px; }
.backup-destination-copy span,.backup-destination-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.backup-row-actions { display:flex; align-items:center; gap:4px; }
.backup-row-actions form { margin:0; }
.icon-action { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--color-border); border-radius:9px; background:var(--color-bg-surface); color:var(--color-text-secondary); }
.icon-action:hover { border-color:var(--brand-primary); color:var(--brand-primary); background:var(--brand-primary-light); }
.icon-action.danger:hover { border-color:var(--color-danger-border); color:var(--color-danger); background:var(--color-danger-bg); }
.icon-action svg { width:15px; height:15px; }

@media(max-width:1180px){
  .topbar-user-copy{display:none}.topbar-avatar{min-width:44px;width:44px;padding:4px;justify-content:center}.topbar-avatar>.ui-icon{display:none}
  .org-context-name{display:none}.org-context-switcher{max-width:none}
  .backup-overview-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .settings-fields-grid{grid-template-columns:1fr}.settings-field:nth-child(odd):not(.settings-field-wide){border-right:0}.settings-tabs{overflow:auto;flex-wrap:nowrap}.settings-tab{white-space:nowrap}
  .backup-create-row{grid-template-columns:1fr}.backup-segmented{grid-template-columns:1fr}.backup-create-actions{align-items:stretch;flex-direction:column}.private-path{width:100%}
  .backup-destination-row{grid-template-columns:40px minmax(0,1fr) auto}.backup-destination-row>.status{grid-column:2}.backup-row-actions{grid-column:3;grid-row:1/3}
  .manual-update-head{flex-direction:column}.manual-inbox-path{max-width:100%;width:100%}.manual-update-row{grid-template-columns:34px minmax(0,1fr)}.manual-update-meta,.manual-update-row form{grid-column:2}.manual-update-meta{text-align:left}
}

/* ============================================================
   R35 — UX recovery: compact shell, safe icons, tabbed backups
   ============================================================ */
/* Header geometry is deliberately strict: controls must never stretch the bar. */
.topbar,body.space-content .topbar{height:64px!important;min-height:64px!important;max-height:64px!important;overflow:visible!important}
.topbar-right,body.space-content .topbar-right{height:64px!important;display:flex!important;align-items:center!important;align-self:center!important;flex-wrap:nowrap!important;overflow:visible!important}
.profile-dropdown{height:44px!important;min-height:44px!important;max-height:44px!important;display:flex!important;align-items:center!important;flex:0 0 auto!important}
.topbar-avatar{display:flex!important;align-items:center!important;height:44px!important;min-height:44px!important;max-height:44px!important;min-width:172px!important;max-width:208px!important;margin:0!important;padding:4px 9px 4px 6px!important;line-height:1!important;overflow:hidden!important;white-space:nowrap!important;flex:0 0 auto!important}
.topbar-avatar .avatar{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;flex:0 0 34px!important}
.topbar-user-copy{display:grid!important;grid-template-rows:auto auto!important;align-content:center!important;min-width:0!important;max-width:124px!important;height:auto!important;overflow:hidden!important;line-height:1.05!important}
.topbar-user-copy strong,.topbar-user-copy small{display:block!important;min-width:0!important;max-width:124px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.topbar-user-copy strong{font-size:12px!important;line-height:14px!important}.topbar-user-copy small{font-size:10px!important;line-height:12px!important;margin-top:2px!important}
.profile-menu.dropdown-menu{top:53px!important;max-height:calc(100vh - 78px)!important;overflow:auto!important}
.profile-menu.dropdown-menu:not(.open){visibility:hidden!important}
.profile-menu.dropdown-menu.open{visibility:visible!important}
.topbar-control.language-control,.theme-control.topbar-btn,.topbar-icon-btn,.btn-push-screens{flex:0 0 auto!important}
.org-context-switcher{flex:0 1 auto!important;min-width:0!important}

/* app_icon() SVGs need explicit dimensions. Without this, browsers fall back to
   the intrinsic 300×150 SVG viewport and produce the giant dashboard chevrons. */
.ui-icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:0 0 auto}
body.space-content .kiosk-status-cell-label .ui-icon{width:14px!important;height:14px!important;margin-inline-start:auto;color:#98a2b3}
body.space-content .kiosk-status-cell .ui-icon{max-width:14px!important;max-height:14px!important}
body.space-content .kiosk-btn .ui-icon{width:15px!important;height:15px!important}

/* Backup Manager: one task at a time instead of one long vertical form page. */
.backup-workspace{display:grid;gap:16px;min-width:0}
.backup-tabs{display:flex;align-items:center;gap:6px;width:max-content;max-width:100%;padding:5px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface);box-shadow:0 4px 16px rgba(23,32,51,.035);overflow:auto}
.backup-tab{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--color-text-secondary);font-weight:750;font-size:12px;white-space:nowrap}
.backup-tab:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}
.backup-tab.is-active{background:var(--brand-primary-light);color:var(--brand-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary) 18%,transparent)}
.backup-tab .ui-icon{width:16px;height:16px}.backup-tab small{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--color-bg-subtle);font-size:10px;color:var(--color-text-tertiary)}
.backup-tab.is-active small{background:var(--color-bg-surface);color:var(--brand-primary)}
.backup-panel{min-width:0}.backup-panel[hidden]{display:none!important}.backup-panel.is-active{animation:backup-panel-in .14s ease both}
.backup-panel .backup-overview-grid{margin-bottom:0}.backup-panel .backup-destinations-card,.backup-panel .backup-history-card{margin:0}
@keyframes backup-panel-in{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}

/* In-layout application errors use the same visual language as framework errors. */
.kiosk-error-state{max-width:760px;margin:clamp(28px,8vh,84px) auto;padding:34px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-surface);box-shadow:0 20px 60px rgba(23,32,51,.08);text-align:left}
.kiosk-error-code{width:68px;height:68px;display:grid;place-items:center;margin-bottom:20px;border-radius:18px;background:var(--brand-primary-light);color:var(--brand-primary);font-size:22px;font-weight:900}
.kiosk-error-state h1{font-size:28px;margin:0 0 8px}.kiosk-error-state p{margin:0;color:var(--color-text-secondary)}.kiosk-error-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}

@media(max-width:1180px){.topbar-avatar{min-width:44px!important;width:44px!important;max-width:44px!important;padding:4px!important;justify-content:center!important}.topbar-user-copy,.topbar-avatar>.ui-icon{display:none!important}}
@media(max-width:760px){.backup-tabs{width:100%}.backup-tab{flex:1 0 auto}.kiosk-error-state{margin:20px auto;padding:24px}}
@media(prefers-reduced-motion:reduce){.backup-panel.is-active{animation:none}}

/* ============================================================
   R36 — AJAX-only update flow + exact left header alignment
   ============================================================ */
/* The neutral foundation stylesheet owns a generic .sidebar padding. KIOSK uses the
   same class name, so that padding leaked into the production shell and pushed the
   logo strip below the 64px topbar. Reset the shell boundary explicitly. */
.app-shell>.sidebar,
body.space-content .app-shell>.sidebar{
  padding:0!important;
}
.app-shell>.sidebar>.sidebar-brand,
body.space-content .app-shell>.sidebar>.sidebar-brand{
  box-sizing:border-box!important;
  height:64px!important;
  min-height:64px!important;
  max-height:64px!important;
  margin:0!important;
  padding:0 20px!important;
  display:flex!important;
  align-items:center!important;
  flex:0 0 64px!important;
  border-bottom:1px solid var(--color-border)!important;
}
.app-shell>.sidebar>.sidebar-brand .sidebar-brand-icon{width:34px!important;height:34px!important;flex:0 0 34px!important}
.app-shell.sidebar-mini>.sidebar>.sidebar-brand,
html.kiosk-sidebar-mini-pref .app-shell>.sidebar>.sidebar-brand{padding:0!important;justify-content:center!important}

/* Header rows are a single non-wrapping grid. Reset inherited offsets so no control
   can fall into the page content under the header. */
.topbar,body.space-content .topbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  column-gap:16px!important;
}
.topbar-left,body.space-content .topbar-left{
  height:64px!important;
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  overflow:hidden!important;
}
.topbar-left .breadcrumbs{
  margin:0!important;
  padding:0!important;
  min-width:0!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.topbar-left .breadcrumbs li{min-width:0!important;flex:0 1 auto!important}
.topbar-left .breadcrumbs li span,.topbar-left .breadcrumbs li a{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.topbar-right,body.space-content .topbar-right{
  position:relative!important;
  inset:auto!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  flex-wrap:nowrap!important;
}
.profile-dropdown{
  position:relative!important;
  inset:auto!important;
  margin:0!important;
  transform:none!important;
  align-self:center!important;
}
.profile-dropdown>.topbar-avatar{
  position:relative!important;
  inset:auto!important;
  margin:0!important;
  transform:none!important;
}


/* ============================================================
   R37 — Product UX Foundation / intent-led navigation
   ============================================================ */
body.space-content .page-content{padding:26px 28px 42px;background:#f6f8fb;min-height:calc(100vh - 64px)}
.kiosk-global-publish{text-decoration:none!important}
.kiosk-advanced-nav{margin-top:18px;padding-top:10px;border-top:1px dashed var(--color-border)}
.r37-pagehead{display:flex;align-items:flex-start;gap:20px;margin:0 0 20px}.r37-pagehead>div:first-child{min-width:0}.r37-eyebrow{display:block;margin-bottom:5px;color:var(--brand-primary);font-size:10px;font-weight:850;letter-spacing:1.1px;text-transform:uppercase}.r37-pagehead h1{margin:0 0 5px;font-size:27px;line-height:1.15;letter-spacing:-.6px}.r37-pagehead p{margin:0;color:var(--color-text-secondary);font-size:13px}.r37-page-actions{margin-left:auto;display:flex;gap:8px}
.r37-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:15px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.r37-btn{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;font-weight:760;text-decoration:none}.r37-btn:hover{border-color:color-mix(in srgb,var(--brand-primary) 42%,var(--color-border));color:var(--brand-primary)}.r37-btn-primary{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff!important}.r37-btn-primary:hover{filter:brightness(.98)}.r37-btn-lg{height:44px;padding:0 18px}
.r37-publish-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.r37-wizard-card{overflow:hidden}.r37-steps{height:74px;margin:0;padding:0 18px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;border-bottom:1px solid var(--color-border)}.r37-step{position:relative;display:flex;align-items:center;gap:8px;min-width:0;color:var(--color-text-tertiary)}.r37-step:not(:last-child):after{content:"";position:absolute;left:42px;right:8px;top:37px;height:1px;background:var(--color-border);z-index:0}.r37-step>span{position:relative;z-index:1;width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border-radius:50%;background:var(--color-bg-subtle);font-size:10px;font-weight:900}.r37-step strong{position:relative;z-index:1;display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.r37-step.is-active{color:var(--brand-primary)}.r37-step.is-active>span{background:var(--brand-primary);color:#fff;box-shadow:0 0 0 5px var(--brand-primary-light)}.r37-step.is-done>span{background:#e9f9f3;color:#15946d}.r37-step.is-done{color:#15946d}
.r37-wizard-body{min-height:350px;padding:20px}.r37-step-panel[hidden]{display:none!important}.r37-step-panel.is-active{animation:r37-panel-in .15s ease both}@keyframes r37-panel-in{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}.r37-panel-title{display:flex;align-items:flex-start;gap:16px;margin-bottom:15px}.r37-panel-title h2{margin:0 0 4px;font-size:15px}.r37-panel-title p{margin:0;max-width:720px;color:var(--color-text-secondary);font-size:11px;line-height:1.5}.r37-subtitle{margin:18px 0 8px;font-size:10px;color:var(--color-text-tertiary);letter-spacing:.8px;text-transform:uppercase}
.r37-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.r37-choice-card,.r37-target,.r37-mode-card{position:relative;min-width:0;display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);cursor:pointer;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.r37-choice-card:hover,.r37-target:hover,.r37-mode-card:hover{border-color:color-mix(in srgb,var(--brand-primary) 38%,var(--color-border))}.r37-choice-card input,.r37-target input,.r37-mode-card input{position:absolute;opacity:0;pointer-events:none}.r37-choice-card:has(input:checked),.r37-target:has(input:checked),.r37-mode-card:has(input:checked){border-color:color-mix(in srgb,var(--brand-primary) 70%,#fff);background:var(--brand-primary-light);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 11%,transparent)}.r37-choice-preview{width:68px;height:44px;display:grid;place-items:center;flex:0 0 68px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#4d596c,#202735)}.r37-choice-preview--campaign{background:linear-gradient(135deg,#ff9b5b,var(--brand-primary))}.r37-choice-preview .ui-icon{width:21px;height:21px}.r37-choice-copy,.r37-target>span:nth-of-type(2),.r37-mode-card>span:nth-of-type(2){display:block;min-width:0;flex:1}.r37-choice-copy strong,.r37-target strong,.r37-mode-card strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.r37-choice-copy small,.r37-target small,.r37-mode-card small{display:block;margin-top:2px;color:var(--color-text-secondary);font-size:9px;line-height:1.35}.r37-choice-copy em{display:block;margin-top:5px;color:var(--color-text-tertiary);font-size:8px;font-style:normal}.r37-choice-check,.r37-target i,.r37-mode-card i{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px;border:1px solid var(--color-border);border-radius:50%;background:#fff;color:transparent;font-size:10px;font-style:normal}.r37-choice-card:has(input:checked) .r37-choice-check,.r37-target:has(input:checked) i,.r37-mode-card:has(input:checked) i{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff}
.r37-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.r37-target-icon,.r37-mode-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:9px;background:var(--brand-primary-light);color:var(--brand-primary)}.r37-target-icon .ui-icon,.r37-mode-icon .ui-icon{width:16px;height:16px}.r37-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.r37-period-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}.r37-period-fields[hidden]{display:none!important}.r37-period-fields label{display:grid;gap:6px}.r37-period-fields label>span{font-size:9px;font-weight:800;color:var(--color-text-secondary)}.r37-period-fields input{height:38px;min-width:0;padding:0 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-primary)}
.r37-review{display:grid;gap:10px}.r37-review>div{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center;padding:13px;border:1px solid var(--color-border);border-radius:11px}.r37-review span{font-size:9px;color:var(--color-text-tertiary);font-weight:800;text-transform:uppercase;letter-spacing:.7px}.r37-review strong{font-size:11px}.r37-publish-final{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.r37-publish-final-icon{width:56px;height:56px;display:grid;place-items:center;margin-bottom:13px;border-radius:16px;background:var(--brand-primary-light);color:var(--brand-primary);font-size:22px;font-weight:900}.r37-publish-final-icon .ui-icon{width:22px;height:22px}.r37-publish-final h2{margin:0 0 7px;font-size:18px}.r37-publish-final p{max-width:520px;margin:0 0 17px;color:var(--color-text-secondary);font-size:11px}.r37-publish-final.is-success .r37-publish-final-icon{background:#e9f9f3;color:#15946d}.r37-final-actions{display:flex;gap:8px}.r37-wizard-footer{height:60px;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;padding:0 18px;border-top:1px solid var(--color-border)}
.r37-publish-summary{position:sticky;top:82px;padding:16px}.r37-publish-summary h3{margin:0 0 11px;font-size:13px}.r37-summary-row{padding:12px 0;border-bottom:1px solid var(--color-border)}.r37-summary-row small{display:block;margin-bottom:4px;color:var(--color-text-tertiary);font-size:8px;font-weight:850;letter-spacing:.7px;text-transform:uppercase}.r37-summary-row strong{display:block;font-size:10px;line-height:1.4}.r37-summary-status{margin-top:13px;padding:10px;border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:9px;font-weight:750}.r37-summary-status span{width:7px;height:7px;display:inline-block;margin-right:6px;border-radius:50%;background:#aeb7c4}.r37-empty{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}.r37-empty-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:9px;border-radius:12px;background:var(--brand-primary-light);color:var(--brand-primary)}.r37-empty h3{margin:0 0 12px;font-size:12px}.r37-inline-message{margin-bottom:12px;padding:11px 13px;border-radius:9px;font-size:11px;font-weight:700}.r37-inline-message.success{background:#e9f9f3;color:#117657}.r37-inline-message.error{background:#fff0f1;color:#b73a46}

/* Operational dashboard: status and next actions, never subscription clutter. */
.r37-dashboard-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:18px}.r37-dashboard-head h1{margin:0 0 5px;font-size:27px;letter-spacing:-.6px}.r37-dashboard-head p{margin:0;color:var(--color-text-secondary);font-size:13px}.r37-dashboard-actions{margin-left:auto;display:flex;gap:8px}.r37-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.r37-kpi{padding:16px}.r37-kpi-top{display:flex;align-items:center}.r37-kpi-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--brand-primary-light);color:var(--brand-primary)}.r37-kpi-value{margin-top:12px;font-size:25px;font-weight:900;letter-spacing:-.8px}.r37-kpi-label{margin-top:2px;color:var(--color-text-secondary);font-size:10px}.r37-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.68fr);gap:15px}.r37-card-head{height:56px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--color-border)}.r37-card-head h2{margin:0;font-size:13px}.r37-card-head small{margin-left:8px;color:var(--color-text-tertiary);font-size:9px}.r37-card-head>a{margin-left:auto;font-size:10px;color:var(--brand-primary);font-weight:750;text-decoration:none}.r37-screen-row{display:grid;grid-template-columns:minmax(170px,1.25fr) .7fr minmax(150px,.9fr);gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border)}.r37-screen-row:last-child{border-bottom:0}.r37-screen-name{display:flex;align-items:center;gap:10px;min-width:0}.r37-screen-preview{width:43px;height:27px;flex:0 0 43px;border-radius:5px;background:linear-gradient(135deg,#273142,#66758a)}.r37-screen-name strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.r37-screen-name small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:8px}.r37-screen-status{display:flex;align-items:center;gap:6px;font-size:9px}.r37-screen-status i{width:7px;height:7px;border-radius:50%;background:#20ad82}.r37-screen-status.is-offline i{background:#e95d67}.r37-screen-status.is-unregistered i{background:#e6aa2a}.r37-screen-meta{font-size:9px;color:var(--color-text-secondary)}.r37-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:13px}.r37-quick-action{min-height:82px;padding:11px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-surface);color:var(--color-text-primary);text-decoration:none}.r37-quick-action:hover{border-color:color-mix(in srgb,var(--brand-primary) 42%,var(--color-border))}.r37-quick-action .ui-icon{width:17px;height:17px;color:var(--brand-primary)}.r37-quick-action strong{display:block;margin-top:8px;font-size:10px}.r37-quick-action small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:8px}.r37-attention{margin-top:15px}.r37-attention-row{display:flex;gap:9px;padding:11px 14px;border-bottom:1px solid var(--color-border)}.r37-attention-row:last-child{border-bottom:0}.r37-attention-row>i{width:7px;height:7px;flex:0 0 7px;margin-top:4px;border-radius:50%;background:#e6aa2a}.r37-attention-row.is-critical>i{background:#e95d67}.r37-attention-row strong{display:block;font-size:9px}.r37-attention-row small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:8px}
@media(max-width:1100px){.r37-publish-grid{grid-template-columns:1fr}.r37-publish-summary{position:relative;top:auto}.r37-period-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.r37-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.r37-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:720px){body.space-content .page-content{padding:18px 14px 32px}.r37-pagehead,.r37-dashboard-head{flex-direction:column}.r37-page-actions,.r37-dashboard-actions{margin-left:0}.r37-steps{height:auto;padding:11px;grid-template-columns:repeat(5,1fr)}.r37-step{justify-content:center}.r37-step strong,.r37-step:not(:last-child):after{display:none}.r37-choice-grid,.r37-target-grid,.r37-mode-grid,.r37-period-fields,.r37-kpis{grid-template-columns:1fr}.r37-wizard-body{padding:14px}.r37-review>div{grid-template-columns:1fr}.r37-wizard-footer{grid-template-columns:auto 1fr auto}.r37-wizard-footer>[data-step-cancel]{display:none}.r37-dashboard-grid{grid-template-columns:1fr}.r37-screen-row{grid-template-columns:1fr auto}.r37-screen-meta{grid-column:1/3}.r37-quick-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.r37-step-panel.is-active{animation:none}}

/* ============================================================
   R37 R2 — Update Manager visual density + truthful kiosk presence
   ============================================================ */
/* Manual FTP/SFTP inbox: compact operational strip instead of a tall empty card. */
.manual-update-card{
  padding:0!important;overflow:hidden;border-radius:16px!important;
  box-shadow:0 5px 18px rgba(23,32,51,.035)!important;
}
.manual-update-head{
  margin:0!important;padding:16px 18px!important;align-items:center!important;
  border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-bg-surface),var(--color-bg-subtle));
}
.manual-update-title{display:flex;align-items:flex-start;gap:12px;min-width:0}
.manual-update-title-icon{
  width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;
  border-radius:11px;background:var(--brand-primary-light);color:var(--brand-primary)
}
.manual-update-title-icon svg{width:18px;height:18px}
.manual-update-head .card-kicker{display:block;margin:0 0 2px;font-size:9px;letter-spacing:.12em}
.manual-update-head h2{margin:0 0 3px!important;font-size:17px!important;line-height:1.25;letter-spacing:-.015em}
.manual-update-head p{max-width:760px;font-size:11px;line-height:1.45}
.manual-inbox-path{
  max-width:360px!important;min-width:0;flex:0 1 360px;padding:7px 9px!important;
  border-radius:10px!important;background:var(--color-bg-surface)!important
}
.manual-inbox-path code{font-size:9.5px!important;color:var(--color-text-secondary)}
.manual-update-list{padding:9px!important;gap:7px!important}
.manual-update-card.is-empty .manual-update-list{padding:8px!important}
.manual-update-empty{
  min-height:54px;display:flex;align-items:center;justify-content:flex-start;gap:10px;
  padding:9px 11px;border:1px dashed var(--color-border);border-radius:11px;
  background:var(--color-bg-subtle);color:var(--color-text-secondary);text-align:left
}
.manual-update-empty-icon{
  width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;border-radius:9px;
  background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-tertiary)
}
.manual-update-empty-icon svg{width:15px;height:15px}
.manual-update-empty>div{min-width:0;display:grid;gap:1px}
.manual-update-empty strong{font-size:11px;color:var(--color-text-primary)}
.manual-update-empty small{font-size:9.5px;color:var(--color-text-tertiary)}

/* Pending update card: product-like release summary with a dense, legible lifecycle. */
.deployment-lane>header{min-height:58px!important;padding:11px 13px!important}
.deployment-lane .lane-symbol{width:32px;height:32px;border-radius:9px;font-size:16px}
.deployment-lane h2{font-size:14px!important;letter-spacing:-.01em}
.deployment-lane .lane-heading p{font-size:10px!important}
.deployment-lane .count{min-width:26px;height:26px;font-size:11px}
.lane-pending .lane-content{padding:9px!important}
.lane-pending .deployment-card{
  padding:14px!important;border-radius:13px!important;background:var(--color-bg-surface)!important;
  box-shadow:0 4px 14px rgba(23,32,51,.035)!important
}
.deployment-card-head{align-items:flex-start!important;flex-wrap:nowrap!important;gap:12px!important}
.deployment-release-heading{min-width:0;flex:1;display:grid;gap:4px}
.deployment-release-heading h3{font-size:14px!important;line-height:1.3!important;margin:0!important}
.deployment-release-heading .version-path{
  margin:0!important;font-size:9.5px!important;line-height:1.4!important;color:var(--color-text-tertiary)!important;
  overflow-wrap:anywhere
}
.deployment-release-heading .version-path b{font-weight:600;color:var(--color-text-secondary)}
.deployment-card-head>.status{flex:0 0 auto;margin-top:0;padding:5px 8px;font-size:8.5px}
.deployment-stages{margin:12px 0 10px!important;gap:0!important}
.deployment-stages li{font-size:9px!important;line-height:1.2!important}
.deployment-stages li:before{top:12px!important}
.deployment-stages span{width:26px!important;height:26px!important;margin-bottom:5px!important;font-size:11px!important}
.deployment-card-footer{
  margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border);
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap
}
.deployment-card-footer .deployment-actions{margin:0!important;padding:0!important;border:0!important;gap:6px!important}
.deployment-card-footer .deployment-actions .btn{min-height:32px!important;padding:6px 10px!important;border-radius:9px!important;font-size:10px!important}
.deployment-updated{font-size:9px;color:var(--color-text-tertiary);white-space:nowrap}
.validation-rejected-note{margin:8px 0!important;padding:8px 9px!important}
.error-detail{margin-top:8px!important}

/* Admin kiosk presence: status is derived from heartbeat freshness, not the stale DB latch. */
.kiosk-presence-summary{
  display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;
  margin-top:12px;padding:10px 11px;border:1px solid var(--color-border);border-radius:12px;
  background:var(--color-bg-subtle)
}
.kiosk-presence-icon{
  width:38px;height:38px;display:grid;place-items:center;border-radius:10px;
  background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)
}
.kiosk-presence-icon svg{width:18px;height:18px}
.kiosk-presence-copy,.kiosk-presence-state{display:grid;gap:2px;min-width:0}
.kiosk-presence-copy small,.kiosk-presence-state small{font-size:9.5px;color:var(--color-text-tertiary)}
.kiosk-presence-copy strong{font-size:11px;color:var(--color-text-primary)}
.kiosk-presence-state{justify-items:end;text-align:right}
.kiosk-presence-state>span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800}
.kiosk-presence-state>span i{width:7px;height:7px;border-radius:999px;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}
.kiosk-presence-summary.is-online .kiosk-presence-state>span{color:var(--color-success)}
.kiosk-presence-summary.is-offline .kiosk-presence-state>span{color:var(--color-danger)}

@media(max-width:760px){
  .manual-update-head{align-items:stretch!important}.manual-inbox-path{max-width:none!important;width:100%;flex-basis:auto}
  .deployment-card-head{flex-wrap:wrap!important}.deployment-card-head>.status{margin-inline-start:0}
  .deployment-card-footer{align-items:flex-start;flex-direction:column}.deployment-updated{order:2}
  .kiosk-presence-summary{grid-template-columns:38px minmax(0,1fr)}.kiosk-presence-state{grid-column:2;justify-items:start;text-align:left}
}

/* R37 R2.1 — kiosk status block: one compact device-presence surface. */
.kiosk-status-block{margin-bottom:var(--space-6);display:grid;gap:10px}
.kiosk-status-block>.form-switch{width:max-content}

/* ========================================================================== 
   R39 — Unified Content Library
   Compact operational workspace: folders + visual grid/list + metadata drawer.
   ========================================================================== */
.library-page{display:grid;gap:14px;min-width:0}
.library-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 1px 0}
.library-head-copy{min-width:0}
.library-eyebrow{font-size:9px;line-height:1;font-weight:900;letter-spacing:.16em;color:var(--color-primary);text-transform:uppercase;margin-bottom:7px}
.library-head h1{margin:0;font-size:24px;line-height:1.12;letter-spacing:-.035em;color:var(--color-text-primary)}
.library-head p{margin:5px 0 0;max-width:620px;font-size:11.5px;line-height:1.55;color:var(--color-text-secondary)}
.library-stats{display:flex;align-items:stretch;gap:6px;flex:0 0 auto;padding:5px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface);box-shadow:0 4px 16px rgba(23,32,51,.035)}
.library-stat{display:grid;align-content:center;min-width:68px;padding:6px 10px;border-radius:9px;text-align:right}
.library-stat+.library-stat{border-inline-start:1px solid var(--color-border)}
.library-stat strong{font-size:14px;line-height:1.15;font-weight:850;color:var(--color-text-primary);white-space:nowrap}
.library-stat span{margin-top:2px;font-size:8.5px;font-weight:600;color:var(--color-text-tertiary);white-space:nowrap}
.library-stat-size{min-width:88px}

.library-toolbar{position:relative;z-index:8;display:grid;grid-template-columns:minmax(210px,1fr) auto auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-surface);box-shadow:0 5px 18px rgba(23,32,51,.035)}
.library-search-wrap{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-subtle);transition:border-color .15s,box-shadow .15s,background .15s}
.library-search-wrap:focus-within{background:var(--color-bg-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 11%,transparent)}
.library-search-wrap svg{width:15px;height:15px;color:var(--color-text-tertiary)}
.library-search-wrap input{width:100%;min-width:0;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;font-size:11px;color:var(--color-text-primary)}
.library-search-wrap kbd{display:inline-flex;align-items:center;justify-content:center;min-width:31px;height:21px;padding:0 5px;border:1px solid var(--color-border);border-bottom-color:var(--color-border-hover);border-radius:6px;background:var(--color-bg-surface);font:700 8px/1 var(--font-body);color:var(--color-text-tertiary);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.library-type-tabs{display:flex;gap:3px;padding:3px;border-radius:10px;background:var(--color-bg-subtle)}
.library-type-tabs button{height:30px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:9.5px;font-weight:750;white-space:nowrap;cursor:pointer}
.library-type-tabs button:hover{color:var(--color-text-primary)}
.library-type-tabs button.is-active{background:var(--color-bg-surface);color:var(--color-text-primary);box-shadow:0 1px 4px rgba(23,32,51,.09)}
.library-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}
.library-tool-btn,.library-view-switch button{height:34px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:9.5px;font-weight:750;cursor:pointer;transition:.15s}
.library-tool-btn{display:inline-flex;align-items:center;gap:6px;padding:0 9px;white-space:nowrap}
.library-tool-btn svg,.library-view-switch svg{width:14px;height:14px}
.library-tool-btn:hover,.library-view-switch button:hover{border-color:var(--color-border-hover);color:var(--color-text-primary);background:var(--color-bg-subtle)}
.library-tool-btn b{display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:20px;background:var(--color-primary);color:#fff;font-size:8px}
.library-import-btn{height:34px!important;padding:0 11px!important;border-radius:9px!important;font-size:9.5px!important;gap:6px!important;white-space:nowrap}
.library-import-btn svg{width:14px;height:14px}
.library-view-switch{display:flex;gap:2px;padding:2px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-subtle)}
.library-view-switch button{width:30px;height:28px;border:0;border-radius:7px;background:transparent}
.library-view-switch button.is-active{background:var(--color-bg-surface);color:var(--color-primary);box-shadow:0 1px 3px rgba(23,32,51,.08)}

.library-filter-panel{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-top:-5px;padding:9px 10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-subtle)}
.library-filter-panel[hidden]{display:none!important}
.library-filter-panel label{display:grid;gap:4px;min-width:130px;flex:1 1 140px}
.library-filter-panel label span{font-size:8.5px;font-weight:750;color:var(--color-text-tertiary)}
.library-filter-panel select{height:32px!important;min-height:32px!important;padding:0 28px 0 9px!important;border-radius:8px!important;font-size:9.5px!important;background-color:var(--color-bg-surface)!important}
.library-filter-reset{height:32px;padding:0 9px;border:0;background:transparent;color:var(--color-primary);font-size:9px;font-weight:800;cursor:pointer}

.library-shell{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:520px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-surface);overflow:hidden;box-shadow:0 6px 22px rgba(23,32,51,.035)}
.library-folders{padding:11px 8px;border-inline-end:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-subtle) 68%,var(--color-bg-surface));overflow:auto}
.library-side-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 7px 6px;font-size:8.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}
.library-side-title button{width:23px;height:23px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-weight:800;cursor:pointer}
.library-folder-row{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:2px}
.library-folder{display:grid;grid-template-columns:21px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;min-height:33px;padding:5px 7px;border:0;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:9.5px;text-align:start;cursor:pointer}
.library-folder:hover{background:var(--color-bg-surface);color:var(--color-text-primary)}
.library-folder.is-active{background:var(--color-primary-muted);color:var(--color-primary);font-weight:800}
.library-folder>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-folder b{font-size:8px;font-weight:750;color:var(--color-text-tertiary)}
.library-folder.is-active b{color:var(--color-primary)}
.library-folder-icon{width:21px;height:21px;display:grid;place-items:center;border-radius:6px;background:color-mix(in srgb,var(--color-bg-surface) 80%,transparent)}
.library-folder-icon svg{width:12px;height:12px}
.library-folder-more{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--color-text-tertiary);font-size:11px;font-weight:900;cursor:pointer}
.library-folder-more:hover{background:var(--color-bg-surface);color:var(--color-text-primary)}
.library-side-separator{height:1px;margin:10px 7px;background:var(--color-border)}
.library-tag-cloud{display:flex;flex-wrap:wrap;gap:4px;padding:1px 6px}
.library-tag-cloud button{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:3px 6px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:8.5px;cursor:pointer}
.library-tag-cloud button:hover{border-color:var(--color-primary);color:var(--color-primary)}
.library-tag-cloud b{font-size:7.5px;color:var(--color-text-tertiary)}
.library-side-empty{font-size:9px;color:var(--color-text-tertiary)}

.library-content{position:relative;min-width:0;padding:12px 13px 14px}
.library-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:25px;margin-bottom:8px;font-size:9px;color:var(--color-text-tertiary)}
.library-selection-summary #libraryResultLabel{font-weight:750;color:var(--color-text-secondary)}
.library-selection-summary #libraryContextLabel{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:9px}
.library-card{position:relative;min-width:0;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}
.library-card:hover{transform:translateY(-1px);border-color:var(--color-border-hover);box-shadow:0 8px 20px rgba(23,32,51,.075)}
.library-card.is-inactive{opacity:.64}
.library-card-select{position:absolute;z-index:3;top:7px;left:7px;width:25px;height:25px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);border-radius:7px;background:color-mix(in srgb,var(--color-bg-surface) 90%,transparent);box-shadow:0 2px 7px rgba(0,0,0,.08);backdrop-filter:blur(7px)}
.library-card-open{position:relative;display:block;width:100%;padding:0;border:0;background:none;text-align:inherit;cursor:pointer;color:inherit}
.library-card-thumb{display:grid;place-items:center;width:100%;aspect-ratio:16/10;background:linear-gradient(145deg,var(--color-bg-subtle),color-mix(in srgb,var(--color-primary-muted) 35%,var(--color-bg-subtle)));overflow:hidden;color:var(--color-text-tertiary)}
.library-card-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.library-card-thumb svg{width:28px;height:28px;opacity:.62}
.library-card-type{position:absolute;right:7px;bottom:7px;padding:3px 6px;border-radius:6px;background:rgba(20,24,33,.72);color:#fff;font-size:7.5px;font-weight:800;letter-spacing:.02em;backdrop-filter:blur(6px)}
.library-card-info{display:grid;gap:7px;padding:9px}
.library-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-width:0}
.library-card-title-row>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--color-text-primary)}
.library-card-meta{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:8px;color:var(--color-text-tertiary)}
.library-card-meta>span{display:inline-flex;align-items:center;gap:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-card-meta svg{width:10px;height:10px;flex:0 0 auto}
.library-card-tags,.library-tag-line{display:flex;align-items:center;gap:3px;min-height:20px;overflow:hidden}
.library-tag{display:inline-flex;align-items:center;max-width:90px;height:19px;padding:0 5px;border-radius:6px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:7.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-tag-more{color:var(--color-primary);background:var(--color-primary-muted)}
.library-status{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;font-size:7px;font-weight:800;color:var(--color-text-tertiary)}
.library-status i{width:5px;height:5px;border-radius:50%;background:currentColor}
.library-status.is-active{color:var(--color-success)}
.library-status.is-inactive{color:var(--color-text-tertiary)}
.library-grid-pager{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:13px}
.library-grid-pager button{width:29px;height:29px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer}
.library-grid-pager button:disabled{opacity:.35;cursor:default}
.library-grid-pager span{min-width:52px;text-align:center;font-size:8.5px;font-weight:750;color:var(--color-text-tertiary)}

.library-list-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:11px}
.library-table{margin:0!important;min-width:780px}
.library-table th{font-size:8px!important;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)!important}
.library-table td{padding-top:7px!important;padding-bottom:7px!important;vertical-align:middle!important}
.library-table .check-col{width:38px}
.library-row-main{display:flex;align-items:center;gap:8px;max-width:330px;padding:0;border:0;background:none;text-align:start;color:inherit;cursor:pointer}
.library-row-main>span:last-child{display:grid;gap:2px;min-width:0}
.library-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;color:var(--color-text-primary)}
.library-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.8px;color:var(--color-text-tertiary)}
.library-row-thumb{width:38px;height:30px;flex:0 0 38px;display:grid;place-items:center;border-radius:7px;background:var(--color-bg-subtle);overflow:hidden;color:var(--color-text-tertiary)}
.library-row-thumb img{width:100%;height:100%;object-fit:cover}.library-row-thumb svg{width:15px;height:15px}
.library-type-pill,.library-folder-pill{display:inline-flex;align-items:center;gap:4px;max-width:150px;color:var(--color-text-secondary);font-size:8.5px;font-weight:700}
.library-type-pill svg,.library-folder-pill svg{width:11px;height:11px;flex:0 0 auto}
.library-folder-pill{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-org-cell{display:grid;gap:3px}.library-date{font-size:8.5px;color:var(--color-text-tertiary)}
.library-usage{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:7px;background:var(--color-bg-subtle);font-size:8px;font-weight:800;color:var(--color-text-tertiary)}
.library-usage.is-used{background:var(--color-primary-muted);color:var(--color-primary)}
.library-row-action{width:27px;height:27px;border:0;border-radius:7px;background:transparent;color:var(--color-text-tertiary);font-weight:900;cursor:pointer}.library-row-action:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}
.library-muted{font-size:8px;color:var(--color-text-tertiary)}

.library-empty{min-height:360px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--color-text-secondary)}
.library-empty[hidden]{display:none!important}.library-empty-art{width:58px;height:58px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.library-empty-art svg{width:25px;height:25px}.library-empty h3{margin:3px 0 0;font-size:14px;color:var(--color-text-primary)}.library-empty p{max-width:380px;margin:0;font-size:10px;color:var(--color-text-tertiary)}

.library-bulkbar{position:fixed;z-index:70;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;max-width:calc(100vw - 34px);padding:6px 7px 6px 11px;border:1px solid color-mix(in srgb,var(--color-border) 65%,transparent);border-radius:13px;background:color-mix(in srgb,var(--color-text-primary) 96%,transparent);color:#fff;box-shadow:0 16px 45px rgba(10,14,25,.28);backdrop-filter:blur(14px)}
.library-bulkbar[hidden]{display:none!important}.library-bulkbar strong{margin-inline-end:4px;font-size:9px;white-space:nowrap}.library-bulk-sep{width:1px;height:21px;margin:0 2px;background:rgba(255,255,255,.18)}.library-bulkbar button{display:inline-flex;align-items:center;gap:4px;height:29px;padding:0 7px;border:0;border-radius:7px;background:transparent;color:rgba(255,255,255,.82);font-size:8.5px;font-weight:750;white-space:nowrap;cursor:pointer}.library-bulkbar button:hover{background:rgba(255,255,255,.1);color:#fff}.library-bulkbar button.is-danger{color:#ffd7cf}.library-bulkbar svg{width:12px;height:12px}.library-bulkbar .library-bulk-close{width:29px;padding:0;justify-content:center;font-size:16px}

.library-drawer-backdrop{position:fixed;z-index:79;inset:0;background:rgba(9,13,23,.18);backdrop-filter:blur(1px)}
.library-drawer-backdrop[hidden]{display:none!important}
.library-drawer{position:fixed;z-index:80;top:0;right:0;width:min(440px,calc(100vw - 24px));height:100dvh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;border-inline-start:1px solid var(--color-border);background:var(--color-bg-surface);box-shadow:-20px 0 55px rgba(10,14,25,.16);transform:translateX(102%);transition:transform .22s ease;overflow:hidden}
.library-drawer.is-open{transform:translateX(0)}
.library-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:15px 16px 11px;border-bottom:1px solid var(--color-border)}
.library-drawer>header>div{min-width:0}.library-drawer-kicker{display:block;margin-bottom:3px;font-size:8px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--color-primary)}.library-drawer h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;letter-spacing:-.02em;color:var(--color-text-primary)}
.library-drawer>header button{width:30px;height:30px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:17px;cursor:pointer}
.library-preview{display:grid;place-items:center;min-height:190px;max-height:280px;padding:12px;background:linear-gradient(145deg,var(--color-bg-subtle),color-mix(in srgb,var(--color-primary-muted) 30%,var(--color-bg-subtle)));overflow:hidden}
.library-preview img,.library-preview video,.library-preview iframe{display:block;max-width:100%;max-height:250px;border:0;border-radius:8px;object-fit:contain}.library-preview audio{width:100%}.library-preview-placeholder{width:60px;height:60px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-surface);color:var(--color-text-tertiary)}.library-preview-placeholder svg{width:26px;height:26px}
.library-drawer-tabs{display:flex;gap:2px;padding:7px 10px 0;border-bottom:1px solid var(--color-border)}.library-drawer-tabs button{height:32px;padding:0 9px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-tertiary);font-size:8.5px;font-weight:800;cursor:pointer}.library-drawer-tabs button.is-active{border-bottom-color:var(--color-primary);color:var(--color-primary)}
.library-drawer-body{min-height:0;padding:13px 15px;overflow:auto}.library-drawer-body section{display:grid;gap:10px}.library-drawer-body form{display:grid;gap:10px}.library-drawer-body label,.library-modal-body label{display:grid;gap:4px}.library-drawer-body label>span,.library-modal-body label>span{font-size:8.5px;font-weight:750;color:var(--color-text-secondary)}.library-drawer-body input,.library-drawer-body select,.library-drawer-body textarea,.library-modal-body input,.library-modal-body select,.library-modal-body textarea{width:100%;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:10px}.library-drawer-body input,.library-drawer-body select,.library-modal-body input,.library-modal-body select{height:35px;padding:0 9px}.library-drawer-body textarea,.library-modal-body textarea{padding:8px 9px;resize:vertical}.library-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.library-save-meta{justify-self:start;min-height:33px!important;padding:6px 11px!important;font-size:9px!important}
.library-properties{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1.4fr);margin:0}.library-properties dt,.library-properties dd{margin:0;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:9px}.library-properties dt{font-weight:700;color:var(--color-text-tertiary)}.library-properties dd{min-width:0;overflow-wrap:anywhere;text-align:end;color:var(--color-text-primary)}
.library-usage-block{display:grid;gap:7px}.library-usage-block+.library-usage-block{margin-top:12px}.library-usage-block h4{margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.library-usage-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-subtle);font-size:9px;color:var(--color-text-primary)}.library-no-usage{padding:18px;border:1px dashed var(--color-border);border-radius:10px;text-align:center;font-size:9px;color:var(--color-text-tertiary)}
.library-drawer>footer{display:flex;justify-content:flex-end;padding:9px 15px;border-top:1px solid var(--color-border)}.library-delete-single{display:inline-flex;align-items:center;gap:5px;height:31px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--color-danger);font-size:8.5px;font-weight:800;cursor:pointer}.library-delete-single:hover{background:var(--color-danger-bg)}.library-delete-single svg{width:12px;height:12px}

.library-modal-overlay{display:none;align-items:center;justify-content:center;padding:18px}.library-modal-overlay.show{display:flex}.library-modal{width:min(620px,100%);max-height:calc(100dvh - 36px);border-radius:16px!important;overflow:auto}.library-import-modal{width:min(690px,100%)}.library-small-modal{width:min(420px,100%)}
.library-modal-kicker{display:block;margin-bottom:3px;font-size:8px;font-weight:850;letter-spacing:.08em;color:var(--color-primary)}
.library-source-tabs{display:flex;gap:3px;padding:8px 13px 0;border-bottom:1px solid var(--color-border)}.library-source-tabs button{display:inline-flex;align-items:center;gap:5px;height:33px;padding:0 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-secondary);font-size:9px;font-weight:800;cursor:pointer}.library-source-tabs button.is-active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.library-source-tabs svg{width:13px;height:13px}
.library-dropzone{display:grid;place-items:center;gap:5px;min-height:180px;padding:20px;border:1px dashed var(--color-border-hover);border-radius:12px;background:var(--color-bg-subtle);text-align:center;transition:.15s}.library-dropzone.is-drag{border-color:var(--color-primary);background:var(--color-primary-muted)}.library-drop-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:2px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);color:var(--color-primary)}.library-drop-icon svg{width:20px;height:20px}.library-dropzone strong{font-size:11px;color:var(--color-text-primary)}.library-dropzone>span{font-size:9px;color:var(--color-text-tertiary)}.library-dropzone label{margin-top:5px;cursor:pointer}
.library-upload-queue{display:grid;gap:4px;max-height:145px;margin-top:8px;overflow:auto}.library-upload-queue>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:5px 8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface)}.library-upload-queue>div>span{display:flex;align-items:center;gap:6px;min-width:0}.library-upload-queue strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;color:var(--color-text-primary)}.library-upload-queue small{font-size:7.5px;color:var(--color-text-tertiary);white-space:nowrap}.library-upload-queue svg{width:13px;height:13px;color:var(--color-text-tertiary)}
.library-organize-row{margin-top:9px}.library-upload-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:10px}.library-upload-progress>span{height:5px;border-radius:9px;background:var(--color-bg-subtle);overflow:hidden}.library-upload-progress i{display:block;width:0;height:100%;background:var(--color-primary);border-radius:inherit;transition:width .15s}.library-upload-progress b{font-size:8px;color:var(--color-text-tertiary)}
.library-modal-note{margin:3px 0 0;padding:8px 9px;border-radius:8px;background:var(--color-bg-subtle);font-size:8.5px;line-height:1.45;color:var(--color-text-secondary)}.library-modal-spacer{flex:1}.library-folder-delete-btn{height:32px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--color-danger);font-size:8.5px;font-weight:800;cursor:pointer}.library-folder-delete-btn:hover{background:var(--color-danger-bg)}

[dir="rtl"] .library-card-select{left:auto;right:7px}[dir="rtl"] .library-card-type{right:auto;left:7px}[dir="rtl"] .library-drawer{right:auto;left:0;border-inline-start:0;border-inline-end:1px solid var(--color-border);box-shadow:20px 0 55px rgba(10,14,25,.16);transform:translateX(-102%)}[dir="rtl"] .library-drawer.is-open{transform:translateX(0)}

@media(max-width:1180px){
  .library-toolbar{grid-template-columns:minmax(180px,1fr) auto}.library-type-tabs{order:3;grid-column:1/-1;justify-content:flex-start;overflow:auto}.library-toolbar-actions{min-width:max-content}.library-stat{min-width:58px;padding-inline:7px}.library-shell{grid-template-columns:172px minmax(0,1fr)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr))}
}
@media(max-width:840px){
  .library-head{align-items:flex-start;flex-direction:column}.library-stats{width:100%;overflow:auto}.library-stat{flex:1;text-align:start}.library-toolbar{grid-template-columns:1fr}.library-type-tabs,.library-toolbar-actions{grid-column:1;order:initial}.library-toolbar-actions{justify-content:flex-start;overflow:auto}.library-shell{display:block;min-height:0}.library-folders{display:flex;align-items:center;gap:5px;padding:7px;border-inline-end:0;border-bottom:1px solid var(--color-border);overflow:auto}.library-side-title,.library-side-separator,.library-tag-cloud{display:none}.library-folder-row{display:flex;flex:0 0 auto}.library-folder{display:flex;width:auto;min-width:max-content;padding-inline:8px}.library-folder-icon{display:none}.library-folder-more{display:none}.library-content{padding:10px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.library-bulkbar{overflow:auto;justify-content:flex-start}.library-bulkbar .library-bulk-sep{display:none}
}
@media(max-width:560px){
  .library-head h1{font-size:21px}.library-stats{display:grid;grid-template-columns:1fr 1fr}.library-stat+.library-stat{border-inline-start:0}.library-stat:nth-child(even){border-inline-start:1px solid var(--color-border)}.library-toolbar-actions .library-tool-btn span{display:none}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.library-card-info{padding:7px}.library-card-meta>span:first-child{max-width:90px}.library-field-grid{grid-template-columns:1fr}.library-drawer{width:100vw;max-width:100vw}.library-bulkbar{left:10px;right:10px;bottom:10px;transform:none;max-width:none}.library-bulkbar strong{position:sticky;left:0;background:inherit}.library-filter-panel{display:grid;grid-template-columns:1fr 1fr}.library-filter-panel label{min-width:0}.library-filter-reset{grid-column:1/-1}.library-modal-overlay{padding:8px}.library-modal{max-height:calc(100dvh - 16px)}
}
@media(max-width:390px){.library-grid{grid-template-columns:1fr}.library-stat strong{font-size:12px}}

/* ========================================================================== 
   R40 — Update Manager Workspace
   One coherent operational surface: compact intake, state tabs, dense release
   cards and history. Functionality remains the canonical AJAX lifecycle.
   ========================================================================== */
.update-manager-workspace{display:grid;gap:14px;min-width:0}
.update-manager-head{margin:0!important;padding:2px 1px 0;align-items:flex-end!important}
.update-manager-heading{min-width:0}
.update-manager-head .eyebrow{margin:0 0 7px!important;font-size:9px!important;letter-spacing:.16em!important}
.update-manager-head h1{margin:0!important;font-size:26px!important;line-height:1.12!important;letter-spacing:-.035em!important}
.update-manager-head p{margin:6px 0 0!important;max-width:760px!important;font-size:11.5px!important;line-height:1.5!important}
.update-manager-head-actions{flex:0 0 auto;margin-bottom:1px}
.update-manager-head-actions .btn{min-height:36px!important;padding:7px 11px!important;border-radius:10px!important;font-size:10.5px!important}
.update-manager-notice{margin:0!important;padding:13px 15px!important;border-radius:13px!important}
.update-manager-notice h2{font-size:14px!important;margin:0 0 4px!important}.update-manager-notice p{margin:0!important}

/* State navigator replaces the oversized three-column board. */
.update-state-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0;margin:0}
.update-state-tab{position:relative;min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface);color:var(--color-text-primary);text-align:left;box-shadow:0 4px 14px rgba(23,32,51,.025);transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}
.update-state-tab:hover{border-color:var(--color-border-hover);box-shadow:0 7px 22px rgba(23,32,51,.055)}
.update-state-tab.is-active{border-color:color-mix(in srgb,var(--brand-primary) 45%,var(--color-border));background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 4%,var(--color-bg-surface)),var(--color-bg-surface));box-shadow:0 7px 22px rgba(23,32,51,.055),inset 0 2px 0 var(--brand-primary)}
.update-state-tab-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--color-bg-subtle);color:var(--color-text-secondary)}
.update-state-tab-icon svg{width:16px;height:16px}.update-state-tab-copy{min-width:0;display:grid;gap:1px}.update-state-tab-copy strong{font-size:11.5px;line-height:1.2}.update-state-tab-copy small{font-size:8.8px;line-height:1.3;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.update-state-tab-count{min-width:28px;height:28px;display:grid;place-items:center;padding:0 7px;border-radius:9px;background:var(--color-bg-subtle);font-size:10px;color:var(--color-text-secondary)}
.update-state-tab[data-update-lane-target="pending"].is-active .update-state-tab-icon{background:var(--brand-primary-light);color:var(--brand-primary)}
.update-state-tab[data-update-lane-target="success"].is-active{border-color:color-mix(in srgb,var(--color-success) 35%,var(--color-border));box-shadow:0 7px 22px rgba(23,32,51,.045),inset 0 2px 0 var(--color-success)}
.update-state-tab[data-update-lane-target="success"].is-active .update-state-tab-icon{background:color-mix(in srgb,var(--color-success) 12%,var(--color-bg-surface));color:var(--color-success)}
.update-state-tab[data-update-lane-target="errors"].is-active{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));box-shadow:0 7px 22px rgba(23,32,51,.045),inset 0 2px 0 var(--color-danger)}
.update-state-tab[data-update-lane-target="errors"].is-active .update-state-tab-icon{background:color-mix(in srgb,var(--color-danger) 11%,var(--color-bg-surface));color:var(--color-danger)}

/* Intake surfaces: both entry points share one compact row. */
.update-intake-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:10px;align-items:stretch}
.update-intake-card{margin:0!important;border-radius:15px!important;box-shadow:0 5px 18px rgba(23,32,51,.03)!important;min-width:0}
.update-upload-card{padding:0!important;overflow:hidden}
.update-intake-head{display:flex;align-items:flex-start;gap:11px;padding:14px 15px 10px}
.update-intake-icon{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:10px;background:var(--brand-primary-light);color:var(--brand-primary)}
.update-intake-icon svg{width:17px;height:17px}.update-intake-head>div{min-width:0}.update-intake-head .card-kicker{display:block;margin:0 0 2px;font-size:8.5px;letter-spacing:.13em}.update-intake-head h2{margin:0 0 3px!important;font-size:15px!important;line-height:1.25}.update-intake-head p{margin:0;font-size:9.5px;line-height:1.4;color:var(--color-text-tertiary);max-width:620px}
.update-intake-form{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;gap:8px!important;padding:0 10px 10px!important}
.update-intake-form .kiosk-dropzone{min-height:58px!important;padding:8px 10px!important;border-radius:11px!important;background:var(--color-bg-subtle)!important;border-color:var(--color-border)!important;gap:9px!important}
.update-intake-form .upload-mark{width:34px!important;height:34px!important;border-radius:9px!important;font-size:17px!important}
.update-dropzone-copy{display:grid;gap:0!important;min-width:0}.update-dropzone-copy strong{font-size:10px;line-height:1.25}.update-dropzone-copy small{display:none}.update-dropzone-copy [data-file-upload-name]{font-size:8.8px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.update-intake-form>.btn{min-height:58px!important;padding:8px 14px!important;border-radius:11px!important;font-size:10.5px!important;white-space:nowrap}

/* Server inbox now mirrors the uploader instead of becoming a large standalone block. */
.update-intake-grid .manual-update-card{display:grid;grid-template-rows:auto 1fr}
.update-intake-grid .manual-update-head{padding:14px 15px 10px!important;background:transparent!important;border-bottom:0!important;gap:10px!important}
.update-intake-grid .manual-update-title{gap:11px}.update-intake-grid .manual-update-title-icon{width:36px;height:36px;flex-basis:36px;border-radius:10px}.update-intake-grid .manual-update-title-icon svg{width:17px;height:17px}
.update-intake-grid .manual-update-head .card-kicker{font-size:8.5px!important}.update-intake-grid .manual-update-head h2{font-size:15px!important;margin:0 0 3px!important}.update-intake-grid .manual-update-head p{display:none}
.update-intake-grid .manual-inbox-path{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden}
.update-intake-grid .manual-update-list{align-self:end;padding:0 10px 10px!important}
.update-intake-grid .manual-update-empty{min-height:58px!important;padding:8px 10px!important;border-radius:11px!important}
.update-intake-grid .manual-update-empty-icon{width:34px;height:34px;flex-basis:34px}.update-intake-grid .manual-update-empty strong{font-size:10px}.update-intake-grid .manual-update-empty small{font-size:8.8px}
.update-intake-grid .manual-update-row{grid-template-columns:32px minmax(0,1fr) auto auto;padding:7px 8px;border-radius:10px;gap:8px}.update-intake-grid .manual-update-icon{width:32px;height:32px}.update-intake-grid .manual-update-copy>strong{font-size:10px}.update-intake-grid .manual-update-copy>span,.update-intake-grid .manual-update-copy small{font-size:8.5px}.update-intake-grid .manual-update-meta{font-size:8px}.update-intake-grid .manual-update-row .btn{min-height:32px!important;font-size:9px!important}

/* One active lifecycle lane at a time. */
.update-release-workspace{display:block!important;margin:0!important;border:0!important;background:transparent!important}
.update-release-workspace[hidden]{display:none!important}
.update-release-workspace .deployment-lane{display:none;min-height:0!important;border-radius:15px!important;box-shadow:0 5px 18px rgba(23,32,51,.03)!important;overflow:hidden}
.update-release-workspace .deployment-lane.is-active{display:block}
.update-release-workspace .deployment-lane>header{min-height:50px!important;padding:9px 11px!important;background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 55%,var(--color-bg-surface)))!important}
.update-release-workspace .lane-symbol{width:30px;height:30px;border-radius:9px;font-size:14px}.update-release-workspace .deployment-lane h2{font-size:12px!important}.update-release-workspace .lane-heading p{font-size:8.8px!important;line-height:1.3}.update-release-workspace .count{min-width:25px;height:25px;font-size:9px}
.update-release-workspace .lane-content{padding:8px!important;display:grid!important;gap:7px!important}
.update-release-workspace .lane-success .lane-content{grid-template-columns:repeat(2,minmax(0,1fr))}
.update-release-workspace .empty-state{min-height:56px!important;padding:15px!important;border:1px dashed var(--color-border);border-radius:10px;background:var(--color-bg-subtle);font-size:10px!important}

/* Dense release row: release identity, lifecycle, then action footer. */
.update-release-workspace .deployment-card{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(390px,.78fr);column-gap:18px;row-gap:9px;padding:11px 12px!important;border-radius:11px!important;background:var(--color-bg-surface)!important;box-shadow:none!important}
.update-release-workspace .deployment-card-main{min-width:0;align-self:center}
.update-release-workspace .deployment-card-head{display:grid!important;grid-template-columns:34px minmax(0,1fr) auto;align-items:center!important;gap:9px!important;min-width:0}
.deployment-release-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--brand-primary-light);color:var(--brand-primary)}
.deployment-release-icon svg{width:16px;height:16px}.lane-success .deployment-release-icon{background:color-mix(in srgb,var(--color-success) 12%,var(--color-bg-surface));color:var(--color-success)}.lane-errors .deployment-release-icon{background:color-mix(in srgb,var(--color-danger) 10%,var(--color-bg-surface));color:var(--color-danger)}
.update-release-workspace .deployment-release-heading{gap:2px}.update-release-workspace .deployment-release-heading h3{font-size:12px!important;line-height:1.25!important}.update-release-workspace .deployment-release-heading .version-path{font-size:8.5px!important;line-height:1.3!important}.update-release-workspace .deployment-card-head>.status{padding:4px 7px!important;font-size:7.8px!important}
.update-release-workspace .deployment-stages{grid-column:2;grid-row:1;align-self:center;margin:0!important;padding:2px 0!important}.update-release-workspace .deployment-stages li{font-size:8px!important}.update-release-workspace .deployment-stages li:before{top:10px!important}.update-release-workspace .deployment-stages span{width:22px!important;height:22px!important;margin:0 auto 4px!important;border-width:1.5px!important;font-size:9px!important}.update-release-workspace .deployment-stages em{font-style:normal;white-space:nowrap}
.update-release-workspace .validation-rejected-note,.update-release-workspace .error-detail,.update-release-workspace .deployment-rescue-note{margin:7px 0 0!important;padding:7px 8px!important;font-size:8.8px!important;line-height:1.35!important;border-radius:8px}
.update-release-workspace .validation-rejected-note{display:grid;gap:1px}.update-release-workspace .validation-rejected-note strong{font-size:9px}.update-release-workspace .validation-rejected-note span{font-size:8.5px}
.update-release-workspace .deployment-card-footer{grid-column:1/-1;margin:0!important;padding-top:8px!important;min-height:34px!important;border-top:1px solid var(--color-border);align-items:center!important}.update-release-workspace .deployment-actions{display:flex!important;align-items:center;gap:5px!important}.update-release-workspace .deployment-actions form{margin:0}.update-release-workspace .deployment-actions .btn{min-height:30px!important;padding:5px 9px!important;border-radius:8px!important;font-size:9px!important}.update-release-workspace .deployment-updated{font-size:8.5px!important;color:var(--color-text-tertiary)!important}

/* Installed releases are lighter and scan as a compact archive grid. */
.update-release-workspace .lane-success .deployment-card.success-compact{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;padding:10px 11px!important;gap:7px!important}.update-release-workspace .lane-success .deployment-card-main{grid-column:1/-1}.update-release-workspace .lane-success .deployment-card-head{grid-template-columns:30px minmax(0,1fr) auto!important}.update-release-workspace .lane-success .deployment-release-icon{width:30px;height:30px}.update-release-workspace .lane-success .deployment-card-footer{grid-column:1/-1}.update-release-workspace .lane-success .deployment-release-heading h3{font-size:10.5px!important}.update-release-workspace .lane-success .deployment-release-heading .version-path{font-size:8px!important}

.update-board-note{margin:0 2px!important;font-size:8.8px!important;line-height:1.4!important}

/* History now matches the density and hierarchy of the rest of ScreenFlow. */
.update-history-card{margin:0!important;border-radius:15px!important;box-shadow:0 5px 18px rgba(23,32,51,.03)!important}
.update-history-head{padding:13px 15px 11px!important;background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 45%,var(--color-bg-surface)))!important}.update-history-head .card-kicker{font-size:8.5px!important}.update-history-head h2{font-size:15px!important;margin:0 0 3px!important}.update-history-head p{font-size:9.5px!important;line-height:1.4!important}.update-history-head .btn{min-height:32px!important;font-size:9px!important}
.update-history-toolbar{padding:8px 10px!important;gap:8px!important}.update-history-search{width:min(330px,100%)!important}.update-history-search input{min-height:34px!important;font-size:10px!important;border-radius:9px!important}.update-history-page-size{font-size:9px!important}.update-history-page-size select{min-height:34px!important;font-size:9px!important;border-radius:9px!important}
.update-history-table{font-size:10px!important}.update-history-table thead th{padding:8px 12px!important;font-size:8px!important;letter-spacing:.06em}.update-history-table tbody td{padding:9px 12px!important}.update-history-release{gap:3px!important;min-width:220px!important}.update-history-release strong{font-size:10px!important}.update-history-release .version-path{padding:3px 6px!important;font-size:8px!important;gap:4px!important}.update-history-table .status{min-width:90px!important;padding:4px 7px!important;font-size:7.5px!important}.update-history-date{font-size:8.5px!important}.update-history-error{font-size:8.5px!important}.update-history-footer{padding:8px 10px!important}.update-history-loading,.update-history-empty{padding:24px 14px!important;font-size:10px!important}

.update-manager-advanced{margin:0!important;padding:10px 12px!important;border-radius:12px!important;background:var(--color-bg-subtle)!important;box-shadow:none!important}.update-manager-advanced details>summary{font-size:10px!important;color:var(--color-text-secondary)}.update-manager-advanced details[open]>summary{margin-bottom:10px!important}.update-manager-advanced p{font-size:9px!important;margin:0 0 6px!important}.update-manager-advanced .form-grid{margin-top:9px!important;gap:10px!important}.update-manager-advanced label{font-size:9px!important}.update-manager-advanced input{min-height:36px!important;font-size:10px!important}

@media(max-width:1180px){
  .update-intake-grid{grid-template-columns:1fr}
  .update-release-workspace .deployment-card{grid-template-columns:minmax(0,1fr) minmax(330px,.85fr)}
}
@media(max-width:860px){
  .update-manager-head{align-items:flex-start!important}.update-manager-head-actions{width:100%;justify-content:flex-start}
  .update-state-tabs{grid-template-columns:1fr}.update-state-tab-copy small{white-space:normal}
  .update-release-workspace .deployment-card{grid-template-columns:1fr}.update-release-workspace .deployment-stages{grid-column:1;grid-row:auto;margin-top:3px!important}.update-release-workspace .deployment-card-footer{grid-column:1}
  .update-release-workspace .lane-success .lane-content{grid-template-columns:1fr}
}
@media(max-width:620px){
  .update-manager-head h1{font-size:23px!important}.update-intake-form{grid-template-columns:1fr!important}.update-intake-form>.btn{min-height:40px!important}
  .update-release-workspace .deployment-card-head{grid-template-columns:30px minmax(0,1fr)}.update-release-workspace .deployment-card-head>.status{grid-column:2;justify-self:start}.deployment-release-icon{width:30px;height:30px}
  .update-release-workspace .deployment-stages em{white-space:normal}
  .update-release-workspace .deployment-card-footer{align-items:flex-start!important;flex-direction:column!important}.update-release-workspace .deployment-updated{order:2}
  .update-history-head{flex-direction:column!important}.update-history-head .btn{width:100%}.update-history-toolbar{align-items:stretch!important;flex-direction:column!important}.update-history-search{width:100%!important}.update-history-page-size{justify-content:space-between}
}
@media(prefers-reduced-motion:reduce){.update-state-tab{transition:none}}

/* ========================================================================== */
/* R41 — Playlist Studio                                                      */
/* ========================================================================== */
.playlist-studio{margin:-2px 0 0}.playlist-studio-form{display:grid;gap:12px}.playlist-studio-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:10px 13px;border:1px solid var(--color-border);border-radius:15px;background:var(--color-bg-surface);box-shadow:0 8px 24px rgba(17,24,39,.035)}
.playlist-studio-titleblock{display:flex;align-items:center;gap:10px;min-width:0}.playlist-back{display:grid;place-items:center;width:35px;height:35px;flex:0 0 auto;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-subtle);color:var(--color-text-secondary)}.playlist-back:hover{border-color:var(--color-border-hover);color:var(--color-primary)}.playlist-back svg{width:15px;height:15px}.playlist-studio-titleblock>div{min-width:0}.playlist-studio-kicker,.playlist-panel-kicker,.playlist-modal-kicker{display:block;margin-bottom:2px;font-size:7.5px;font-weight:850;letter-spacing:.095em;text-transform:uppercase;color:var(--color-primary)}.playlist-name-input{display:block;width:min(520px,52vw);height:30px;padding:0;border:0;background:transparent;color:var(--color-text-primary);font-size:20px;font-weight:790;letter-spacing:-.025em;outline:0}.playlist-name-input::placeholder{color:var(--color-text-tertiary)}.playlist-name-input:focus{box-shadow:inset 0 -2px 0 var(--color-primary)}
.playlist-studio-status{display:flex;align-items:center;gap:7px;flex:0 0 auto}.playlist-save-state{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 8px;border-radius:8px;background:var(--color-bg-subtle);font-size:8px;font-weight:800;color:var(--color-text-tertiary)}.playlist-save-state:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-text-tertiary)}.playlist-save-state[data-state="saved"]{background:var(--color-success-bg);color:var(--color-success)}.playlist-save-state[data-state="saved"]:before{background:var(--color-success)}.playlist-save-state[data-state="saving"]:before{background:var(--color-primary);animation:playlistPulse .8s infinite alternate}.playlist-save-state[data-state="error"]{background:var(--color-danger-bg);color:var(--color-danger)}.playlist-save-state[data-state="error"]:before{background:var(--color-danger)}@keyframes playlistPulse{to{opacity:.28}}
.playlist-active-toggle{display:flex;align-items:center;gap:7px;height:31px;padding:0 8px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-subtle);cursor:pointer}.playlist-active-toggle input{position:absolute;opacity:0;pointer-events:none}.playlist-active-toggle>span{position:relative;width:26px;height:15px;border-radius:20px;background:var(--color-border-hover);transition:.18s}.playlist-active-toggle>span:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:.18s}.playlist-active-toggle input:checked+span{background:var(--color-success)}.playlist-active-toggle input:checked+span:after{transform:translateX(11px)}.playlist-active-toggle b{font-size:8.5px;color:var(--color-text-secondary)}
.playlist-studio-status .kiosk-btn{min-height:33px!important;padding:6px 10px!important;font-size:8.5px!important}.playlist-studio-status .kiosk-btn svg{width:13px;height:13px}
.playlist-studio-grid{display:grid;grid-template-columns:238px minmax(0,1fr) 228px;min-height:570px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-bg-surface);overflow:hidden;box-shadow:0 12px 34px rgba(17,24,39,.04)}.playlist-library-panel,.playlist-inspector-panel{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;background:var(--color-bg-surface)}.playlist-library-panel{border-inline-end:1px solid var(--color-border)}.playlist-inspector-panel{grid-template-rows:auto minmax(0,1fr);border-inline-start:1px solid var(--color-border)}.playlist-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:55px;padding:10px 12px;border-bottom:1px solid var(--color-border)}.playlist-panel-head h2{margin:0;font-size:11px;font-weight:790;color:var(--color-text-primary)}.playlist-icon-btn{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-secondary);cursor:pointer}.playlist-icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.playlist-icon-btn svg{width:14px;height:14px}
.playlist-library-search{display:flex;align-items:center;gap:7px;margin:9px 10px 6px;padding:0 9px;height:34px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-subtle)}.playlist-library-search span{display:grid;place-items:center;color:var(--color-text-tertiary)}.playlist-library-search svg{width:13px;height:13px}.playlist-library-search input{min-width:0;flex:1;border:0;background:transparent;color:var(--color-text-primary);font-size:9px;outline:0}.playlist-media-types{display:flex;gap:3px;padding:0 10px 7px;overflow:auto}.playlist-media-types button{display:inline-flex;align-items:center;gap:4px;height:27px;padding:0 7px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-text-tertiary);font-size:7.5px;font-weight:800;white-space:nowrap;cursor:pointer}.playlist-media-types button:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.playlist-media-types button.is-active{border-color:var(--color-primary-border);background:var(--color-primary-muted);color:var(--color-primary)}.playlist-media-types svg{width:11px;height:11px}.playlist-folder-filter{display:flex;align-items:center;gap:6px;padding:0 10px 8px}.playlist-folder-filter>span{font-size:7.5px;font-weight:750;color:var(--color-text-tertiary)}.playlist-folder-filter select{min-width:0;flex:1;height:29px;padding:0 7px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:8px}
.playlist-library-list{display:grid;align-content:start;gap:5px;min-height:0;padding:5px 8px 10px;overflow:auto}.playlist-media-card{display:grid;grid-template-columns:46px minmax(0,1fr) 28px;align-items:center;gap:8px;min-height:54px;padding:5px;border:1px solid transparent;border-radius:10px;background:var(--color-bg-surface);cursor:grab;transition:.14s}.playlist-media-card:hover{border-color:var(--color-border);background:var(--color-bg-subtle);transform:translateY(-1px)}.playlist-media-card:active{cursor:grabbing}.playlist-media-thumb{position:relative;width:46px;height:42px;border-radius:8px;background:var(--color-bg-subtle);overflow:hidden}.playlist-media-thumb>img,.playlist-media-thumb>video{width:100%;height:100%;object-fit:cover}.playlist-media-thumb>span:not(.playlist-media-placeholder){position:absolute;right:4px;bottom:4px;display:grid;place-items:center;width:17px;height:17px;border-radius:5px;background:rgba(15,23,42,.76);color:#fff}.playlist-media-thumb>span svg{width:10px;height:10px}.playlist-media-placeholder{display:grid!important;place-items:center;width:100%;height:100%;gap:1px;color:var(--color-text-tertiary)}.playlist-media-placeholder svg{width:15px!important;height:15px!important}.playlist-media-placeholder b{font-size:5.5px;letter-spacing:.08em}.playlist-media-copy{min-width:0}.playlist-media-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;color:var(--color-text-primary)}.playlist-media-copy small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;color:var(--color-text-tertiary)}.playlist-media-add{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-primary);cursor:pointer}.playlist-media-add:hover{border-color:var(--color-primary);background:var(--color-primary-muted)}.playlist-media-add svg{width:12px;height:12px}.playlist-library-empty{display:grid;place-items:center;gap:6px;min-height:170px;text-align:center;color:var(--color-text-tertiary);font-size:8.5px}.playlist-library-empty svg{width:22px;height:22px}
.playlist-compose-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;background:var(--color-bg-subtle)}.playlist-compose-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:55px;padding:9px 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-surface)}.playlist-sequence-summary{display:flex;align-items:baseline;gap:5px}.playlist-sequence-summary strong{font-size:12px;color:var(--color-text-primary)}.playlist-sequence-summary span{font-size:7.5px;color:var(--color-text-tertiary)}.playlist-sequence-summary i{width:1px;height:17px;margin:0 4px;background:var(--color-border)}.playlist-selection-actions{display:flex;align-items:center;gap:4px}.playlist-selection-actions>span{margin-inline-end:3px;font-size:7.5px;color:var(--color-text-tertiary)}.playlist-selection-actions button{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 7px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:7.5px;font-weight:750;cursor:pointer}.playlist-selection-actions button:hover{border-color:var(--color-border-hover)}.playlist-selection-actions button.is-danger{color:var(--color-danger)}.playlist-selection-actions svg{width:11px;height:11px}
.playlist-preview-stage{position:relative;min-height:275px;margin:11px 11px 0;border:1px solid var(--color-border);border-radius:12px;background:#111827;overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.14)}.playlist-preview-screen{display:grid;place-items:center;aspect-ratio:16/9;max-height:390px;background:#090d16;color:#fff}.playlist-preview-screen img,.playlist-preview-screen video,.playlist-preview-screen iframe{width:100%;height:100%;border:0;object-fit:contain;background:#090d16}.playlist-preview-audio,.playlist-preview-empty{display:grid;place-items:center;gap:8px;text-align:center;color:#cbd5e1}.playlist-preview-audio svg,.playlist-preview-empty svg{width:34px;height:34px}.playlist-preview-audio strong,.playlist-preview-empty span{font-size:10px}.playlist-preview-audio audio{width:min(360px,80%)}.playlist-preview-controls{position:absolute;left:50%;bottom:10px;display:flex;align-items:center;gap:5px;transform:translateX(-50%);padding:5px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(15,23,42,.86);backdrop-filter:blur(10px)}.playlist-preview-controls button{display:grid;place-items:center;width:29px;height:29px;border:0;border-radius:8px;background:transparent;color:#dbe5f1;cursor:pointer}.playlist-preview-controls button:hover{background:rgba(255,255,255,.09)}.playlist-preview-controls button.is-primary{background:var(--color-primary);color:#fff}.playlist-preview-controls button.playlist-preview-close{margin-inline-start:4px;color:#94a3b8}.playlist-preview-controls svg{width:13px;height:13px}.playlist-preview-controls>span{min-width:42px;text-align:center;font-size:7px;color:#94a3b8}
.playlist-timeline-wrap{position:relative;min-height:0;padding:13px;overflow:auto}.playlist-timeline{display:flex;align-items:stretch;gap:8px;min-width:min-content;min-height:265px}.playlist-timeline-item{position:relative;display:grid;grid-template-rows:128px minmax(0,1fr) auto;flex:0 0 168px;width:168px;min-height:235px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);overflow:hidden;box-shadow:0 5px 15px rgba(15,23,42,.025);cursor:pointer;transition:.14s}.playlist-timeline-item:hover{border-color:var(--color-border-hover);transform:translateY(-1px)}.playlist-timeline-item.is-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-muted),0 9px 22px rgba(15,23,42,.06)}.playlist-timeline-item.is-dragging{opacity:.42}.playlist-timeline-item.is-drop-target{box-shadow:-4px 0 0 var(--color-primary)}.playlist-item-select{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;z-index:1}.playlist-item-thumb{position:relative;background:var(--color-bg-subtle);overflow:hidden}.playlist-item-thumb>img,.playlist-item-thumb>video{width:100%;height:100%;object-fit:cover}.playlist-item-thumb>.playlist-media-placeholder{height:100%}.playlist-item-index{position:absolute;top:7px;left:7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:7px;background:rgba(15,23,42,.8);color:#fff;font-size:7px;font-weight:850}.playlist-item-body{position:relative;z-index:2;min-width:0;padding:9px 9px 5px;pointer-events:none}.playlist-item-body strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--color-text-primary)}.playlist-item-body small{display:block;margin-top:2px;font-size:7px;text-transform:capitalize;color:var(--color-text-tertiary)}.playlist-duration-chip{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:4px;height:28px;margin:0 8px 8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:7.5px;font-weight:800;cursor:pointer}.playlist-duration-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.playlist-duration-chip svg{width:11px;height:11px}.playlist-drag-handle{position:absolute;right:7px;top:7px;z-index:4;display:grid;place-items:center;width:21px;height:21px;border-radius:7px;background:rgba(15,23,42,.72);color:#fff;font-size:9px;letter-spacing:-2px;pointer-events:none}.playlist-timeline-empty{position:absolute;inset:13px;display:grid;place-items:center;align-content:center;gap:6px;min-height:250px;border:1px dashed var(--color-border-hover);border-radius:12px;background:var(--color-bg-surface);text-align:center}.playlist-timeline-empty[hidden]{display:none}.playlist-empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--color-primary-muted);color:var(--color-primary)}.playlist-empty-icon svg{width:20px;height:20px}.playlist-timeline-empty strong{font-size:10px;color:var(--color-text-primary)}.playlist-timeline-empty p{max-width:300px;margin:0;font-size:8px;line-height:1.5;color:var(--color-text-tertiary)}.playlist-timeline-help{display:flex;align-items:center;gap:5px;min-height:35px;padding:7px 12px;border-top:1px solid var(--color-border);background:var(--color-bg-surface);font-size:7.5px;color:var(--color-text-tertiary)}.playlist-timeline-help svg{width:11px;height:11px}
.playlist-inspector-body{min-height:0;padding:12px;overflow:auto}.playlist-field{display:grid;gap:5px;margin-bottom:11px}.playlist-field>span{font-size:7.5px;font-weight:800;color:var(--color-text-secondary)}.playlist-field textarea,.playlist-field input,.playlist-field select{width:100%;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:8.5px;outline:0}.playlist-field textarea{padding:8px;resize:vertical}.playlist-field input,.playlist-field select{height:34px;padding:0 8px}.playlist-field textarea:focus,.playlist-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-muted)}.playlist-inspector-note{display:flex;align-items:flex-start;gap:6px;padding:9px;border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.playlist-inspector-note svg{width:12px;height:12px;flex:0 0 auto;margin-top:1px}.playlist-inspector-note p{margin:0;font-size:7.5px;line-height:1.55}.playlist-inspector-preview{height:120px;margin-bottom:9px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-subtle);overflow:hidden}.playlist-inspector-preview img,.playlist-inspector-preview video{width:100%;height:100%;object-fit:contain}.playlist-inspector-preview .playlist-media-placeholder{height:100%}.playlist-inspector-media{display:grid;gap:2px;margin-bottom:12px}.playlist-inspector-media strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;color:var(--color-text-primary)}.playlist-inspector-media span{font-size:7px;text-transform:capitalize;color:var(--color-text-tertiary)}.playlist-duration-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.playlist-duration-control span{font-size:7px;color:var(--color-text-tertiary)}.playlist-auto-duration{display:flex;align-items:center;gap:7px;margin:-2px 0 13px;cursor:pointer}.playlist-auto-duration input{position:absolute;opacity:0}.playlist-auto-duration>span{position:relative;width:26px;height:15px;border-radius:20px;background:var(--color-border-hover)}.playlist-auto-duration>span:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:.16s}.playlist-auto-duration input:checked+span{background:var(--color-primary)}.playlist-auto-duration input:checked+span:after{transform:translateX(11px)}.playlist-auto-duration b{font-size:7.5px;color:var(--color-text-secondary)}.playlist-media-meta{margin:0}.playlist-media-meta>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:31px;border-bottom:1px solid var(--color-border)}.playlist-media-meta dt,.playlist-media-meta dd{margin:0;font-size:7.5px}.playlist-media-meta dt{color:var(--color-text-tertiary)}.playlist-media-meta dd{max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary);font-weight:700}
.playlist-import-overlay{display:none;align-items:center;justify-content:center}.playlist-import-overlay.show{display:flex}.playlist-import-modal{width:min(560px,calc(100vw - 30px))}.playlist-upload-drop{display:grid;place-items:center;gap:6px;min-height:210px;padding:20px;border:1px dashed var(--color-border-hover);border-radius:12px;background:var(--color-bg-subtle);text-align:center;cursor:pointer;transition:.15s}.playlist-upload-drop.is-drag{border-color:var(--color-primary);background:var(--color-primary-muted)}.playlist-upload-drop input{display:none}.playlist-upload-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface);color:var(--color-primary)}.playlist-upload-icon svg{width:19px;height:19px}.playlist-upload-drop strong{font-size:10px;color:var(--color-text-primary)}.playlist-upload-drop small{font-size:7.5px;color:var(--color-text-tertiary)}.playlist-upload-queue{display:grid;gap:5px;max-height:135px;margin-top:8px;overflow:auto}.playlist-upload-queue>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:5px 7px;border:1px solid var(--color-border);border-radius:8px}.playlist-upload-queue>div>span{display:flex;align-items:center;gap:5px;min-width:0}.playlist-upload-queue strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.5px}.playlist-upload-queue small{font-size:7px;color:var(--color-text-tertiary)}.playlist-upload-queue svg{width:11px;height:11px}.playlist-modal-kicker{margin-bottom:3px}
.playlist-list-workspace .kiosk-cell-name small{display:block;margin-top:2px;font-size:8px;color:var(--color-text-tertiary)}
[dir="rtl"] .playlist-item-index{left:auto;right:7px}[dir="rtl"] .playlist-drag-handle{right:auto;left:7px}
@media(max-width:1180px){.playlist-studio-grid{grid-template-columns:210px minmax(0,1fr)}.playlist-inspector-panel{grid-column:1/-1;display:none}.playlist-studio-status .playlist-active-toggle b{display:none}}
@media(max-width:860px){.playlist-studio-head{align-items:flex-start;flex-direction:column}.playlist-studio-status{width:100%;overflow:auto}.playlist-name-input{width:100%;max-width:calc(100vw - 110px)}.playlist-studio-grid{display:block;min-height:0}.playlist-library-panel{border-inline-end:0;border-bottom:1px solid var(--color-border)}.playlist-library-list{display:flex;min-height:96px;overflow:auto}.playlist-media-card{flex:0 0 190px}.playlist-folder-filter{max-width:320px}.playlist-compose-panel{min-height:460px}.playlist-timeline{min-height:240px}.playlist-inspector-panel{display:block;border-inline-start:0;border-top:1px solid var(--color-border)}}
@media(max-width:560px){.playlist-studio-status{flex-wrap:wrap}.playlist-save-state{order:4;width:100%}.playlist-studio-status .kiosk-btn{flex:1}.playlist-compose-toolbar{align-items:flex-start;flex-direction:column}.playlist-timeline-item{flex-basis:150px;width:150px}.playlist-item-thumb{height:112px}.playlist-preview-stage{min-height:210px}.playlist-preview-controls{bottom:6px}.playlist-library-list{padding-bottom:8px}.playlist-media-card{flex-basis:168px}.playlist-name-input{font-size:17px}.playlist-active-toggle{margin-inline-start:auto}}
@media(prefers-reduced-motion:reduce){.playlist-media-card,.playlist-timeline-item,.playlist-auto-duration>span:after,.playlist-active-toggle>span:after,.playlist-save-state:before{transition:none!important;animation:none!important}}


/* ================================================================
   R41 R2 — Universal selects + semantic deployment + premium dialogs
   ================================================================ */

/* Every application select is enhanced by the local Select2-compatible
   runtime.  The native control remains in the DOM for forms/accessibility. */
.kiosk-select2{position:relative;display:inline-block;width:100%;min-width:0;font:inherit;z-index:1}
.kiosk-select2.is-open{z-index:var(--z-popover,90)}
.kiosk-select2 .select2-selection{min-height:44px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-primary);box-shadow:0 1px 2px rgba(15,23,42,.02);transition:border-color .14s,box-shadow .14s,background .14s}
.kiosk-select2 .select2-selection:hover{border-color:color-mix(in srgb,var(--brand-primary) 38%,var(--color-border))}
.kiosk-select2.is-open .select2-selection{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-muted);background:var(--color-bg-surface)}
.kiosk-select2 .select2-selection__rendered{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.kiosk-select2 .select2-selection__rendered.is-placeholder{color:var(--color-text-tertiary);font-weight:500}
.kiosk-select2 .select2-selection__arrow{width:18px;height:18px;display:grid;place-items:center;color:var(--color-text-tertiary);flex:none;transition:transform .16s}
.kiosk-select2 .select2-selection__arrow svg{width:16px;height:16px}.kiosk-select2.is-open .select2-selection__arrow{transform:rotate(180deg)}
.kiosk-select2 .select2-dropdown{position:absolute;z-index:120;inset:calc(100% + 7px) 0 auto;padding:7px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);box-shadow:0 20px 55px rgba(15,23,42,.18);min-width:max(100%,180px);overflow:hidden}
.kiosk-select2.is-drop-up .select2-dropdown{inset:auto 0 calc(100% + 7px)}
.kiosk-select2 .select2-search{padding:2px 2px 7px}.kiosk-select2 .select2-search[hidden]{display:none!important}.kiosk-select2 .select2-search input{width:100%;min-height:38px!important;padding:7px 10px!important;border:1px solid var(--color-border)!important;border-radius:8px!important;background:var(--color-bg-subtle)!important;box-shadow:none!important}
.kiosk-select2 .select2-results{max-height:286px;overflow:auto;display:grid;gap:2px;overscroll-behavior:contain}
.kiosk-select2 .select2-results__option{min-height:39px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--color-text-primary);text-align:start;line-height:1.3}
.kiosk-select2 .select2-results__option:hover,.kiosk-select2 .select2-results__option:focus-visible{background:var(--color-bg-subtle);outline:0}
.kiosk-select2 .select2-results__option.is-selected{background:var(--brand-primary-light);color:var(--brand-primary);font-weight:750}.kiosk-select2 .select2-results__option svg{width:15px;height:15px;flex:none}.kiosk-select2.is-disabled{opacity:.58;pointer-events:none}
.kiosk-select2-compact{width:auto;min-width:88px}.kiosk-select2-compact .select2-selection{min-height:36px;padding-inline:10px}.kiosk-select2-compact .select2-dropdown{min-width:150px}
.list-toolbar .kiosk-select2,.update-history-toolbar .kiosk-select2,.audit-page-size .kiosk-select2{width:auto;min-width:90px}
.topbar-control.language-control{overflow:visible}.language-control .kiosk-select2-language{width:auto;min-width:88px;max-width:124px}.language-control .kiosk-select2-language .select2-selection{height:36px;min-height:36px;padding:0 5px;border:0;background:transparent;box-shadow:none}.language-control .kiosk-select2-language.is-open .select2-selection{box-shadow:none}.language-control .kiosk-select2-language .select2-dropdown{inset-inline:auto 0;min-width:170px}.language-control .kiosk-select2-language .select2-search{display:none!important}
.auth-language .kiosk-select2-language{min-width:112px;width:auto}.auth-language .kiosk-select2-language .select2-selection{min-height:40px}
.dialog-card .kiosk-select2,.kiosk-modal .kiosk-select2{z-index:2}.dialog-card .kiosk-select2.is-open,.kiosk-modal .kiosk-select2.is-open{z-index:140}

/* Deployment stages describe what each step does instead of displaying a
   generic green dot. State is expressed by color/ring while the icon keeps
   its operational meaning. */
.deployment-stages{gap:4px}.deployment-stages li:before{top:17px;height:2px}.deployment-stages .deployment-stage-icon{width:36px;height:36px;margin-bottom:8px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-surface);color:var(--color-text-tertiary);box-shadow:0 2px 8px rgba(15,23,42,.035)}
.deployment-stages .deployment-stage-icon .ui-icon{width:17px;height:17px}.deployment-stages .done .deployment-stage-icon{border-color:color-mix(in srgb,var(--color-success) 32%,var(--color-border));background:var(--color-success-bg);color:var(--color-success)}.deployment-stages .done:before{background:color-mix(in srgb,var(--color-success) 54%,var(--color-border))}.deployment-stages .current .deployment-stage-icon{border-color:var(--brand-primary);background:var(--brand-primary-light);color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-muted)}.deployment-stages .current .deployment-stage-icon .ui-icon{animation:kiosk-stage-pulse 1.25s ease-in-out infinite}.deployment-stages .failed .deployment-stage-icon{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-border));background:var(--color-danger-bg);color:var(--color-danger)}
.lane-symbol .ui-icon{width:17px;height:17px}.deployment-release-icon .ui-icon{width:17px;height:17px}
@keyframes kiosk-stage-pulse{50%{transform:scale(1.12)}}

/* Canonical premium operation dialog. */
.dialog-backdrop{padding:24px;background:rgba(15,23,42,.54);backdrop-filter:blur(9px) saturate(112%)}
.dialog-card{position:relative;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0!important;overflow:auto;border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);border-radius:20px;background:var(--color-bg-surface);box-shadow:0 32px 90px rgba(15,23,42,.28);transform:translateY(8px) scale(.985);transition:transform .16s ease,opacity .16s ease}
.dialog-backdrop.is-open .dialog-card{transform:translateY(0) scale(1)}.dialog-accent{height:3px;background:linear-gradient(90deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 28%,transparent),transparent)}.dialog-tone-danger .dialog-accent{background:linear-gradient(90deg,var(--color-danger),color-mix(in srgb,var(--color-danger) 28%,transparent),transparent)}
.dialog-head{display:grid!important;grid-template-columns:52px minmax(0,1fr) 36px;align-items:center;gap:14px;padding:22px 24px 14px!important}.dialog-symbol{width:48px!important;height:48px!important;border:1px solid color-mix(in srgb,var(--brand-primary) 18%,var(--color-border));border-radius:14px!important;background:linear-gradient(145deg,var(--brand-primary-light),var(--color-bg-surface))!important;color:var(--brand-primary)!important;box-shadow:0 6px 18px rgba(15,23,42,.05)}.dialog-symbol svg{width:22px!important;height:22px!important}.dialog-tone-danger .dialog-symbol{border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border));background:var(--color-danger-bg)!important;color:var(--color-danger)!important}
.dialog-heading{display:flex!important;flex-direction:column;gap:3px}.dialog-heading h3{order:2;margin:0!important;font-size:21px!important;line-height:1.22;letter-spacing:-.025em;color:var(--color-text-primary)}.dialog-eyebrow{order:1;margin:0!important;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialog-close{align-self:start;width:34px!important;height:34px!important;border:1px solid transparent!important;border-radius:10px!important;color:var(--color-text-tertiary)!important}.dialog-close svg{width:17px;height:17px}.dialog-close:hover{border-color:var(--color-border)!important;background:var(--color-bg-subtle)!important;color:var(--color-text-primary)!important}
.dialog-body{padding:4px 24px 22px!important;color:var(--color-text-secondary)!important;font-size:14px!important;line-height:1.62!important}.dialog-message{margin:0;white-space:pre-line}.dialog-body>p:first-child{margin-top:0}.dialog-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:9px;margin:0!important;padding:15px 24px 18px!important;border-top:1px solid var(--color-border)!important;background:color-mix(in srgb,var(--color-bg-subtle) 68%,var(--color-bg-surface))!important}.dialog-actions .btn{min-height:42px!important;padding:9px 17px!important;border-radius:10px!important}.dialog-actions .btn.primary{min-width:118px}

/* Premium blocking-operation surface; same behavior, improved hierarchy. */
.foundation-loader{background:rgba(15,23,42,.50)!important;backdrop-filter:blur(10px) saturate(112%)!important}.foundation-loader .loader-card{position:relative;width:min(470px,calc(100vw - 32px))!important;padding:24px!important;border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent)!important;border-radius:20px!important;background:var(--color-bg-surface)!important;box-shadow:0 32px 90px rgba(15,23,42,.27)!important;gap:16px!important;overflow:hidden}.foundation-loader .loader-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 20%,transparent),transparent)}.loader-operation{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px}.loader-operation>div{display:grid;gap:4px}.loader-operation-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--brand-primary-light);color:var(--brand-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary) 15%,transparent)}.loader-operation-icon .ui-icon{width:22px;height:22px;animation:kiosk-loader-icon 1.8s ease-in-out infinite}.foundation-loader .loader-card>strong,.loader-operation strong{font-size:18px!important;line-height:1.28;color:var(--color-text-primary)!important}.loader-operation small{font-size:13px!important;line-height:1.45;color:var(--color-text-secondary)!important}.foundation-loader .loader-progress{height:5px!important;margin:0!important;border-radius:999px!important;background:var(--color-border)!important}.foundation-loader .loader-progress i{width:42%;height:100%;display:block;border-radius:999px;background:linear-gradient(90deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 64%,#fff));animation:kiosk-loader-slide 1.05s ease-in-out infinite alternate}.foundation-loader .loader-mark{display:flex!important;justify-content:flex-end;gap:5px!important;margin:-5px 1px 0!important}.foundation-loader .loader-mark span{width:5px!important;height:5px!important;background:var(--brand-primary)!important;opacity:.28}.foundation-loader .loader-mark span:nth-child(2){opacity:.55}.foundation-loader .loader-mark span:nth-child(3){opacity:.9}
@keyframes kiosk-loader-icon{50%{transform:translateY(-2px) rotate(2deg)}}
@media(max-width:620px){.dialog-backdrop{padding:14px}.dialog-head{grid-template-columns:44px minmax(0,1fr) 32px;padding:18px 17px 12px!important}.dialog-symbol{width:42px!important;height:42px!important}.dialog-heading h3{font-size:18px!important}.dialog-body{padding:3px 17px 18px!important}.dialog-actions{padding:13px 17px 15px!important}.dialog-actions .btn{flex:1}.foundation-loader .loader-card{padding:20px!important}.loader-operation{grid-template-columns:42px minmax(0,1fr)}.loader-operation-icon{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.deployment-stages .current .deployment-stage-icon .ui-icon,.loader-operation-icon .ui-icon,.foundation-loader .loader-progress i{animation:none!important}}

/* ============================================================
   R43 — Backup Command Center / dense premium workspace
   ============================================================ */
.r43-backup-pagehead{align-items:center!important;margin-bottom:18px!important}
.r43-backup-pagehead .page-header-left{max-width:860px}
.r43-backup-head-status{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.r43-backup-head-status>div{min-width:126px;height:52px;display:grid;grid-template-columns:32px auto;grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:8px 11px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-surface);box-shadow:0 4px 16px rgba(23,32,51,.035)}
.r43-backup-head-status>div>span{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--brand-primary-light);color:var(--brand-primary)}
.r43-backup-head-status .ui-icon{width:16px;height:16px}.r43-backup-head-status strong{font-size:16px;line-height:1}.r43-backup-head-status small{color:var(--color-text-tertiary);font-size:9px;line-height:1.15}
.r43-backup-workspace{gap:14px}
.r43-backup-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px!important;width:100%!important;padding:6px!important;border-radius:15px!important}
.r43-backup-tabs .backup-tab{height:56px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;justify-content:stretch!important;text-align:left!important;gap:9px!important;padding:7px 10px!important;border-radius:11px!important}
.r43-backup-tabs .backup-tab>span:nth-child(2){min-width:0}.r43-backup-tabs .backup-tab strong{display:block;font-size:11px;line-height:1.2;color:inherit}.r43-backup-tabs .backup-tab small{display:block!important;width:auto!important;height:auto!important;min-width:0!important;margin-top:2px!important;padding:0!important;border-radius:0!important;background:transparent!important;color:var(--color-text-tertiary)!important;font-size:8px!important;font-weight:600!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r43-backup-tabs .backup-tab b{min-width:23px;height:23px;display:grid;place-items:center;padding:0 6px;border-radius:999px;background:var(--color-bg-subtle);color:var(--color-text-tertiary);font-size:9px}
.r43-backup-tabs .backup-tab.is-active b{background:var(--color-bg-surface);color:var(--brand-primary)}
.r43-backup-tab-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--color-bg-subtle);color:var(--color-text-secondary)}.r43-backup-tab-icon .ui-icon{width:16px;height:16px}.backup-tab.is-active .r43-backup-tab-icon{background:var(--color-bg-surface);color:var(--brand-primary);box-shadow:0 2px 8px rgba(23,32,51,.05)}
.r43-backup-launch-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(250px,.65fr);gap:14px;align-items:start}
.r43-backup-primary-card,.r43-backup-readiness,.r43-history-card,.r43-destination-card,.r43-empty-state{margin:0!important;border-radius:16px!important;box-shadow:0 5px 18px rgba(23,32,51,.035)!important}
.r43-backup-primary-card{padding:0!important;overflow:hidden}
.r43-backup-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 42%,var(--color-bg-surface)))}
.r43-backup-section-title,.r43-readiness-head{display:flex;align-items:flex-start;gap:11px;min-width:0}.r43-backup-section-title h2,.r43-readiness-head h2{margin:1px 0 3px!important;font-size:17px!important;line-height:1.2}.r43-backup-section-title p,.r43-readiness-head p{margin:0!important;color:var(--color-text-tertiary);font-size:10px;line-height:1.4}
.r43-backup-section-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;background:var(--brand-primary-light);color:var(--brand-primary)}.r43-backup-section-icon.soft{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.r43-backup-section-icon .ui-icon{width:18px;height:18px}
.r43-trust-pill{height:29px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:0 9px;border-radius:999px;background:color-mix(in srgb,#17b890 10%,var(--color-bg-surface));color:#0c8a6d;font-size:9px;font-weight:800}.r43-trust-pill .ui-icon{width:13px;height:13px}
.r43-backup-create-form{display:grid!important;gap:0!important;padding:0!important}
.r43-field-group{padding:16px 20px}.r43-field-group+.r43-field-group{border-top:1px solid var(--color-border)}
.r43-field-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.r43-field-label strong{font-size:11px}.r43-field-label small{color:var(--color-text-tertiary);font-size:8.5px;text-align:right}
.r43-backup-kind{display:grid!important;grid-template-columns:1fr 1fr;gap:9px!important;border:0!important;background:transparent!important;padding:0!important}
.r43-backup-kind label{min-width:0}.r43-backup-kind input{position:absolute;opacity:0;pointer-events:none}.r43-kind-card{position:relative;min-height:96px;display:grid!important;grid-template-columns:34px minmax(0,1fr) 18px!important;grid-template-rows:auto auto!important;column-gap:10px;row-gap:2px;align-content:center;padding:13px!important;border:1px solid var(--color-border)!important;border-radius:13px!important;background:var(--color-bg-surface)!important;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.r43-kind-card>i{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-style:normal}.r43-kind-card>i .ui-icon{width:16px;height:16px}.r43-kind-card>b{font-size:11px;align-self:end}.r43-kind-card>small{min-width:0;color:var(--color-text-tertiary);font-size:8.5px;line-height:1.35}.r43-kind-card>em{grid-column:3;grid-row:1/3;align-self:center;color:transparent;font-style:normal}.r43-kind-card>em .ui-icon{width:17px;height:17px}
.r43-backup-kind input:checked+.r43-kind-card{border-color:color-mix(in srgb,var(--brand-primary) 40%,var(--color-border))!important;background:color-mix(in srgb,var(--brand-primary-light) 40%,var(--color-bg-surface))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 7%,transparent)}.r43-backup-kind input:checked+.r43-kind-card>i{background:var(--brand-primary-light);color:var(--brand-primary)}.r43-backup-kind input:checked+.r43-kind-card>em{color:var(--brand-primary)}
.r43-backup-options-grid{display:grid;grid-template-columns:minmax(160px,.42fr) minmax(0,1fr);border-top:1px solid var(--color-border)}.r43-backup-options-grid .r43-field-group{border:0!important}.r43-backup-options-grid .r43-field-group+.r43-field-group{border-left:1px solid var(--color-border)!important}
.r43-format-box .kiosk-select2,.r43-format-box select{width:100%!important}.r43-destination-chips{min-height:40px;display:flex;align-items:center;flex-wrap:wrap;gap:7px}.r43-check-chip{margin:0!important}.r43-check-chip>span{display:inline-flex!important;align-items:center;gap:6px}.r43-check-chip .ui-icon{width:13px;height:13px}
.r43-inline-empty-action{height:36px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border:1px dashed color-mix(in srgb,var(--brand-primary) 34%,var(--color-border));border-radius:10px;background:var(--brand-primary-light);color:var(--brand-primary);font-size:9px;font-weight:780}.r43-inline-empty-action .ui-icon{width:13px;height:13px}
.r43-backup-submitbar{min-height:66px;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.75fr) auto;gap:14px;align-items:center;padding:12px 16px 12px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-subtle)}
.r43-private-path{min-width:0;display:flex;align-items:center;gap:9px}.r43-private-path>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px;border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-secondary)}.r43-private-path .ui-icon{width:14px;height:14px}.r43-private-path div{min-width:0}.r43-private-path small,.r43-backup-submit-copy small{display:block;color:var(--color-text-tertiary);font-size:8px;line-height:1.25}.r43-private-path code{display:block;max-width:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary);font-size:8.5px}
.r43-backup-submit-copy{display:flex;align-items:center;gap:7px;color:#0c8a6d}.r43-backup-submit-copy .ui-icon{width:15px;height:15px;flex:0 0 15px}.r43-backup-start{height:42px!important;padding:0 16px!important;border-radius:11px!important}.r43-backup-start .ui-icon{width:16px;height:16px}
.r43-backup-readiness{padding:17px!important;overflow:hidden}.r43-readiness-head{padding-bottom:14px;border-bottom:1px solid var(--color-border)}.r43-readiness-score{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.r43-readiness-score strong{display:block;font-size:22px;line-height:1}.r43-readiness-score small{display:block;margin-top:4px;color:var(--color-text-tertiary);font-size:8.5px}.r43-readiness-score>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px}.r43-readiness-score>span.is-ready{background:color-mix(in srgb,#17b890 11%,var(--color-bg-surface));color:#0c8a6d}.r43-readiness-score>span.is-warning{background:color-mix(in srgb,#e7a824 13%,var(--color-bg-surface));color:#b27b0d}.r43-readiness-score .ui-icon{width:18px;height:18px}
.r43-capability-list{display:grid!important;gap:0!important;border-top:1px solid var(--color-border)}.r43-capability-list>div{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;min-height:34px!important;padding:0!important;border-bottom:1px solid var(--color-border)!important;font-size:9px}.r43-capability-list>div>span{display:flex;align-items:center;gap:7px}.r43-capability-list strong{font-size:8px;font-weight:800}.r43-capability-list strong.is-ok{color:#0c8a6d}.r43-capability-list strong.is-missing{color:#b35c60}.r43-capability-dot{width:6px;height:6px;border-radius:50%;background:#d6dce5}.r43-capability-dot.is-on{background:#17b890}.r43-capability-dot.is-off{background:#df7075}
.r43-readiness-footer{display:flex;align-items:center;gap:9px;margin:13px -17px -17px;padding:12px 17px;background:var(--color-bg-subtle)}.r43-readiness-footer>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--color-bg-surface);color:var(--brand-primary)}.r43-readiness-footer .ui-icon{width:14px;height:14px}.r43-readiness-footer strong{display:block;font-size:11px;line-height:1}.r43-readiness-footer small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:8px}
.r43-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:2px 2px 12px;padding:0 2px}.r43-panel-heading>div:first-child{min-width:0}.r43-panel-heading h2{margin:2px 0 3px!important;font-size:19px!important;line-height:1.2}.r43-panel-heading p{max-width:760px;margin:0;color:var(--color-text-tertiary);font-size:10px;line-height:1.45}.r43-panel-action{flex:0 0 auto}
.r43-empty-state{min-height:230px!important;display:grid!important;grid-template-columns:90px minmax(0,1fr) minmax(220px,.7fr)!important;align-items:center;gap:24px;padding:26px!important;text-align:left!important;background:linear-gradient(135deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 52%,var(--color-bg-surface)))!important}
.r43-empty-illustration{position:relative;width:76px;height:76px;display:grid;place-items:center;border-radius:22px;background:var(--brand-primary-light);color:var(--brand-primary)}.r43-empty-illustration>span .ui-icon{width:30px;height:30px}.r43-empty-illustration>i{position:absolute;right:-5px;bottom:-5px;width:27px;height:27px;display:grid;place-items:center;border:3px solid var(--color-bg-surface);border-radius:10px;background:#17b890;color:#fff;font-style:normal}.r43-empty-illustration>i .ui-icon{width:13px;height:13px}
.r43-empty-copy h3{margin:3px 0 6px;font-size:18px}.r43-empty-copy p{max-width:560px;margin:0 0 14px;color:var(--color-text-secondary);font-size:11px;line-height:1.5}.r43-empty-assurance{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface)}.r43-empty-assurance>span{width:31px;height:31px;display:grid;place-items:center;flex:0 0 31px;border-radius:9px;background:color-mix(in srgb,#17b890 10%,var(--color-bg-surface));color:#0c8a6d}.r43-empty-assurance .ui-icon{width:15px;height:15px}.r43-empty-assurance strong{display:block;font-size:9px}.r43-empty-assurance small{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:8px;line-height:1.4}
.r43-destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.r43-destination-card{padding:15px!important}.r43-destination-top{display:flex;align-items:center;justify-content:space-between}.r43-provider-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--brand-primary-light);color:var(--brand-primary)}.r43-provider-mark .ui-icon{width:18px;height:18px}.r43-destination-copy{padding:13px 0}.r43-destination-copy h3{margin:0 0 4px;font-size:13px}.r43-destination-copy>span{display:block;color:var(--color-text-secondary);font-size:9px}.r43-destination-copy code{display:block;margin-top:8px;padding:6px 8px;border-radius:8px;background:var(--color-bg-subtle);color:var(--color-text-tertiary);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r43-destination-actions{display:flex;align-items:center;gap:6px;padding-top:11px;border-top:1px solid var(--color-border)}.r43-destination-actions>.btn{height:34px;margin-right:auto;padding:0 10px}.r43-destination-actions form{margin:0}
.r43-history-summary{display:flex;align-items:center;gap:7px}.r43-history-summary span{height:36px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-tertiary);font-size:8.5px}.r43-history-summary b{color:#0c8a6d;font-size:12px}.r43-history-summary .has-failures b{color:#c45056}
.r43-history-card{padding:0!important;overflow:hidden}.r43-history-table{margin:0!important}.r43-history-table thead th{height:42px!important;padding-top:0!important;padding-bottom:0!important;background:var(--color-bg-subtle)!important;font-size:8px!important;letter-spacing:.09em!important}.r43-history-table tbody td{padding-top:11px!important;padding-bottom:11px!important}.r43-archive-cell{display:flex;align-items:center;gap:9px}.r43-archive-cell>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px;border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-secondary)}.r43-archive-cell .ui-icon{width:14px;height:14px}.r43-archive-cell strong{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.r43-archive-cell small{display:block;margin-top:2px;font-size:7px}.r43-history-table .status{display:inline-flex!important;align-items:center!important;gap:5px!important}.r43-history-table .status .ui-icon{width:12px;height:12px}
.r43-backup-destination-dialog{max-width:650px!important;padding-top:24px!important}.r43-backup-destination-dialog .dialog-eyebrow{display:block;margin:-2px 0 4px;color:var(--brand-primary);font-size:8px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
@media(max-width:1200px){.r43-backup-launch-grid{grid-template-columns:1fr}.r43-backup-readiness{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);gap:0 20px}.r43-readiness-head{grid-column:1/3}.r43-readiness-score{grid-column:1}.r43-capability-list{grid-column:1}.r43-readiness-footer{grid-column:2;grid-row:2/4;margin:14px 0 0;padding:14px;border-radius:12px;align-self:start}.r43-destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.r43-backup-pagehead{align-items:flex-start!important}.r43-backup-head-status{width:100%;margin-left:0}.r43-backup-head-status>div{flex:1 1 120px}.r43-backup-tabs{grid-template-columns:1fr}.r43-backup-tabs .backup-tab{height:48px!important}.r43-backup-tabs .backup-tab small{display:none!important}.r43-backup-kind,.r43-backup-options-grid{grid-template-columns:1fr}.r43-backup-options-grid .r43-field-group+.r43-field-group{border-left:0!important;border-top:1px solid var(--color-border)!important}.r43-backup-submitbar{grid-template-columns:1fr auto}.r43-backup-submit-copy{display:none}.r43-backup-readiness{display:block}.r43-readiness-head{display:flex}.r43-readiness-footer{margin:13px -17px -17px;border-radius:0}.r43-empty-state{grid-template-columns:68px minmax(0,1fr)!important;gap:18px!important;min-height:0!important}.r43-empty-illustration{width:62px;height:62px;border-radius:18px}.r43-empty-illustration>span .ui-icon{width:25px;height:25px}.r43-empty-assurance{grid-column:1/3}.r43-destination-grid{grid-template-columns:1fr}.r43-panel-heading{align-items:flex-start;flex-direction:column}.r43-history-summary{width:100%}.r43-history-summary span{flex:1}.r43-history-table{min-width:780px}}
@media(max-width:560px){.r43-backup-head-status{display:grid;grid-template-columns:1fr 1fr}.r43-backup-head-status>div{min-width:0}.r43-field-label{display:block}.r43-field-label small{display:block;margin-top:3px;text-align:left}.r43-backup-submitbar{grid-template-columns:1fr}.r43-backup-start{width:100%}.r43-empty-state{grid-template-columns:1fr!important;text-align:center!important}.r43-empty-illustration{margin:0 auto}.r43-empty-copy p{margin-left:auto;margin-right:auto}.r43-empty-assurance{grid-column:auto;text-align:left}.r43-destination-actions>.btn{font-size:0}.r43-destination-actions>.btn .ui-icon{margin:0}.r43-panel-action{width:100%}}
@media(prefers-reduced-motion:reduce){.r43-kind-card{transition:none}}

:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 228, 228, 228;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-header-align-items: center;--dt-header-vertical-align: middle;--dt-html-background: white}:root.dark{--dt-html-background: rgb(33, 37, 41)}table.dataTable tbody td.dt-control{text-align:center;cursor:pointer}table.dataTable tbody td.dt-control:before{display:inline-block;box-sizing:border-box;content:"";border-top:5px solid transparent;border-left:10px solid rgba(0, 0, 0, 0.5);border-bottom:5px solid transparent;border-right:0px solid transparent}table.dataTable tbody tr.dt-hasChild td.dt-control:before{border-top:10px solid rgba(0, 0, 0, 0.5);border-left:5px solid transparent;border-bottom:0px solid transparent;border-right:5px solid transparent}table.dataTable tfoot:empty{display:none}html.dark table.dataTable td.dt-control:before,:root[data-bs-theme=dark] table.dataTable td.dt-control:before,:root[data-theme=dark] table.dataTable td.dt-control:before{border-left-color:rgba(255, 255, 255, 0.5)}html.dark table.dataTable tr.dt-hasChild td.dt-control:before,:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before,:root[data-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before{border-top-color:rgba(255, 255, 255, 0.5);border-left-color:transparent}div.dt-scroll{width:100%}div.dt-scroll-body thead tr,div.dt-scroll-body tfoot tr{height:0}div.dt-scroll-body thead tr th,div.dt-scroll-body thead tr td,div.dt-scroll-body tfoot tr th,div.dt-scroll-body tfoot tr td{height:0 !important;padding-top:0px !important;padding-bottom:0px !important;border-top-width:0px !important;border-bottom-width:0px !important}div.dt-scroll-body thead tr th div.dt-scroll-sizing,div.dt-scroll-body thead tr td div.dt-scroll-sizing,div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,div.dt-scroll-body tfoot tr td div.dt-scroll-sizing{height:0 !important;overflow:hidden !important}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead>tr>th.dt-orderable-asc .dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc .dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc .dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc .dt-column-order:before{position:absolute;display:block;bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>th.dt-orderable-desc .dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc .dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc .dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc .dt-column-order:after{position:absolute;display:block;top:50%;content:"▼";content:"▼"/""}table.dataTable thead>tr>th.dt-orderable-asc .dt-column-order,table.dataTable thead>tr>th.dt-orderable-desc .dt-column-order,table.dataTable thead>tr>th.dt-ordering-asc .dt-column-order,table.dataTable thead>tr>th.dt-ordering-desc .dt-column-order,table.dataTable thead>tr>td.dt-orderable-asc .dt-column-order,table.dataTable thead>tr>td.dt-orderable-desc .dt-column-order,table.dataTable thead>tr>td.dt-ordering-asc .dt-column-order,table.dataTable thead>tr>td.dt-ordering-desc .dt-column-order{position:relative;width:12px;height:20px}table.dataTable thead>tr>th.dt-orderable-asc .dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-asc .dt-column-order:after,table.dataTable thead>tr>th.dt-orderable-desc .dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-desc .dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-asc .dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc .dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc .dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc .dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-asc .dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc .dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc .dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-desc .dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc .dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc .dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc .dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc .dt-column-order:after{left:0;opacity:.125;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.dt-orderable-asc,table.dataTable thead>tr>th.dt-orderable-desc,table.dataTable thead>tr>td.dt-orderable-asc,table.dataTable thead>tr>td.dt-orderable-desc{cursor:pointer}table.dataTable thead>tr>th.dt-orderable-asc:hover,table.dataTable thead>tr>th.dt-orderable-desc:hover,table.dataTable thead>tr>td.dt-orderable-asc:hover,table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(0, 0, 0, 0.05);outline-offset:-2px}table.dataTable thead>tr>th.dt-ordering-asc .dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc .dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc .dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc .dt-column-order:after{opacity:.6}table.dataTable thead>tr>th.dt-orderable-none:not(.dt-ordering-asc,.dt-ordering-desc) .dt-column-order:empty,table.dataTable thead>tr>th.sorting_desc_disabled .dt-column-order:after,table.dataTable thead>tr>th.sorting_asc_disabled .dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-none:not(.dt-ordering-asc,.dt-ordering-desc) .dt-column-order:empty,table.dataTable thead>tr>td.sorting_desc_disabled .dt-column-order:after,table.dataTable thead>tr>td.sorting_asc_disabled .dt-column-order:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead>tr>th div.dt-column-header,table.dataTable thead>tr>th div.dt-column-footer,table.dataTable thead>tr>td div.dt-column-header,table.dataTable thead>tr>td div.dt-column-footer,table.dataTable tfoot>tr>th div.dt-column-header,table.dataTable tfoot>tr>th div.dt-column-footer,table.dataTable tfoot>tr>td div.dt-column-header,table.dataTable tfoot>tr>td div.dt-column-footer{display:flex;justify-content:space-between;align-items:var(--dt-header-align-items);gap:4px}table.dataTable thead>tr>th div.dt-column-header .dt-column-title,table.dataTable thead>tr>th div.dt-column-footer .dt-column-title,table.dataTable thead>tr>td div.dt-column-header .dt-column-title,table.dataTable thead>tr>td div.dt-column-footer .dt-column-title,table.dataTable tfoot>tr>th div.dt-column-header .dt-column-title,table.dataTable tfoot>tr>th div.dt-column-footer .dt-column-title,table.dataTable tfoot>tr>td div.dt-column-header .dt-column-title,table.dataTable tfoot>tr>td div.dt-column-footer .dt-column-title{flex-grow:1}table.dataTable thead>tr>th div.dt-column-header .dt-column-title:empty,table.dataTable thead>tr>th div.dt-column-footer .dt-column-title:empty,table.dataTable thead>tr>td div.dt-column-header .dt-column-title:empty,table.dataTable thead>tr>td div.dt-column-footer .dt-column-title:empty,table.dataTable tfoot>tr>th div.dt-column-header .dt-column-title:empty,table.dataTable tfoot>tr>th div.dt-column-footer .dt-column-title:empty,table.dataTable tfoot>tr>td div.dt-column-header .dt-column-title:empty,table.dataTable tfoot>tr>td div.dt-column-footer .dt-column-title:empty{display:none}div.dt-scroll-body>table.dataTable>thead>tr>th,div.dt-scroll-body>table.dataTable>thead>tr>td{overflow:hidden}:root.dark table.dataTable thead>tr>th.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>th.dt-orderable-desc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(255, 255, 255, 0.05)}div.dt-processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-22px;text-align:center;padding:2px;z-index:10}div.dt-processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dt-processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgb(13, 110, 253);background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dt-processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dt-processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th,table.dataTable td{box-sizing:border-box}table.dataTable th.dt-type-numeric,table.dataTable th.dt-type-date,table.dataTable td.dt-type-numeric,table.dataTable td.dt-type-date{text-align:right}table.dataTable th.dt-type-numeric div.dt-column-header,table.dataTable th.dt-type-numeric div.dt-column-footer,table.dataTable th.dt-type-date div.dt-column-header,table.dataTable th.dt-type-date div.dt-column-footer,table.dataTable td.dt-type-numeric div.dt-column-header,table.dataTable td.dt-type-numeric div.dt-column-footer,table.dataTable td.dt-type-date div.dt-column-header,table.dataTable td.dt-type-date div.dt-column-footer{flex-direction:row-reverse}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-left div.dt-column-header,table.dataTable th.dt-left div.dt-column-footer,table.dataTable td.dt-left div.dt-column-header,table.dataTable td.dt-left div.dt-column-footer{flex-direction:row}table.dataTable th.dt-center,table.dataTable td.dt-center{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-right div.dt-column-header,table.dataTable th.dt-right div.dt-column-footer,table.dataTable td.dt-right div.dt-column-header,table.dataTable td.dt-right div.dt-column-footer{flex-direction:row-reverse}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-justify div.dt-column-header,table.dataTable th.dt-justify div.dt-column-footer,table.dataTable td.dt-justify div.dt-column-header,table.dataTable td.dt-justify div.dt-column-footer{flex-direction:row}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable th.dt-empty,table.dataTable td.dt-empty{text-align:center;vertical-align:top}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left;vertical-align:var(--dt-header-vertical-align)}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-left div.dt-column-header,table.dataTable thead th.dt-head-left div.dt-column-footer,table.dataTable thead td.dt-head-left div.dt-column-header,table.dataTable thead td.dt-head-left div.dt-column-footer,table.dataTable tfoot th.dt-head-left div.dt-column-header,table.dataTable tfoot th.dt-head-left div.dt-column-footer,table.dataTable tfoot td.dt-head-left div.dt-column-header,table.dataTable tfoot td.dt-head-left div.dt-column-footer{flex-direction:row}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-right div.dt-column-header,table.dataTable thead th.dt-head-right div.dt-column-footer,table.dataTable thead td.dt-head-right div.dt-column-header,table.dataTable thead td.dt-head-right div.dt-column-footer,table.dataTable tfoot th.dt-head-right div.dt-column-header,table.dataTable tfoot th.dt-head-right div.dt-column-footer,table.dataTable tfoot td.dt-head-right div.dt-column-header,table.dataTable tfoot td.dt-head-right div.dt-column-footer{flex-direction:row-reverse}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-justify div.dt-column-header,table.dataTable thead th.dt-head-justify div.dt-column-footer,table.dataTable thead td.dt-head-justify div.dt-column-header,table.dataTable thead td.dt-head-justify div.dt-column-footer,table.dataTable tfoot th.dt-head-justify div.dt-column-header,table.dataTable tfoot th.dt-head-justify div.dt-column-footer,table.dataTable tfoot td.dt-head-justify div.dt-column-header,table.dataTable tfoot td.dt-head-justify div.dt-column-footer{flex-direction:row}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}:root{--dt-row-hover-alpha: 0.035;--dt-row-stripe-alpha: 0.023;--dt-column-ordering-alpha: 0.019;--dt-row-selected-stripe-alpha: 0.923;--dt-row-selected-column-ordering-alpha: 0.919}table.dataTable{width:100%;margin:0 auto;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable>thead>tr>th,table.dataTable>thead>tr>td{padding:10px;border-bottom:1px solid rgba(0, 0, 0, 0.3)}table.dataTable>thead>tr>th:active,table.dataTable>thead>tr>td:active{outline:none}table.dataTable>tfoot>tr>th,table.dataTable>tfoot>tr>td{border-top:1px solid rgba(0, 0, 0, 0.3);padding:10px 10px 6px 10px}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr:first-child>*{border-top:none}table.dataTable>tbody>tr:last-child>*{border-bottom:none}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.9);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.9);color:rgb(255, 255, 255);color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:rgb(228, 228, 228);color:rgb(var(--dt-row-selected-link))}table.dataTable>tbody>tr>th,table.dataTable>tbody>tr>td{padding:8px 10px}table.dataTable.row-border>tbody>tr>*,table.dataTable.display>tbody>tr>*{border-top:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.row-border>tbody>tr:first-child>*,table.dataTable.display>tbody>tr:first-child>*{border-top:none}table.dataTable.row-border>tbody>tr.selected+tr.selected>td,table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:rgba(13, 110, 253, 0.65);border-top-color:rgba(var(--dt-row-selected), 0.65)}table.dataTable.cell-border>tbody>tr>*{border-top:1px solid rgba(0, 0, 0, 0.15);border-right:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border>tbody>tr>*:first-child{border-left:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border>tbody>tr:first-child>*{border-top:1px solid rgba(0, 0, 0, 0.3)}table.dataTable.stripe>tbody>tr:nth-child(odd)>*,table.dataTable.display>tbody>tr:nth-child(odd)>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.023);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe), var(--dt-row-stripe-alpha))}table.dataTable.stripe>tbody>tr:nth-child(odd).selected>*,table.dataTable.display>tbody>tr:nth-child(odd).selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), var(--dt-row-selected-stripe-alpha))}table.dataTable.hover>tbody>tr:hover>*,table.dataTable.display>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.035);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), var(--dt-row-hover-alpha))}table.dataTable.hover>tbody>tr.selected:hover>*,table.dataTable.display>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd !important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 1) !important}table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3,table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.019);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), var(--dt-column-ordering-alpha))}table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3,table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), var(--dt-row-selected-column-ordering-alpha))}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.054);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha)))}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.047);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha) - 0.007))}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.039);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha) - 0.015))}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.954);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha)))}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.947);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha) - 0.007))}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.939);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha) - 0.015))}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.082);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha) + var(--dt-row-hover-alpha)))}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.074);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha) + var(--dt-row-hover-alpha) - 0.007))}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.062);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), calc(var(--dt-row-stripe-alpha) + var(--dt-column-ordering-alpha) + var(--dt-row-hover-alpha) - 0.015))}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.982);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha)))}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.974);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha) + var(--dt-row-hover-alpha) - 0.007))}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.962);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), calc(var(--dt-row-selected-stripe-alpha) + var(--dt-column-ordering-alpha) + var(--dt-row-hover-alpha) - 0.015))}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}div.dt-container div.dt-layout-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin:.75em 0}div.dt-container div.dt-layout-row div.dt-layout-cell{display:flex;justify-content:space-between;align-items:center}div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-start{justify-content:flex-start;margin-right:auto}div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-end{justify-content:flex-end;margin-left:auto}div.dt-container div.dt-layout-row div.dt-layout-cell:empty{display:none}@media screen and (max-width: 767px){div.dt-container div.dt-layout-row:not(.dt-layout-table){display:block}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell{display:block;text-align:center}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell>*{margin:.5em 0}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-start{margin-right:0}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-end{margin-left:0}}div.dt-container div.dt-layout-start>*:not(:last-child){margin-right:1em}div.dt-container div.dt-layout-end>*:not(:first-child){margin-left:1em}div.dt-container div.dt-layout-full{width:100%}div.dt-container div.dt-layout-full>*:only-child{margin-left:auto;margin-right:auto}div.dt-container div.dt-layout-table>div{display:block !important}@media screen and (max-width: 767px){div.dt-container div.dt-layout-start>*:not(:last-child){margin-right:0}div.dt-container div.dt-layout-end>*:not(:first-child){margin-left:0}}div.dt-container{position:relative;clear:both}div.dt-container .dt-search input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit;margin-left:3px}div.dt-container .dt-input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit}div.dt-container select.dt-input{padding:4px}div.dt-container .dt-paging .dt-paging-button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;color:inherit !important;border:1px solid transparent;border-radius:2px;background:transparent}div.dt-container .dt-paging .dt-paging-button.current,div.dt-container .dt-paging .dt-paging-button.current:hover{color:inherit !important;border:1px solid rgba(0, 0, 0, 0.3);background-color:rgba(0, 0, 0, 0.05);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(229.5, 229.5, 229.5, 0.05)), color-stop(100%, rgba(0, 0, 0, 0.05)));background:-webkit-linear-gradient(top, rgba(229.5, 229.5, 229.5, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-moz-linear-gradient(top, rgba(229.5, 229.5, 229.5, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-ms-linear-gradient(top, rgba(229.5, 229.5, 229.5, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-o-linear-gradient(top, rgba(229.5, 229.5, 229.5, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:linear-gradient(to bottom, rgba(229.5, 229.5, 229.5, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%)}div.dt-container .dt-paging .dt-paging-button.disabled,div.dt-container .dt-paging .dt-paging-button.disabled:hover,div.dt-container .dt-paging .dt-paging-button.disabled:active{cursor:default;color:rgba(0, 0, 0, 0.5) !important;border:1px solid transparent;background:transparent;box-shadow:none}div.dt-container .dt-paging .dt-paging-button:hover{color:white !important;border:1px solid #111;background-color:#111;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(88.4, 88.4, 88.4)), color-stop(100%, #111));background:-webkit-linear-gradient(top, rgb(88.4, 88.4, 88.4) 0%, #111 100%);background:-moz-linear-gradient(top, rgb(88.4, 88.4, 88.4) 0%, #111 100%);background:-ms-linear-gradient(top, rgb(88.4, 88.4, 88.4) 0%, #111 100%);background:-o-linear-gradient(top, rgb(88.4, 88.4, 88.4) 0%, #111 100%);background:linear-gradient(to bottom, rgb(88.4, 88.4, 88.4) 0%, #111 100%)}div.dt-container .dt-paging .dt-paging-button:active{outline:none;background-color:rgb(11.9, 11.9, 11.9);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(42.5, 42.5, 42.5)), color-stop(100%, rgb(11.9, 11.9, 11.9)));background:-webkit-linear-gradient(top, rgb(42.5, 42.5, 42.5) 0%, rgb(11.9, 11.9, 11.9) 100%);background:-moz-linear-gradient(top, rgb(42.5, 42.5, 42.5) 0%, rgb(11.9, 11.9, 11.9) 100%);background:-ms-linear-gradient(top, rgb(42.5, 42.5, 42.5) 0%, rgb(11.9, 11.9, 11.9) 100%);background:-o-linear-gradient(top, rgb(42.5, 42.5, 42.5) 0%, rgb(11.9, 11.9, 11.9) 100%);background:linear-gradient(to bottom, rgb(42.5, 42.5, 42.5) 0%, rgb(11.9, 11.9, 11.9) 100%);box-shadow:inset 0 0 3px #111}div.dt-container .dt-paging .ellipsis{padding:0 1em}div.dt-container .dt-length,div.dt-container .dt-search,div.dt-container .dt-info,div.dt-container .dt-processing,div.dt-container .dt-paging{color:inherit}div.dt-container .dataTables_scroll{clear:both}div.dt-container .dataTables_scroll div.dt-scroll-body{-webkit-overflow-scrolling:touch}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td{vertical-align:middle}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}div.dt-container.dt-empty-footer tbody>tr:last-child>*{border-bottom:1px solid rgba(0, 0, 0, 0.3)}div.dt-container.dt-empty-footer .dt-scroll-body{border-bottom:1px solid rgba(0, 0, 0, 0.3)}div.dt-container.dt-empty-footer .dt-scroll-body tbody>tr:last-child>*{border-bottom:none}html.dark{--dt-row-hover: 255, 255, 255;--dt-row-stripe: 255, 255, 255;--dt-column-ordering: 255, 255, 255}html.dark table.dataTable>thead>tr>th,html.dark table.dataTable>thead>tr>td{border-bottom:1px solid rgb(89, 91, 94)}html.dark table.dataTable>thead>tr>th:active,html.dark table.dataTable>thead>tr>td:active{outline:none}html.dark table.dataTable>tfoot>tr>th,html.dark table.dataTable>tfoot>tr>td{border-top:1px solid rgb(89, 91, 94)}html.dark table.dataTable.row-border>tbody>tr>*,html.dark table.dataTable.display>tbody>tr>*{border-top:1px solid rgb(64, 67, 70)}html.dark table.dataTable.row-border>tbody>tr:first-child>*,html.dark table.dataTable.display>tbody>tr:first-child>*{border-top:none}html.dark table.dataTable.row-border>tbody>tr.selected+tr.selected>td,html.dark table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:rgba(13, 110, 253, 0.65);border-top-color:rgba(var(--dt-row-selected), 0.65)}html.dark table.dataTable.cell-border>tbody>tr>th,html.dark table.dataTable.cell-border>tbody>tr>td{border-top:1px solid rgb(64, 67, 70);border-right:1px solid rgb(64, 67, 70)}html.dark table.dataTable.cell-border>tbody>tr>th:first-child,html.dark table.dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid rgb(64, 67, 70)}html.dark .dt-container.dt-empty-footer table.dataTable{border-bottom:1px solid rgb(89, 91, 94)}html.dark .dt-container .dt-search input,html.dark .dt-container .dt-length select{border:1px solid rgba(255, 255, 255, 0.2);background-color:var(--dt-html-background)}html.dark .dt-container .dt-paging .dt-paging-button.current,html.dark .dt-container .dt-paging .dt-paging-button.current:hover{border:1px solid rgb(89, 91, 94);background:rgba(255, 255, 255, 0.15)}html.dark .dt-container .dt-paging .dt-paging-button.disabled,html.dark .dt-container .dt-paging .dt-paging-button.disabled:hover,html.dark .dt-container .dt-paging .dt-paging-button.disabled:active{color:#666 !important}html.dark .dt-container .dt-paging .dt-paging-button:hover{border:1px solid rgb(53, 53, 53);background:rgb(53, 53, 53)}html.dark .dt-container .dt-paging .dt-paging-button:active{background:rgb(58.1, 58.1, 58.1)}*[dir=rtl] table.dataTable thead th,*[dir=rtl] table.dataTable thead td,*[dir=rtl] table.dataTable tfoot th,*[dir=rtl] table.dataTable tfoot td{text-align:right}*[dir=rtl] table.dataTable th.dt-type-numeric,*[dir=rtl] table.dataTable th.dt-type-date,*[dir=rtl] table.dataTable td.dt-type-numeric,*[dir=rtl] table.dataTable td.dt-type-date{text-align:left}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-start{text-align:right}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-end{text-align:left}*[dir=rtl] div.dt-container div.dt-search input{margin:0 3px 0 0}

/* R44 — Backup Destination Dialog Polish */
.r44-backup-destination-modal{padding:22px!important;background:rgba(12,18,30,.55)!important;backdrop-filter:blur(10px) saturate(.9)!important}
.r44-backup-destination-dialog{width:min(900px,100%)!important;max-width:900px!important;max-height:min(690px,calc(100vh - 44px))!important;padding:0!important;overflow:hidden!important;border:1px solid color-mix(in srgb,var(--color-border) 84%,transparent)!important;border-radius:22px!important;background:var(--color-bg-surface)!important;box-shadow:0 32px 100px rgba(10,18,32,.30),0 8px 24px rgba(10,18,32,.10)!important}
.r44-destination-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 18px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 52%,var(--color-bg-surface)))}
.r44-destination-heading{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;min-width:0}
.r44-destination-symbol{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--brand-primary-light);color:var(--brand-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary) 10%,transparent)}
.r44-destination-symbol .ui-icon{width:20px;height:20px}.r44-destination-heading .dialog-eyebrow{display:block;margin:0 0 3px!important;font-size:8px!important}.r44-destination-heading h2{margin:0!important;font-size:20px!important;line-height:1.15!important;letter-spacing:-.025em}.r44-destination-heading p{max-width:650px;margin:5px 0 0!important;color:var(--color-text-tertiary);font-size:9.5px!important;line-height:1.45!important}
.r44-destination-close{position:static!important;flex:0 0 auto;margin-top:1px}
.r44-destination-form{display:block!important}.r44-destination-body{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;padding:18px 22px 20px;overflow:auto;max-height:500px}
.r44-destination-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.r44-field-card{display:block!important;margin:0!important;font-size:9px!important;font-weight:800!important;color:var(--color-text-secondary)!important}.r44-field-card>span:first-child{display:block;margin:0 0 6px}.r44-field-card input{width:100%!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0 12px!important;border:1px solid var(--color-border)!important;border-radius:11px!important;background:var(--color-bg-surface)!important;color:var(--color-text-primary)!important;font-size:10.5px!important;font-weight:650!important;box-shadow:none!important}.r44-field-card input:focus{border-color:color-mix(in srgb,var(--brand-primary) 58%,var(--color-border))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 10%,transparent)!important;outline:0!important}.r44-field-card small{display:block;margin:5px 1px 0!important;color:var(--color-text-tertiary)!important;font-size:7.8px!important;font-weight:650!important;line-height:1.35!important}.r44-path-field{grid-column:1/3}.r44-path-input{position:relative;display:block!important;margin:0!important}.r44-path-input>i{position:absolute;left:11px;top:50%;z-index:2;display:grid;place-items:center;transform:translateY(-50%);color:var(--color-text-tertiary);font-style:normal}.r44-path-input>i .ui-icon{width:14px;height:14px}.r44-path-input input{padding-left:34px!important}
.r44-destination-security{display:flex;flex-direction:column;gap:11px}.r44-security-card{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid color-mix(in srgb,#17b890 18%,var(--color-border));border-radius:13px;background:color-mix(in srgb,#17b890 5%,var(--color-bg-surface))}.r44-security-icon{width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;border-radius:9px;background:color-mix(in srgb,#17b890 12%,var(--color-bg-surface));color:#0c8a6d}.r44-security-icon .ui-icon{width:15px;height:15px}.r44-security-card strong{display:block;font-size:9px}.r44-security-card p{margin:3px 0 0!important;color:var(--color-text-tertiary);font-size:8px;line-height:1.45}
.r44-active-control{min-height:58px;display:grid!important;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:11px 12px!important;border:1px solid var(--color-border)!important;border-radius:13px!important;background:var(--color-bg-subtle)!important;cursor:pointer}.r44-active-control>input{position:absolute!important;opacity:0!important;pointer-events:none!important}.r44-toggle{grid-row:1/3;width:36px;height:22px;position:relative;border-radius:999px;background:#cfd6df;transition:background .14s ease}.r44-toggle i{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.22);transition:transform .14s ease}.r44-active-control>input:checked+.r44-toggle{background:var(--brand-primary)}.r44-active-control>input:checked+.r44-toggle i{transform:translateX(14px)}.r44-active-copy{display:block!important;min-width:0}.r44-active-copy strong{display:block;font-size:9px;color:var(--color-text-primary)}.r44-active-copy small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:7.7px;font-weight:650}
.r44-destination-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:13px 22px 15px!important;background:color-mix(in srgb,var(--color-bg-subtle) 72%,var(--color-bg-surface))!important}.r44-footer-assurance{display:flex;align-items:center;gap:6px;color:#0c8a6d;font-size:8px;font-weight:800}.r44-footer-assurance .ui-icon{width:13px;height:13px}.r44-footer-buttons{display:flex;align-items:center;gap:8px}.r44-footer-buttons .btn{min-width:104px!important;height:40px!important;min-height:40px!important;border-radius:10px!important}.r44-footer-buttons .btn-primary{min-width:132px!important}.r44-footer-buttons .ui-icon{width:14px;height:14px}
@media(max-width:760px){.r44-backup-destination-modal{padding:10px!important}.r44-backup-destination-dialog{max-height:calc(100vh - 20px)!important;border-radius:18px!important}.r44-destination-header{padding:16px 16px 14px}.r44-destination-heading{grid-template-columns:38px minmax(0,1fr);gap:10px}.r44-destination-symbol{width:38px;height:38px;border-radius:11px}.r44-destination-heading p{font-size:8.5px!important}.r44-destination-body{grid-template-columns:1fr;padding:15px 16px;max-height:calc(100vh - 210px)}.r44-destination-fields{grid-template-columns:1fr}.r44-path-field{grid-column:auto}.r44-destination-security{display:grid;grid-template-columns:1fr 1fr}.r44-destination-actions{padding:12px 16px 14px!important}.r44-footer-assurance{display:none}}
@media(max-width:520px){.r44-destination-heading p{display:none}.r44-destination-security{grid-template-columns:1fr}.r44-destination-actions{display:block!important}.r44-footer-buttons{width:100%}.r44-footer-buttons .btn{flex:1!important;min-width:0!important}.r44-destination-body{max-height:calc(100vh - 178px)}}
@media(prefers-reduced-motion:reduce){.r44-toggle,.r44-toggle i{transition:none}}

/* R45 — Backup Reliability & Feedback */
.r45-destination-card{position:relative;overflow:hidden}.r45-destination-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:transparent}.r45-destination-card[data-test-state="testing"]::before{background:var(--brand-primary)}.r45-destination-card[data-test-state="success"]::before{background:#14b887}.r45-destination-card[data-test-state="error"]::before{background:#e65151}
.r45-destination-test-state{display:flex;align-items:center;gap:7px;min-height:29px;margin:12px 0 0;padding:7px 9px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-tertiary);font-size:8px;font-weight:800;letter-spacing:.01em}.r45-test-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--color-text-tertiary);opacity:.45}.r45-destination-test-state.is-testing{border-color:color-mix(in srgb,var(--brand-primary) 20%,var(--color-border));background:color-mix(in srgb,var(--brand-primary) 5%,var(--color-bg-surface));color:var(--brand-primary)}.r45-destination-test-state.is-testing .r45-test-dot{background:var(--brand-primary);opacity:1;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-primary) 10%,transparent);animation:r45-test-pulse 1.15s ease-in-out infinite}.r45-destination-test-state.is-success{border-color:color-mix(in srgb,#14b887 22%,var(--color-border));background:color-mix(in srgb,#14b887 5%,var(--color-bg-surface));color:#0a8b68}.r45-destination-test-state.is-success .r45-test-dot{background:#14b887;opacity:1}.r45-destination-test-state.is-error{border-color:color-mix(in srgb,#e65151 22%,var(--color-border));background:color-mix(in srgb,#e65151 5%,var(--color-bg-surface));color:#c43f3f}.r45-destination-test-state.is-error .r45-test-dot{background:#e65151;opacity:1}
.r45-destination-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;gap:7px!important}.r45-destination-actions>form{margin:0!important}.r45-test-button{height:36px!important;min-height:36px!important;padding:0 11px!important;border:1px solid color-mix(in srgb,var(--brand-primary) 25%,var(--color-border))!important;border-radius:9px!important;background:color-mix(in srgb,var(--brand-primary) 5%,var(--color-bg-surface))!important;color:var(--brand-primary)!important;font-size:8.5px!important;font-weight:850!important}.r45-test-button .ui-icon{width:13px!important;height:13px!important}.r45-test-button.is-busy{cursor:wait!important;opacity:.7}.r45-test-button.is-busy .ui-icon{animation:r45-test-spin 1s linear infinite}
.r45-failure-hero{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:15px;align-items:center;margin:0 0 14px;padding:15px 16px;border:1px solid color-mix(in srgb,#e65151 22%,var(--color-border));border-radius:16px;background:linear-gradient(110deg,color-mix(in srgb,#e65151 7%,var(--color-bg-surface)),var(--color-bg-surface) 52%);box-shadow:0 6px 18px rgba(15,23,42,.04)}.r45-failure-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,#e65151 10%,var(--color-bg-surface));color:#d94a4a}.r45-failure-icon .ui-icon{width:21px;height:21px}.r45-failure-copy{min-width:0}.r45-failure-copy .card-kicker{color:#d94a4a!important}.r45-failure-copy h3{margin:2px 0 4px;font-size:14px;line-height:1.2;letter-spacing:-.02em}.r45-failure-copy p{margin:0;color:var(--color-text-secondary);font-size:10px;font-weight:750;line-height:1.4}.r45-failure-copy small{display:block;margin-top:4px;color:var(--color-text-tertiary);font-size:8.5px;line-height:1.45}.r45-failure-actions{display:flex;align-items:center;gap:8px}.r45-failure-actions>.btn{height:38px!important;min-height:38px!important;padding:0 13px!important;border-radius:10px!important}.r45-tech-detail{position:relative}.r45-tech-detail>summary{height:38px;display:flex;align-items:center;cursor:pointer;list-style:none;padding:0 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:8.5px;font-weight:800;white-space:nowrap}.r45-tech-detail>summary::-webkit-details-marker{display:none}.r45-tech-detail[open]>summary{border-color:color-mix(in srgb,#e65151 20%,var(--color-border))}.r45-tech-detail>div{position:absolute;right:0;top:44px;z-index:10;width:min(330px,80vw);padding:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);box-shadow:0 18px 45px rgba(15,23,42,.14)}.r45-tech-detail>div span{display:block;margin-bottom:5px;color:var(--color-text-tertiary);font-size:7.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.r45-tech-detail code{display:block;padding:8px 9px;border-radius:8px;background:var(--color-bg-subtle);color:#c43f3f;font-size:8px;overflow-wrap:anywhere}
.r45-history-card{overflow:visible!important}.r45-history-table tbody tr{transition:background .12s ease}.r45-history-table tbody tr.r45-run-failed{background:color-mix(in srgb,#e65151 2.7%,var(--color-bg-surface))}.r45-history-table tbody tr.r45-run-failed:hover{background:color-mix(in srgb,#e65151 5%,var(--color-bg-surface))}.r45-archive-cell>span{width:30px!important;height:30px!important;display:grid!important;place-items:center!important;border-radius:9px!important;background:var(--color-bg-subtle)!important}.r45-run-failed .r45-archive-cell>span{background:color-mix(in srgb,#e65151 8%,var(--color-bg-surface))!important;color:#d94a4a!important}.r45-human-error{display:block!important;margin-top:4px!important;max-width:360px;color:var(--color-text-secondary)!important;font-size:8px!important;font-weight:700!important;line-height:1.35!important}.r45-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.r45-row-detail{position:relative}.r45-row-detail>summary{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-surface);cursor:pointer;list-style:none;color:var(--color-text-secondary)}.r45-row-detail>summary::-webkit-details-marker{display:none}.r45-row-detail>summary .ui-icon{width:14px;height:14px}.r45-row-detail>div{position:absolute;right:0;top:40px;z-index:10;width:min(330px,78vw);padding:11px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);box-shadow:0 16px 42px rgba(15,23,42,.14)}.r45-row-detail span{display:block;margin-bottom:5px;color:var(--color-text-tertiary);font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.r45-row-detail code{display:block;padding:7px 8px;border-radius:8px;background:var(--color-bg-subtle);color:#c43f3f;font-size:7.5px;overflow-wrap:anywhere}.r45-row-detail p{margin:7px 1px 0;color:var(--color-text-tertiary);font-size:8px;line-height:1.4}
.alert.alert-danger{max-width:calc(100% - 40px);margin:14px auto!important;padding:12px 15px!important;border:1px solid color-mix(in srgb,#e65151 22%,var(--color-border))!important;border-left:4px solid #e65151!important;border-radius:12px!important;background:color-mix(in srgb,#e65151 5%,var(--color-bg-surface))!important;color:#b83d3d!important;box-shadow:0 6px 18px rgba(15,23,42,.035)!important;font-weight:750!important}
@keyframes r45-test-spin{to{transform:rotate(360deg)}}@keyframes r45-test-pulse{0%,100%{transform:scale(.8);opacity:.7}50%{transform:scale(1);opacity:1}}
@media(max-width:860px){.r45-failure-hero{grid-template-columns:44px minmax(0,1fr)}.r45-failure-icon{width:44px;height:44px}.r45-failure-actions{grid-column:1/3;justify-content:flex-end}.r45-destination-actions{grid-template-columns:1fr auto auto}}
@media(max-width:560px){.r45-failure-hero{grid-template-columns:1fr;text-align:left}.r45-failure-actions{grid-column:auto;flex-wrap:wrap;justify-content:flex-start}.r45-tech-detail>div{left:0;right:auto}.r45-destination-actions{grid-template-columns:1fr auto}.r45-destination-actions>.btn.secondary{grid-column:1/3}.r45-test-button span{display:inline}.alert.alert-danger{max-width:calc(100% - 20px)}}
@media(prefers-reduced-motion:reduce){.r45-destination-test-state.is-testing .r45-test-dot,.r45-test-button.is-busy .ui-icon{animation:none}.r45-history-table tbody tr{transition:none}}
/* R45 destination workspace density */
.backup-panel[data-backup-panel="destinations"] .r43-destination-grid{grid-template-columns:repeat(2,minmax(320px,1fr));gap:14px;max-width:1320px}.r45-destination-card{padding:18px!important;background:linear-gradient(145deg,var(--color-bg-surface),color-mix(in srgb,var(--brand-primary) 1.8%,var(--color-bg-surface)))!important}.r45-destination-card .r43-provider-mark{width:42px;height:42px;border-radius:12px}.r45-destination-card .r43-destination-copy{padding:15px 0 12px}.r45-destination-card .r43-destination-copy h3{font-size:14px;letter-spacing:-.015em}.r45-destination-card .r43-destination-copy>span{font-size:9.5px}.r45-destination-card .r43-destination-copy code{margin-top:10px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent)}
@media(max-width:900px){.backup-panel[data-backup-panel="destinations"] .r43-destination-grid{grid-template-columns:1fr;max-width:none}}

/* ============================================================
   R45 R2 — Deployment stage identity / semantic progress cards
   ============================================================ */
.update-release-workspace .deployment-stages-v2{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;padding:0!important;margin:0!important;align-self:center}
.update-release-workspace .deployment-stages-v2 li{--stage-accent:var(--color-text-tertiary);position:relative!important;display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;min-width:0!important;min-height:50px!important;padding:7px 8px!important;border:1px solid var(--color-border)!important;border-radius:11px!important;background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-bg-subtle) 38%,var(--color-bg-surface)))!important;text-align:start!important;color:var(--color-text-secondary)!important;overflow:visible!important;box-shadow:0 3px 10px rgba(15,23,42,.025)!important}
.update-release-workspace .deployment-stages-v2 li.stage-upload{--stage-accent:#7656e8}.update-release-workspace .deployment-stages-v2 li.stage-validation{--stage-accent:#0e9f8f}.update-release-workspace .deployment-stages-v2 li.stage-install{--stage-accent:var(--brand-primary)}.update-release-workspace .deployment-stages-v2 li.stage-health{--stage-accent:#3b82f6}
.update-release-workspace .deployment-stages-v2 li:before{content:""!important;position:absolute!important;z-index:0!important;top:50%!important;inset-inline-start:100%!important;width:8px!important;height:2px!important;transform:translateY(-50%)!important;background:var(--color-border)!important}
.update-release-workspace .deployment-stages-v2 li:last-child:before{display:none!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-icon{position:relative!important;z-index:1!important;width:34px!important;height:34px!important;margin:0!important;border:1px solid color-mix(in srgb,var(--stage-accent) 26%,var(--color-border))!important;border-radius:10px!important;background:color-mix(in srgb,var(--stage-accent) 9%,var(--color-bg-surface))!important;color:var(--stage-accent)!important;box-shadow:none!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-icon>.ui-icon{width:16px!important;height:16px!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-copy{min-width:0;display:grid;gap:1px;line-height:1.15}
.update-release-workspace .deployment-stages-v2 .deployment-stage-copy em{font-size:8.5px!important;font-style:normal!important;font-weight:800!important;color:var(--color-text-primary)!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.update-release-workspace .deployment-stages-v2 .deployment-stage-copy small{margin:0!important;font-size:7.5px!important;font-weight:700!important;color:var(--color-text-tertiary)!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.update-release-workspace .deployment-stages-v2 .deployment-stage-complete{position:absolute!important;inset-block-end:-5px!important;inset-inline-end:-5px!important;width:15px!important;height:15px!important;display:grid!important;place-items:center!important;border:2px solid var(--color-bg-surface)!important;border-radius:999px!important;background:var(--color-success)!important;color:#fff!important;box-shadow:0 2px 5px rgba(15,23,42,.15)!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-complete .ui-icon{width:8px!important;height:8px!important}
.update-release-workspace .deployment-stages-v2 li.done{border-color:color-mix(in srgb,var(--stage-accent) 22%,var(--color-border))!important}.update-release-workspace .deployment-stages-v2 li.done:before{background:color-mix(in srgb,var(--color-success) 52%,var(--color-border))!important}.update-release-workspace .deployment-stages-v2 li.done .deployment-stage-copy small{color:var(--color-success)!important}
.update-release-workspace .deployment-stages-v2 li.current{border-color:color-mix(in srgb,var(--stage-accent) 52%,var(--color-border))!important;background:color-mix(in srgb,var(--stage-accent) 5%,var(--color-bg-surface))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--stage-accent) 10%,transparent),0 5px 16px rgba(15,23,42,.045)!important}.update-release-workspace .deployment-stages-v2 li.current .deployment-stage-icon{box-shadow:0 0 0 3px color-mix(in srgb,var(--stage-accent) 10%,transparent)!important}.update-release-workspace .deployment-stages-v2 li.current .deployment-stage-copy small{color:var(--stage-accent)!important}
.update-release-workspace .deployment-stages-v2 li.failed{--stage-accent:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 36%,var(--color-border))!important;background:color-mix(in srgb,var(--color-danger) 4%,var(--color-bg-surface))!important}.update-release-workspace .deployment-stages-v2 li.failed:before{background:var(--color-border)!important}.update-release-workspace .deployment-stages-v2 li.failed .deployment-stage-copy small{color:var(--color-danger)!important}
.update-release-workspace .deployment-stages-v2 li.pending{opacity:.72}.update-release-workspace .deployment-stages-v2 li.pending .deployment-stage-icon{filter:saturate(.58)}
@media(max-width:1180px){.update-release-workspace .deployment-stages-v2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.update-release-workspace .deployment-stages-v2 li:nth-child(2):before{display:none!important}}
@media(max-width:680px){.update-release-workspace .deployment-stages-v2{grid-template-columns:1fr!important}.update-release-workspace .deployment-stages-v2 li:before{display:none!important}.update-release-workspace .deployment-stages-v2 li{min-height:46px!important}}

/* ============================================================
   R45 R3 — Premium notification system + stage identity polish
   ============================================================ */
.toast-container{right:22px!important;bottom:22px!important;top:auto!important;width:min(420px,calc(100vw - 32px))!important;gap:10px!important;align-items:stretch!important}
.toast.sf-toast{--toast-accent:var(--color-info);position:relative!important;display:grid!important;grid-template-columns:42px minmax(0,1fr) 28px!important;align-items:start!important;gap:11px!important;width:100%!important;max-width:none!important;min-width:0!important;padding:13px 13px 15px!important;overflow:hidden!important;border:1px solid color-mix(in srgb,var(--toast-accent) 18%,var(--color-border))!important;border-radius:14px!important;background:color-mix(in srgb,var(--color-bg-surface) 96%,var(--toast-accent) 4%)!important;box-shadow:0 18px 46px rgba(15,23,42,.14),0 2px 8px rgba(15,23,42,.05)!important;backdrop-filter:blur(14px)!important;animation:sf-toast-in .26s cubic-bezier(.22,1,.36,1)!important;transform-origin:100% 100%!important}
.toast.sf-toast.success{--toast-accent:#12a878}.toast.sf-toast.error{--toast-accent:#dc4c5a}.toast.sf-toast.warning{--toast-accent:#d89218}.toast.sf-toast.info{--toast-accent:#3b82f6}
.toast.sf-toast:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--toast-accent)}
.sf-toast-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--toast-accent) 22%,var(--color-border));border-radius:12px;background:color-mix(in srgb,var(--toast-accent) 10%,var(--color-bg-surface));color:var(--toast-accent)}
.sf-toast-icon svg{width:20px;height:20px}.sf-toast-content{min-width:0;padding-top:1px}.sf-toast-title{display:block!important;margin:0 0 3px!important;color:var(--color-text-primary)!important;font-size:12px!important;font-weight:850!important;line-height:1.2!important;letter-spacing:-.01em!important}.sf-toast-message{display:block!important;margin:0!important;color:var(--color-text-secondary)!important;font-size:9.5px!important;font-weight:600!important;line-height:1.45!important;overflow-wrap:anywhere!important}.sf-toast-close{width:28px;height:28px;display:grid;place-items:center;margin:-2px -2px 0 0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--color-text-tertiary);cursor:pointer}.sf-toast-close:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.sf-toast-close svg{width:15px;height:15px}
.sf-toast-progress{position:absolute;inset-inline:3px 0;inset-block-end:0;height:2px;transform-origin:0 50%;background:color-mix(in srgb,var(--toast-accent) 72%,transparent);animation:sf-toast-progress var(--toast-duration,5000ms) linear forwards}
.sf-toast.is-leaving{animation:sf-toast-out .18s ease forwards!important}.sf-toast.is-pulse{animation:sf-toast-pulse .28s ease!important}
@keyframes sf-toast-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes sf-toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes sf-toast-progress{from{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes sf-toast-pulse{50%{transform:scale(1.015)}}

.update-release-workspace .deployment-stages-v2{gap:10px!important}
.update-release-workspace .deployment-stages-v2 li{min-height:58px!important;padding:9px 10px!important;border-radius:13px!important;background:var(--color-bg-surface)!important;box-shadow:0 5px 14px rgba(15,23,42,.035)!important}
.update-release-workspace .deployment-stages-v2 li:after{content:"";position:absolute;inset-inline:9px;inset-block-start:0;height:2px;border-radius:0 0 4px 4px;background:color-mix(in srgb,var(--stage-accent) 72%,transparent);opacity:.58}
.update-release-workspace .deployment-stages-v2 .deployment-stage-icon{width:38px!important;height:38px!important;border-radius:11px!important;background:color-mix(in srgb,var(--stage-accent) 8%,var(--color-bg-surface))!important;color:var(--stage-accent)!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-icon>.ui-icon{width:18px!important;height:18px!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-copy em{font-size:9px!important}.update-release-workspace .deployment-stages-v2 .deployment-stage-copy small{font-size:7.7px!important}
.update-release-workspace .deployment-stages-v2 .deployment-stage-complete{background:var(--stage-accent)!important;border-color:var(--color-bg-surface)!important;color:#fff!important}
.update-release-workspace .deployment-stages-v2 li.done{border-color:color-mix(in srgb,var(--stage-accent) 24%,var(--color-border))!important}.update-release-workspace .deployment-stages-v2 li.done:before{background:color-mix(in srgb,var(--stage-accent) 34%,var(--color-border))!important}.update-release-workspace .deployment-stages-v2 li.done .deployment-stage-copy small{color:var(--stage-accent)!important}
.update-release-workspace .deployment-stages-v2 li.pending{opacity:.56!important}.update-release-workspace .deployment-stages-v2 li.pending:after{opacity:.2!important}.update-release-workspace .deployment-stages-v2 li.current{opacity:1!important;transform:translateY(-1px)}
.upload-intake-card .deployment-card-head{align-items:center!important}.upload-intake-card .upload-intake-release-icon{color:#7656e8!important;background:color-mix(in srgb,#7656e8 9%,var(--color-bg-surface))!important;border-color:color-mix(in srgb,#7656e8 22%,var(--color-border))!important}.upload-intake-card .upload-intake-stages{margin-top:2px!important}
@media(max-width:640px){.toast-container{right:12px!important;bottom:12px!important;width:calc(100vw - 24px)!important}.toast.sf-toast{grid-template-columns:38px minmax(0,1fr) 26px!important}.sf-toast-icon{width:38px;height:38px}.update-release-workspace .deployment-stages-v2 li{min-height:52px!important}}
@media(prefers-reduced-motion:reduce){.toast.sf-toast,.sf-toast-progress,.sf-toast.is-leaving,.sf-toast.is-pulse{animation:none!important}.update-release-workspace .deployment-stages-v2 li.current{transform:none!important}}

/* KIOSK R48 — Backup history premium table header */
.r45-history-card:has(.r48-history-table){overflow:hidden;border-color:color-mix(in srgb,var(--brand-primary) 9%,var(--color-border));box-shadow:0 12px 34px rgba(23,32,51,.055)}
.r48-history-table{border-collapse:separate;border-spacing:0;min-width:980px}
.r48-history-table .r48-history-thead th{height:54px;padding:0 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 4%,var(--color-bg-subtle)) 0%,var(--color-bg-subtle) 100%);color:var(--color-text-secondary);border-bottom:1px solid color-mix(in srgb,var(--brand-primary) 15%,var(--color-border));font-size:10px;font-weight:800;letter-spacing:.095em;text-transform:uppercase;cursor:default;user-select:none;vertical-align:middle}
.r48-history-table .r48-history-thead th:first-child{padding-left:28px;border-top-left-radius:16px}
.r48-history-table .r48-history-thead th:last-child{padding-right:28px;border-top-right-radius:16px;text-align:right}
.r48-history-table .r48-history-thead th:hover{color:var(--color-text-secondary)}
.r48-history-table .r48-th-label{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.r48-history-table .r48-th-label>i{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--brand-primary) 9%,var(--color-bg-subtle));color:var(--brand-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary) 10%,transparent)}
.r48-history-table .r48-th-label>i .ui-icon{width:13px;height:13px;stroke-width:2.1}
.r48-history-table .r48-actions-col{width:144px}
.r48-history-table .r48-actions-col .r48-th-label{justify-content:flex-end;width:100%}
.r48-history-table tbody td{border-bottom:1px solid color-mix(in srgb,var(--color-border) 86%,transparent)}
.r48-history-table tbody tr:last-child td{border-bottom:0}
[dir="rtl"] .r48-history-table .r48-history-thead th:first-child{padding-left:18px;padding-right:28px;border-top-left-radius:0;border-top-right-radius:16px}
[dir="rtl"] .r48-history-table .r48-history-thead th:last-child{padding-right:18px;padding-left:28px;border-top-right-radius:0;border-top-left-radius:16px;text-align:left}
@media(max-width:900px){.r48-history-table .r48-history-thead th{height:48px;padding-inline:14px}.r48-history-table .r48-th-label{gap:7px}.r48-history-table .r48-th-label>i{width:23px;height:23px}.r48-history-table .r48-history-thead th:first-child{padding-left:20px}.r48-history-table .r48-history-thead th:last-child{padding-right:20px}}

/* ============================================================
   R52 — PRODISPLAY BRANDING + LOGO MANAGER
   ============================================================ */
.brand-asset-dark{display:none!important}
[data-theme="dark"] .brand-asset-light{display:none!important}
[data-theme="dark"] .brand-asset-dark{display:block!important}
.sidebar-brand-icon:has(.sidebar-brand-mark){background:transparent!important;box-shadow:none!important;padding:0!important;overflow:hidden}
.sidebar-brand-mark{display:block;width:34px;height:34px;object-fit:contain;border-radius:9px}
.sidebar-brand-name:has(.sidebar-brand-logo){display:flex;align-items:center;min-width:0}
.sidebar-brand-logo{display:block;max-width:150px;max-height:36px;width:auto;height:auto;object-fit:contain;object-position:left center}
[dir="rtl"] .sidebar-brand-logo{object-position:right center}
html.kiosk-sidebar-mini-pref .sidebar-brand-name:has(.sidebar-brand-logo),.app-shell.sidebar-mini .sidebar-brand-name:has(.sidebar-brand-logo){display:none}
.branding-page-head{margin-bottom:20px}
.branding-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.branding-section-head h2{margin:3px 0 5px}.branding-section-head p{margin:0;color:var(--color-text-secondary);max-width:760px}
.branding-live-pill,.branding-format-pill,.branding-slot-chip{display:inline-flex;align-items:center;gap:7px;flex:none;padding:7px 10px;border-radius:999px;background:var(--brand-primary-light);color:var(--brand-primary);font-size:11px;font-weight:800}
.branding-live-pill svg{width:14px;height:14px}
.branding-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.branding-swatch{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg-subtle)}
.branding-swatch i{display:block;flex:0 0 48px;width:48px;height:48px;border-radius:12px;background:var(--branding-swatch);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 5px 14px rgba(10,33,85,.10)}
.branding-swatch div{display:grid;gap:2px}.branding-swatch strong{font-size:13px}.branding-swatch code{font-size:12px;color:var(--color-text-secondary)}
.branding-manager{margin-top:24px}.branding-manager-head{padding:0 2px}.branding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.branding-asset-card{margin:0;padding:20px;display:grid;gap:15px;min-width:0}.branding-asset-card:last-child:nth-child(odd){grid-column:1/-1}
.branding-asset-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.branding-asset-head h3{margin:0 0 4px;font-size:15px}.branding-asset-head p{margin:0;color:var(--color-text-secondary);font-size:12px;max-width:460px}
.branding-preview{display:grid;place-items:center;min-height:136px;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(135deg,#fff 0 50%,#EFF2F7 50% 100%);overflow:hidden}
[data-theme="dark"] .branding-preview{background:linear-gradient(135deg,#101F3D 0 50%,#202A4F 50% 100%)}
.branding-preview.is-favicon{min-height:112px}.branding-preview img{display:block;max-width:min(340px,90%);max-height:92px;width:auto;height:auto;object-fit:contain}.branding-preview.is-favicon img{max-width:72px;max-height:72px}
.branding-preview-empty{display:grid;place-items:center;gap:7px;color:var(--color-text-tertiary);font-size:12px;text-align:center}.branding-preview-empty svg{width:28px;height:28px}
.branding-file-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--color-text-tertiary);font-size:11px}.branding-file-meta span+span:before{content:"·";margin-inline-end:12px}
.branding-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.branding-file-picker{position:relative;display:block;min-width:0}.branding-file-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.branding-file-picker>span{height:100%;min-height:46px;display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px dashed var(--color-border-strong);border-radius:10px;background:var(--color-bg-subtle);overflow:hidden}.branding-file-picker svg{flex:none;width:16px;height:16px;color:var(--brand-primary)}.branding-file-picker b{font-size:12px;white-space:nowrap}.branding-file-picker small{margin-inline-start:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}.branding-file-picker:focus-within>span{border-color:var(--brand-primary);box-shadow:var(--shadow-focus)}
.branding-upload-form .btn{min-width:126px}.branding-upload-form.is-loading{opacity:.72}.branding-delete-form{display:flex;justify-content:flex-end;margin-top:-4px}
@media(max-width:900px){.branding-grid{grid-template-columns:minmax(0,1fr)}.branding-asset-card:last-child:nth-child(odd){grid-column:auto}.branding-swatches{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.branding-section-head,.branding-asset-head{flex-direction:column}.branding-upload-form{grid-template-columns:minmax(0,1fr)}.branding-upload-form .btn{width:100%}.branding-file-picker small{max-width:120px}}

/* ============================================================
   R61 — UI / I18N / MEDIA INTEGRITY CLOSURE
   ============================================================ */
.foundation-page-loader{position:fixed;inset:0 0 auto;z-index:220;display:none;height:3px;pointer-events:none;user-select:none;background:transparent;overflow:hidden}
html.kiosk-preboot .foundation-page-loader,html.foundation-page-transition .foundation-page-loader{display:block}
.foundation-page-loader-orbit{position:absolute!important;inset:0!important;width:auto!important;height:auto!important;display:block!important;background:color-mix(in srgb,var(--brand-primary,#ba1f64) 12%,transparent);overflow:hidden}
.foundation-page-loader-orbit i{display:none!important}
.foundation-page-loader-orbit i:first-child{display:block!important;position:static!important;margin:0!important;height:100%!important;width:34%!important;border-radius:999px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-primary,#ba1f64) 45%,transparent),var(--brand-primary,#ba1f64),color-mix(in srgb,var(--brand-primary,#ba1f64) 68%,#fff))!important;box-shadow:0 0 14px color-mix(in srgb,var(--brand-primary,#ba1f64) 38%,transparent)!important;transform-origin:center!important;animation:r62-page-progress 1.05s cubic-bezier(.4,0,.2,1) infinite!important}
.foundation-page-loader-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes r62-page-progress{0%{transform:translateX(-115%);width:28%}45%{width:48%}100%{transform:translateX(315%);width:34%}}
@media(prefers-reduced-motion:reduce){.foundation-page-loader-orbit i:first-child{animation-duration:2.2s!important}}

.commands-send-card{position:relative;z-index:7;overflow:visible!important}.commands-send-card>.card-body,.commands-send-form,.commands-field{overflow:visible!important}.commands-card-head{display:flex;align-items:center;min-height:56px;padding:0 20px;border-bottom:1px solid var(--color-border)}.commands-card-head h3{margin:0;font-size:14px;font-weight:800;color:var(--color-text-primary)}
.commands-send-form{display:grid;grid-template-columns:minmax(150px,.72fr) minmax(210px,1.05fr) minmax(250px,1.2fr) minmax(120px,.55fr) auto;gap:14px;align-items:end}.commands-field{min-width:0;margin:0}.commands-field[hidden]{display:none!important}.commands-send-action{align-self:end}.commands-send-action .btn{min-height:42px;white-space:nowrap}.commands-send-icon{margin-right:6px}.commands-field-hint{margin:5px 0 0;color:var(--color-text-tertiary);font-size:9px}.commands-send-card .kiosk-select2.is-open{z-index:165}.commands-send-card .kiosk-select2 .select2-dropdown{z-index:166;max-height:280px;overflow:auto}.commands-send-card .kiosk-select2 .select2-search[hidden]{display:none!important}.commands-history-card{position:relative;z-index:1}.commands-history-body{padding-top:14px}.commands-status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;font-size:9px;font-weight:800}.commands-status-warning{background:color-mix(in srgb,#f59e0b 12%,var(--color-bg-surface));color:#a16207}.commands-status-info{background:color-mix(in srgb,#3b82f6 11%,var(--color-bg-surface));color:#1d4ed8}.commands-status-success{background:color-mix(in srgb,#10b981 12%,var(--color-bg-surface));color:#047857}.commands-status-danger{background:color-mix(in srgb,#ef4444 10%,var(--color-bg-surface));color:#b91c1c}.commands-status-neutral{background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.commands-muted,.commands-action-empty{color:var(--color-text-tertiary)}.commands-type-param{color:var(--color-text-tertiary);font-size:.9em}.commands-cancel-action{display:inline-grid;place-items:center}.commands-pagination-wrap{gap:8px}
@media(max-width:1250px){.commands-send-form{grid-template-columns:repeat(2,minmax(0,1fr))}.commands-send-action{grid-column:2;justify-self:end}}
@media(max-width:680px){.commands-send-form{grid-template-columns:1fr}.commands-send-action{grid-column:auto;justify-self:stretch}.commands-send-action .btn{width:100%}.commands-card-head{padding:0 16px}}

.library-thumb-missing{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:color-mix(in srgb,#f59e0b 7%,var(--color-bg-subtle))!important;color:#a16207!important}.library-thumb-missing .ui-icon{width:19px;height:19px}.library-thumb-missing small{max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;font-weight:800}.library-row-thumb.library-thumb-missing small{display:none}.library-preview-missing{border:1px dashed color-mix(in srgb,#f59e0b 45%,var(--color-border));background:color-mix(in srgb,#f59e0b 6%,var(--color-bg-surface));color:#a16207}

/* R61 — ADMIN KIOSK EVENT LOG CONTRACT */
.admin-kiosk-logs-head{align-items:flex-end;gap:var(--space-4)}
.admin-kiosk-logs-head .page-header-subtitle{margin-top:6px;color:var(--color-text-secondary);font-size:13px}
.admin-kiosk-logs-count{min-height:20px;color:var(--color-text-tertiary);font-size:12px;font-weight:600;text-align:end}
.admin-kiosk-logs-filter-card{position:relative;z-index:5;overflow:visible!important;margin-bottom:var(--space-4)}
.admin-kiosk-logs-filter-card .card-body{overflow:visible!important;padding:var(--space-4) var(--space-5)}
.admin-kiosk-logs-filters{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) minmax(150px,.75fr) minmax(150px,.75fr) minmax(150px,.75fr) minmax(150px,.75fr);gap:var(--space-3);align-items:end}
.admin-kiosk-logs-filter{margin:0;min-width:0}
.admin-kiosk-logs-filter .form-label{font-size:12px}
.admin-kiosk-logs-filter-actions{display:flex;gap:var(--space-2);align-items:center;grid-column:1/-1;justify-content:flex-end;padding-top:2px}
.admin-kiosk-logs-table-card{overflow:hidden}
.admin-kiosk-logs-table-body{padding:0}
.admin-kiosk-logs-table{width:100%}
.admin-kiosk-logs-table th:first-child,.admin-kiosk-logs-table td:first-child{white-space:nowrap}
.admin-kiosk-logs-table td:last-child{min-width:260px;max-width:620px}
.admin-kiosk-logs-date{font:600 12px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;white-space:nowrap;color:var(--color-text-secondary)}
.admin-kiosk-logs-muted{color:var(--color-text-tertiary)}
.admin-kiosk-logs-message{display:inline;overflow-wrap:anywhere}
.admin-kiosk-logs-message-truncated{cursor:help}
.admin-kiosk-logs-pagination{gap:var(--space-3)}
.log-level-badge,.log-source-label{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 9px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:700;line-height:1.25;white-space:nowrap}
.log-level-debug{color:var(--color-text-secondary);background:var(--color-bg-secondary);border-color:var(--color-border)}
.log-level-info{color:#1e40af;background:#dbeafe;border-color:#bfdbfe}
.log-level-warning{color:#92400e;background:#fef3c7;border-color:#fde68a}
.log-level-error{color:#991b1b;background:#fee2e2;border-color:#fecaca}
.log-level-critical{color:#fff;background:#b91c1c;border-color:#991b1b}
.log-source-label{color:var(--color-text-secondary);background:var(--color-bg-secondary);border-color:var(--color-border);font-weight:600}
[data-theme="dark"] .log-level-info{color:#bfdbfe;background:rgba(30,64,175,.28);border-color:rgba(147,197,253,.3)}
[data-theme="dark"] .log-level-warning{color:#fde68a;background:rgba(146,64,14,.3);border-color:rgba(253,230,138,.28)}
[data-theme="dark"] .log-level-error{color:#fecaca;background:rgba(153,27,27,.3);border-color:rgba(254,202,202,.28)}
@media(max-width:1280px){.admin-kiosk-logs-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kiosk-logs-filter-search{grid-column:span 2}}
@media(max-width:760px){.admin-kiosk-logs-head{align-items:flex-start}.admin-kiosk-logs-count{text-align:start}.admin-kiosk-logs-filters{grid-template-columns:1fr}.admin-kiosk-logs-filter-search{grid-column:auto}.admin-kiosk-logs-filter-actions{justify-content:stretch}.admin-kiosk-logs-filter-actions .btn{flex:1}.admin-kiosk-logs-table td:last-child{min-width:220px}}

/* ================================================================
   R63 — UI POLISH / ACTION LANGUAGE / DEVICE VISUAL CONTRACT
   ================================================================ */
.r63-action-set{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.r63-action-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-secondary);padding:0;transition:border-color .14s,background .14s,color .14s,transform .14s}
.r63-action-btn:hover{border-color:color-mix(in srgb,var(--brand-primary) 34%,var(--color-border));background:var(--brand-primary-light);color:var(--brand-primary);transform:translateY(-1px)}
.r63-action-btn .ui-icon{width:16px;height:16px}
.r63-action-state[data-state="activate"]{color:var(--color-success)}
.r63-action-state[data-state="deactivate"]{color:var(--color-text-secondary)}
.r63-action-danger{color:var(--color-danger)}
.r63-action-danger:hover{border-color:color-mix(in srgb,var(--color-danger) 34%,var(--color-border));background:var(--color-danger-bg);color:var(--color-danger)}
.r63-access-link{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:11px;font-weight:750;text-decoration:none;white-space:nowrap}
.r63-access-link:hover{background:var(--brand-primary-light);border-color:color-mix(in srgb,var(--brand-primary) 32%,var(--color-border));color:var(--brand-primary)}
.r63-access-link .ui-icon{width:14px;height:14px}
.r63-device-icon{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:11px;background:var(--color-bg-subtle);color:var(--color-text-secondary);border:1px solid color-mix(in srgb,var(--color-border) 86%,transparent)}
.r63-device-icon .ui-icon{width:21px;height:21px}
.r63-device-tv{background:color-mix(in srgb,var(--brand-primary) 6%,var(--color-bg-surface));color:var(--brand-primary)}
.r63-device-totem-portrait{background:color-mix(in srgb,#0A2155 7%,var(--color-bg-surface));color:#0A2155}
.r63-device-totem-landscape{background:color-mix(in srgb,#202A4F 7%,var(--color-bg-surface));color:#202A4F}
[data-theme="dark"] .r63-device-totem-portrait,[data-theme="dark"] .r63-device-totem-landscape{color:var(--color-text-primary)}
.r63-muted{color:var(--color-text-tertiary)}
.r63-dt-loading{padding:22px;color:var(--color-text-tertiary);font-size:12px}

.r63-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:750;white-space:nowrap}.r63-status i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.r63-status-success{color:var(--color-success)}.r63-status-danger{color:var(--color-danger)}.r63-status-warning{color:var(--color-warning)}.r63-status-neutral{color:var(--color-text-tertiary)}
/* ================================================================
   R67 — KIOSK UI CONTROL CONTRACT
   Shared controls own geometry; page JS only owns state/data.
   ================================================================ */

/* Numeric inputs: never expose browser micron-sized steppers. */
.kiosk-number-control{display:grid;grid-template-columns:44px minmax(64px,1fr) 44px;align-items:stretch;width:100%;min-height:46px;border:1px solid var(--color-border);border-radius:var(--radius-md,12px);background:var(--color-surface,#fff);overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.kiosk-number-control:focus-within{border-color:var(--color-primary,var(--primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary,var(--primary)) 14%,transparent)}
.kiosk-number-control .kiosk-number-input{min-width:0!important;width:100%!important;height:44px!important;min-height:44px!important;border:0!important;border-radius:0!important;box-shadow:none!important;text-align:center;padding:8px 6px!important;background:transparent!important;font-weight:750;color:var(--color-text-primary,var(--text))}
.kiosk-number-control .kiosk-number-input:focus{outline:0!important;box-shadow:none!important}
.kiosk-number-control .kiosk-number-btn{display:grid;place-items:center;width:44px;min-width:44px;height:44px;border:0;background:var(--color-bg-secondary,var(--surface-soft));color:var(--color-text-primary,var(--text));font-size:22px;font-weight:700;line-height:1;transition:background .14s ease,color .14s ease}
.kiosk-number-control .kiosk-number-btn.is-minus{border-inline-end:1px solid var(--color-border)}
.kiosk-number-control .kiosk-number-btn.is-plus{border-inline-start:1px solid var(--color-border)}
.kiosk-number-control .kiosk-number-btn:hover:not(:disabled){background:var(--color-primary-soft,var(--accent-soft));color:var(--color-primary,var(--primary))}
.kiosk-number-control .kiosk-number-btn:focus-visible{position:relative;z-index:2;outline:2px solid var(--color-primary,var(--primary));outline-offset:-3px}
.kiosk-number-control .kiosk-number-btn:disabled{cursor:not-allowed;opacity:.38}
.kiosk-number-control.is-disabled{opacity:.65;background:var(--color-bg-secondary,var(--surface-soft))}
.kiosk-number-input::-webkit-inner-spin-button,.kiosk-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.kiosk-number-input{-moz-appearance:textfield!important;appearance:textfield!important}
.form-group>.kiosk-number-control{max-width:100%}
.runtime-release-fields .kiosk-number-control,.r65-layout-zone-form .kiosk-number-control,.r65-layout-workspace .kiosk-number-control{width:100%}

/* Select2 parity, including semantic MULTIPLE selects. */
.kiosk-select2-multiple .select2-selection{min-height:48px;height:auto!important;padding-block:7px}
.kiosk-select2-multiple .select2-selection__rendered{display:flex!important;align-items:center;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}
.kiosk-select2-chip{display:inline-flex;align-items:center;max-width:min(220px,42%);padding:4px 8px;border-radius:999px;background:var(--color-primary-soft,var(--accent-soft));color:var(--color-primary,var(--primary));font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kiosk-select2-chip.is-more{flex:none;max-width:none;background:var(--color-bg-secondary,var(--surface-soft));color:var(--color-text-secondary,var(--muted))}
.kiosk-select2-multiple .select2-results__option.is-selected{background:var(--color-primary-soft,var(--accent-soft));color:var(--color-primary,var(--primary))}
.kiosk-select2-multiple .select2-results__option svg{width:18px;height:18px;flex:none;margin-inline-start:auto}
.runtime-deploy-builder .kiosk-select2,.runtime-target-field .kiosk-select2,#screenForm .kiosk-select2{width:100%!important;max-width:none!important}

/* Existing upload plugin is the single owner for Runtime APK file selection. */
.runtime-apk-upload{position:relative;display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:74px;padding:12px!important;border:1.5px dashed var(--color-border)!important;border-radius:14px!important;background:var(--color-bg-secondary,var(--surface-soft))!important;cursor:pointer}
.runtime-apk-upload:hover,.runtime-apk-upload.is-dragging{border-color:var(--color-primary,var(--primary))!important;background:color-mix(in srgb,var(--color-primary,var(--primary)) 5%,var(--color-bg-secondary,var(--surface-soft)))!important}
.runtime-upload-native{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.runtime-upload-trigger{white-space:nowrap;margin:0!important}
.runtime-upload-name{min-width:0;color:var(--color-text-secondary,var(--muted));font-size:12px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.runtime-apk-upload.has-file .runtime-upload-name{color:var(--color-text-primary,var(--text));font-weight:700}

/* Runtime update workspace — compact but visibly designed. */
.runtime-release-form,.runtime-deploy-form{overflow:visible}
.runtime-release-form .form-group,.runtime-deploy-form .form-group{gap:8px}
.runtime-release-form textarea{min-height:132px}
.runtime-preview-modal{width:min(920px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 32px));overflow:auto}
.runtime-preview-modal .kiosk-modal-header{padding:22px 24px;border-bottom:1px solid var(--color-border)}
.runtime-preview-modal .kiosk-modal-body{padding:22px 24px}
.runtime-preview-modal .kiosk-modal-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:10px}
.runtime-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px!important}
.runtime-preview-grid>div{min-height:108px;padding:18px!important;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface,#fff);display:flex;flex-direction:column;justify-content:space-between}
.runtime-preview-grid>div small{font-size:12px;line-height:1.35;color:var(--color-text-secondary,var(--muted))}
.runtime-preview-grid>div strong{font-size:28px;line-height:1;color:var(--color-text-primary,var(--text))}
.runtime-preview-release:not(:empty){margin-bottom:14px;padding:11px 14px;border-radius:10px;background:var(--color-bg-secondary,var(--surface-soft));font-weight:800}

/* Recovery: JS-generated rows must never render as naked text. */
.r65-recovery-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface,#fff);margin:0 0 10px;min-width:0}
.r65-recovery-row-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--color-success-soft,#e8f8f1);color:var(--color-success,#0a9f6f);font-weight:900;font-size:15px}
.r65-recovery-row>div{min-width:0;display:grid;gap:3px}
.r65-recovery-row strong{display:block;font-size:13px;line-height:1.4;color:var(--color-text-primary,var(--text));overflow-wrap:anywhere}
.r65-recovery-row small{display:block;font-size:11px;line-height:1.35;color:var(--color-text-tertiary,var(--muted));overflow-wrap:anywhere}
.r65-recovery-row p{margin:3px 0 0;font-size:12px;line-height:1.45;color:var(--color-text-secondary,var(--muted));overflow-wrap:anywhere}
.r65-recovery-list{display:grid;gap:0}

/* Playlist studio: five semantic rows, not four. */
.playlist-library-panel{grid-template-rows:auto auto auto auto minmax(0,1fr)!important}
.playlist-folder-filter{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:10px!important;min-width:0}
.playlist-folder-filter>label{margin:0!important;white-space:nowrap}
.playlist-folder-filter .kiosk-select2{width:100%!important;min-width:0!important;max-width:none!important}
.playlist-search{min-width:0}
.playlist-search input{min-width:0;width:100%}

/* Layout editor: prevent the third pane from being clipped on ordinary desktop widths. */
@media(max-width:1450px){.r65-layout-workspace{grid-template-columns:minmax(250px,.82fr) minmax(390px,1.18fr)!important}.r65-layout-preview-card{grid-column:1/-1!important;min-height:360px}}

/* The picker SVG is an icon, never a viewport-sized browser control. */
.kiosk-picker-trigger{min-height:48px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;text-align:start!important}
.kiosk-picker-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kiosk-picker-trigger>svg{display:block!important;width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;min-height:20px!important;max-height:20px!important;flex:0 0 20px!important}
.kiosk-time-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px}
.kiosk-time-grid>label{min-width:0}.kiosk-time-grid>b{padding-bottom:13px;font-size:18px}.kiosk-time-grid .kiosk-select2{width:100%!important}

/* Schedule editor — semantic sections, no inline geometry. */
.r67-schedule-header{margin-bottom:18px}.r67-section-kicker{display:block;margin-bottom:6px;color:var(--color-primary,var(--primary));font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.r67-schedule-card{max-width:1080px;margin-inline:auto;padding:0!important;overflow:visible!important}
.r67-schedule-section{padding:24px 26px;border-bottom:1px solid var(--color-border)}
.r67-schedule-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.r67-schedule-section-head h2{font-size:16px;margin:0 0 4px}.r67-schedule-section-head p{margin:0;color:var(--color-text-secondary,var(--muted));font-size:12px;line-height:1.5;max-width:650px}.required-mark{color:var(--color-danger,#d92d20)}
.r67-schedule-grid{display:grid;gap:18px}.r67-schedule-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.r67-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.r67-day-option{position:relative;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px;min-height:48px;padding:10px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-secondary,var(--surface-soft));font-weight:750;cursor:pointer;transition:border-color .14s ease,background .14s ease,color .14s ease}.r67-day-option:has(input:checked){border-color:color-mix(in srgb,var(--color-primary,var(--primary)) 42%,var(--color-border));background:var(--color-primary-soft,var(--accent-soft));color:var(--color-primary,var(--primary))}.r67-day-option input{margin:0!important;flex:none}
.r67-schedule-section-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.r67-schedule-section-split>div+div{border-inline-start:1px solid var(--color-border);padding-inline-start:26px}.r67-schedule-range-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.r67-schedule-status{padding-block:20px}.r67-schedule-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 26px;background:var(--color-bg-secondary,var(--surface-soft));border-radius:0 0 var(--radius-lg,16px) var(--radius-lg,16px)}

/* Content assistant is a first-class entry point, not a hidden expert feature. */
.r67-assistant-btn,.r67-quick-assistant{border-color:color-mix(in srgb,var(--color-primary,var(--primary)) 32%,var(--color-border))!important;background:var(--color-primary-soft,var(--accent-soft))!important;color:var(--color-primary,var(--primary))!important}
.kiosk-experience-assistant-shortcut{color:var(--color-primary,var(--primary))!important;background:var(--color-primary-soft,var(--accent-soft))!important}

/* Tables: one compact action authority per row. */
.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}.row-actions>.action-menu{position:relative}.row-actions .icon-button{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;font-size:18px;font-weight:850}.row-actions .dropdown{min-width:190px}.row-actions .dropdown button{min-height:40px;display:flex;align-items:center;width:100%}

@media(max-width:900px){
  .runtime-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .r67-schedule-grid-2,.r67-schedule-section-split{grid-template-columns:1fr}.r67-schedule-section-split>div+div{border-inline-start:0;border-top:1px solid var(--color-border);padding-inline-start:0;padding-top:22px}.r67-day-picker{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:640px){
  .runtime-apk-upload{grid-template-columns:1fr}.runtime-upload-trigger{width:100%}.runtime-upload-name{text-align:center}
  .runtime-preview-grid{grid-template-columns:1fr}.runtime-preview-grid>div{min-height:86px}
  .r67-schedule-section{padding:20px 16px}.r67-schedule-range-grid{grid-template-columns:1fr}.r67-day-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.r67-schedule-actions{padding:14px 16px;position:sticky;bottom:0;z-index:6}.r67-schedule-actions .btn{flex:1 1 0;min-width:0}
  .kiosk-number-control{grid-template-columns:46px minmax(60px,1fr) 46px}.kiosk-number-control .kiosk-number-btn{width:46px;min-width:46px}
}
\n\n/* ==========================================================================\n   R68 — UI polish, control stability and experience builder refinement\n   ========================================================================== */\n\n/* Search controls: reserve icon space and keep the field readable. */\n.table-search{min-width:min(360px,100%);max-width:420px}\n.table-search .form-control{min-height:46px!important;padding-inline-start:42px!important;padding-inline-end:14px!important;font-size:12px!important;background:var(--color-bg-surface)!important;border-color:var(--color-border)!important}\n.table-search .search-icon{inset-inline-start:14px!important;left:auto!important;z-index:2;pointer-events:none;color:var(--color-text-secondary)!important}\n.table-search .search-icon svg{width:16px!important;height:16px!important}\n\n/* Library and playlist: controls must remain legible, not micro-UI. */\n.library-toolbar{grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;padding:10px}\n.library-search-wrap{min-height:44px;grid-template-columns:20px minmax(0,1fr) auto;padding-inline:13px;border-color:var(--color-border);background:var(--color-bg-surface);box-shadow:0 1px 2px rgba(15,23,42,.025)}\n.library-search-wrap svg{width:16px;height:16px;color:var(--color-text-secondary)}\n.library-search-wrap input{font-size:12px!important;font-weight:550;color:var(--color-text-primary)!important}\n.library-search-wrap input::placeholder{color:var(--color-text-tertiary);opacity:.92}\n.library-search-wrap kbd{height:24px;min-width:34px;font-size:9px;color:var(--color-text-secondary)}\n.library-stat span,.library-side-title,.library-filter-panel label span{font-size:9.5px;color:var(--color-text-secondary)}\n.library-folder,.library-tag-cloud button{font-size:10.5px}\n.library-side-empty{font-size:10px;color:var(--color-text-secondary)}\n.playlist-library-search{height:40px;margin:10px 10px 7px;padding-inline:11px;background:var(--color-bg-surface)}\n.playlist-library-search svg{width:15px;height:15px;color:var(--color-text-secondary)}\n.playlist-library-search input{font-size:10.5px!important;font-weight:550}\n.playlist-media-types button{height:30px;padding-inline:8px;font-size:9px}\n.playlist-folder-filter>span{font-size:9px;color:var(--color-text-secondary)}\n.playlist-media-copy strong{font-size:10px}.playlist-media-copy small{font-size:8.5px;color:var(--color-text-secondary)}\n.playlist-library-empty{font-size:10px;color:var(--color-text-secondary)}\n\n/* Experience wizard: premium connected rail and compact content card. */\n.r65-experience-wizard{max-width:1540px;gap:18px}\n.r65-wizard-shell{border-radius:24px;border-color:color-mix(in srgb,#0A2155 11%,var(--color-border));box-shadow:0 20px 60px rgba(10,33,85,.09);background:linear-gradient(180deg,color-mix(in srgb,#0A2155 1.8%,var(--color-bg-surface)),var(--color-bg-surface) 180px)}\n.r65-wizard-steps{position:relative;gap:8px;padding:12px;background:transparent;border-radius:24px 24px 0 0}\n.r65-wizard-step{position:relative;min-height:76px;grid-template-columns:28px 38px minmax(0,1fr);gap:9px;padding:10px 12px;border-radius:15px;border-color:transparent;overflow:hidden}\n.r65-wizard-step:not(:last-child)::after{content:"";position:absolute;z-index:0;inset-inline-end:-9px;top:50%;width:10px;height:2px;background:var(--color-border)}\n.r65-wizard-step-number{position:relative;z-index:1;width:28px;height:28px;font-size:9px;border:1px solid color-mix(in srgb,#0A2155 9%,var(--color-border));background:var(--color-bg-surface)}\n.r65-wizard-step-icon{position:relative;z-index:1;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,#0A2155 6%,var(--color-bg-surface))}\n.r65-wizard-step-icon .ui-icon{width:17px;height:17px}\n.r65-wizard-step strong{font-size:11px;letter-spacing:-.005em}\n.r65-wizard-step small{font-size:9.5px;line-height:1.35;color:var(--color-text-secondary)}\n.r65-wizard-step.is-active{border-color:color-mix(in srgb,#AF2665 35%,var(--color-border));background:linear-gradient(135deg,color-mix(in srgb,#AF2665 8%,var(--color-bg-surface)),var(--color-bg-surface));box-shadow:0 8px 22px rgba(175,38,101,.08)}\n.r65-wizard-step.is-active::before{content:"";position:absolute;inset-inline:14px;bottom:0;height:3px;border-radius:99px 99px 0 0;background:#AF2665}\n.r65-wizard-step.is-complete .r65-wizard-step-icon{background:color-mix(in srgb,#16a36a 10%,var(--color-bg-surface));color:#087a4f}\n.r65-wizard-main{grid-template-columns:minmax(0,1fr) 320px}\n.r65-wizard-panels{min-height:530px;padding:26px 28px 22px;background:var(--color-bg-surface)}\n.r65-wizard-panel{animation:r68WizardIn .18s ease both}\n@keyframes r68WizardIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}\n.r65-wizard-panel-head{margin-bottom:22px;padding-bottom:20px}\n.r65-wizard-panel-head>div{grid-template-columns:44px minmax(0,1fr);column-gap:13px}\n.r65-wizard-panel-head>div>span{width:44px;height:44px;border-radius:13px;font-size:10px;background:linear-gradient(145deg,#0A2155,#202A4F);box-shadow:0 8px 18px rgba(10,33,85,.15)}\n.r65-wizard-panel-head h2{font-size:21px;letter-spacing:-.025em}\n.r65-wizard-panel-head p{font-size:11px;line-height:1.5;color:var(--color-text-secondary)}\n.r65-field>span{font-size:11px}.r65-field>small{font-size:10px;line-height:1.45;color:var(--color-text-secondary)}\n.r65-choice-card:has(input[type="radio"]){display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-content:center!important;min-height:124px;padding:17px!important}\n.r65-choice-icon{width:48px;height:48px;border-radius:14px}.r65-choice-icon .ui-icon{width:20px;height:20px}\n.r65-choice-card strong{font-size:12px}.r65-choice-card small{font-size:10px;line-height:1.45;color:var(--color-text-secondary)}\n\n/* Template cards must show the layout geometry at first glance. */\n.r65-template-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}\n.r65-template-card:has(input[type="radio"]){display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;align-content:start!important;gap:9px!important;min-width:0;padding:12px!important;border-radius:15px!important;transition:border-color .15s,box-shadow .15s,transform .15s}\n.r65-template-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,#AF2665 28%,var(--color-border));box-shadow:0 10px 24px rgba(10,33,85,.07)}\n.r65-template-card.is-selected{box-shadow:0 0 0 3px color-mix(in srgb,#AF2665 10%,transparent),0 10px 28px rgba(175,38,101,.08)}\n.r65-template-preview{display:block!important;width:100%!important;min-width:0!important;height:auto!important;aspect-ratio:16/10;border:5px solid #0A2155;border-radius:11px;background:linear-gradient(145deg,#152652,#202A4F);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}\n.r65-template-preview i{display:block!important;border:2px solid rgba(255,255,255,.82)!important;background:linear-gradient(135deg,rgba(175,38,101,.88),rgba(175,38,101,.48))!important;box-shadow:inset 0 0 0 1px rgba(10,33,85,.18)}\n.r65-template-preview i:nth-child(2){background:linear-gradient(135deg,rgba(66,125,204,.84),rgba(87,136,203,.48))!important}\n.r65-template-preview i:nth-child(3){background:linear-gradient(135deg,rgba(29,166,113,.82),rgba(61,185,138,.46))!important}\n.r65-template-card strong{font-size:10.5px}.r65-template-card small{font-size:9.5px;line-height:1.45;color:var(--color-text-secondary)}\n.r65-template-options{padding:16px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-subtle)}\n.r65-wizard-summary{padding:24px 20px;background:linear-gradient(180deg,color-mix(in srgb,#AF2665 4%,var(--color-bg-surface)),color-mix(in srgb,#0A2155 2%,var(--color-bg-surface)));border-inline-start:1px solid var(--color-border)}\n.r65-wizard-summary h3{font-size:17px}.r65-wizard-summary dt{font-size:9.5px;color:var(--color-text-secondary)}.r65-wizard-summary dd{font-size:10px}\n.r65-summary-preview{border-width:7px;border-radius:15px;box-shadow:0 16px 30px rgba(10,33,85,.14)}\n.r65-wizard-footer{padding:15px 20px;background:var(--color-bg-surface)}\n.r65-wizard-error{margin:0 20px 18px;padding:13px 15px;font-size:10.5px;line-height:1.45}\n\n/* KIOSK Select2: shared geometry on Screens and every dynamic wizard select. */\n#screenForm .kiosk-select2,.r63-screen-content-grid .kiosk-select2{display:block!important;width:100%!important;min-width:0!important;max-width:none!important}\n#screenForm .kiosk-select2 .select2-selection,.r63-screen-content-grid .kiosk-select2 .select2-selection{min-height:50px!important;padding-inline:15px!important;border-radius:12px!important;font-size:12px!important}\n#screenForm .kiosk-select2 .select2-selection__rendered,.r63-screen-content-grid .kiosk-select2 .select2-selection__rendered{font-weight:650!important}\n#screenForm .kiosk-select2 .select2-dropdown,.r63-screen-content-grid .kiosk-select2 .select2-dropdown{z-index:230!important;min-width:100%!important;max-width:min(620px,calc(100vw - 28px))!important}\n#screenForm .kiosk-select2 .select2-search input,.r63-screen-content-grid .kiosk-select2 .select2-search input{min-height:42px!important;font-size:11px!important}\n#screenForm .select2-results__option,.r63-screen-content-grid .select2-results__option{min-height:42px!important;font-size:11px!important}\n\n/* Date/time popovers: always fit inside the viewport and sit above sticky actions. */\n.kiosk-picker-popover{z-index:260!important;max-height:calc(100dvh - 24px)!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}\n.kiosk-picker-weekday{font-size:9px;color:var(--color-text-secondary)}\n.kiosk-picker-day{min-height:36px;font-size:10.5px}\n\n/* Compact action authority for content tables. */\nbody.space-content .table-actions.kiosk-ctx-wrap{display:inline-flex!important;justify-content:flex-end!important;gap:0!important}\nbody.space-content .table-actions .kiosk-ctx-btn{width:38px;height:38px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-secondary)}\nbody.space-content .table-actions .kiosk-ctx-menu{min-width:205px;padding:6px;border-radius:12px}\nbody.space-content .table-actions .kiosk-ctx-item{min-height:40px;padding:9px 10px;border-radius:8px;font-size:11px;font-weight:650;text-align:start}\nbody.space-content .table-actions .kiosk-ctx-item .ui-icon{width:15px;height:15px;flex:none}\n\n@media(max-width:1180px){\n  .r65-wizard-main{grid-template-columns:1fr}.r65-wizard-summary{display:grid!important;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:14px;align-items:start;border-inline-start:0;border-top:1px solid var(--color-border)}.r65-wizard-summary>.r65-eyebrow,.r65-wizard-summary>h3{grid-column:1/-1}.r65-wizard-summary dl{align-self:stretch}\n  .r65-template-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}\n}\n@media(max-width:760px){\n  .library-toolbar{grid-template-columns:1fr}.library-type-tabs,.library-toolbar-actions{justify-content:flex-start;overflow:auto}\n  .r65-wizard-steps{grid-template-columns:1fr;gap:4px}.r65-wizard-step{min-height:58px;grid-template-columns:26px 34px minmax(0,1fr)}.r65-wizard-step:not(:last-child)::after{display:none}.r65-wizard-step small{display:block}.r65-template-grid{grid-template-columns:1fr 1fr}.r65-wizard-panels{padding:20px 16px;min-height:0}.r65-wizard-summary{grid-template-columns:1fr}.r65-summary-preview{max-width:360px}\n}\n@media(max-width:520px){.r65-template-grid{grid-template-columns:1fr}.r65-choice-grid.two{grid-template-columns:1fr}}\n

/* R68 R2 — Runtime APK upload uses the shared file control but owns AJAX progress locally. */
.runtime-apk-field{gap:7px}
.runtime-upload-limit{display:block;margin-top:7px;color:var(--color-text-secondary);font-size:10px;line-height:1.4}
.runtime-upload-progress{display:grid;gap:7px;margin-top:10px;padding:10px 12px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-subtle)}
.runtime-upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--color-text-secondary)}
.runtime-upload-progress-head strong{font-variant-numeric:tabular-nums;color:var(--color-text-primary)}
.runtime-upload-progress-track{height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-text-primary) 9%,transparent)}
.runtime-upload-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#AF2665,#0A2155);transition:width .14s ease}
.runtime-upload-feedback{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--color-border);border-radius:11px;font-size:10.5px;line-height:1.45;background:var(--color-bg-subtle)}
.runtime-upload-feedback.is-error{border-color:color-mix(in srgb,#c62828 32%,var(--color-border));background:color-mix(in srgb,#c62828 7%,var(--color-bg-surface));color:#a91f1f}
.runtime-upload-feedback.is-success{border-color:color-mix(in srgb,#087a4f 30%,var(--color-border));background:color-mix(in srgb,#087a4f 7%,var(--color-bg-surface));color:#087a4f}
.runtime-upload-feedback code{flex:none;max-width:44%;overflow-wrap:anywhere;font-size:9px;color:inherit;background:transparent;padding:0}

/* ================================================================
   R69 — Runtime Live Control Center & Log/i18n hardening
   ================================================================ */
.runtime-r69-hero{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) minmax(220px,300px);gap:20px;align-items:center;margin:0 0 18px;padding:24px 26px;border:1px solid var(--color-border);border-radius:20px;background:linear-gradient(120deg,color-mix(in srgb,var(--brand-primary) 7%,var(--color-bg-surface)) 0%,var(--color-bg-surface) 42%,color-mix(in srgb,#0A2155 4%,var(--color-bg-surface)) 100%);box-shadow:0 12px 34px rgba(10,33,85,.06);overflow:hidden}.runtime-r69-hero:after{content:"";position:absolute;right:-80px;top:-110px;width:300px;height:300px;border-radius:50%;border:46px solid color-mix(in srgb,var(--brand-primary) 5%,transparent);pointer-events:none}.runtime-r69-hero-mark{position:relative;z-index:1;width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#0A2155,#202A4F);color:#fff;box-shadow:0 12px 24px rgba(10,33,85,.18)}.runtime-r69-hero-mark .ui-icon{width:29px;height:29px}.runtime-r69-hero-copy{position:relative;z-index:1;min-width:0}.runtime-r69-hero-copy h1{margin:3px 0 7px;font-size:30px;line-height:1.08;letter-spacing:-.035em;color:var(--color-text-primary)}.runtime-r69-hero-copy p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.55}.runtime-r69-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.runtime-r69-hero-badges span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--brand-primary) 13%,var(--color-border));border-radius:999px;background:color-mix(in srgb,var(--brand-primary) 4%,var(--color-bg-surface));color:var(--color-text-secondary);font-size:10px;font-weight:800}.runtime-r69-hero-badges .ui-icon{width:13px;height:13px;color:var(--brand-primary)}
.runtime-r69-hero .runtime-policy-chip{position:relative;z-index:1;display:grid;gap:5px;min-width:0;padding:16px 18px;border:1px solid color-mix(in srgb,var(--brand-primary) 18%,var(--color-border));border-radius:16px;background:color-mix(in srgb,var(--color-bg-surface) 92%,transparent);box-shadow:0 10px 24px rgba(15,23,42,.05)}.runtime-r69-hero .runtime-policy-chip small{color:var(--color-text-tertiary);font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.runtime-r69-hero .runtime-policy-chip strong{font-size:18px;color:#0A2155}.runtime-r69-hero .runtime-policy-chip span{font-size:10px;line-height:1.4;color:var(--color-text-secondary)}
.runtime-update-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;margin:0 0 16px!important}.runtime-update-kpi{display:flex!important;align-items:center!important;gap:13px!important;min-height:86px!important;padding:15px 17px!important;border-radius:16px!important;background:var(--color-bg-surface)!important;box-shadow:0 6px 20px rgba(15,23,42,.035)!important}.runtime-update-kpi-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--color-bg-secondary);color:#0A2155}.runtime-update-kpi-icon .ui-icon{width:19px;height:19px}.runtime-update-kpi>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;flex:1;min-width:0}.runtime-update-kpi small{grid-column:1;font-size:10px!important;font-weight:850!important;letter-spacing:.075em;color:var(--color-text-secondary)!important}.runtime-update-kpi strong{grid-column:2;grid-row:1;font-size:26px!important;line-height:1!important}.runtime-update-kpi.is-test .runtime-update-kpi-icon{background:color-mix(in srgb,var(--brand-primary) 10%,var(--color-bg-surface));color:var(--brand-primary)}.runtime-update-kpi.is-stable .runtime-update-kpi-icon{background:color-mix(in srgb,#16a578 10%,var(--color-bg-surface));color:#0b8b65}.runtime-update-kpi.is-retired{opacity:.82}
.runtime-update-tabs{position:sticky;top:var(--header-height,72px);z-index:20;display:flex!important;align-items:center;gap:7px!important;padding:7px!important;margin-bottom:16px!important;border:1px solid var(--color-border)!important;border-radius:15px!important;background:color-mix(in srgb,var(--color-bg-surface) 94%,transparent)!important;backdrop-filter:blur(12px);box-shadow:0 7px 20px rgba(15,23,42,.04)!important}.runtime-update-tabs button{min-height:42px!important;padding:0 14px!important;border-radius:10px!important;font-size:12px!important;font-weight:800!important}.runtime-update-tabs button.is-active{background:color-mix(in srgb,var(--brand-primary) 10%,var(--color-bg-surface))!important;color:var(--brand-primary)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary) 22%,transparent)!important}.runtime-update-tabs .ui-icon{width:16px;height:16px}
.runtime-update-grid-main{gap:16px!important}.runtime-release-list-card,.runtime-release-form,.runtime-deploy-form,.runtime-table-card,.runtime-signing-card{border-radius:18px!important;box-shadow:0 8px 28px rgba(15,23,42,.045)!important}.runtime-card-head{padding-bottom:13px!important;margin-bottom:14px!important;border-bottom:1px solid var(--color-border)}.runtime-card-head h2{font-size:17px!important;letter-spacing:-.02em!important}.runtime-card-head p{margin:5px 0 0;max-width:760px;color:var(--color-text-secondary);font-size:11px;line-height:1.45}.runtime-card-head>span,.runtime-live-head>span:last-child{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:10px;background:var(--color-bg-secondary);font-size:12px;font-weight:900;color:var(--color-text-secondary)}
.runtime-live-card{overflow:hidden}.runtime-live-head{display:flex;align-items:center;gap:9px}.runtime-live-pill{display:inline-flex!important;align-items:center!important;gap:7px!important;height:30px!important;padding:0 10px!important;border:1px solid color-mix(in srgb,#12a978 20%,var(--color-border))!important;border-radius:999px!important;background:color-mix(in srgb,#12a978 6%,var(--color-bg-surface))!important;color:#07835d!important;font-size:10px!important;font-weight:850!important}.runtime-live-pill i,.runtime-live-sync i{width:7px;height:7px;border-radius:50%;background:#12a978;box-shadow:0 0 0 0 rgba(18,169,120,.25);animation:r69-live-pulse 1.7s ease-out infinite}.runtime-live-sync{display:flex;align-items:center;gap:8px;margin:-4px 0 13px;padding:8px 10px;border-radius:9px;background:var(--color-bg-secondary);color:var(--color-text-tertiary);font-size:10px;font-weight:750;transition:background .18s ease,color .18s ease}.runtime-live-sync.is-syncing{color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 5%,var(--color-bg-secondary))}.runtime-live-sync.is-syncing i{background:var(--brand-primary);animation:r69-sync-blink .8s ease-in-out infinite}.runtime-live-sync.is-paused{color:var(--color-text-tertiary)}.runtime-live-sync.is-paused i{background:var(--color-text-tertiary);animation:none;box-shadow:none}
.runtime-attempt-list{display:grid;gap:10px}.runtime-attempt-row{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:11px 17px;padding:15px 16px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-surface);transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.runtime-attempt-row:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(15,23,42,.055)}.runtime-attempt-status{display:flex;align-items:center;gap:8px}.runtime-attempt-pulse{display:none;width:8px;height:8px;border-radius:50%;background:var(--brand-primary)}.runtime-attempt-row.is-running{border-color:color-mix(in srgb,var(--brand-primary) 22%,var(--color-border));background:linear-gradient(100deg,color-mix(in srgb,var(--brand-primary) 3%,var(--color-bg-surface)),var(--color-bg-surface) 38%)}.runtime-attempt-row.is-running .runtime-attempt-pulse{display:block;animation:r69-live-pulse 1.3s ease-out infinite}.runtime-attempt-row.is-failed{border-color:color-mix(in srgb,#d94747 20%,var(--color-border))}.runtime-attempt-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.runtime-attempt-main>div{min-width:0}.runtime-attempt-main strong{display:block;color:var(--color-text-primary);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runtime-attempt-main small{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runtime-attempt-target{text-align:right}.runtime-attempt-rail{grid-column:1/-1;position:relative;height:5px;overflow:hidden;border-radius:999px;background:var(--color-bg-secondary)}.runtime-attempt-rail i{position:absolute;inset:0 auto 0 0;width:100%;border-radius:inherit;background:color-mix(in srgb,#12a978 78%,#fff)}.runtime-attempt-row.is-running .runtime-attempt-rail i{width:38%;background:linear-gradient(90deg,transparent,var(--brand-primary),transparent);animation:r69-live-rail 1.45s ease-in-out infinite}.runtime-attempt-row.is-failed .runtime-attempt-rail i{background:#d94747}.runtime-attempt-foot{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;color:var(--color-text-tertiary);font-size:9.5px}.runtime-attempt-foot code{padding:3px 6px;border-radius:6px;background:color-mix(in srgb,#d94747 7%,var(--color-bg-secondary));color:#bd3434;font-size:9px}.runtime-attempt-row.is-fresh,.runtime-table tr.is-fresh{animation:r69-fresh-row 1s ease both}
.runtime-table{font-size:11px}.runtime-table thead th{background:var(--color-bg-secondary)!important;color:var(--color-text-secondary)!important;font-size:9px!important;font-weight:850!important;letter-spacing:.055em!important;text-transform:uppercase}.runtime-table td{vertical-align:middle!important}.runtime-table td>small,.runtime-event-table td small{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:9.5px}.runtime-event-message{max-width:340px;white-space:normal;line-height:1.45}.runtime-window-note{margin:0 0 12px!important;border-radius:10px!important;background:var(--color-bg-secondary)!important;color:var(--color-text-secondary)!important;font-size:10.5px!important;line-height:1.45!important}.runtime-row-actions{flex-wrap:nowrap!important}.runtime-row-actions .btn{white-space:nowrap}
.runtime-release-row{border-radius:13px!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.runtime-release-row:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand-primary) 17%,var(--color-border))!important;box-shadow:0 8px 20px rgba(15,23,42,.045)}.runtime-release-icon{background:linear-gradient(145deg,color-mix(in srgb,#0A2155 8%,var(--color-bg-surface)),color-mix(in srgb,var(--brand-primary) 7%,var(--color-bg-surface)))!important;color:#0A2155!important}.runtime-policy-note{border-radius:12px!important}.runtime-form-actions{padding-top:13px;border-top:1px solid var(--color-border)}
@keyframes r69-live-pulse{0%{box-shadow:0 0 0 0 rgba(18,169,120,.32)}70%{box-shadow:0 0 0 7px rgba(18,169,120,0)}100%{box-shadow:0 0 0 0 rgba(18,169,120,0)}}@keyframes r69-sync-blink{50%{opacity:.3}}@keyframes r69-live-rail{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}@keyframes r69-fresh-row{0%{background:color-mix(in srgb,var(--brand-primary) 14%,var(--color-bg-surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 18%,transparent)}100%{background:var(--color-bg-surface);box-shadow:none}}
@media(max-width:1180px){.runtime-r69-hero{grid-template-columns:56px minmax(0,1fr)}.runtime-r69-hero-mark{width:56px;height:56px}.runtime-r69-hero .runtime-policy-chip{grid-column:1/-1;grid-template-columns:auto 1fr auto;align-items:center}.runtime-update-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.runtime-attempt-row{grid-template-columns:130px minmax(0,1fr)}}
@media(max-width:760px){.runtime-r69-hero{grid-template-columns:48px minmax(0,1fr);gap:13px;padding:18px}.runtime-r69-hero-mark{width:48px;height:48px;border-radius:14px}.runtime-r69-hero-copy h1{font-size:24px}.runtime-r69-hero .runtime-policy-chip{display:grid;grid-template-columns:1fr;gap:3px}.runtime-update-kpis{grid-template-columns:1fr 1fr!important}.runtime-update-tabs{position:static;overflow-x:auto;justify-content:flex-start}.runtime-update-tabs button{flex:0 0 auto}.runtime-attempt-row{grid-template-columns:1fr}.runtime-attempt-main{grid-template-columns:1fr}.runtime-attempt-target{text-align:left}.runtime-attempt-status{justify-content:space-between}.runtime-attempt-rail,.runtime-attempt-foot{grid-column:1}.runtime-release-fields{grid-template-columns:1fr!important}.runtime-preview-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:480px){.runtime-update-kpis{grid-template-columns:1fr!important}.runtime-r69-hero-badges{display:none}.runtime-preview-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.runtime-live-pill i,.runtime-live-sync i,.runtime-attempt-row.is-running .runtime-attempt-pulse,.runtime-attempt-row.is-running .runtime-attempt-rail i,.runtime-attempt-row.is-fresh,.runtime-table tr.is-fresh{animation:none!important}.runtime-release-row,.runtime-attempt-row{transition:none!important}}
/* KIOSK R70 — Runtime control-plane live truth */
.runtime-command-list,.runtime-admin-command-list,.runtime-admin-attempt-list{display:grid;gap:9px}.runtime-command-row,.runtime-admin-command-list>article,.runtime-admin-attempt-list>article{display:grid;grid-template-columns:minmax(160px,1.1fr) minmax(150px,1fr) auto minmax(110px,.7fr) auto;align-items:center;gap:10px 14px;padding:12px 14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-surface);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.runtime-command-row>div strong,.runtime-admin-command-list>article>div strong,.runtime-admin-attempt-list>article>div strong{display:block;color:var(--color-text-primary);font-size:11.5px}.runtime-command-row>div small,.runtime-admin-command-list>article>div small,.runtime-admin-attempt-list>article>div small{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:9.5px}.runtime-command-row code,.runtime-admin-command-list code,.runtime-admin-attempt-list code{padding:3px 6px;border-radius:6px;background:color-mix(in srgb,#d94747 8%,var(--color-bg-secondary));color:#bd3434;font-size:9px}.runtime-command-result{font-size:10px;color:var(--color-text-secondary);font-weight:800}.runtime-admin-live{margin-top:18px}.runtime-admin-live-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.runtime-admin-live-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px}.runtime-admin-live-card{min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:14px;background:color-mix(in srgb,var(--color-bg-secondary) 38%,var(--color-bg-surface))}.runtime-admin-live-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.runtime-admin-live-card-head>div small{display:block;color:var(--color-text-tertiary);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.055em}.runtime-admin-live-card-head>div strong{display:block;margin-top:2px;font-size:13px}.runtime-admin-live-card-head>span{display:grid;place-items:center;min-width:29px;height:29px;padding:0 8px;border-radius:9px;background:var(--color-bg-surface);border:1px solid var(--color-border);font-size:10px;font-weight:900}.runtime-admin-live-card>p{margin:0 0 10px;color:var(--color-text-tertiary);font-size:9.5px;line-height:1.45}.runtime-admin-command-list>article{grid-template-columns:minmax(0,1fr) auto minmax(90px,.7fr) auto;padding:10px 11px;background:var(--color-bg-surface)}.runtime-admin-attempt-list>article{grid-template-columns:minmax(0,1fr) auto;padding:10px 11px;background:var(--color-bg-surface)}.runtime-admin-attempt-list .runtime-mini-progress{grid-column:1/-1}.runtime-progress-value{font-size:10px;color:var(--brand-primary);font-variant-numeric:tabular-nums}.runtime-mini-progress,.runtime-attempt-rail{position:relative;overflow:hidden;height:6px;border-radius:999px;background:var(--color-bg-secondary)}.runtime-mini-progress i,.runtime-attempt-rail i{display:block;height:100%;border-radius:inherit;background:var(--brand-primary);transition:width .25s ease}.runtime-mini-progress.is-indeterminate i,.runtime-attempt-rail.is-indeterminate i{position:absolute;width:36%!important;left:0;background:linear-gradient(90deg,transparent,var(--brand-primary),transparent);animation:r70-runtime-indeterminate 1.35s ease-in-out infinite}.runtime-command-row.is-fresh,.runtime-admin-command-list>article.is-fresh,.runtime-admin-attempt-list>article.is-fresh{animation:r70-runtime-fresh 1s ease both}.runtime-preview-not-deployed{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand-primary) 20%,var(--color-border));border-radius:10px;background:color-mix(in srgb,var(--brand-primary) 5%,var(--color-bg-surface));color:var(--color-text-secondary);font-size:10.5px;line-height:1.45}.runtime-preview-not-deployed svg{flex:0 0 auto;width:16px;height:16px;color:var(--brand-primary)}
@keyframes r70-runtime-indeterminate{0%{transform:translateX(-130%)}100%{transform:translateX(390%)}}@keyframes r70-runtime-fresh{0%{background:color-mix(in srgb,var(--brand-primary) 13%,var(--color-bg-surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 16%,transparent)}100%{background:var(--color-bg-surface);box-shadow:none}}
@media(max-width:1180px){.runtime-admin-live-columns{grid-template-columns:1fr}.runtime-command-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.runtime-command-row>.runtime-command-result,.runtime-command-row>code{grid-column:auto}}
@media(max-width:760px){.runtime-command-row,.runtime-admin-command-list>article,.runtime-admin-attempt-list>article{grid-template-columns:1fr auto}.runtime-command-row>div:nth-child(2),.runtime-command-row>.runtime-command-result,.runtime-command-row>code{grid-column:1/-1}.runtime-admin-live-head{grid-template-columns:auto minmax(0,1fr)}.runtime-admin-live-head>.runtime-live-pill{grid-column:1/-1;justify-self:start}}
@media(prefers-reduced-motion:reduce){.runtime-mini-progress.is-indeterminate i,.runtime-attempt-rail.is-indeterminate i,.runtime-command-row.is-fresh,.runtime-admin-command-list>article.is-fresh,.runtime-admin-attempt-list>article.is-fresh{animation:none!important}.runtime-command-row,.runtime-admin-command-list>article,.runtime-admin-attempt-list>article,.runtime-mini-progress i,.runtime-attempt-rail i{transition:none!important}}
/* R71 — Runtime deployment preview is a real superadmin modal, not an inline fragment. */
.runtime-update-workspace .kiosk-modal-overlay{position:fixed;inset:0;z-index:10080;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(10,33,85,.34);backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease}
.runtime-update-workspace .kiosk-modal-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}
.runtime-update-workspace .kiosk-modal{width:min(920px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:18px;background:var(--color-bg-surface,#fff);box-shadow:0 28px 80px rgba(10,33,85,.24);transform:translateY(10px) scale(.985);transition:transform .16s ease}
.runtime-update-workspace .kiosk-modal-overlay.is-open .kiosk-modal{transform:translateY(0) scale(1)}
.runtime-update-workspace .kiosk-modal-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:0 0 auto}
.runtime-update-workspace .kiosk-modal-title{display:flex;align-items:center;gap:9px;margin:0;color:var(--color-text-primary);font-size:18px;font-weight:850}
.runtime-update-workspace .kiosk-modal-close{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer}
.runtime-update-workspace .kiosk-modal-close:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}
.runtime-update-workspace .kiosk-modal-body{min-height:0;overflow:auto}
.runtime-update-workspace .runtime-preview-grid{display:grid}
.runtime-update-workspace .runtime-preview-not-deployed{margin-top:16px}
.runtime-update-workspace .runtime-preview-release{min-height:42px;display:flex;align-items:center}
@media(max-width:760px){.runtime-update-workspace .kiosk-modal-overlay{padding:12px}.runtime-update-workspace .kiosk-modal{width:100%;max-height:calc(100dvh - 24px);border-radius:16px}.runtime-preview-modal .kiosk-modal-header,.runtime-preview-modal .kiosk-modal-body,.runtime-preview-modal .kiosk-modal-footer{padding-left:16px!important;padding-right:16px!important}}


/* R74 — Unified per-terminal Runtime control center */
.runtime-terminal-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid var(--border,#dce3ec);border-radius:20px;background:var(--surface,#fff);box-shadow:0 10px 28px rgba(10,33,85,.06)}.runtime-terminal-hero h1{margin:4px 0 6px;color:#0A2155}.runtime-terminal-hero p{margin:0;color:#718096}.runtime-terminal-context{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:16px}.runtime-terminal-context>span{display:inline-flex;align-items:center;gap:7px;color:#65758b;font-size:12px}.runtime-terminal-context svg{width:16px;height:16px}.runtime-terminal-presence i{width:8px;height:8px;border-radius:999px;background:#9aa5b4}.runtime-terminal-presence.is-online i{background:#20a66a;box-shadow:0 0 0 4px rgba(32,166,106,.12)}.runtime-terminal-presence.is-offline i{background:#d65050}.runtime-terminal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.runtime-terminal-center{margin-bottom:32px}.runtime-terminal-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.runtime-terminal-card{padding:18px;min-width:0}.runtime-terminal-card-head{display:flex;align-items:center;gap:12px}.runtime-terminal-card-head>span{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:13px;background:rgba(175,38,101,.09);color:#AF2665}.runtime-terminal-card-head svg{width:19px;height:19px}.runtime-terminal-card-head small,.runtime-terminal-card-head h2{display:block;margin:0}.runtime-terminal-card-head small{color:#8793a5;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.runtime-terminal-card-head h2{margin-top:4px;color:#0A2155;font-size:16px;overflow-wrap:anywhere}.runtime-terminal-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0 0}.runtime-terminal-dl>div{padding:10px 11px;border:1px solid #e8ecf1;border-radius:11px;background:#f8fafc}.runtime-terminal-dl dt{color:#8a96a8;font-size:10px;font-weight:800;text-transform:uppercase}.runtime-terminal-dl dd{margin:4px 0 0;color:#26364f;font-size:12px;font-weight:700;overflow-wrap:anywhere}.runtime-terminal-result{display:flex;flex-direction:column;gap:6px;margin-top:14px}.runtime-terminal-result small{color:#8793a5}.runtime-terminal-result code{align-self:flex-start;padding:4px 7px;border-radius:7px;background:#fff0f0;color:#b73232}.runtime-terminal-progress{margin-top:14px}.runtime-terminal-progress-bar{height:8px;overflow:hidden;border-radius:999px;background:#edf0f4}.runtime-terminal-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#AF2665,#0A2155);transition:width .35s ease}.runtime-terminal-progress strong{display:block;margin-top:6px;color:#0A2155;font-size:12px}.runtime-terminal-progress.is-indeterminate .runtime-terminal-progress-bar i{width:35%!important;animation:runtimeTerminalIndeterminate 1.25s ease-in-out infinite}.runtime-terminal-lower-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;margin-top:14px}.runtime-terminal-deploy-card,.runtime-terminal-history-card{padding:0;overflow:hidden}.runtime-terminal-deploy-body,.runtime-terminal-history-body{padding:20px 22px}.runtime-terminal-deploy-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.runtime-terminal-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px;padding:14px;border:1px solid rgba(44,93,180,.18);border-radius:13px;background:#f4f7ff}.runtime-terminal-preview>div small,.runtime-terminal-preview>div strong{display:block}.runtime-terminal-preview>div small{color:#7d8ba0;font-size:10px;text-transform:uppercase}.runtime-terminal-preview>div strong{margin-top:4px;color:#0A2155}.runtime-terminal-preview p{grid-column:1/-1;margin:0;color:#607087;font-size:12px}.runtime-terminal-install-note{display:flex;gap:9px;align-items:flex-start;margin-top:15px;padding:12px 13px;border-radius:12px;background:#fff8ea;color:#745617;font-size:12px}.runtime-terminal-install-note svg{flex:0 0 17px;width:17px;height:17px}.runtime-terminal-history-row{display:grid;gap:7px}.runtime-terminal-history-row span{font:600 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#7b8798;overflow-wrap:anywhere}.runtime-terminal-history-row strong{color:#0A2155}.runtime-terminal-history-row small{color:#8793a5}.runtime-terminal-shortcuts{padding:16px 22px 20px;border-top:1px solid #e8ecf1}.runtime-terminal-shortcuts>strong{display:block;margin-bottom:10px;color:#0A2155;font-size:12px}.runtime-terminal-shortcuts>div{display:flex;flex-wrap:wrap;gap:7px}.runtime-terminal-live-sync{margin-top:12px}.runtime-terminal-live-sync.is-syncing i{animation:runtimeTerminalPulse .8s ease-in-out infinite}.runtime-terminal-live-sync.is-paused{opacity:.65}@keyframes runtimeTerminalIndeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(340%)}}@keyframes runtimeTerminalPulse{0%,100%{opacity:.35}50%{opacity:1}}@media(max-width:1180px){.runtime-terminal-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.runtime-terminal-hero{flex-direction:column}.runtime-terminal-actions{justify-content:flex-start}.runtime-terminal-lower-grid{grid-template-columns:1fr}}@media(max-width:620px){.runtime-terminal-summary-grid{grid-template-columns:1fr}.runtime-terminal-hero,.runtime-terminal-card{padding:16px}.runtime-terminal-context{flex-direction:column;gap:8px}.runtime-terminal-actions{width:100%}.runtime-terminal-actions .btn{width:100%;justify-content:center}.runtime-terminal-preview{grid-template-columns:1fr}.runtime-terminal-preview p{grid-column:auto}}

.runtime-active-filter{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--border-color,#e5e7eb);border-radius:14px;background:var(--card-bg,#fff)}
.runtime-active-filter>svg,.runtime-active-filter>.app-icon{flex:0 0 auto}.runtime-active-filter>div{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.runtime-active-filter strong{font-size:14px}.runtime-active-filter span{font-size:12px;opacity:.72}.runtime-active-filter code{font-size:11px;overflow-wrap:anywhere}
@media(max-width:767px){.runtime-active-filter{align-items:flex-start;flex-wrap:wrap}.runtime-active-filter .btn{width:100%}}


/* R76 R2 — Update Manager success cards: readable hierarchy, real actions, installation chronology. */
.update-release-workspace .lane-success .lane-content{gap:12px!important;padding:14px!important}
.update-release-workspace .lane-success .deployment-card.success-compact{display:flex!important;flex-direction:column!important;justify-content:space-between!important;min-height:152px!important;padding:16px!important;gap:13px!important;border:1px solid color-mix(in srgb,var(--color-success) 12%,var(--color-border))!important;border-radius:14px!important;background:linear-gradient(180deg,var(--color-bg-surface),color-mix(in srgb,var(--color-success) 2.5%,var(--color-bg-surface)))!important}
.update-release-workspace .lane-success .deployment-card-main{width:100%;min-width:0}
.update-release-workspace .lane-success .deployment-card-head{display:grid!important;grid-template-columns:42px minmax(0,1fr) auto!important;align-items:start!important;gap:12px!important}
.update-release-workspace .lane-success .deployment-release-icon{width:42px!important;height:42px!important;border-radius:12px!important}
.update-release-workspace .lane-success .deployment-release-icon svg{width:19px!important;height:19px!important}
.update-release-workspace .lane-success .deployment-release-heading{min-width:0;padding-top:1px}
.update-release-workspace .lane-success .deployment-release-heading h3{margin:0!important;font-size:13.5px!important;line-height:1.35!important;font-weight:800!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;color:var(--color-text-primary)!important}
.update-release-workspace .lane-success .deployment-release-heading .version-path{margin-top:5px!important;font-size:9.5px!important;line-height:1.45!important;white-space:normal!important;overflow-wrap:anywhere!important;color:var(--color-text-tertiary)!important}
.update-release-workspace .lane-success .deployment-card-head>.status{position:static!important;align-self:start!important;justify-self:end!important;margin:0!important;padding:5px 9px!important;font-size:8.5px!important;line-height:1!important;white-space:nowrap!important}
.update-release-workspace .lane-success .deployment-card-footer{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px!important;width:100%;margin-top:auto!important;padding-top:12px!important;border-top:1px solid var(--color-border)!important}
.update-release-workspace .lane-success .deployment-actions{display:flex!important;align-items:center!important;gap:8px!important}
.update-release-workspace .lane-success .update-action-rollback{display:inline-flex!important;align-items:center!important;gap:7px!important;min-height:34px!important;padding:7px 11px!important;border-radius:9px!important;font-size:10px!important;font-weight:750!important}
.update-release-workspace .lane-success .update-action-rollback svg{width:14px!important;height:14px!important}
.update-release-workspace .lane-success .deployment-updated{display:flex!important;align-items:flex-end!important;flex-direction:column!important;gap:2px!important;margin:0!important;text-align:end!important;font-size:8.5px!important;line-height:1.2!important;color:var(--color-text-tertiary)!important}
.update-release-workspace .lane-success .deployment-updated span{font-size:8px!important;text-transform:uppercase!important;letter-spacing:.055em!important}
.update-release-workspace .lane-success .deployment-updated strong{font-size:9.5px!important;font-weight:700!important;color:var(--color-text-secondary)!important}
@media(max-width:700px){.update-release-workspace .lane-success .deployment-card-head{grid-template-columns:38px minmax(0,1fr)!important}.update-release-workspace .lane-success .deployment-card-head>.status{grid-column:2!important;justify-self:start!important}.update-release-workspace .lane-success .deployment-card-footer{align-items:flex-start!important;flex-direction:column!important}.update-release-workspace .lane-success .deployment-updated{align-items:flex-start!important;text-align:start!important}}

/* R77 — Update Manager release flow: concise versions, no technical-slug wall. */
.update-release-workspace .lane-success .deployment-card.success-compact{min-height:164px!important}
.update-release-workspace .lane-success .deployment-card-head{grid-template-columns:42px minmax(0,1fr) auto!important;grid-template-rows:auto!important}
.update-release-workspace .lane-success .deployment-card-head>.deployment-release-icon{grid-column:1!important;grid-row:1!important}
.update-release-workspace .lane-success .deployment-card-head>.deployment-release-heading{grid-column:2!important;grid-row:1!important;align-self:start!important}
.update-release-workspace .lane-success .deployment-card-head>.status{grid-column:3!important;grid-row:1!important;position:static!important;inset:auto!important;transform:none!important;align-self:start!important;justify-self:end!important;max-width:100%!important}
.update-release-workspace .lane-success .deployment-release-heading .version-path{display:none!important}
.release-version-flow{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px;min-width:0}
.release-version-node{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:5px 9px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-subtle);color:var(--color-text-secondary);white-space:nowrap;box-shadow:0 1px 0 rgba(15,23,42,.025)}
.release-version-node strong{font-size:9px;line-height:1;font-weight:850;letter-spacing:.035em;color:var(--color-text-primary)}
.release-version-node>span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8.5px;line-height:1;color:var(--color-text-tertiary)}
.release-version-node.is-target{border-color:color-mix(in srgb,var(--color-success) 24%,var(--color-border));background:color-mix(in srgb,var(--color-success) 6%,var(--color-bg-surface))}
.release-version-node.is-target strong{color:var(--color-success)}
.release-version-arrow{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-surface);color:var(--color-text-tertiary);font-size:11px;font-weight:800}
@media(max-width:700px){.update-release-workspace .lane-success .deployment-card-head{grid-template-columns:38px minmax(0,1fr)!important}.update-release-workspace .lane-success .deployment-card-head>.deployment-release-icon{grid-column:1!important;grid-row:1!important}.update-release-workspace .lane-success .deployment-card-head>.deployment-release-heading{grid-column:2!important;grid-row:1!important}.update-release-workspace .lane-success .deployment-card-head>.status{grid-column:2!important;grid-row:2!important;justify-self:start!important;margin-top:6px!important}.release-version-flow{gap:6px}.release-version-node{padding:5px 8px}.release-version-arrow{flex-basis:22px;width:22px;height:22px}}

/* R77 — owner signing vault: compact, mobile-first security surface. */
.update-signing-vault-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:15px;padding:18px 20px!important;border-color:color-mix(in srgb,var(--color-primary) 18%,var(--color-border))!important;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 4%,var(--color-bg-surface)),var(--color-bg-surface))!important}
.update-signing-vault-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--color-primary-soft,var(--accent-soft));color:var(--color-primary,var(--primary))}.update-signing-vault-icon .ui-icon{width:21px;height:21px}.update-signing-vault-copy{min-width:0}.update-signing-vault-copy h2{margin:1px 0 4px;font-size:15px}.update-signing-vault-copy>p{margin:0;color:var(--color-text-secondary,var(--muted));font-size:11px;line-height:1.45}.update-signing-vault-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px}.update-signing-vault-meta>span:not(.status){display:inline-flex;align-items:center;gap:6px;font-size:9px;color:var(--color-text-tertiary,var(--muted))}.update-signing-vault-meta code{font-size:9px;padding:4px 6px;border-radius:7px;background:var(--color-bg-secondary,var(--surface-soft));color:var(--color-text-secondary)}.update-signing-vault-actions{display:flex;justify-content:flex-end}.update-signing-vault-actions .btn{white-space:nowrap}
.update-signature-required-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;margin-top:12px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--color-warning) 24%,var(--color-border));border-radius:10px;background:color-mix(in srgb,var(--color-warning) 5%,var(--color-bg-surface))}.update-signature-required-note strong{font-size:10px;color:var(--color-text-primary)}.update-signature-required-note span{grid-column:1;font-size:9px;color:var(--color-text-secondary)}.update-signature-required-note code{grid-column:2;grid-row:1/3;align-self:center;font-size:9px;color:var(--color-text-tertiary)}
.status.signature_required{background:color-mix(in srgb,var(--color-warning) 12%,var(--color-bg-surface));color:var(--color-warning)}
.update-signing-modal{display:none!important;position:fixed;inset:0;z-index:160;place-items:center;padding:22px;background:rgba(10,18,35,.58);backdrop-filter:blur(5px)}.update-signing-modal.is-open{display:grid!important}.update-signing-dialog{width:min(620px,100%);max-height:calc(100dvh - 44px);overflow:auto;border-radius:20px!important}.update-signing-form{display:grid;gap:14px;margin-top:18px}.update-signing-form label{display:grid;gap:6px}.update-signing-form label>span{font-size:10px;font-weight:750;color:var(--color-text-secondary)}.update-signing-form input{min-height:44px}.update-signing-secret{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary,var(--surface-soft))}.update-signing-secret code{min-width:0;overflow-wrap:anywhere;font-size:11px;letter-spacing:.04em}.update-signing-package{display:grid;gap:6px;padding:12px 13px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-secondary,var(--surface-soft))}.update-signing-package strong{font-size:12px}.update-signing-package code{font-size:9px;overflow-wrap:anywhere;color:var(--color-text-tertiary)}
.update-signing-shares,.update-signing-emergency-codes{display:grid;gap:8px;margin-top:14px}.update-signing-recovery-item{display:grid;gap:4px;padding:10px 11px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary,var(--surface-soft))}.update-signing-recovery-item b,.update-signing-emergency-codes>strong{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.update-signing-recovery-item code,.update-signing-emergency-codes code{display:block;padding:8px 10px;border-radius:8px;background:var(--color-bg-surface);font-size:9px;line-height:1.35;overflow-wrap:anywhere}.update-signing-emergency-codes{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:12px;border-top:1px solid var(--color-border)}.update-signing-emergency-codes>strong{grid-column:1/-1}.update-signing-ack{position:relative;display:grid!important;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:9px;margin-top:16px;padding:11px 12px;border:1px solid var(--color-border);border-radius:11px;background:var(--color-bg-secondary,var(--surface-soft));cursor:pointer}.update-signing-ack input{position:absolute;opacity:0;pointer-events:none}.update-signing-checkbox-ui{display:grid;place-items:center;width:22px;height:22px;border:1.5px solid var(--color-border);border-radius:7px;background:var(--color-bg-surface);color:transparent;transition:.14s ease}.update-signing-checkbox-ui .ui-icon{width:12px;height:12px}.update-signing-ack input:checked+.update-signing-checkbox-ui{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.update-signing-ack input:focus-visible+.update-signing-checkbox-ui{outline:3px solid var(--focus);outline-offset:3px}.update-signing-ack>span:last-child{font-size:10px;font-weight:700;color:var(--color-text-secondary)}
@media(max-width:700px){.update-signing-vault-card{grid-template-columns:42px minmax(0,1fr);padding:15px!important}.update-signing-vault-icon{width:42px;height:42px}.update-signing-vault-actions{grid-column:1/-1}.update-signing-vault-actions .btn{width:100%}.update-signature-required-note{grid-template-columns:1fr}.update-signature-required-note code{grid-column:1;grid-row:auto}.update-signing-modal{padding:10px}.update-signing-dialog{max-height:calc(100dvh - 20px);border-radius:16px!important}.update-signing-emergency-codes{grid-template-columns:1fr}.update-signing-secret{grid-template-columns:1fr}.update-signing-secret .btn{width:100%}}

/* R77 — immutable owner break-glass recovery */
.owner-recovery-entry{margin-top:14px;text-align:center}.owner-recovery-shell .auth-panel{align-items:center}.owner-recovery-card{max-width:560px}.owner-recovery-warning{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:16px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}.owner-recovery-warning .ui-icon{flex:0 0 auto;margin-top:2px}.owner-recovery-secret-block{display:grid;gap:10px;margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}.owner-recovery-secret-block code,.owner-recovery-kit code{display:block;overflow-wrap:anywhere;word-break:break-word;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:12px}.owner-recovery-kit{display:grid;gap:14px}.owner-recovery-kit-row{display:grid;gap:6px;margin-bottom:10px}.owner-recovery-kit [data-owner-recovery-emergency]{display:grid;gap:6px}.owner-recovery-back{margin-top:16px;text-align:center}.owner-recovery-visual .auth-visual-content{max-width:520px}@media(max-width:760px){.owner-recovery-card{max-width:none}.owner-recovery-visual{display:none}}

/* R78 — Owner signing modal visual authority: self-contained across Update Manager shells. */
.update-signing-modal{padding:20px!important;background:rgba(10,18,35,.52)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.update-signing-modal .update-signing-dialog{display:flex!important;flex-direction:column!important;width:min(560px,calc(100vw - 32px))!important;max-height:calc(100dvh - 40px)!important;overflow:hidden!important;border:1px solid color-mix(in srgb,var(--color-border,var(--border)) 88%,transparent)!important;border-radius:18px!important;background:var(--color-bg-surface,var(--surface,#fff))!important;color:var(--color-text-primary,var(--text))!important;box-shadow:0 28px 80px rgba(10,18,35,.22)!important}
.update-signing-dialog .kiosk-modal-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;flex:0 0 auto!important;padding:20px 22px 15px!important;border-bottom:1px solid var(--color-border,var(--border))!important;background:var(--color-bg-surface,var(--surface,#fff))!important}
.update-signing-dialog .kiosk-modal-header>div{min-width:0!important}
.update-signing-dialog .card-kicker{display:block!important;margin:0 0 5px!important;color:var(--color-primary,var(--primary))!important;font-size:10px!important;line-height:1.2!important;font-weight:850!important;letter-spacing:.11em!important;text-transform:uppercase!important}
.update-signing-dialog .kiosk-modal-title{display:block!important;margin:0!important;color:var(--color-text-primary,var(--text))!important;font-size:22px!important;line-height:1.22!important;font-weight:850!important;letter-spacing:-.025em!important}
.update-signing-dialog .kiosk-modal-close{display:grid!important;place-items:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;margin:0!important;padding:0!important;border:1px solid var(--color-border,var(--border))!important;border-radius:10px!important;background:var(--color-bg-surface,var(--surface,#fff))!important;color:var(--color-text-secondary,var(--muted))!important;box-shadow:none!important;cursor:pointer!important;transition:background .14s ease,color .14s ease,border-color .14s ease!important}
.update-signing-dialog .kiosk-modal-close:hover{border-color:color-mix(in srgb,var(--color-primary,var(--primary)) 22%,var(--color-border,var(--border)))!important;background:var(--color-bg-secondary,var(--surface-soft))!important;color:var(--color-text-primary,var(--text))!important}
.update-signing-dialog .kiosk-modal-close .ui-icon{width:16px!important;height:16px!important}
.update-signing-dialog .kiosk-modal-body{min-height:0!important;overflow:auto!important;padding:18px 22px 20px!important;color:var(--color-text-secondary,var(--muted))!important;font-size:13px!important;line-height:1.55!important;background:var(--color-bg-surface,var(--surface,#fff))!important}
.update-signing-dialog .kiosk-modal-body>p{max-width:500px!important;margin:0 0 14px!important;color:inherit!important;font-size:13px!important;line-height:1.55!important}
.update-signing-dialog .update-signing-form{display:grid!important;gap:12px!important;margin:0!important}
.update-signing-dialog .update-signing-form label{display:grid!important;gap:6px!important;margin:0!important;font-weight:700!important}
.update-signing-dialog .update-signing-form label>span{color:var(--color-text-secondary,var(--muted))!important;font-size:11px!important;line-height:1.25!important;font-weight:750!important}
.update-signing-dialog .update-signing-form input:not([type=checkbox]):not([type=radio]){width:100%!important;height:44px!important;min-height:44px!important;max-height:44px!important;margin:0!important;padding:0 13px!important;border:1px solid var(--color-border,var(--border))!important;border-radius:10px!important;background:var(--color-bg-surface,var(--surface,#fff))!important;color:var(--color-text-primary,var(--text))!important;box-shadow:none!important;font-size:13px!important;line-height:1!important;transition:border-color .14s ease,box-shadow .14s ease!important}
.update-signing-dialog .update-signing-form input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--color-primary,var(--primary))!important;outline:0!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary,var(--primary)) 14%,transparent)!important}
.update-signing-dialog .update-signing-form input:autofill,.update-signing-dialog .update-signing-form input:-webkit-autofill,.update-signing-dialog .update-signing-form input:-webkit-autofill:hover,.update-signing-dialog .update-signing-form input:-webkit-autofill:focus{background:var(--color-bg-surface,var(--surface,#fff))!important;-webkit-text-fill-color:var(--color-text-primary,var(--text))!important;box-shadow:0 0 0 1000px var(--color-bg-surface,var(--surface,#fff)) inset!important;transition:background-color 9999s ease-out 0s!important}
.update-signing-dialog .update-signing-secret{margin:0!important;padding:9px!important;border-radius:10px!important}
.update-signing-dialog .update-signing-package{margin:0 0 14px!important}
.update-signing-dialog .kiosk-modal-footer{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex:0 0 auto!important;padding:14px 22px 18px!important;border-top:1px solid var(--color-border,var(--border))!important;background:var(--color-bg-secondary,var(--surface-soft))!important}
.update-signing-dialog .kiosk-modal-footer>.btn{width:auto!important;min-width:0!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0 15px!important;border-radius:10px!important;font-size:12px!important;line-height:1!important;font-weight:750!important}
.update-signing-dialog .kiosk-modal-footer>.btn.secondary:first-child{margin-inline-end:auto!important}
.update-signing-dialog .kiosk-modal-footer>.btn.primary{min-width:112px!important}
.update-signing-dialog .update-signing-shares,.update-signing-dialog .update-signing-emergency-codes{margin-top:12px!important}
.update-signing-dialog .update-signing-ack{margin-top:14px!important}
@media(max-width:600px){.update-signing-modal{padding:10px!important;align-items:end!important}.update-signing-modal .update-signing-dialog{width:100%!important;max-height:calc(100dvh - 20px)!important;border-radius:16px!important}.update-signing-dialog .kiosk-modal-header{padding:17px 16px 13px!important}.update-signing-dialog .kiosk-modal-title{font-size:20px!important}.update-signing-dialog .kiosk-modal-body{padding:16px!important}.update-signing-dialog .kiosk-modal-footer{padding:12px 16px 16px!important}.update-signing-dialog .kiosk-modal-footer>.btn{flex:1 1 0!important;padding-inline:12px!important}.update-signing-dialog .kiosk-modal-footer>.btn.secondary:first-child{margin-inline-end:0!important}.update-signing-dialog .update-signing-secret{grid-template-columns:1fr!important}}
@media(max-width:390px){.update-signing-dialog .kiosk-modal-footer{display:grid!important;grid-template-columns:1fr!important}.update-signing-dialog .kiosk-modal-footer>.btn{width:100%!important}.update-signing-dialog .kiosk-modal-footer>.btn.primary{grid-row:1!important}}

/* R78 — Update history disclosure mirrors the native Shadow DB open/close contract. */
.update-history-card{overflow:hidden!important}
.update-history-disclosure{margin:0!important;border:0!important;border-radius:inherit!important;background:transparent!important}
.update-history-disclosure>summary{list-style:none!important}
.update-history-disclosure>summary::-webkit-details-marker{display:none!important}
.update-history-summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;min-height:64px!important;padding:14px 16px!important;border:0!important;background:linear-gradient(180deg,var(--color-bg-surface,var(--surface)),color-mix(in srgb,var(--color-bg-subtle,var(--surface-soft)) 50%,var(--color-bg-surface,var(--surface))))!important;cursor:pointer!important;user-select:none!important}
.update-history-summary:focus-visible{outline:3px solid var(--focus)!important;outline-offset:-3px!important}
.update-history-summary-copy{display:grid!important;gap:2px!important;min-width:0!important}
.update-history-summary-copy .card-kicker{margin:0!important;font-size:8.5px!important;line-height:1.2!important}
.update-history-summary-copy>strong{color:var(--color-text-primary,var(--text))!important;font-size:15px!important;line-height:1.3!important;font-weight:850!important}
.update-history-summary-copy>small{display:block!important;max-width:760px!important;color:var(--color-text-secondary,var(--muted))!important;font-size:9.5px!important;line-height:1.45!important;font-weight:500!important}
.update-history-summary-chevron{display:grid!important;place-items:center!important;flex:0 0 32px!important;width:32px!important;height:32px!important;border:1px solid var(--color-border,var(--border))!important;border-radius:9px!important;background:var(--color-bg-surface,var(--surface))!important;color:var(--color-text-secondary,var(--muted))!important;transition:transform .18s ease,background .18s ease,color .18s ease!important}
.update-history-summary-chevron .ui-icon{width:15px!important;height:15px!important;transition:transform .18s ease!important}
.update-history-disclosure[open] .update-history-summary-chevron .ui-icon{transform:rotate(180deg)!important}
.update-history-disclosure[open] .update-history-summary{border-bottom:1px solid var(--color-border,var(--border))!important}
.update-history-panel{min-width:0!important}
.update-history-toolbar-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;min-width:0!important}
.update-history-toolbar-actions>.btn{flex:0 0 auto!important}
@media(max-width:600px){.update-history-summary{min-height:58px!important;padding:12px 14px!important}.update-history-summary-copy>strong{font-size:14px!important}.update-history-summary-copy>small{font-size:9px!important}.update-history-toolbar-actions{width:100%!important;justify-content:space-between!important}.update-history-toolbar-actions>.btn{min-height:34px!important}.update-history-page-size{min-width:0!important}}

/* R79 — Active owner signing security is compact by default; inactive setup stays open. */
.update-signing-vault-card{display:block!important;padding:0!important;overflow:hidden!important}
.update-signing-vault-disclosure{margin:0!important;border:0!important;border-radius:inherit!important;background:transparent!important}
.update-signing-vault-disclosure>summary{list-style:none!important}
.update-signing-vault-disclosure>summary::-webkit-details-marker{display:none!important}
.update-signing-vault-summary{display:grid!important;grid-template-columns:40px minmax(0,1fr) 32px!important;align-items:center!important;gap:12px!important;min-height:64px!important;padding:11px 14px!important;cursor:pointer!important;user-select:none!important;background:linear-gradient(180deg,var(--color-bg-surface,var(--surface)),color-mix(in srgb,var(--color-primary) 2.5%,var(--color-bg-surface,var(--surface))))!important}
.update-signing-vault-summary:focus-visible{outline:3px solid var(--focus)!important;outline-offset:-3px!important}
.update-signing-vault-summary .update-signing-vault-icon{width:40px!important;height:40px!important;border-radius:12px!important}
.update-signing-vault-summary .update-signing-vault-icon .ui-icon{width:18px!important;height:18px!important}
.update-signing-vault-summary-copy{display:grid!important;gap:3px!important;min-width:0!important}
.update-signing-vault-summary-copy>.card-kicker{margin:0!important;font-size:8px!important;line-height:1.15!important}
.update-signing-vault-summary-copy>strong{display:block!important;margin:0!important;color:var(--color-text-primary,var(--text))!important;font-size:13px!important;line-height:1.3!important;font-weight:850!important}
.update-signing-vault-summary-meta{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;flex-wrap:wrap!important;color:var(--color-text-tertiary,var(--muted))!important;font-size:8.5px!important;line-height:1.25!important}
.update-signing-vault-summary-meta>.status{padding:3px 7px!important;font-size:7.5px!important}
.update-signing-vault-summary-meta>code{max-width:160px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding:3px 6px!important;border-radius:7px!important;background:var(--color-bg-secondary,var(--surface-soft))!important;color:var(--color-text-secondary,var(--muted))!important;font-size:8px!important}
.update-signing-vault-summary-chevron{display:grid!important;place-items:center!important;width:32px!important;height:32px!important;border:1px solid var(--color-border,var(--border))!important;border-radius:9px!important;background:var(--color-bg-surface,var(--surface))!important;color:var(--color-text-secondary,var(--muted))!important}
.update-signing-vault-summary-chevron .ui-icon{width:15px!important;height:15px!important;transition:transform .18s ease!important}
.update-signing-vault-disclosure[open] .update-signing-vault-summary-chevron .ui-icon{transform:rotate(180deg)!important}
.update-signing-vault-disclosure[open] .update-signing-vault-summary{border-bottom:1px solid var(--color-border,var(--border))!important}
.update-signing-vault-panel{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:16px!important;padding:14px 16px 16px!important;background:var(--color-bg-surface,var(--surface))!important}
.update-signing-vault-panel .update-signing-vault-copy>p{margin:0!important;max-width:860px!important;font-size:10px!important;line-height:1.45!important}
.update-signing-vault-panel .update-signing-vault-meta{margin-top:8px!important}
.update-signing-vault-panel .update-signing-vault-meta code{max-width:min(520px,70vw)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.update-signing-vault-panel .update-signing-vault-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important}
.update-signing-vault-card.is-active:not(:focus-within){box-shadow:0 4px 16px rgba(23,32,51,.025)!important}
@media(max-width:700px){.update-signing-vault-summary{grid-template-columns:36px minmax(0,1fr) 30px!important;gap:10px!important;min-height:58px!important;padding:10px 12px!important}.update-signing-vault-summary .update-signing-vault-icon{width:36px!important;height:36px!important}.update-signing-vault-summary-copy>strong{font-size:12px!important}.update-signing-vault-summary-meta>code{display:none!important}.update-signing-vault-panel{grid-template-columns:1fr!important;padding:12px!important}.update-signing-vault-panel .update-signing-vault-actions{justify-content:stretch!important}.update-signing-vault-panel .update-signing-vault-actions .btn{width:100%!important}}
@media(prefers-reduced-motion:reduce){.update-signing-vault-summary-chevron .ui-icon{transition:none!important}}

