@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-emerald-300:#5ee9b5;--color-blue-50:#eff6ff;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cad5e2;--color-slate-400:#90a1b9;--color-slate-600:#45556c;--color-slate-800:#1d293d;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-slate-100:lab(96.286% -.852436 -2.46847);--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-slate-300:lab(84.7652% -1.94535 -7.93337);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-600:lab(35.5623% -1.74978 -15.4316);--color-slate-800:lab(16.132% -.318035 -14.6672)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-1{margin-top:var(--spacing)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.min-h-\[36px\]{min-height:36px}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-\[repeat\(auto-fill\,minmax\(220px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-\[\#0066cc\]{border-color:#06c}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.bg-\[\#f1f3f6\]{background-color:#f1f3f6}.bg-blue-50{background-color:var(--color-blue-50)}.bg-white{background-color:var(--color-white)}.p-1{padding:var(--spacing)}.p-4{padding:calc(var(--spacing) * 4)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-2{padding-top:calc(var(--spacing) * 2)}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[\#002642\]{color:#002642}.text-slate-400{color:var(--color-slate-400)}.text-slate-800{color:var(--color-slate-800)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.accent-\[\#0066cc\]{accent-color:#06c}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-emerald-300\/50{--tw-ring-color:#5ee9b580}@supports (color:color-mix(in lab, red, red)){.ring-emerald-300\/50{--tw-ring-color:color-mix(in oklab, var(--color-emerald-300) 50%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);letter-spacing:0;margin:0}button,input:where(:not(.fems-workspace *)),select:where(:not(.fems-workspace *)),textarea:where(:not(.fems-workspace *)){font:inherit}.login-page{background:linear-gradient(135deg,#f7fafb 0%,#eef7f6 100%);place-items:center;min-height:100vh;padding:32px;display:grid}.auth-check{min-height:100vh;color:var(--muted);background:var(--bg);place-items:center;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:min(100%,440px);box-shadow:var(--shadow);border-radius:12px;padding:34px}.brand-mark{align-items:center;gap:12px;min-width:0;padding:10px 0;display:flex}.brand-symbol{background:var(--teal);color:#fff;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-size:18px;font-weight:700;line-height:28px;display:grid}.brand-mark strong{color:var(--teal);letter-spacing:-.5px;font-size:20px;font-weight:700;line-height:28px;display:block}.brand-mark span:last-child{color:var(--muted);margin-top:2px;font-size:12px;display:block}.brand-mark-switcher{flex:1;min-width:0;padding:0;position:relative}.brand-mark-trigger{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;padding:10px 20px;display:inline-flex}.brand-mark-trigger strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.brand-mark-chevron{color:var(--teal);flex:none;transition:transform .15s}.brand-mark-chevron.open{transform:rotate(180deg)}.brand-mark-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:10px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);left:12px;right:12px;box-shadow:0 12px 32px #0f172a1f}.brand-mark-option{color:#1f2937;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.brand-mark-option:hover{background:#f8fafc}.brand-mark-option.selected{color:var(--teal-dark);background:#3ab8b71a}.overview-placeholder-panel{grid-column:1/-1}.overview-placeholder-copy{color:var(--muted);margin:30px;font-size:15px;line-height:1.6}.login-title{margin:30px 0 22px}.login-title h1{margin:0;font-size:28px}.login-title p{color:var(--muted);margin:8px 0 0;line-height:1.55}.form-stack{gap:14px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}label:where(:not(.fems-workspace *)){color:#374151;font-size:13px}.form-stack label:not([class]),.form-grid label:not([class]),.form-row label:not([class]){flex-direction:column;gap:6px;display:flex}.form-label{flex-direction:column;gap:4px;display:flex}input:where(:not(.fems-workspace *)):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select:where(:not(.fems-workspace *)){border:1px solid var(--border);width:100%;height:42px;color:var(--text);background:var(--surface);border-radius:8px;padding:0 12px}input:where(:not(.fems-workspace *)):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):focus,select:where(:not(.fems-workspace *)):focus{border-color:var(--teal);outline:2px solid #3ab8b72e}select:where(:not(.fems-workspace *)):not([multiple]):not([size]){appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}select:where(:not(.fems-workspace *)):not([multiple]):not([size]):disabled{cursor:not-allowed;opacity:.6}input:where(:not(.fems-workspace *))[type=color]{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;width:100%;height:36px;padding:2px}input:where(:not(.fems-workspace *))[type=color]::-webkit-color-swatch-wrapper{padding:0}input:where(:not(.fems-workspace *))[type=color]::-webkit-color-swatch{border:0;border-radius:5px}.cb-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.cb-box{color:#0000;background:#fff;border:1.5px solid #d1d5db;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;min-width:16px;height:16px;transition:border-color .15s,background .15s;display:inline-flex}.cb-box:focus{outline-offset:1px;outline:2px solid #3ab8b759}.cb-label:hover .cb-box{border-color:var(--teal)}.cb-box--on{background:var(--teal);border-color:var(--teal);color:#fff}.cb-box--disabled{opacity:.5;cursor:not-allowed}.cb-text{color:#374151;align-items:center;gap:6px;font-size:13px;display:flex}.cb-label-text{line-height:1.4}input:where(:not(.fems-workspace *))[type=checkbox]{appearance:none;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:4px;flex-shrink:0;width:16px;min-width:16px;height:16px;transition:border-color .15s,background .15s;position:relative}input:where(:not(.fems-workspace *))[type=checkbox]:hover{border-color:var(--teal)}input:where(:not(.fems-workspace *))[type=checkbox]:checked{background:var(--teal);border-color:var(--teal)}input:where(:not(.fems-workspace *))[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-top:none;border-left:none;width:5px;height:8px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}input:where(:not(.fems-workspace *))[type=checkbox]:indeterminate{background:var(--teal);border-color:var(--teal)}input:where(:not(.fems-workspace *))[type=checkbox]:indeterminate:after{content:"";background:#fff;border:none;width:8px;height:2px;position:absolute;top:6px;left:3px;transform:none}input:where(:not(.fems-workspace *))[type=radio]{appearance:none;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:50%;flex-shrink:0;width:16px;min-width:16px;height:16px;transition:border-color .15s,background .15s;position:relative}input:where(:not(.fems-workspace *))[type=radio]:hover{border-color:var(--teal)}input:where(:not(.fems-workspace *))[type=radio]:checked{border-color:var(--teal);background:var(--teal)}input:where(:not(.fems-workspace *))[type=radio]:checked:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.primary-button{color:#fff;background:var(--teal);cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;height:44px;font-weight:700}.primary-button.compact{height:42px;padding:0 18px}.primary-button:disabled{cursor:not-allowed;opacity:.65}.secondary-button{border:1px solid var(--border);color:#374151;background:var(--surface);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:42px;font-weight:700;display:inline-flex}.secondary-button:disabled{cursor:not-allowed;opacity:.65}.danger-button{color:#fff;cursor:pointer;background:#df6d72;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:42px;font-weight:700;display:inline-flex}.danger-button.compact{height:42px;padding:0 18px}.locked-action,.locked-action:hover{cursor:not-allowed;opacity:.5}.danger-button:disabled{cursor:not-allowed;opacity:.65}.error-text{color:var(--danger);font-size:13px;line-height:1.5}.sidebar-no-transition,.sidebar-no-transition .sidebar,.sidebar-no-transition *{transition:none!important}.console-shell{grid-template-rows:minmax(0,1fr);grid-template-columns:240px 1fr;height:100dvh;transition:grid-template-columns .2s;display:grid;overflow:hidden}.console-shell.sidebar-collapsed{grid-template-columns:64px 1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);min-height:0;padding:0 1px 0 0;transition:width .2s;overflow:hidden auto}.sidebar-header{justify-content:space-between;align-items:center;min-height:56px;padding:12px 12px 4px;display:flex}.console-shell.sidebar-collapsed .sidebar-header{justify-content:center;padding:12px 0 4px}.sidebar-toggle{border:1px solid var(--border);color:#6b7280;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.sidebar-toggle:hover{color:#111827;background:#f3f4f6}.console-shell.sidebar-collapsed .nav-item,.console-shell.sidebar-collapsed .nav-group-trigger{justify-content:center;min-height:48px;padding:0}.console-shell.sidebar-collapsed .main-nav{padding:0 8px 8px}.console-shell.sidebar-collapsed .nav-group.active{background:0 0}.main-nav{gap:4px;margin:0;padding:0 16px 8px;display:grid}.nav-item{color:#6b7280;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;min-height:56px;padding:0 12px;font-size:16px;font-weight:500;text-decoration:none;display:flex}.nav-item.active,.nav-item:hover{color:#111827;background:#fff;border:1px solid #f3f4f6;box-shadow:0 1px 1.5px #0000001a}.nav-group{border-radius:10px;display:grid;overflow:auto}.nav-group.active{background:#fff}.nav-group-trigger{color:#111827;border:1px solid #f3f4f6;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:0 12px;font-size:16px;font-weight:500;text-decoration:none;display:flex;box-shadow:0 1px 1.5px #0000001a}.nav-group.active .nav-group-trigger,.nav-group-trigger:hover{color:#111827}.nav-group-trigger--btn{text-align:left;cursor:pointer;color:#6b7280;width:100%;box-shadow:none;background:0 0;border:1px solid #0000}.nav-group-trigger--btn:hover{box-shadow:none;color:#111827;background:#f3f4f6;border-color:#0000}.nav-group.active .nav-group-trigger--btn{color:#111827;background:0 0;border-color:#f3f4f6;box-shadow:0 1px 1.5px #00000012}.nav-group-chevron{color:#9ca3af;flex-shrink:0;transition:transform .22s cubic-bezier(.16,1,.3,1);transform:rotate(-90deg)}.nav-group-chevron.open{transform:rotate(0)}.nav-group-label{align-items:center;gap:12px;min-width:0;display:inline-flex}.nav-submenu-collapse{opacity:0;pointer-events:none;grid-template-rows:0fr;transition:grid-template-rows .22s cubic-bezier(.16,1,.3,1),opacity .16s ease-out;display:grid}.nav-submenu-collapse.open{opacity:1;pointer-events:auto;grid-template-rows:1fr}.nav-submenu-collapse-inner{min-height:0;overflow:hidden}.nav-submenu{gap:2px;padding:8px 8px 10px 42px;transition:transform .22s cubic-bezier(.16,1,.3,1);display:grid;transform:translateY(-4px)}.nav-submenu-collapse.open .nav-submenu{transform:translateY(0)}.nav-subitem{color:#6b7280;border-radius:8px;align-items:center;min-height:38px;padding:0 12px;font-size:14px;text-decoration:none;display:flex}.nav-subitem.active,.nav-subitem:hover{color:#0f766e;background:var(--surface);font-weight:700}@media (prefers-reduced-motion:reduce){.nav-group-chevron,.nav-submenu-collapse,.nav-submenu{transition:none}}.workspace{min-width:0;min-height:0;position:relative;overflow-y:auto}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;gap:16px;min-height:64px;padding:0 24px;display:flex;container:topbar/inline-size}.store-path{display:none}.topbar-actions{flex-wrap:nowrap;flex:auto;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.topbar-menu-trigger{flex:0 auto;min-width:0;display:none}.topbar-toolbar{background:var(--surface);border:0;flex:0 auto;align-items:stretch;gap:8px;min-width:0;max-width:min(100%,920px);height:36px;display:inline-flex;overflow:visible}.topbar-toolbar-divider{background:var(--border);flex-shrink:0;align-self:stretch;width:1px}.topbar-toolbar-pill{background:0 0;border:0;border-radius:0;height:100%;min-height:0;padding:0 12px}.topbar-pill-user-label{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.topbar-menu-dialog{width:min(100%,360px)}.topbar-menu-list{gap:10px;display:grid}.topbar-menu-list .secondary-button.compact{justify-content:flex-start;width:100%}.topbar-menu-meta{gap:8px;padding:4px 0;display:grid}.topbar-menu-meta .pill{justify-content:flex-start;width:100%}.topbar-context-dialog{width:min(100%,1200px)}.topbar-context-dialog .context-panel{box-shadow:none;border:0;margin-bottom:0;padding:0}.topbar-context-dialog .context-body{grid-template-columns:248px minmax(0,1fr);align-items:stretch;gap:20px;padding:0;display:grid}@media (max-width:620px){.topbar-context-dialog .context-body{grid-template-columns:1fr}}.topbar-context-dialog .panel-heading{justify-content:flex-start;align-items:center;gap:16px;padding:6px 36px 18px 0;display:flex}.context-heading-icon{color:var(--teal);flex:none;margin-right:4px}.context-load-error{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.context-criteria{flex-direction:column;gap:12px;display:flex}.context-area-divider{align-items:center;gap:10px;margin:4px 0 2px;display:flex}.context-area-divider span{color:var(--muted);white-space:nowrap;font-size:12px}.context-area-divider:after{content:"";background:#eef0f2;flex:1;height:1px}.context-store-panel{border:1px solid var(--border);background:#fcfcfd;border-radius:10px;flex-direction:column;min-height:296px;display:flex;overflow:hidden}.context-store-panel-head{justify-content:space-between;align-items:center;padding:12px 12px 10px;display:flex}.context-store-panel-title{color:var(--text);font-size:13px;font-weight:500}.context-store-count{color:var(--muted);background:#eef2f3;border-radius:999px;padding:2px 9px;font-size:12px}.context-store-search{padding:0 12px 10px}.context-store-search input{height:38px;font-size:13px}.context-store-list{border-top:1px solid #eef0f2;flex-direction:column;flex:auto;gap:2px;min-height:0;max-height:320px;padding:6px;display:flex;overflow-y:auto}.context-store-row{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:background .12s;display:flex}.context-store-row:hover{background:#f1f5f6}.context-store-row.selected{color:var(--teal-dark);background:#e7f5f3;font-weight:500}.context-store-row-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.context-store-row-name em{color:var(--muted);font-style:normal}.context-store-row.selected .context-store-row-name em{color:var(--teal)}.context-store-row svg{color:var(--teal);flex:none}.context-store-row-trailing{flex:none;align-items:center;gap:8px;display:inline-flex}.context-store-last-badge{color:#fff;background:var(--teal-dark);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;line-height:1}.context-store-empty{text-align:center;color:var(--muted);margin:auto;padding:28px 16px;font-size:13px}@container topbar (max-width:1080px){.topbar-action-inline{display:none!important}.topbar-menu-trigger{display:inline-flex}}.global-loading-indicator{z-index:45;pointer-events:none;height:0;position:sticky;top:0}.global-loading-bar{background:#3ab8b71f;height:3px;position:absolute;top:0;left:0;right:0;overflow:hidden}.global-loading-bar:after{content:"";background:linear-gradient(90deg, #3ab8b700, var(--teal), #3ab8b700);width:35%;animation:1.05s ease-in-out infinite global-loading-slide;position:absolute;top:0;bottom:0;left:-35%}@keyframes global-loading-slide{0%{transform:translate(0)}to{transform:translate(385%)}}.dashboard-topbar-left,.dashboard-topbar-right,.dashboard-breadcrumb,.dashboard-store-trail,.dashboard-language{align-items:center;display:flex}.dashboard-topbar-left{gap:16px;min-width:0}.dashboard-breadcrumb{color:#6b7280;white-space:nowrap;gap:8px;font-size:16px;line-height:20px}.dashboard-breadcrumb strong{color:#111827;font-weight:600}.topbar-divider{background:#e5e7eb;flex:none;width:1px;height:24px}.topbar-divider.tall{height:32px}.dashboard-store-trail{color:#9ca3af;white-space:nowrap;gap:12px;min-width:0;font-size:14px;font-weight:500;line-height:16px}.dashboard-store-trail span:last-child{text-overflow:ellipsis;overflow:hidden}.dashboard-search-dot{color:#fff;background:#111827;border-radius:999px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.dashboard-topbar-right{flex:none;gap:16px}.dashboard-header-search{color:#9ca3af}.dashboard-language{color:#4b5563;white-space:nowrap;gap:4px;font-size:16px;line-height:20px}.dashboard-user{color:#111827;justify-items:end;gap:4px;line-height:1;display:grid}.dashboard-user strong{font-size:16px;font-weight:700}.dashboard-user small{color:#9ca3af;letter-spacing:-.5px;font-size:12px;font-weight:700}.dashboard-avatar{color:#9ca3af;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.topbar-context-trigger{cursor:pointer;max-width:240px}.topbar-context-trigger:hover{background:#f3f4f6}.topbar-context-trigger-label{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.language-selector{align-items:stretch;display:inline-flex;position:relative}.language-selector-trigger{cursor:pointer;gap:8px}.language-selector-trigger:hover{background:#f3f4f6}.language-selector-label{font-size:14px}.language-selector-chevron{color:#9ca3af;transition:transform .15s}.language-selector-chevron.open{transform:rotate(180deg)}.language-flag{background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:19px;line-height:1;display:inline-flex;overflow:hidden}.language-selector-menu{background:var(--surface);border:1px solid var(--border);z-index:60;border-radius:10px;gap:2px;min-width:180px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 38px #0f172a29}.language-selector-option{color:#374151;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:14px;display:flex}.language-selector-option:hover{background:#f3f4f6}.language-selector-option.selected{color:var(--teal-dark);background:#3ab8b71f;font-weight:600}.language-selector-option-label{flex:auto}.language-selector-check{color:var(--teal-dark);flex:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pill,.icon-button:where(:not(.fems-workspace *)){border:1px solid var(--border);background:var(--surface);color:#374151;white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:8px;height:36px;padding:0 11px;display:inline-flex}.icon-button:where(:not(.fems-workspace *)){cursor:pointer;justify-content:center;width:36px;padding:0}.content{padding:20px 32px}.context-panel{margin-bottom:18px}.context-form{grid-template-columns:minmax(180px,1fr) auto minmax(260px,1.4fr) auto;align-items:end;gap:12px;padding:14px 20px 20px;display:grid}.context-panel .error-text{margin:-4px 20px 18px}.input-icon{display:block;position:relative}.input-icon svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-icon input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),.input-icon select{padding-left:38px}.context-store-select{position:relative}.context-store-select .context-select-trigger{height:42px;padding-left:38px}.context-store-select .context-select-trigger svg,.context-store-select .select-field-option svg{color:currentColor;pointer-events:none;position:static;top:auto;left:auto;transform:none}.context-store-select .context-select-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.context-store-select .select-field-option svg{flex:none}.context-select-menu{z-index:80;min-width:100%}.content-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.content-heading__main{min-width:0}.content-heading__breadcrumb{color:#667386;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 8px;font-size:13px;font-weight:500;line-height:18px;display:flex}.content-heading__breadcrumb-link{color:inherit;text-decoration:none;transition:color .15s}.content-heading__breadcrumb-link:hover{color:var(--teal-dark)}.content-heading__breadcrumb-sep{color:#c4cad4;flex-shrink:0}.content-heading__breadcrumb-current{color:var(--navy);font-weight:600}.content-heading__title{color:var(--navy);align-items:center;gap:10px;margin:0;font-size:24px;font-weight:700;line-height:32px;display:inline-flex}.content-heading__icon{color:var(--teal-dark);align-items:center;display:inline-flex}.content-heading__description{color:#667386;max-width:680px;margin:6px 0 0;font-size:14px;font-weight:500;line-height:20px}.content-heading__meta{color:#667386;margin-top:6px;font-size:14px;font-weight:500;line-height:16px}.content-heading__actions{flex-shrink:0;align-items:flex-start;gap:8px;display:flex}.status-legend{color:#667386;text-transform:uppercase;background:#fff;border:1px solid #e6ebf1;border-radius:999px;justify-content:center;align-items:center;gap:24px;width:290px;min-height:35px;padding:0 19px;font-size:12px;font-weight:700;line-height:17px;display:flex}.status-legend span{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.dot{border-radius:999px;width:10px;height:10px;margin-right:0;display:inline-block}.danger{--tone:var(--danger)}.caution{--tone:var(--caution)}.stable{--tone:var(--stable)}.dot.danger{background:var(--danger)}.dot.caution{background:var(--caution)}.dot.stable{background:var(--stable)}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:18px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px}.panel-heading{padding:18px 20px 4px}.panel-heading h2{margin:0;font-size:17px}.panel-heading p{color:var(--muted);margin:5px 0 0;font-size:13px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 20px 20px;display:grid}.metric-card{background:var(--surface-muted);border-top:3px solid var(--tone,var(--border));border-radius:10px;align-content:space-between;min-height:112px;padding:16px;display:grid}.metric-card span{color:var(--muted);font-size:13px}.metric-card strong{font-size:28px}.metric-icon{width:32px;height:32px;color:var(--tone,var(--teal));background:#fff;border-radius:8px;place-items:center;display:grid}.chart-panel{margin-top:18px;padding-bottom:14px}.line-chart{width:100%;height:240px;padding:14px 20px 0;overflow:visible}.grid-lines line{stroke:#edf0f3;stroke-width:1px}.success-line,.failure-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.success-line{stroke:var(--stable)}.failure-line{stroke:var(--danger)}.line-chart text{fill:var(--muted);font-size:11px}.overview-screen{background:var(--bg);color:#111827;flex-direction:column;gap:14px;height:calc(100vh - 64px);min-height:0;padding:20px 28px;display:flex;overflow:hidden}.dashboard-shell .overview-screen{min-height:calc(100vh - 64px)}.overview-notice{color:#b42318;margin:0 0 8px;font-size:12px;font-weight:700}.overview-grid{flex:auto;grid-template-rows:auto minmax(0,1fr);grid-template-columns:repeat(12,minmax(0,1fr));gap:14px 16px;min-width:0;min-height:0;display:grid}.overview-panel{min-width:0;min-height:0;box-shadow:none;background:#fff;border:1px solid #eceff3;border-radius:12px;overflow:hidden}.overview-label-panel{grid-column:1/span 8}.overview-exception-panel{flex-direction:column;grid-column:9/span 4;display:flex}.overview-gateway-panel{grid-column:1/span 3}.overview-panel-heading,.overview-chart-heading{color:#8a96a8;border-bottom:1px solid #f1f4f7;align-items:center;gap:8px;min-height:48px;padding:0 24px;display:flex}.overview-panel-heading h2,.overview-chart-heading h2{color:#121a2a;text-transform:uppercase;margin:0;font-size:16px;font-weight:700;line-height:20px}.overview-label-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px;display:grid}.overview-status-tile{background:#fafbfc;border:1px solid #eef2f6;border-radius:12px;align-content:center;gap:10px;min-height:90px;padding:17px;display:grid}.overview-tile-link{color:inherit;cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s}.overview-tile-link:hover{box-shadow:0 0 0 1px #168f8d4d}.overview-tile-link:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:8px}.overview-status-tile span,.overview-exception-tile span,.overview-gateway-tile span{color:#95a1b2;text-transform:uppercase;font-size:14px;font-weight:700;line-height:16.5px}.overview-status-value{align-items:baseline;gap:6px;min-width:0;display:flex}.overview-status-value strong,.overview-count-tile strong,.overview-exception-tile strong,.overview-gateway-tile strong{color:#121a2a;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:28px}.overview-status-value strong,.overview-exception-tile strong{font-size:32px;line-height:36px}.overview-status-value small{color:#9aa6b7;white-space:nowrap;font-size:12px;font-weight:600;line-height:16px}.overview-count-tile{background:#fff;gap:10px}.overview-exception-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px 24px 24px;display:grid}.overview-exception-tile{border:1px solid #0000;border-radius:12px;align-content:start;gap:0;padding:17px;display:grid}.overview-exception-tile.danger{background:#fff0f1;border-color:#fde1e3}.overview-exception-tile.danger span,.overview-exception-tile.danger strong{color:#b91c1c}.overview-exception-tile.info{background:#eef8ff;border-color:#dceefb}.overview-exception-tile.info span,.overview-exception-tile.info strong{color:#006391}.overview-gateway-list{gap:16px;padding:24px;display:grid}.overview-gateway-tile{background:#fafbfc;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;height:90px;padding:0 16px;display:flex}.overview-gateway-tile.dark{background:#111827}.overview-gateway-tile.dark span,.overview-gateway-tile.dark strong{color:#fff}.overview-skeleton-panel{padding:0}.overview-skeleton-heading,.overview-skeleton-tile,.overview-skeleton-chart{background:linear-gradient(90deg,#edf2f4 0%,#f8fafc 45%,#edf2f4 100%) 0 0/220% 100%;border-radius:999px;animation:1.25s ease-in-out infinite skeleton-shimmer;display:block}.overview-skeleton-heading{width:38%;height:18px;margin:20px 24px}.overview-skeleton-tile{border-radius:12px;min-height:90px}.overview-exception-grid .overview-skeleton-tile{min-height:80px}.overview-gateway-list .overview-skeleton-tile{height:90px}.overview-skeleton-chart{border-radius:14px;height:230px;margin:24px}.overview-chart-panel{flex-direction:column;grid-column:4/span 9;display:flex}.overview-chart-body{flex:auto;min-height:0;position:relative}.overview-chart-heading{justify-content:space-between;padding-right:24px}.overview-chart-heading div{align-items:center;gap:9px;min-width:0;display:flex}.overview-chart-heading span{color:#99a5b6;text-transform:uppercase;white-space:nowrap;font-size:14px;font-weight:700;line-height:16.5px}.overview-line-chart{width:100%;height:100%;padding:10px 12px 4px;display:block;position:absolute;inset:0;overflow:visible}.overview-chart-grid line{stroke:#e7ebf0;stroke-width:1px}.overview-chart-grid text,.overview-chart-point text{fill:#5f6b7c;text-anchor:middle;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.overview-chart-grid text{text-anchor:end}.overview-chart-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.overview-chart-line.success{stroke:#168f8d}.overview-chart-line.failure{stroke:#dc2626}.overview-chart-point circle.success{fill:#168f8d;stroke:#fff;stroke-width:1.5px}.overview-chart-point circle.failure{fill:#dc2626;stroke:#fff;stroke-width:1.5px}.overview-footer{color:#67727f;text-align:center;border-top:1px solid #e5e8ec;flex:none;margin-top:0;padding-top:10px;font-size:11px;font-weight:700;line-height:14px}.unified-dashboard-screen{color:#1f2a37;background:#dfe3ea;flex-direction:column;gap:14px;height:calc(100vh - 64px);min-height:calc(100vh - 64px);padding:20px 28px;display:flex;overflow:auto}.unified-dashboard-panel{background:#f4f6f9;border:1px solid #e6eaf0;border-radius:20px;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden;box-shadow:0 12px 32px #0f25441a}.unified-dashboard-panel-header{background:#fff;border-bottom:1px solid #eef1f5;justify-content:space-between;align-items:center;gap:16px;padding:17px 24px;display:flex}.unified-dashboard-panel-header div{align-items:center;gap:9px;min-width:0;display:flex}.unified-dashboard-panel-kicker{background:#0e9a8c;border-radius:50%;flex:none;width:8px;height:8px}.unified-dashboard-panel-header strong{color:#0f2544;font-size:14px;font-weight:700;line-height:18px}.unified-dashboard-panel-header small,.unified-dashboard-panel-header>span{color:#94a3b8;font-size:11.5px;font-weight:600;line-height:16px}.unified-system-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;padding:22px 24px;display:grid}.unified-system-grid.single{grid-template-columns:minmax(0,1fr)}.unified-system-grid.is-dense{flex:auto;grid-auto-rows:minmax(0,1fr);min-height:0}.unified-system-grid.is-wrapped{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(min-content,1fr);place-content:start stretch;width:100%;min-height:0;overflow-y:auto}.unified-system-grid.is-wrapped .unified-system-card{align-self:stretch}.unified-system-card{isolation:isolate;color:#1f2a37;cursor:pointer;will-change:transform;background:#fff;border:1px solid #e6eaf0;border-radius:16px;min-width:0;text-decoration:none;transition:border-color .22s,box-shadow .22s,transform .22s,background .22s;display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #1018280a}.unified-system-card:before{z-index:0;pointer-events:none;content:"";background:linear-gradient(135deg, var(--system-accent), transparent 42%), radial-gradient(circle at 88% 12%, var(--system-accent), transparent 34%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.unified-system-card:before{background:linear-gradient(135deg, color-mix(in srgb, var(--system-accent) 3%, transparent), transparent 42%), radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--system-accent) 4%, transparent), transparent 34%)}}.unified-system-card:before{opacity:0;transition:opacity .22s}.unified-system-card>*{z-index:1;position:relative}.unified-system-card:hover,.unified-system-card:focus-visible{border-color:var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:hover,.unified-system-card:focus-visible{border-color:color-mix(in srgb, var(--system-accent) 26%, #d8e0ea)}}.unified-system-card:hover,.unified-system-card:focus-visible{box-shadow:0 16px 30px #0f25441a, 0 0 0 1px var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:hover,.unified-system-card:focus-visible{box-shadow:0 16px 30px #0f25441a, 0 0 0 1px color-mix(in srgb, var(--system-accent) 4%, transparent)}}.unified-system-card:hover,.unified-system-card:focus-visible{transform:translateY(-6px)scale(1.012)}.unified-system-card:hover:before,.unified-system-card:focus-visible:before{opacity:1}.unified-system-card:focus-visible{outline:3px solid var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:focus-visible{outline:3px solid color-mix(in srgb, var(--system-accent) 25%, transparent)}}.unified-system-card:focus-visible{outline-offset:3px}.unified-system-card:active{transition-duration:80ms;transform:translateY(-2px)scale(1.004)}.unified-system-card-header{border-bottom:1px solid #f1f5f9;align-items:center;gap:11px;min-width:0;padding:15px 17px;display:flex}.unified-system-icon{background:var(--system-tint);width:34px;height:34px;color:var(--system-accent);border-radius:10px;flex:none;place-items:center;transition:background .22s,box-shadow .22s,transform .22s;display:grid}.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon{background:var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon{background:color-mix(in srgb, var(--system-accent) 7%, #fff)}}.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon{box-shadow:0 7px 15px var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon{box-shadow:0 7px 15px color-mix(in srgb, var(--system-accent) 4%, transparent)}}.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon{transform:scale(1.08)rotate(-2deg)}.unified-system-title-block{flex:auto;gap:2px;min-width:0;display:grid}.unified-system-title-block strong{color:#0f2544;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:18px;overflow:hidden}.unified-system-title-block small{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:14px;overflow:hidden}.unified-system-status{border-radius:7px;flex:none;align-items:center;gap:5px;padding:3px 8px;font-size:10.5px;font-weight:700;line-height:14px;display:inline-flex}.unified-system-status span{border-radius:50%;width:6px;height:6px}.unified-system-status.status-normal{color:#0e9a8c;background:#e9f7f5}.unified-system-status.status-normal span{background:#10b3a3}.unified-system-status.status-caution{color:#d97706;background:#fef3e2}.unified-system-status.status-caution span{background:#f59e0b}.unified-system-status.status-danger{color:#dc2626;background:#fdecec}.unified-system-status.status-danger span{background:#ef4444}.unified-system-card-body{padding:16px 17px}.unified-system-headline-row{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:11px;display:flex}.unified-system-headline-row>div:first-child{min-width:0}.unified-system-headline-row strong{color:var(--system-accent);font-size:32px;font-weight:700;line-height:1;display:block}.unified-system-headline-row span,.unified-system-wide-headline span{color:#64748b;margin-top:4px;font-size:11px;font-weight:600;line-height:15px;display:block}.unified-system-summary{color:#94a3b8;text-align:right;flex:none;gap:3px;font-size:11px;line-height:15px;display:grid}.unified-system-summary b,.unified-system-summary-item strong{color:#0f2544;font-weight:700}.unified-system-summary .tone-normal,.unified-system-summary-item.tone-normal strong{color:#0e9a8c}.unified-system-summary .tone-caution,.unified-system-summary-item.tone-caution strong{color:#d97706}.unified-system-summary .tone-danger,.unified-system-summary-item.tone-danger strong{color:#dc2626}.unified-system-progress{gap:3px;height:7px;margin-bottom:14px;display:flex}.unified-system-progress span{border-radius:4px;min-width:5px}.unified-system-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.unified-system-stats span{text-align:center;background:#f8fafc;border-radius:8px;justify-items:center;gap:2px;min-width:0;padding:9px 4px;display:grid}.unified-system-stats strong{color:#0f2544;font-size:17px;font-weight:700;line-height:22px}.unified-system-stats small{overflow-wrap:anywhere;color:#94a3b8;font-size:10px;line-height:13px}.unified-system-stats .tone-caution strong{color:#d97706}.unified-system-stats .tone-danger strong{color:#dc2626}.unified-system-card-body.has-insights .unified-system-progress{margin-bottom:0}.unified-system-insights{border-top:1px solid #f1f5f9;grid-template-columns:minmax(142px,.72fr) minmax(0,1.28fr);gap:12px;min-width:0;min-height:0;margin-top:13px;padding-top:15px;display:grid;overflow:hidden}.unified-system-insight-panel{flex-direction:column;gap:11px;min-width:0;min-height:0;display:flex}.unified-system-insight-panel.trend{border-left:1px solid #eef2f7;padding-left:12px}.unified-system-card--esl .unified-system-insights,.unified-system-card--signage .unified-system-insights{grid-template-columns:minmax(0,1fr)}.unified-system-insight-panel.devices{min-height:0}.unified-system-insight-panel header{color:#0f2544;align-items:center;gap:7px;min-width:0;display:flex}.unified-system-insight-panel header svg{color:#94a3b8;flex:none}.unified-system-insight-panel header strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;line-height:16px;overflow:hidden}.unified-system-insight-panel header small{color:#64748b;white-space:nowrap;margin-left:auto;font-size:10.5px;font-weight:600;line-height:14px}.unified-gateway-summary{grid-template-columns:minmax(110px,1.18fr) repeat(2,minmax(76px,.74fr));gap:8px;min-width:0;display:grid}.unified-gateway-metric{background:#f8fafc;border-left:3px solid #dbe3ee;min-width:0;padding:9px 10px}.unified-gateway-metric span,.unified-gateway-metric strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.unified-gateway-metric span{color:#64748b;font-size:10.5px;font-weight:600;line-height:14px}.unified-gateway-metric strong{color:#0f172a;margin-top:5px;font-size:15px;font-weight:700;line-height:19px}.unified-gateway-metric.tone-normal{border-left-color:#10b3a3}.unified-gateway-metric.tone-normal strong{color:var(--system-accent)}.unified-gateway-metric.tone-danger{border-left-color:#ef4444}.unified-gateway-metric.tone-danger strong{color:#dc2626}.unified-gateway-bar{background:#eef2f7;border-radius:999px;height:6px;overflow:hidden}.unified-gateway-bar span{border-radius:inherit;background:var(--system-accent);min-width:3px;height:100%;display:block}.unified-gateway-trend{border-top:1px solid #eef2f7;min-width:0;min-height:0;margin-top:2px;padding-top:13px;overflow:hidden}.unified-gateway-trend .unified-system-insight-panel.trend{border-left:0;padding-left:0;overflow:hidden}.unified-trend-content{overscroll-behavior:contain;flex:auto;grid-template-columns:minmax(220px,1fr) 134px;align-items:stretch;gap:12px;min-width:0;min-height:0;display:grid;overflow-y:auto}.unified-trend-chart{flex-direction:column;justify-content:flex-end;gap:3px;min-width:0;display:flex}.unified-trend-chart svg{width:100%;height:118px;overflow:visible}.unified-trend-chart line{stroke:#e2e8f0;stroke-width:1px}.unified-trend-band{fill:#ecfdfb;opacity:.68}.unified-trend-guide{stroke:#94a3b8;stroke-dasharray:4 4;stroke-width:1px}.unified-trend-grid text,.unified-trend-x-label{fill:#64748b;font-size:10px;font-weight:700}.unified-trend-grid text{text-anchor:end}.unified-trend-x-label{text-anchor:middle}.unified-trend-x-label.is-active{fill:#0f172a;font-weight:700}.unified-trend-chart polyline{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px}.unified-trend-chart .success{stroke:#0e9a8c}.unified-trend-chart circle.success{fill:#0e9a8c}.unified-trend-chart .failure{stroke:#dc2626}.unified-trend-chart circle.failure{fill:#dc2626}.unified-trend-ring{fill:#fff;stroke-width:2px}.unified-trend-ring.success{stroke:#0e9a8c}.unified-trend-ring.failure{stroke:#dc2626}.unified-trend-hit{cursor:pointer;fill:#0000;pointer-events:all}.unified-trend-latest{border-left:1px solid #e2e8f0;flex-direction:column;justify-content:center;min-width:0;padding-left:12px;display:flex}.unified-trend-latest>small{color:#0f172a;font-size:11px;font-weight:700;line-height:14px}.unified-trend-latest>strong{color:#0f172a;margin-top:5px;font-size:26px;font-weight:700;line-height:28px}.unified-trend-latest>span{color:#64748b;font-size:10px;font-weight:600;line-height:13px}.unified-trend-chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.unified-trend-chips span{text-overflow:ellipsis;white-space:nowrap;border-radius:7px;padding:6px 7px;font-size:10.5px;font-weight:700;line-height:13px;overflow:hidden}.unified-trend-chips .tone-normal{color:#0e9a8c;background:#e9f7f5}.unified-trend-chips .tone-danger{color:#dc2626;background:#fdecec}.unified-trend-latest dl{gap:5px;margin:10px 0 0;display:grid}.unified-trend-latest dl div{justify-content:space-between;gap:8px;min-width:0;display:flex}.unified-trend-latest dt,.unified-trend-latest dd{margin:0;font-size:10.5px;font-weight:600;line-height:13px}.unified-trend-latest dt{color:#64748b}.unified-trend-latest dd{color:var(--system-accent);text-align:right}.unified-fleet-device-list{flex:auto;grid-template-rows:auto minmax(0,1fr);gap:6px;min-width:0;display:grid}.unified-fleet-device-head,.unified-fleet-device-row{grid-template-columns:minmax(96px,1fr) 64px 64px 58px minmax(74px,.7fr);align-items:center;display:grid}.unified-fleet-device-head{color:#94a3b8;gap:9px;padding:0 10px 2px;font-size:9.5px;font-weight:700;line-height:13px}.unified-fleet-devices{overscroll-behavior:contain;align-content:start;gap:6px;min-height:0;padding-right:3px;display:grid;overflow-y:auto}.unified-fleet-device-row{color:#64748b;background:#f8fafc;gap:9px;min-width:0;min-height:42px;padding:8px 10px;font-size:10px;font-weight:700;line-height:13px}.unified-fleet-device-row strong,.unified-fleet-device-row span,.unified-fleet-device-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.unified-fleet-device-row strong{color:#0f172a}.unified-fleet-device-row small{color:#94a3b8;text-align:right;font-size:10px;line-height:13px}.unified-fleet-empty{color:#475569;text-align:center;background:#edf3f7;border-top:1px solid #e2e8f0;place-items:center;min-height:100%;margin:0;font-size:11px;font-weight:700;line-height:16px;display:grid}.unified-system-card-body.has-insights .unified-system-stats{margin-top:13px}.unified-system-footer{border-top:1px solid #f4f6f9;justify-content:space-between;align-items:center;gap:12px;margin-top:13px;padding-top:12px;display:flex}.unified-system-footer-text{color:#64748b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11.5px;line-height:16px;overflow:hidden}.unified-system-detail{border:1px solid var(--system-accent);flex:none;align-items:center;gap:5px;min-height:28px;padding:5px 8px 5px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.unified-system-detail{border:1px solid color-mix(in srgb, var(--system-accent) 24%, transparent)}}.unified-system-detail{background:var(--system-accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.unified-system-detail{background:color-mix(in srgb, var(--system-accent) 8%, #fff)}}.unified-system-detail{color:var(--system-accent);white-space:nowrap;font-size:11.5px;font-weight:700;line-height:16px;transition:background .22s,box-shadow .22s,color .22s,transform .22s;box-shadow:inset 0 0 0 1px #ffffff94}.unified-system-detail-icon{flex:none;transition:transform .22s}.unified-system-card:hover .unified-system-detail,.unified-system-card:focus-visible .unified-system-detail{background:var(--system-accent);color:#fff;box-shadow:0 7px 16px var(--system-accent)}@supports (color:color-mix(in lab, red, red)){.unified-system-card:hover .unified-system-detail,.unified-system-card:focus-visible .unified-system-detail{box-shadow:0 7px 16px color-mix(in srgb, var(--system-accent) 5%, transparent)}}.unified-system-card:hover .unified-system-detail,.unified-system-card:focus-visible .unified-system-detail{transform:translate(2px)}.unified-system-card:hover .unified-system-detail-icon,.unified-system-card:focus-visible .unified-system-detail-icon{transform:translate(4px)}@media (prefers-reduced-motion:reduce){.unified-system-card,.unified-system-card:before,.unified-system-icon,.unified-system-detail,.unified-system-detail-icon{transition:none}.unified-system-card:hover,.unified-system-card:focus-visible,.unified-system-card:hover .unified-system-icon,.unified-system-card:focus-visible .unified-system-icon,.unified-system-card:hover .unified-system-detail,.unified-system-card:focus-visible .unified-system-detail,.unified-system-card:hover .unified-system-detail-icon,.unified-system-card:focus-visible .unified-system-detail-icon{transform:none}}.unified-system-card--wide{align-items:stretch;display:flex}.unified-system-grid.is-dense .unified-system-card--compact{flex-direction:column;display:flex}.unified-system-grid.is-dense .unified-system-card--compact .unified-system-card-body{flex-direction:column;flex:auto;min-height:0;display:flex}.unified-system-grid.is-dense .unified-system-card--compact .unified-system-card-body.has-insights .unified-system-insights{flex:auto;min-height:0}.unified-system-grid.is-dense .unified-system-card--compact .unified-system-card-body.has-insights .unified-system-stats{margin-top:13px}.unified-system-grid.is-dense .unified-system-card--compact .unified-system-card-body.has-insights .unified-system-insight-panel{min-height:0}.unified-system-grid.is-dense .unified-system-card--compact .unified-system-card-body.has-insights .unified-system-insights>.unified-system-insight-panel{height:100%}.unified-system-grid.is-dense .unified-system-card--esl .unified-gateway-trend,.unified-system-grid.is-dense .unified-system-card--esl .unified-gateway-trend .unified-system-insight-panel.trend,.unified-system-grid.is-dense .unified-system-card--esl .unified-trend-content,.unified-system-grid.is-dense .unified-system-card--signage .unified-fleet-device-list{flex:auto;min-height:0}.unified-system-grid.is-dense .unified-system-card--esl .unified-gateway-trend{flex-direction:column;display:flex}.unified-system-wide-identity{border-right:1px solid #f1f5f9;flex-direction:column;flex:0 0 316px;justify-content:center;gap:18px;padding:24px 28px;display:flex}.unified-system-card--wide .unified-system-card-header{border-bottom:0;padding:0}.unified-system-card--wide .unified-system-icon{width:38px;height:38px}.unified-system-wide-headline strong{color:var(--system-accent);font-size:48px;font-weight:700;line-height:1;display:block}.unified-system-wide-headline span{margin-top:7px;font-size:12.5px}.unified-system-wide-main{flex-direction:column;flex:auto;justify-content:center;gap:16px;min-width:0;padding:24px 28px;display:flex}.unified-system-card--wide .unified-system-progress{height:9px;margin-bottom:0}.unified-system-stats.wide{gap:12px}.unified-system-stats.wide span{border-radius:10px;padding:14px 6px}.unified-system-stats.wide strong{font-size:22px;line-height:27px}.unified-system-stats.wide small{font-size:11px}.unified-system-wide-meta{border-left:1px solid #f1f5f9;flex-direction:column;flex:0 0 218px;justify-content:center;gap:14px;padding:24px 28px;display:flex}.unified-system-summary-list{gap:20px;display:flex}.unified-system-summary-item{color:#94a3b8;gap:4px;font-size:11.5px;font-weight:600;line-height:15px;display:grid}.unified-system-summary-item strong{font-size:17px;line-height:21px}.unified-dashboard-empty{color:#64748b;background:#fff;border:1px solid #e6eaf0;border-radius:12px;align-items:center;gap:8px;margin:22px 24px;padding:18px 20px;font-size:13px;font-weight:700;display:flex}.unified-dashboard-empty svg{color:#d97706}.unified-system-skeleton-card{align-content:start;gap:16px;min-height:250px;padding:18px;display:grid}.unified-skeleton-line,.unified-skeleton-stat-row span{background:linear-gradient(90deg,#edf1f6 0%,#f7f9fc 45%,#edf1f6 100%) 0 0/180% 100%;border-radius:8px;animation:.8s both overview-fade-in;display:block;overflow:hidden}.unified-skeleton-line.short{width:44%;height:34px}.unified-skeleton-line.headline{width:56%;height:46px}.unified-skeleton-line.bar{width:100%;height:8px}.unified-skeleton-stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.unified-skeleton-stat-row span{height:54px}.overview-error{color:#944848;background:#fbf3f3;border:1px solid #f1dada;border-radius:12px;align-items:center;gap:16px;padding:28px 24px;display:flex}.overview-error>svg{color:#b05a5a;flex:none}.overview-error strong{font-size:15px;font-weight:700;display:block}.overview-error p{color:#7a5a5a;margin:4px 0 0;font-size:13px;line-height:18px}.overview-retry{color:#944848;cursor:pointer;background:#fff;border:1px solid #d8b9b9;border-radius:8px;align-items:center;gap:6px;margin-left:auto;padding:9px 16px;font-size:13px;font-weight:700;display:inline-flex}.overview-retry:hover{background:#fbeded}.overview-retry:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.alert{border:1px solid var(--border);background:var(--surface);color:var(--text,#1f2937);border-radius:10px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.alert__icon{flex:none;margin-top:1px;display:inline-flex}.alert__body{gap:4px;min-width:0;display:grid}.alert__close{width:24px;height:24px;color:inherit;opacity:.65;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.alert__close:hover{opacity:1;background:#0f172a0f}.alert__title{font-size:14px;font-weight:700}.alert__message{font-size:13px;line-height:19px}.alert--info{color:#1f6e6c;background:#f0fafa;border-color:#bfe5e4}.alert--info .alert__icon{color:var(--teal-dark)}.alert--success{color:#1f7a3d;background:#f0faf3;border-color:#bbe6c7}.alert--success .alert__icon{color:#1f7a3d}.alert--warning{color:#92400e;background:#fffbeb;border-color:#fcd34d}.alert--warning .alert__icon{color:#b45309}.alert--warning .alert__title{color:#78350f}.alert--error{color:#944848;background:#fbf3f3;border-color:#f1dada}.alert--error .alert__icon{color:#b05a5a}.overview-label-body{flex-direction:column;gap:14px;padding:16px 24px 18px;display:flex}.overview-status-summary{align-items:center;gap:20px;display:flex}.overview-status-rate{flex-direction:column;flex:none;gap:2px;display:flex}.overview-status-rate strong{color:var(--teal-dark);font-variant-numeric:tabular-nums;font-size:38px;font-weight:700;line-height:1}.overview-status-rate span{color:#5b6675;font-size:12px;font-weight:600}.overview-stacked-bar{background:#eef1f5;border-radius:999px;flex:auto;height:14px;display:flex;overflow:hidden}.overview-stacked-seg{min-width:2px}.overview-stacked-seg.stable{background:var(--stable)}.overview-stacked-seg.caution{background:var(--caution)}.overview-stacked-seg.danger{background:var(--danger)}.overview-stacked-seg.remainder{background:#dfe4ea}.overview-status-rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.overview-status-row{background:#fafbfc;border-left:3px solid #d5dbe3;border-radius:0 8px 8px 0;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.overview-status-row.stable{border-left-color:var(--teal-dark)}.overview-status-row.caution{border-left-color:#c08a3e}.overview-status-row.danger{border-left-color:#b05a5a}.overview-status-row-label{color:#5b6675;font-size:12px;font-weight:600}.overview-status-row-value{align-items:baseline;gap:6px;display:flex}.overview-status-row-value strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.overview-status-row.stable .overview-status-row-value strong{color:var(--teal-dark)}.overview-status-row.caution .overview-status-row-value strong{color:#8a6526}.overview-status-row.danger .overview-status-row-value strong{color:#944848}.overview-status-row-value small{color:#5f6b7c;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.overview-count-grid{border-top:1px solid #f1f4f7;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:12px;display:grid}.overview-count-tile{border-left:3px solid #d5dbe3;flex-direction:column;gap:6px;padding:2px 0 2px 13px;display:flex}.overview-count-tile>span:not(.overview-progress){color:#5b6675;text-transform:none;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.overview-count-tile>span em{color:var(--teal-dark);font-style:normal;font-weight:700}.overview-count-tile strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.overview-ratio-tile{border-left-color:var(--teal-dark)}.overview-progress{background:#eef1f5;border-radius:999px;width:100%;height:6px;margin-top:4px;display:block;overflow:hidden}.overview-progress-fill{border-radius:999px;height:100%;display:block}.overview-progress-fill.stable{background:var(--teal-dark)}.overview-progress-fill.danger{background:#b05a5a}.overview-exception-body{flex-direction:column;flex:auto;gap:16px;min-height:0;padding:16px 24px 20px;display:flex}.overview-exception-total{align-items:baseline;gap:10px;display:flex}.overview-exception-total strong{color:#944848;font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1}.overview-exception-total span{color:#5b6675;font-size:12px;font-weight:600}.overview-exception-comp{background:#eef1f5;border-radius:999px;height:12px;display:flex;overflow:hidden}.overview-exception-comp>span{min-width:2px}.overview-exception-comp-empty{background:#dfe4ea}.overview-exception-breakdown{flex-direction:column;flex:auto;justify-content:space-between;gap:2px;margin-top:2px;display:flex}.overview-exception-row{border-bottom:1px solid #f4f6f9;border-radius:8px;align-items:center;gap:10px;padding:9px 8px;display:flex}.overview-exception-breakdown .overview-exception-row:last-child{border-bottom:0}.overview-exception-row-dot{border-radius:3px;flex:none;width:10px;height:10px}.overview-exception-row-label{color:#3a4452;font-size:13px;font-weight:500}.overview-exception-row strong{color:#111827;font-variant-numeric:tabular-nums;margin-left:auto;font-size:18px;font-weight:700;line-height:1}.overview-gateway-body{flex-direction:column;gap:18px;padding:20px 24px 24px;display:flex}.overview-gauge{flex-direction:column;gap:8px;display:flex}.overview-gauge-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.overview-gauge-head span{color:#5b6675;font-size:12px;font-weight:600}.overview-gauge-head strong{color:var(--teal-dark);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.overview-gateway-rows{gap:10px;display:grid}.overview-gateway-row{background:#fafbfc;border-left:3px solid #d5dbe3;border-radius:0 8px 8px 0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.overview-gateway-row span{color:#5b6675;font-size:12px;font-weight:600}.overview-gateway-row strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.overview-gateway-row.danger{border-left-color:#b05a5a}.overview-gateway-row.danger span,.overview-gateway-row.danger strong{color:#944848}.overview-chart-legend{align-items:center;gap:16px;display:inline-flex}.overview-chart-legend span{color:#5b6675;text-transform:none;white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.overview-chart-legend i{border-radius:999px;width:10px;height:10px}.overview-chart-legend .success i{background:#168f8d}.overview-chart-legend .failure i{background:#dc2626}.overview-chart-empty{color:#5f6b7c;justify-content:center;align-items:center;margin:0;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0}.overview-skeleton-bar{background:linear-gradient(90deg,#edf2f4 0%,#f8fafc 45%,#edf2f4 100%) 0 0/220% 100%;border-radius:999px;height:14px;margin:0 24px 4px;animation:1.25s ease-in-out infinite skeleton-shimmer}@keyframes overview-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes overview-draw{to{stroke-dashoffset:0}}@keyframes overview-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){.overview-stacked-bar,.overview-progress-fill,.overview-exception-comp{transform-origin:0;animation:.8s cubic-bezier(.22,1,.36,1) both overview-grow-x}.overview-chart-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:.9s forwards overview-draw}.overview-chart-line.failure{animation-delay:.18s}.overview-chart-point circle{opacity:0;animation:.4s .95s forwards overview-fade-in}.overview-status-rate strong,.overview-exception-total strong{animation:.5s both overview-fade-in}}.table-panel{overflow:hidden}table:where(:not(.fems-workspace *)){border-collapse:collapse;width:100%}th:where(:not(.fems-workspace *)),td:where(:not(.fems-workspace *)){text-align:left;border-bottom:1px solid var(--border);padding:14px 16px;font-size:13px}th:where(:not(.fems-workspace *)){color:#374151;background:#f8fafc;font-weight:700}td:where(:not(.fems-workspace *)){color:#4b5563}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.search-box{width:min(100%,320px);position:relative}.search-box svg{color:var(--muted);position:absolute;top:12px;left:12px}.search-box input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){padding-left:38px}.label-info-page{min-width:0}.label-feature-workspace{min-height:520px}.image-push-page{min-width:0}.image-push-reset-button:disabled,.image-push-submit:disabled,.image-push-page button:disabled{cursor:not-allowed}.image-push-workspace{gap:18px;display:grid}.image-push-main{grid-template-columns:minmax(420px,1.1fr) minmax(360px,.9fr);align-items:start;gap:18px;display:grid}.image-push-control-stack{gap:16px;display:grid}.image-push-label-field{max-width:640px}.image-push-label-title{align-items:flex-start;gap:3px;width:fit-content;display:inline-flex}.image-push-label-field strong{color:var(--danger)}.image-page-panel{overflow:hidden}.image-label-info-panel{gap:12px;padding:16px 18px;display:grid}.image-label-info-panel header{justify-content:space-between;align-items:center;gap:12px;display:flex}.image-label-info-panel header strong{color:var(--text);font-size:14px}.image-label-info-panel header span{color:var(--muted);font-size:12px;font-weight:700}.image-label-info-grid{border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(0,1.9fr) minmax(0,.75fr) minmax(0,.75fr);display:grid;overflow:hidden}.image-label-info-item{background:#fbfcfd;gap:6px;min-width:0;padding:14px 16px;display:grid}.image-label-info-item+.image-label-info-item{border-left:1px solid var(--border)}.image-label-info-item>span{color:var(--muted);font-size:12px;font-weight:600}.image-label-info-item strong{min-width:0;color:var(--text);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.image-label-info-item strong>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.image-label-info-item strong .template-color-dots{flex:none}.image-label-info-error{margin:0}.image-page-panel-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:0 18px;display:flex}.image-page-panel-header strong{color:var(--text);font-size:14px}.image-page-panel-header span{color:var(--muted);font-size:12px;font-weight:700}.image-push-panel-notice{border-top:none;border-left:none;border-right:none;border-radius:0}.image-push-panel-notice-error{color:var(--danger);background:#dc26260f;border:none;border-bottom:1px solid #dc26262e}.image-page-table-wrap{overflow-x:auto}.image-page-table{table-layout:fixed}.image-page-table th,.image-page-table td{vertical-align:middle;height:58px;padding:0 16px;font-size:12px}.image-page-table th{color:#374151;background:#f8fafc;font-weight:700}.image-page-table th:first-child,.image-page-table td:first-child{text-align:center;width:80px}.image-page-table th:nth-child(3),.image-page-table td:nth-child(3){width:100px}.image-page-table tbody tr{cursor:pointer}.image-page-table tbody tr.active td{background:#effafa}.image-page-file{gap:4px;min-width:0;display:grid}.image-page-file strong,.image-page-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.image-page-file strong{color:#1f2937;font-size:13px}.image-page-file span{color:var(--muted);font-size:12px}.image-page-status{min-width:68px;color:var(--muted);align-items:center;gap:5px;font-weight:700;display:inline-flex}.image-page-status.ready{color:var(--teal-dark)}.image-page-status.empty{color:#9ca3af}.image-page-actions{justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.image-icon-button{border:1px solid var(--border);color:#1f3d56;background:var(--surface);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:relative}.image-icon-button:hover{color:var(--teal-dark);border-color:#3ab8b773}.image-icon-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.image-icon-button:disabled{color:#cbd5e1;background:#f8fafc}.image-preview-panel:where(:not(.fems-workspace *)){grid-template-rows:54px minmax(300px,1fr) 58px;height:clamp(420px,62vh,860px);display:grid;overflow:hidden}.image-preview-panel:where(:not(.fems-workspace *)) header,.image-preview-panel:where(:not(.fems-workspace *)) footer{align-items:center;gap:10px;padding:0 16px;display:flex}.image-preview-panel:where(:not(.fems-workspace *)) header{border-bottom:1px solid var(--border);background:#f8fafc}.image-preview-panel:where(:not(.fems-workspace *)) header strong{color:var(--text);font-size:14px}.image-preview-panel:where(:not(.fems-workspace *)) header span{color:var(--muted);font-size:12px;font-weight:700}.image-preview-panel:where(:not(.fems-workspace *)) header button{margin-left:auto}.image-preview-panel:where(:not(.fems-workspace *)) header button,.image-preview-panel:where(:not(.fems-workspace *)) footer button{border:1px solid var(--border);color:#1f3d56;background:var(--surface);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.image-preview-panel:where(:not(.fems-workspace *)) header button:disabled,.image-preview-panel:where(:not(.fems-workspace *)) footer button:disabled{color:#cbd5e1;background:#f8fafc}.image-preview-stage{background:#f3f6f8;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;min-height:0;padding:24px;display:grid;overflow:hidden;container-type:size}.image-preview-stage img{object-fit:contain;max-width:100cqw;max-height:100cqh;transition:transform .3s cubic-bezier(.4,0,.2,1),max-height .18s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1) .12s}.image-preview-stage[data-quarter-turn=true] img{max-width:100cqh;max-height:100cqw;transition:transform .3s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1),max-height .18s cubic-bezier(.4,0,.2,1) .12s}@media (prefers-reduced-motion:reduce){.image-preview-stage img,.image-preview-stage[data-quarter-turn=true] img{transition:none}}.image-preview-empty{color:var(--muted);place-items:center;gap:10px;font-size:13px;display:grid}.image-preview-panel:where(:not(.fems-workspace *)) footer{border-top:1px solid var(--border);background:var(--surface);justify-content:flex-end}.action-dialog.image-preview-modal{--preview-modal-stage-max:min(760px, calc(100vh - 210px));--preview-modal-stage-inset:17px;--preview-image-fit-width:min(var(--preview-image-width,100vw), calc(100vw - 136px), calc((var(--preview-modal-stage-max) - var(--preview-modal-stage-inset) * 2) * var(--preview-image-ratio,1)));width:calc(var(--preview-image-fit-width) + 80px);min-width:min(320px,100%);max-width:100%;padding:22px}.action-dialog.image-preview-modal-rotated{width:min(100%,1400px)}.image-preview-modal .dialog-close-button+.image-preview-modal-stage{margin-top:28px}.image-preview-modal-stage{min-height:320px;max-height:var(--preview-modal-stage-max);border:1px solid var(--border);background:#f3f6f8;border-radius:10px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;display:grid;overflow:hidden}.image-preview-modal-stage img{width:var(--preview-image-fit-width);object-fit:contain;height:auto;transition:transform .16s}.image-preview-modal-stage[data-quarter-turn=true]{height:var(--preview-modal-stage-max);container-type:size}.image-preview-modal-stage[data-quarter-turn=true] img{width:auto;max-width:100cqh;max-height:100cqw}.image-preview-modal-toolbar{flex-wrap:wrap;align-items:center;gap:12px;padding-right:44px;display:flex}.image-dither-toggle{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.image-preview-modal-pages{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.image-preview-modal-pages .image-icon-button{width:30px;height:30px}.image-preview-modal-state{color:var(--muted);margin:0;font-size:13px;font-weight:700}.image-resize-dialog{width:min(100%,760px)}.image-resize-header{gap:4px;padding-right:44px;display:grid}.image-resize-header h3{margin:0}.image-resize-header p{color:var(--muted);margin:0;font-size:12px;font-weight:700}.image-resize-sizes{border:1px solid var(--border);color:var(--muted);background:#fbfcfd;border-radius:8px;flex-wrap:wrap;gap:8px 18px;padding:10px 14px;font-size:12px;font-weight:700;display:flex}.image-resize-sizes strong{color:var(--text);font-size:13px}.image-adjust-toolbar{flex-wrap:wrap;align-items:center;gap:10px 22px;display:flex}.image-adjust-group{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.image-adjust-group-label{color:var(--muted);font-size:12px;font-weight:700}.image-adjust-toolbar .primary-button.compact,.image-adjust-toolbar .secondary-button.compact{height:34px;padding:0 12px;font-size:12px}.image-adjust-rotation{min-width:34px;color:var(--muted);text-align:center;font-size:12px;font-style:normal;font-weight:700}.image-adjust-zoom{flex:220px;min-width:200px}.image-adjust-zoom input[type=range]{min-width:120px;accent-color:var(--teal-dark);flex:1}.image-adjust-color{cursor:pointer;border:1px solid #0f172a4d;border-radius:6px;flex:none;width:24px;height:24px;padding:0}.image-adjust-color.selected{outline:2px solid var(--teal-dark);outline-offset:2px}.image-adjust-dither{gap:10px;margin-left:auto}.image-resize-stage{border:1px solid var(--border);background:#f3f6f8;border-radius:10px;place-items:center;min-height:280px;padding:16px;display:grid}.image-resize-canvas,.image-resize-dither-image{border:1px solid var(--border);background:#fff;width:auto;max-width:100%;height:auto;max-height:min(48vh,540px)}.image-resize-canvas{touch-action:none}.image-resize-canvas.draggable{cursor:grab}.image-resize-canvas.draggable:active{cursor:grabbing}.image-resize-help{color:var(--muted);margin:0;font-size:12px;font-weight:700}.image-button-config-panel{gap:12px;padding:14px 18px;display:grid}.image-button-config-toggle{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.image-button-config-toggle small{color:var(--muted);font-size:12px;font-weight:700}.image-button-config-body{gap:8px;display:grid}.image-push-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.image-push-feedback{min-width:0}.image-push-feedback p{margin:0}.image-push-notice{width:fit-content;color:var(--teal-dark);background:#3ab8b714;border-radius:8px}.image-push-submit{min-width:148px;padding:0 22px}.label-operations-page{min-width:0}.label-operations-heading{align-items:flex-start}.label-section-kicker{color:var(--teal-dark);text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}.segmented-tabs{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;display:grid;overflow:hidden}.segmented-tabs button{color:#334155;cursor:pointer;text-align:center;background:0 0;border:0;place-items:center;min-height:48px;font-family:inherit;font-size:13px;font-weight:700;display:grid}.segmented-tabs button:disabled{cursor:default}.segmented-tabs button.active{color:var(--navy);box-shadow:inset 0 -3px 0 var(--teal);background:#fff}.segmented-tabs--bar{grid-template-columns:repeat(var(--segmented-count,2), minmax(0, 1fr))}.segmented-tabs--inline{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;gap:6px;display:inline-flex;overflow:visible}.segmented-tabs--inline button{border:1px solid var(--border);background:var(--surface-muted);color:#4b5563;border-bottom:0;border-radius:8px 8px 0 0;min-height:38px;padding:0 16px;font-weight:700}.segmented-tabs--inline button.active{color:var(--navy);box-shadow:inset 0 -3px 0 var(--teal);background:#fff;border-color:#3ab8b78c}.label-tab-switch,.operation-filter-panel{margin-bottom:18px}.operation-filter-row{grid-template-columns:minmax(180px,260px) minmax(190px,260px) auto minmax(190px,260px) auto;align-items:end;gap:14px;display:grid}.operation-type-field strong{color:var(--danger)}.operation-date-separator{height:40px;color:var(--muted);justify-content:center;align-self:end;align-items:center;font-weight:700;display:inline-flex}.operation-filter-actions{align-items:center;gap:8px;display:flex}.operation-table-panel{overflow:hidden}.operation-table-wrap{background:var(--surface);width:100%;overflow-x:auto}.operation-table-wrap,.label-table-wrap,.image-page-table-wrap,.update-record-detail-table-wrap,.article-detail-table-wrap,.label-id-result-table-wrap,.upload-validation-table-wrap,.template-table-panel{--table-scrollbar-size:8px;--table-scrollbar-thumb:#c4cdd4;--table-scrollbar-thumb-hover:#a3aeb7;box-sizing:border-box;scrollbar-color:var(--table-scrollbar-thumb) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.operation-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.label-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.image-page-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.update-record-detail-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.article-detail-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.label-id-result-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.upload-validation-table-wrap::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.template-table-panel::-webkit-scrollbar{width:var(--table-scrollbar-size);height:var(--table-scrollbar-size)}.operation-table-wrap::-webkit-scrollbar-track{background:0 0}.label-table-wrap::-webkit-scrollbar-track{background:0 0}.image-page-table-wrap::-webkit-scrollbar-track{background:0 0}.update-record-detail-table-wrap::-webkit-scrollbar-track{background:0 0}.article-detail-table-wrap::-webkit-scrollbar-track{background:0 0}.label-id-result-table-wrap::-webkit-scrollbar-track{background:0 0}.upload-validation-table-wrap::-webkit-scrollbar-track{background:0 0}.template-table-panel::-webkit-scrollbar-track{background:0 0}.operation-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.label-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.image-page-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.update-record-detail-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.article-detail-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.label-id-result-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.upload-validation-table-wrap::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.template-table-panel::-webkit-scrollbar-thumb{background:var(--table-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-width:44px;min-height:44px}.operation-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.label-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.image-page-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.update-record-detail-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.article-detail-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.label-id-result-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.upload-validation-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.template-table-panel::-webkit-scrollbar-thumb:hover{background:var(--table-scrollbar-thumb-hover);background-clip:padding-box}.operation-table-wrap::-webkit-scrollbar-corner{background:0 0}.label-table-wrap::-webkit-scrollbar-corner{background:0 0}.image-page-table-wrap::-webkit-scrollbar-corner{background:0 0}.update-record-detail-table-wrap::-webkit-scrollbar-corner{background:0 0}.article-detail-table-wrap::-webkit-scrollbar-corner{background:0 0}.label-id-result-table-wrap::-webkit-scrollbar-corner{background:0 0}.upload-validation-table-wrap::-webkit-scrollbar-corner{background:0 0}.template-table-panel::-webkit-scrollbar-corner{background:0 0}.operation-table{table-layout:fixed;min-width:980px}.operation-table th,.operation-table td{color:#2f3b4f;vertical-align:middle;white-space:nowrap;height:48px;padding:0 16px;font-size:12px}.operation-table th{color:#374151;background:#f8fafc;font-weight:700}.operation-table .index-col{text-align:center;width:64px}.template-repository-table th:first-child,.template-repository-table td:first-child{width:320px}.template-repository-table td:not(:last-child){text-overflow:ellipsis;overflow:hidden}.update-records-page{min-width:0}.update-record-filter-panel{grid-template-columns:minmax(160px,220px) minmax(180px,240px) minmax(180px,240px) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.stat-ribbon{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:stretch;gap:2px;margin-bottom:18px;padding:5px;display:flex}.stat-ribbon-lead{font:inherit;text-align:center;appearance:none;cursor:default;background:0 0;border:0;border-radius:11px;flex-direction:column;justify-content:center;gap:4px;margin:0;padding:10px 22px 10px 16px;display:flex}.stat-ribbon-lead.interactive{cursor:pointer;transition:background-color .12s}.stat-ribbon-lead.interactive:hover,.stat-ribbon-lead.is-selected{background:var(--surface-muted)}.stat-ribbon-lead-label{color:var(--muted);letter-spacing:.01em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.stat-ribbon-lead-label svg{color:var(--navy);flex:none}.stat-ribbon-lead-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1}.stat-ribbon-divider{background:var(--border);width:1px;margin:12px 8px}.stat-ribbon-items{flex-wrap:wrap;flex:auto;align-items:center;gap:2px;display:flex}.stat-ribbon-item{--stat-dot:#cbd5e1;font:inherit;color:var(--text);appearance:none;cursor:default;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;margin:0;padding:9px 15px;display:inline-flex}.stat-ribbon-item.interactive{cursor:pointer;transition:background-color .12s,box-shadow .12s}.stat-ribbon-item.interactive:hover{background:var(--surface-muted)}.stat-ribbon-item.is-selected{background:var(--surface-muted);box-shadow:inset 0 0 0 1px #0f172a12}.stat-ribbon-lead.interactive:focus-visible,.stat-ribbon-item.interactive:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.stat-ribbon-item .stat-dot{background:var(--stat-dot);border-radius:999px;flex:none;width:8px;height:8px}.stat-ribbon-item-label{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.stat-ribbon-item-label svg{color:var(--stat-dot);flex:none}.stat-ribbon-item-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;font-weight:700;line-height:1}.stat-ribbon-item.tone-good{--stat-dot:var(--teal-dark)}.stat-ribbon-item.tone-danger{--stat-dot:#b05a5a}.stat-ribbon-item.tone-warn{--stat-dot:#c08a3e}.stat-ribbon-item.tone-info{--stat-dot:#3b82f6}.stat-ribbon-item.is-selected .stat-ribbon-item-value{color:var(--stat-dot)}.stat-ribbon-item.emphasis{background:var(--stat-dot)}@supports (color:color-mix(in lab, red, red)){.stat-ribbon-item.emphasis{background:color-mix(in srgb, var(--stat-dot) 12%, transparent)}}.stat-ribbon-item.emphasis .stat-ribbon-item-label,.stat-ribbon-item.emphasis .stat-ribbon-item-value{color:var(--stat-dot)}.stat-ribbon-skeleton .stat-ribbon-skeleton-line{background:linear-gradient(90deg,#edf2f4 0%,#f8fafc 45%,#edf2f4 100%) 0 0/220% 100%;border-radius:999px;height:12px;animation:1.25s ease-in-out infinite skeleton-shimmer;display:block}.stat-ribbon-skeleton .stat-ribbon-skeleton-label{width:64px}.stat-ribbon-skeleton .stat-ribbon-skeleton-value{width:88px;height:22px}.stat-ribbon-skeleton .stat-ribbon-skeleton-chip{width:92px}.stat-ribbon-skeleton .stat-ribbon-item .stat-dot{background:#e1e7ee}@media (max-width:640px){.stat-ribbon{flex-direction:column;align-items:stretch}.stat-ribbon-divider{width:auto;height:1px;margin:4px 12px}.stat-ribbon-item{flex:auto;justify-content:space-between}}.schedule-form{flex-direction:column;gap:14px;margin-bottom:18px;padding:18px 20px;display:flex}.schedule-form-help{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.schedule-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:14px;display:grid}.schedule-form .label-field input[type=file]{padding:7px 10px;font-size:13px}.schedule-list-meta{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:inline-flex}.label-table-meta.list-toolbar{flex-wrap:wrap}.list-toolbar-filters,.list-toolbar-actions{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;max-width:100%;display:flex}.list-toolbar-filters{flex:auto;justify-content:flex-start}.list-toolbar-actions{flex:0 auto;justify-content:flex-end;margin-inline-start:auto}.list-toolbar-filters>span,.list-toolbar-actions>button,.list-toolbar-actions>a{white-space:nowrap}.list-toolbar-filters>input,.list-toolbar-filters>form{max-width:100%}@media (max-width:680px){.list-toolbar-filters{flex-basis:100%}}.label-table-meta .signage-media-search{flex:120px;min-width:90px;max-width:240px}.label-table-meta .signage-media-search,.label-table-meta .signage-media-category-filter,.label-table-meta .signage-media-filter-chip{white-space:nowrap;flex:none}.action-dialog>h2,.action-dialog>h3,.action-dialog>.dialog-title{align-items:center;gap:8px;display:flex}.action-dialog>h2>svg,.action-dialog>h3>svg,.action-dialog>.dialog-title>svg{flex:none}.schedule-error{color:#944848;font-size:12px}.schedule-product-row{align-items:end;gap:10px;display:flex}.schedule-product-row .schedule-article-id{flex:0 0 220px}.schedule-fields{flex-direction:column;gap:8px;display:flex}.schedule-fields-head{color:var(--text);justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.schedule-field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.schedule-field-row input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;padding:8px 10px;font-size:13px}.schedule-field-key{border:1px solid var(--border);background:var(--surface-muted);min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;align-items:center;padding:8px 10px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.schedule-field-value-locked{background:var(--surface-muted);color:var(--muted)}.schedule-field-lock{width:28px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.schedule-add-field{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:13px}.schedule-add-field:disabled{opacity:.6;cursor:default}.schedule-field-chips{flex-wrap:wrap;gap:8px;display:flex}.schedule-field-chip{border:1px solid var(--border);background:var(--surface-muted);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 12px;font-size:13px;font-weight:600;display:inline-flex}.schedule-field-chip button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.schedule-field-chip button:hover{background:var(--border);color:var(--text)}.schedule-product-toolbar{align-items:center;gap:10px;display:flex}.schedule-product-count{color:var(--muted);font-size:13px;font-weight:600}.schedule-product-table{table-layout:auto;width:100%;min-width:0}.schedule-product-table th,.schedule-product-table td{vertical-align:middle}.schedule-product-table td input{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-width:90px;padding:7px 9px;font-size:13px}.schedule-form .operation-table-wrap{min-width:0}.schedule-cell-product{flex-direction:column;gap:2px;display:flex}.schedule-cell-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12px;overflow:hidden}.schedule-product-table td:nth-child(2){max-width:220px}.schedule-cell-product .mono-cell{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.schedule-list-table td,.schedule-list-table th{text-overflow:ellipsis;overflow:hidden}.schedule-list-table th:first-child,.schedule-list-table td:first-child{width:26%}.schedule-list-table th:nth-child(3),.schedule-list-table td:nth-child(3){width:10%}.schedule-list-table th:nth-child(4),.schedule-list-table td:nth-child(4){width:11%}.schedule-list-table th:last-child,.schedule-list-table td:last-child{text-align:center;width:56px}.schedule-input-method{margin-bottom:4px}.schedule-bulk-bar{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.schedule-bulk-label{color:var(--text);font-size:13px;font-weight:600}.schedule-bulk-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.schedule-bulk-controls .label-field{min-width:160px}.schedule-file-upload{flex-direction:column;gap:10px;margin-bottom:4px;display:flex}.schedule-file-upload input[type=file]{padding:8px 10px;font-size:13px}.schedule-check-col{text-align:center;width:44px}.schedule-product-table .schedule-check-col .cb-label{justify-content:center;margin:0;display:inline-flex}.schedule-excel-dialog{flex-direction:column;gap:12px;width:min(520px,92vw);display:flex}.schedule-excel-dialog h3{margin:0}.schedule-excel-dialog .schedule-list-link{align-self:flex-start}.schedule-excel-dialog input[type=file]{padding:8px 10px;font-size:13px}.schedule-excel-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.schedule-feedback{margin-bottom:16px}.signage-pairing-code{font-family:var(--font-mono);letter-spacing:3px;color:var(--text,#1f2937);font-size:18px;font-weight:700}.signage-quick-links{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.signage-source-tabs{width:min(360px,100%)}.signage-card{margin-bottom:18px}.signage-panel-body{padding:14px 18px}.signage-otp-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.signage-media-stats-dialog{width:min(1080px,94vw)}.signage-device-dialog{width:min(720px,92vw)}.signage-device-form{flex-direction:column;gap:14px;display:flex}.signage-device-detail-table{border-collapse:collapse;width:100%;margin-top:4px;font-size:13px}.signage-device-row{cursor:pointer}.signage-device-row:hover{background:var(--surface-hover,#7f7f7f0f)}.signage-device-card-clickable{cursor:pointer;transition:box-shadow .12s,border-color .12s}.signage-device-card-clickable:hover{border-color:var(--teal,#0e7c7b)}.signage-device-detail-table tr{border-bottom:1px solid var(--border)}.signage-device-detail-table tr:last-child{border-bottom:0}.signage-device-detail-table th{text-align:left;width:132px;color:var(--muted);vertical-align:top;white-space:nowrap;padding:7px 12px 7px 0;font-weight:500}.signage-device-detail-table td{color:var(--text);word-break:break-all;padding:7px 0}.signage-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;margin:8px 0 4px;display:grid}.signage-detail-item{border-bottom:1px solid var(--border);grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:10px;padding:7px 0;font-size:13px;display:grid}.signage-detail-item dt{color:var(--muted);font-size:12.5px}.signage-detail-item dd{color:var(--text);word-break:break-all;margin:0}@media (max-width:640px){.signage-detail-grid{grid-template-columns:minmax(0,1fr);column-gap:0}}.signage-remote-settings{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;flex-direction:column;gap:8px;margin-top:12px;padding:12px 14px;display:flex}.signage-remote-settings-readonly{border-top:1px dashed var(--border);flex-direction:column;align-items:flex-start;gap:6px;margin-top:4px;padding-top:10px;display:flex}.signage-remote-settings-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:14px}.signage-remote-settings-title{align-items:center;gap:6px;font-size:13px;display:inline-flex}.signage-cell-stack{flex-direction:column;gap:2px;display:flex}.signage-cell-sub{color:var(--muted);font-size:11px}.signage-device-table td{vertical-align:middle}.signage-device-table{table-layout:auto}.signage-device-table th:last-child,.signage-device-table td:last-child{white-space:nowrap;width:1%}.signage-row-actions{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.signage-search{vertical-align:middle;width:200px;display:inline-block}.signage-search input.signage-search-input{width:100%;height:38px;font-size:13px}.signage-search-field{vertical-align:middle;flex:none;align-items:center;gap:6px;display:inline-flex}.signage-search-field .compact{white-space:nowrap;flex:none}.signage-select.signage-online-filter{flex:none;width:128px}.signage-select.signage-online-filter .signage-select-trigger{vertical-align:middle;height:38px;font-size:13px}.inline-select.signage-group-filter .select-field-trigger{height:38px}.signage-device-table th.signage-check-col,.signage-device-table td.signage-check-col{white-space:nowrap;text-align:center;width:1%}.signage-device-table .signage-check-col .cb-label{justify-content:center;margin:0;display:inline-flex}.signage-group-chip{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:3px;max-width:180px;display:inline-flex;overflow:hidden}.signage-device-card-title{align-items:center;gap:8px;min-width:0;display:inline-flex}.signage-bulk-bar{z-index:6;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px;display:flex;position:sticky;top:0}.signage-bulk-bar strong{color:var(--text);margin-right:4px;font-size:13px}.signage-device-pager{border-top:1px solid var(--border);color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;padding:10px 18px;font-size:13px;display:flex}.signage-map-search.signage-search-field{width:100%;margin:10px 0;display:flex}.signage-map-search .signage-search{flex:auto;width:auto;min-width:0}.signage-res-bars{flex-direction:column;gap:3px;min-width:158px;display:flex}.signage-res-bar{grid-template-columns:42px 1fr 36px;align-items:center;gap:6px;display:grid}.signage-res-label{color:var(--muted);font-size:11px}.signage-res-track{background:var(--surface-muted);border-radius:999px;height:6px;overflow:hidden}.signage-res-fill{background:#334155;border-radius:999px;height:100%;display:block}.signage-res-fill.mid{background:#c08a3e}.signage-res-fill.high{background:#b05a5a}.signage-res-pct{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.signage-fleet-panel .signage-fleet{justify-content:center;align-items:center;padding:20px 20px 22px;display:flex}.signage-fleet-panel .signage-chart-donut{justify-content:center}@media (max-width:720px){.signage-fleet-panel .signage-fleet{padding:16px 12px 18px}}.signage-gauge{flex-shrink:0;width:120px;height:120px;position:relative}.signage-gauge-svg{width:120px;height:120px;display:block}.signage-gauge-track{fill:none;stroke:var(--surface-muted);stroke-width:12px}.signage-gauge-value{fill:none;stroke:var(--teal);stroke-width:12px;stroke-linecap:round;transition:stroke-dasharray .5s}.signage-gauge-value.warn{stroke:var(--caution)}.signage-gauge-value.danger{stroke:var(--danger)}.signage-gauge-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.signage-gauge-center strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.signage-gauge-center span{color:var(--muted);font-size:11px}.signage-online-dot{vertical-align:middle;background:#94a3b8;border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.signage-online-dot.on{background:var(--teal);box-shadow:0 0 0 3px #3ab8b72e}.signage-terms-help-trigger{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:6px;margin:0 0 12px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.signage-terms-help-trigger:hover{color:var(--teal);border-color:var(--teal)}.signage-terms-help-dialog .signage-terms-help-list{margin-top:4px}.signage-terms-help-list{flex-wrap:wrap;gap:6px 28px;margin:0;display:flex}.signage-terms-help-list>div{flex:320px;min-width:0}.signage-terms-help-list dt{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600}.signage-terms-help-list dd{color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.signage-terms-help-list dd b{color:var(--text);font-weight:600}.signage-view-toggle{background:var(--surface-muted);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.signage-view-toggle button{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.signage-view-toggle button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0f172a14}.signage-device-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;padding:16px 18px;display:grid}.signage-device-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.signage-device-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.signage-device-card-head strong{color:var(--text);font-size:14px}.signage-device-card-badges{align-items:center;gap:8px;display:inline-flex}.signage-card-online{color:var(--text-muted,#64748b);align-items:center;font-size:12px;display:inline-flex}.signage-device-card-body{flex-direction:column;gap:6px;margin:0;display:flex}.signage-device-card-body>div{grid-template-columns:72px 1fr;align-items:baseline;gap:8px;display:grid}.signage-device-card-body dt{color:var(--muted);font-size:12px}.signage-device-card-body dd{color:var(--text);word-break:break-all;margin:0;font-size:13px}.signage-device-card-res{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:8px;display:flex}.signage-device-card-code{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.signage-device-card-actions{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.signage-media-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:16px 18px;display:grid}.signage-media-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.signage-media-thumb{aspect-ratio:16/10;background:var(--surface-muted);color:var(--muted);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.signage-media-duration{color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;background:#000000b8;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600;line-height:1.5;position:absolute;bottom:6px;right:6px}.signage-media-thumb.is-video{color:#cbd5e1;background:#1f2733}.signage-media-thumb img,.signage-media-thumb video{object-fit:cover;width:100%;height:100%}.signage-media-badge{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.signage-media-badge.image{color:#b83280;background:#fce7f0}.signage-media-badge.video{color:#b45309;background:#fef3c7}.signage-media-delete{color:#fff;cursor:pointer;background:#0f172a8c;border:0;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;position:absolute;top:6px;right:6px}.signage-media-delete:hover{background:#b05a5aeb}.signage-media-download{color:#fff;cursor:pointer;background:#0f172a8c;border:0;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;position:absolute;top:6px;right:70px}.signage-media-download:hover:not(:disabled){background:#3ab8b7eb}.signage-media-download:disabled{opacity:.45;cursor:not-allowed}.signage-media-stats{color:#fff;cursor:pointer;background:#0f172a8c;border:0;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;position:absolute;top:6px;right:38px}.signage-media-stats:hover{background:#3ab8b7eb}.signage-media-plays-btn{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.signage-media-plays-btn:hover{text-decoration:underline}.signage-playback-trend{flex-direction:column;gap:12px;margin-top:12px;display:flex}.signage-device-ops{margin-top:14px;padding-top:14px}.signage-tabs{border-bottom:1px solid var(--border);gap:4px;margin:10px 0 4px;display:flex}.signage-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s}.signage-tab:hover{color:var(--text)}.signage-tab.is-active{color:var(--teal);border-bottom-color:var(--teal)}.signage-device-daily{margin-top:8px}.signage-device-ops-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.signage-device-ops-stats>div{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:3px;padding:8px 10px;display:flex}.signage-device-ops-stats span{color:var(--muted);font-size:11.5px}.signage-device-ops-stats strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:15px}.signage-device-ops-shot{align-items:center;gap:10px;margin-top:12px;display:flex}@media (max-width:560px){.signage-device-ops-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.signage-media-body{flex-direction:column;gap:3px;padding:10px 12px;display:flex}.signage-media-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.signage-media-meta{color:var(--muted);font-size:12px}.signage-bar-chart-wrap{padding:16px 18px}.signage-chart-donut{flex-wrap:wrap;align-items:center;gap:24px;padding:8px 4px;display:flex}.signage-chart-donut-value{fill:var(--text);font-size:26px;font-weight:700}.signage-chart-donut-label{fill:var(--muted);font-size:12px}.signage-chart-legend{color:var(--text);flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.signage-chart-legend li{cursor:default;border-radius:6px;align-items:center;gap:8px;padding:3px 6px;transition:background .15s;display:flex}.signage-chart-legend li.is-active{background:#3ab8b71a}.signage-chart-legend-dot{border-radius:3px;width:11px;height:11px}.signage-chart-legend strong{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px}.signage-chart-legend-pct{text-align:right;min-width:34px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.signage-chart-line-wrap{width:100%}.signage-chart-line-plot{width:100%;position:relative}.signage-chart-line{width:100%;display:block}.signage-chart-line-dot{pointer-events:none;border-radius:50%;width:5px;height:5px;position:absolute;transform:translate(-50%,-50%)}.signage-device-picker{gap:6px;min-width:0;display:grid}.signage-device-picker-search{border:1px solid var(--border);background:var(--surface);height:34px;color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:flex}.signage-device-picker-search input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):not([type=range]){min-width:0;height:100%;min-height:0;font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:auto;padding:0}.signage-device-picker:has(.signage-device-picker-search) .signage-batch-devices{max-height:180px}.signage-upload-dialog{position:relative}.signage-upload-loading{z-index:5;background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.signage-upload-loading{background:color-mix(in srgb, var(--surface) 88%, transparent)}}.signage-upload-loading{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);border-radius:inherit;color:var(--text)}.signage-upload-loading strong{font-size:15px}.signage-upload-loading span{color:var(--muted);font-size:12.5px}.signage-upload-loading .loading-spinner{color:var(--teal)}.signage-dash-cell .label-table-meta:has(.signage-dash-rank-meta){grid-template-columns:minmax(0,1fr);align-items:start;gap:4px;display:grid}.signage-dash-rank-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;min-width:0;display:flex}.signage-dash-rank-controls{flex:none;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.signage-dash-rank-meta .schedule-list-meta{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:inline-block;overflow:hidden}.signage-dash-rank-select{flex:0 auto;min-width:116px;max-width:178px}.signage-dash-rank-select .signage-select-trigger{height:24px;padding:0 22px 0 8px;font-size:11.5px}:root{--chart-device:#2a78d6;--chart-media:#4a3aa7;--chart-time:#0f9a93}.signage-chart-combo-plot{width:100%;position:relative}.signage-chart-combo-avg{background:var(--surface);white-space:nowrap;pointer-events:none;border-radius:3px;margin-top:-3px;padding:0 4px;font-size:10.5px;font-weight:600;line-height:14px;position:absolute;right:10px;transform:translateY(-100%)}.signage-chart-combo-plot svg{width:100%;display:block}.signage-chart-combo-plot rect{cursor:default;transition:opacity .15s}.signage-chart-combo-xaxis{color:var(--muted);margin-top:6px;font-size:11px;display:flex}.signage-chart-combo-xaxis span{text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.signage-chart-bar-name.is-link{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s}.signage-chart-bar-name.is-link:hover,.signage-chart-bar-name.is-link:focus-visible{text-decoration-color:currentColor}.signage-chart-line-dot.is-active{background:var(--surface);box-sizing:border-box;border:2.5px solid;width:11px;height:11px}.signage-chart-line-ytick{background:var(--surface);color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;padding:0 3px;font-size:10.5px;position:absolute;left:2px;transform:translateY(-50%)}.signage-chart-tip{background:var(--text);color:var(--surface);white-space:nowrap;pointer-events:none;z-index:2;border-radius:7px;flex-direction:column;gap:1px;padding:6px 9px;font-size:11.5px;line-height:1.35;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 6px 16px #0000002e}.signage-chart-tip strong{font-size:12px}.signage-chart-line-xaxis{height:16px;color:var(--muted);margin-top:4px;font-size:11px;position:relative}.signage-chart-line-xaxis span{white-space:nowrap;position:absolute;transform:translate(-50%)}.signage-chart-line-xaxis span:first-child{transform:translate(0)}.signage-chart-line-xaxis span:last-child{transform:translate(-100%)}.signage-chart-line-xaxis.is-dense{height:34px}.signage-chart-line-xaxis.is-dense span,.signage-chart-line-xaxis.is-dense span:first-child,.signage-chart-line-xaxis.is-dense span:last-child{transform-origin:top;font-size:10px;transform:translate(-50%)rotate(-45deg)}.signage-chart-tip-day{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.signage-chart-tip-day b{font-weight:700}.signage-chart-tip-total{color:var(--muted);white-space:nowrap}.signage-chart-empty{text-align:center;color:var(--muted);padding:24px 8px;font-size:13px}.signage-dash-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}@media (max-width:900px){.signage-dash-grid{grid-template-columns:minmax(0,1fr)}}.signage-dash-quad{grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.signage-dash-quad>.signage-dash-cell:nth-child(-n+3),.signage-dash-quad>.signage-dash-cell:nth-child(4){grid-column:span 2}.signage-dash-quad>.signage-dash-cell:nth-child(5){grid-column:span 4}@media (max-width:1200px){.signage-dash-quad{grid-template-columns:repeat(2,minmax(0,1fr))}.signage-dash-quad>.signage-dash-cell:nth-child(-n+3),.signage-dash-quad>.signage-dash-cell:nth-child(n+4){grid-column:auto}}@media (max-width:1000px){.signage-dash-quad{grid-template-columns:minmax(0,1fr)}.signage-dash-quad>.signage-dash-cell:nth-child(-n+3),.signage-dash-quad>.signage-dash-cell:nth-child(n+4){grid-column:auto}}.signage-dash-cell{flex-direction:column;min-width:0;min-height:0;padding:10px 14px;display:flex}.signage-dash-cell .label-table-meta{margin-bottom:4px}.signage-dash-cell .signage-fleet{padding:0}.signage-dash-cell .signage-chart-donut{gap:16px;padding:2px}.signage-dash-cell .signage-dash-ranking{flex:auto;min-height:0;padding:2px 0}.signage-dash-cell .signage-dash-ranking-scroll{--dash-bar-row-height:35px;--dash-bar-gap:7px;--dash-bar-visible-rows:4;max-height:calc(var(--dash-bar-visible-rows) * var(--dash-bar-row-height) + (var(--dash-bar-visible-rows) - 1) * var(--dash-bar-gap) + 4px);scrollbar-width:thin;padding-right:4px;overflow-y:auto}.signage-dash-cell .signage-dash-ranking-scroll::-webkit-scrollbar{width:8px}.signage-dash-cell .signage-dash-ranking-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.signage-dash-cell .signage-dash-ranking-scroll::-webkit-scrollbar-thumb:hover{background:var(--muted)}.signage-dash-cell .signage-chart-line-wrap{flex:auto;min-height:0}.signage-dash-mini{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;display:grid}.signage-dash-mini span{flex-direction:column;align-items:center;gap:2px;display:flex}.signage-dash-mini em{color:var(--muted);font-size:11.5px;font-style:normal}.signage-dash-mini strong{font-variant-numeric:tabular-nums;font-size:16px}.signage-dash-mini strong.good,.signage-dash-summary strong.good{color:#16a34a}.signage-dash-mini strong.warn,.signage-dash-summary strong.warn{color:#d97706}.signage-dash-mini strong.danger,.signage-dash-summary strong.danger{color:#dc2626}.signage-dash-ranking{padding:6px 2px 2px}.signage-dash-summary{flex-wrap:wrap;gap:20px;margin:6px 0 10px;display:flex}.signage-dash-summary span{align-items:baseline;gap:6px;display:flex}.signage-dash-summary em{color:var(--muted);font-size:12px;font-style:normal}.signage-dash-summary strong{font-variant-numeric:tabular-nums;font-size:16px}.signage-dash-summary i{color:var(--muted);font-size:11.5px;font-style:normal}.signage-dash-summary-compact{gap:14px;margin:6px 0 4px}.signage-dash-summary-compact strong{font-size:14px}.signage-dash-summary-compact em{font-size:11.5px}.signage-daterange-hint{color:var(--muted);white-space:nowrap;flex:none;font-size:11px}.signage-daterange{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 2px;display:flex}.signage-daterange-presets{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.signage-daterange-chip{border:none;border-left:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;padding:4px 11px;font-size:12px;transition:background .12s,color .12s}.signage-daterange-chip:first-child{border-left:none}.signage-daterange-chip:hover{color:var(--text);background:#3ab8b70f}.signage-daterange-chip.is-active{background:var(--teal);color:#fff;font-weight:600}.signage-daterange-inputs{align-items:center;gap:6px;display:inline-flex}.signage-daterange-picker{width:236px}.signage-daterange-picker>span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.signage-daterange-picker .date-time-picker-trigger{height:28px;padding:0 10px;font-size:12px;font-weight:600}.signage-chart-bars{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.signage-chart-bar-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value""track track";align-items:center;gap:5px 10px;padding:3px 0;font-size:13px;line-height:18px;display:grid}.signage-chart-bar-row.has-rank{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"rank name value""track track track";column-gap:8px}.signage-chart-bar-row.has-status{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot name value""track track track";column-gap:8px}.signage-chart-bar-row.has-rank.has-status{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"rank dot name value""track track track track";column-gap:8px}.signage-chart-bar-rank{font-variant-numeric:tabular-nums;min-width:15px;color:var(--muted);text-align:right;grid-area:rank;font-size:11.5px}.signage-chart-bar-dot{border-radius:50%;grid-area:dot;width:7px;height:7px}.signage-chart-bar-label{grid-area:name;align-items:center;gap:6px;min-width:0;display:flex}.signage-chart-bar-badge{color:var(--muted);background:#94a3b838;border-radius:3px;flex:none;padding:0 5px;font-size:10.5px;font-style:normal;line-height:15px}.signage-chart-bar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);overflow:hidden}.signage-chart-bar-track{background:#94a3b838;border-radius:3px;grid-area:track;height:6px;overflow:hidden}.signage-chart-bar-fill{border-radius:3px;min-width:3px;height:100%;transition:width .3s;display:block}.signage-chart-bar-value{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;grid-area:value;font-weight:600}.signage-chart-bar-sub{color:var(--muted);margin-left:6px;font-size:11.5px;font-style:normal}.signage-bar-chart{flex-direction:column;gap:10px;display:flex}.signage-bar-row{grid-template-columns:minmax(110px,190px) 1fr auto;align-items:center;gap:12px;display:grid}.signage-bar-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex;overflow:hidden}.signage-bar-track{background:var(--surface-muted);border-radius:999px;height:18px;overflow:hidden}.signage-bar-fill{border-radius:999px;min-width:2px;height:100%;transition:width .4s;display:block}.signage-bar-fill.online{background:var(--teal)}.signage-bar-fill.offline{background:#9ca3af}.signage-bar-fill.pending{background:var(--caution)}.signage-bar-value{min-width:56px;color:var(--muted);text-align:right;font-size:12.5px;font-weight:600}.signage-media-plays{background:var(--accent,#3ab8b7);border-radius:999px;align-self:flex-start;margin-top:2px;padding:2px 8px}@supports (color:color-mix(in lab, red, red)){.signage-media-plays{background:color-mix(in srgb, var(--accent,#3ab8b7) 14%, transparent)}}.signage-media-plays{color:var(--accent,#3ab8b7);font-size:11.5px;font-weight:600}.signage-media-empty{text-align:center;color:var(--muted);margin:0;padding:28px 18px}.schedule-toolbar{justify-content:flex-end;margin-bottom:12px;display:flex}.schedule-list-link{border:1px solid var(--border);background:var(--surface);color:var(--navy);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.schedule-list-link:hover{background:var(--surface-muted)}.update-record-table{min-width:1120px}.update-record-table th,.update-record-table td{text-overflow:ellipsis;overflow:hidden}.update-record-table th:nth-child(2),.update-record-table td:nth-child(2){width:340px;max-width:340px}.update-record-table th:nth-child(3),.update-record-table td:nth-child(3),.update-record-table th:nth-child(4),.update-record-table td:nth-child(4),.update-record-table th:nth-child(5),.update-record-table td:nth-child(5),.update-record-table th:nth-child(6),.update-record-table td:nth-child(6){text-align:center;width:132px}.update-record-table th:nth-child(7),.update-record-table td:nth-child(7),.update-record-table th:nth-child(8),.update-record-table td:nth-child(8){width:160px}.update-record-detail-row{cursor:pointer}.update-record-detail-row:hover,.update-record-detail-row:focus{background:#f8fbfc;outline:none}.update-record-detail-backdrop{z-index:40;background:#1118275c;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.update-record-detail-modal{border:1px solid var(--border);background:var(--surface);border-radius:14px;width:min(960px,100%);max-height:min(760px,100vh - 56px);padding:24px;overflow:auto;box-shadow:0 24px 70px #0f172a38}.update-record-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.update-record-detail-header h3{color:var(--text);margin:4px 0 8px;font-size:24px;line-height:1.25}.update-record-detail-header-actions{align-items:center;gap:10px;display:inline-flex}.update-record-detail-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.update-record-detail-section{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.update-record-detail-section h4{border-bottom:1px solid var(--border);color:var(--text);background:#f8fafc;margin:0;padding:13px 16px;font-size:14px}.update-record-detail-section dl{margin:0;display:grid}.update-record-detail-section dl>div{border-bottom:1px solid #edf0f3;grid-template-columns:150px minmax(0,1fr);gap:12px;min-width:0;padding:11px 16px;display:grid}.update-record-detail-section dl>div:last-child{border-bottom:0}.update-record-detail-section dt{color:var(--muted);font-size:12px;font-weight:700}.update-record-detail-section dd{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.update-record-detail-labels{border:1px solid var(--border);background:#fff;border-radius:10px;margin-top:18px;overflow:hidden}.update-record-detail-labels-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;display:flex}.update-record-detail-labels-header h4{color:var(--text);margin:0;font-size:14px}.update-record-detail-labels-header span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.update-record-detail-table-wrap{overflow-x:auto}.update-record-detail-label-table{min-width:840px}.update-record-detail-label-table th,.update-record-detail-label-table td{white-space:nowrap}.update-record-detail-label-table th:nth-child(6),.update-record-detail-label-table td:nth-child(6){text-overflow:ellipsis;max-width:220px;overflow:hidden}.label-led-info-page{min-width:0}.led-info-ribbon .stat-ribbon-lead.interactive:hover,.led-info-ribbon .stat-ribbon-lead.is-selected{background:0 0}.led-info-range-field{grid-column:span 2}.led-info-range-field .date-time-picker-trigger{width:max-content;max-width:100%}.led-info-row{cursor:pointer}.led-info-row:hover td{background:var(--surface-muted)}.action-dialog.led-info-detail-dialog{width:min(100%,560px)}.led-detail-groups{gap:14px;display:grid}.led-detail-group{gap:8px;display:grid}.led-detail-group h4{color:#374151;margin:0;font-size:13px}.led-detail-fields{border:1px solid var(--border);border-radius:8px;gap:0;margin:0;display:grid;overflow:hidden}.led-detail-field{grid-template-columns:120px minmax(0,1fr);align-items:center;min-height:38px;display:grid}.led-detail-field+.led-detail-field{border-top:1px solid var(--border)}.led-detail-field dt{border-right:1px solid var(--border);background:var(--surface-muted);height:100%;color:var(--muted);align-items:center;padding:0 12px;font-size:12px;font-weight:700;display:flex}.led-detail-field dd{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0 12px;font-size:12.5px;overflow:hidden}.gateway-page,.product-page,.store-page,.firmware-page,.multi-function-page{min-width:0}.store-filter-panel{grid-template-columns:repeat(5,minmax(140px,1fr)) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.whitelist-page .segmented-tabs,.whitelist-page .alert{margin-bottom:16px}.whitelist-filter-panel{grid-template-columns:repeat(3,minmax(160px,1fr)) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.whitelist-table-meta{flex-wrap:wrap;row-gap:10px}.whitelist-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.whitelist-actions button{white-space:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.whitelist-action-divider{background:var(--border);width:1px;height:22px}.whitelist-table .check-col{text-align:center;width:40px}.whitelist-table .check-col input{width:15px;height:15px;accent-color:var(--accent,#3ab8b7)}.whitelist-label-input{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface);font-family:var(--font-mono);resize:vertical;border-radius:8px;padding:10px 12px;font-size:13px}.whitelist-confirm-body{gap:12px;display:grid}.whitelist-confirm-body p{margin:0}.whitelist-confirm-option{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.whitelist-confirm-option input{width:15px;height:15px;accent-color:var(--accent,#3ab8b7)}.mapping-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.mapping-summary-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:4px;min-width:0;padding:12px 14px;display:grid}.mapping-summary-item span{color:var(--muted);font-size:12px;font-weight:700}.mapping-summary-item strong{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.mapping-edit{padding:12px 16px 16px}.mapping-edit-top{grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:end;gap:12px;display:grid}.mapping-default-group{color:var(--muted);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.mapping-edit-hint{color:var(--muted);margin-bottom:18px;font-size:12px}.mapping-edit-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.mapping-edit-spacer{flex:1}.mapping-edit .operation-table input,.mapping-edit .operation-table select{width:100%}.mapping-rule-table th:nth-child(2),.mapping-rule-table td:nth-child(2){min-width:180px}.mapping-rule-table th:nth-child(4),.mapping-rule-table td:nth-child(4){min-width:150px}.mapping-field-cell{gap:2px;min-width:0;display:grid}.mapping-field-cell strong{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mapping-field-cell small{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.alarm-badge{color:#64748b;background:#64748b1f;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.alarm-badge.active,.alarm-badge.failed{color:#b91c1c;background:#fdecec}.alarm-badge.completed{color:#15803d;background:#e7f6ec}.alarm-badge.pending{color:#b45309;background:#fdf2e3}.action-dialog-wide{width:min(960px,94vw);max-width:960px}.article-detail-table-wrap{max-height:52vh;margin-top:4px;overflow:auto}.ean-result-panel{gap:14px;padding:18px 20px;display:grid}.ean-result-head{flex-wrap:wrap;gap:28px;display:flex}.ean-result-head>div{flex-direction:column;gap:4px;display:flex}.ean-result-label{color:var(--muted);font-size:12px;font-weight:700}.store-table{min-width:1320px}.store-table th,.store-table td{white-space:nowrap}.store-table th:nth-child(8),.store-table td:nth-child(8){text-overflow:ellipsis;max-width:220px;overflow:hidden}.store-detail-row{cursor:pointer}.store-detail-row:hover,.store-detail-row:focus{background:#f8fbfc;outline:none}.store-detail-backdrop{z-index:40;background:#1118275c;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.store-detail-modal{border:1px solid var(--border);background:var(--surface);border-radius:14px;width:min(1120px,100%);max-height:min(820px,100vh - 56px);padding:24px;overflow:auto;box-shadow:0 24px 70px #0f172a38}.store-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.store-detail-header h3{color:var(--text);margin:4px 0 8px;font-size:24px;line-height:1.25}.store-detail-header-actions{align-items:center;gap:10px;display:inline-flex}.store-zone-badge{color:#1d4f8f;background:#eef6ff;border-radius:999px;align-items:center;min-height:30px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.store-detail-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.store-detail-metric{border:1px solid var(--border);background:#fff;border-radius:10px;align-content:center;gap:7px;min-height:72px;padding:12px 14px;display:grid}.store-detail-metric.good{border-top:3px solid var(--accent)}.store-detail-metric.danger{border-top:3px solid var(--danger)}.store-detail-metric span{color:var(--muted);font-size:12px;font-weight:700}.store-detail-metric strong{color:var(--text);font-size:22px}.store-detail-tab-list{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin-top:16px;display:flex}.store-detail-tab{min-width:120px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:8px 8px 0 0;font-weight:700}.store-detail-tab[aria-selected=true]{border-color:var(--border);color:var(--navy);background:#fff}.store-detail-tab-panel{padding-top:18px}.store-detail-empty{color:var(--muted);text-align:center;padding:24px 0}.store-status-group{margin-top:20px}.store-status-group:first-child{margin-top:4px}.store-status-group>h4{color:var(--text);margin:0 0 10px;font-size:14px}.store-ratio-bar{background:var(--surface-muted);border-radius:999px;height:10px;margin-bottom:10px;display:flex;overflow:hidden}.store-ratio-seg{height:100%}.store-ratio-seg.success{background:var(--stable)}.store-ratio-seg.processing{background:var(--navy)}.store-ratio-seg.failure{background:var(--danger)}.store-status-cards{gap:10px;margin-bottom:10px;display:grid}.store-status-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}.store-status-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.store-status-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}.store-status-card{border:1px solid var(--border);background:#fff;border-radius:10px;align-content:center;gap:6px;min-height:62px;padding:10px 14px;display:grid}.store-status-card span{color:var(--muted);font-size:12px;font-weight:700}.store-status-card strong{color:var(--text);font-size:20px}.store-status-card.success strong{color:var(--teal-dark)}.store-status-card.processing strong{color:var(--navy)}.store-status-card.failure strong{color:var(--danger)}.store-status-card.warning{background:#fffbeb}.store-status-card.warning strong{color:var(--caution)}.store-status-card.danger{background:#fef2f2}.store-status-card.danger strong{color:var(--danger)}.store-setting-form>h4{color:var(--text);margin:20px 0 12px;font-size:14px}.store-setting-form>h4:first-of-type{margin-top:4px}.store-setting-advanced-toggle{width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;margin:20px 0 12px;padding:0;font-size:14px;font-weight:700;display:flex}.store-setting-advanced-toggle:hover{color:var(--navy)}.store-setting-grid{gap:14px;display:grid}.store-setting-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.store-setting-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.store-setting-saved{color:var(--teal-dark)}.store-setting-actions{z-index:1;background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:20px;padding:14px 0 6px;display:flex;position:sticky;bottom:0}@media (max-width:720px){.store-setting-grid--2,.store-setting-grid--3{grid-template-columns:1fr}.store-status-cards--3,.store-status-cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}.store-detail-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.store-detail-section{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.store-detail-section h4{border-bottom:1px solid var(--border);color:var(--text);background:#f8fafc;margin:0;padding:13px 16px;font-size:14px}.store-detail-section dl{margin:0;display:grid}.store-detail-section dl>div{border-bottom:1px solid #edf0f3;grid-template-columns:150px minmax(0,1fr);gap:12px;min-width:0;padding:11px 16px;display:grid}.store-detail-section dl>div:last-child{border-bottom:0}.store-detail-section dt{color:var(--muted);font-size:12px;font-weight:700}.store-detail-section dd{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.store-detail-empty{color:var(--muted);margin:0;padding:18px 16px}.product-filter-panel{grid-template-columns:minmax(180px,.75fr) minmax(260px,1.1fr) minmax(180px,.7fr) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.product-table{min-width:1180px}.product-table th,.product-table td{white-space:nowrap}.product-table .selection-col{text-align:center;width:46px}.product-table .selection-col input[type=checkbox]{width:14px;min-width:14px;height:14px;accent-color:var(--teal);padding:0}.product-table th:nth-child(4),.product-table td:nth-child(4){min-width:220px}.product-table th:nth-child(6),.product-table td:nth-child(6),.product-table th:nth-child(7),.product-table td:nth-child(7){text-overflow:ellipsis;max-width:240px;overflow:hidden}.product-url-cell{color:#2563eb}.product-table-actions{border-top:1px solid var(--border);align-items:stretch}.product-action-zone{flex:auto}.product-selected-action-zone{border-left:1px solid var(--border);text-align:right;flex:none;align-items:end;min-width:260px;padding-left:20px}.product-selected-action-list{justify-content:flex-end}.product-action-list .table-action-button{min-width:110px}.product-action-list .table-action-button.wide{min-width:190px}.product-action-dialog{width:min(100%,520px);position:relative}.product-action-dialog.product-registration-dialog{width:min(100%,920px)}.product-registration-body{max-height:min(58vh,620px);overflow:auto}.product-registration-required,.product-registration-optional{border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.product-registration-required{color:#b91c1c;background:#fee2e2}.product-registration-optional{color:#526273;background:#eef2f7}.product-detail-row{cursor:pointer}.product-detail-row:hover,.product-detail-row:focus{background:#f8fbfc;outline:none}.product-detail-backdrop{z-index:40;background:#1118275c;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.product-detail-modal{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;width:min(1100px,100%);height:min(680px,100vh - 56px);display:flex;position:relative;overflow:hidden;box-shadow:0 24px 70px #0f172a38}.product-detail-modal .label-detail-header{flex:none}.product-linked-badge{color:#08756f;background:#e8fbf9;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.product-detail-grid{grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:14px;margin-top:18px;display:grid}.product-detail-section,.product-linked-labels{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.product-detail-section h4,.product-linked-labels-header{border-bottom:1px solid var(--border);color:var(--text);background:#f8fafc;margin:0;padding:13px 16px;font-size:14px}.product-detail-section dl{margin:0;display:grid}.product-detail-section dl>div{border-bottom:1px solid #edf0f3;grid-template-columns:120px minmax(0,1fr);gap:12px;min-width:0;padding:12px 16px;display:grid}.product-detail-section dl>div:last-child{border-bottom:0}.product-detail-section dt{color:var(--muted);font-size:12px;font-weight:700}.product-detail-section dd{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.product-data-list{max-height:280px;display:grid;overflow:auto}.product-data-list>div{border-bottom:1px solid #edf0f3;grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr);gap:12px;min-width:0;padding:10px 16px;display:grid}.product-data-list span{color:var(--muted);font-size:12px;font-weight:700}.product-data-list .product-data-key{color:var(--muted);opacity:.8;overflow-wrap:anywhere;margin-top:2px;font-size:11px;font-weight:600;display:block}.product-data-list.product-data-grid .product-registration-required{color:#b91c1c;font-size:11px}.product-data-list.product-data-grid .product-registration-optional{color:#526273;font-size:11px}.product-data-list strong{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;overflow:hidden}.product-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:460px}.product-data-grid>div:nth-child(odd){border-right:1px solid #edf0f3}.product-detail-empty{color:var(--muted);margin:0;padding:18px 16px}.product-upload-dialog{gap:18px;width:min(100%,520px);padding:28px;position:relative}.product-upload-heading{color:#0f2d46;align-items:center;gap:14px;display:flex}.product-upload-heading h3{margin:3px 0 0;font-size:24px}.product-upload-file-card{color:#64748b;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:12px;min-height:58px;padding:12px;display:flex}.product-upload-file-card svg{color:var(--teal-dark);flex:none}.product-upload-file-card div{gap:2px;min-width:0;display:grid}.product-upload-file-card strong{text-overflow:ellipsis;white-space:nowrap;color:#0f172a;min-width:0;font-size:13px;overflow:hidden}.product-upload-file-card span{color:#64748b;font-size:12px;font-weight:700}.product-upload-help{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.product-upload-actions{justify-content:flex-end}.product-linked-labels{margin-top:18px}.product-linked-labels-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.product-linked-labels-title{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}.product-linked-labels-header h4{margin:0;font-size:14px}.product-linked-labels-header span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.product-linked-label-table{min-width:820px}.product-linked-label-table th,.product-linked-label-table td{white-space:nowrap}.gateway-filter-panel{grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.gateway-table{table-layout:auto;width:max-content;min-width:100%}.gateway-table th,.gateway-table td{text-overflow:clip;white-space:nowrap;overflow:visible}.gateway-table .selection-col{text-align:center;width:46px}.gateway-table .selection-col input[type=checkbox]{width:14px;min-width:14px;height:14px;accent-color:var(--teal);padding:0}.gateway-table th:nth-child(8),.gateway-table td:nth-child(8),.gateway-table th:nth-child(9),.gateway-table td:nth-child(9),.number-cell{text-align:right;font-variant-numeric:tabular-nums}.gateway-count-link{color:#334155;font-variant-numeric:tabular-nums;background-color:#f1f5f9;border-radius:999px;padding:2px 8px;text-decoration:none;transition:background-color .12s,color .12s;display:inline-block}.gateway-count-link:hover,.gateway-count-link:focus-visible{color:#0f172a;background-color:#e2e8f0}.gateway-table-actions{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.gateway-add-dialog{position:relative}.gateway-detail-row{cursor:pointer}.gateway-detail-row:hover,.gateway-detail-row:focus{background:#f8fbfc;outline:none}.gateway-detail-backdrop{z-index:40;background:#1118275c;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.gateway-detail-modal{border:1px solid var(--border);background:var(--surface);border-radius:14px;width:min(1120px,100%);max-height:min(860px,100vh - 56px);padding:24px;overflow:auto;box-shadow:0 24px 70px #0f172a38}.gateway-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.gateway-detail-header h3{color:var(--text);margin:4px 0 8px;font-size:24px;line-height:1.25}.gateway-detail-header-actions{align-items:center;gap:10px;display:inline-flex}.gateway-detail-state{margin:16px 0 0}.gateway-detail-tabs{margin-top:18px}.gateway-detail-tab-list{border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex}.gateway-detail-tab-actions{align-items:center;gap:8px;margin-left:auto;padding-bottom:6px;display:flex}.gateway-detail-tab-list--edit{justify-content:flex-end;min-height:43px;margin-top:18px;margin-bottom:12px}.gateway-detail-tab{min-width:132px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:8px 8px 0 0;font-weight:700}.gateway-detail-tab[aria-selected=true]{border-color:var(--border);color:var(--navy);background:#fff}.gateway-detail-tab-panel{min-height:360px}.gateway-detail-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.gateway-detail-tab-panel .gateway-timeline-section{margin-top:18px}.gateway-labels-section{border:1px solid var(--border);background:#fff;border-radius:10px;margin-top:18px;overflow:hidden}.gateway-labels-section .label-pagination{padding:14px 18px}.gateway-labels-table{min-width:1040px}.gateway-labels-table th:nth-child(2),.gateway-labels-table td:nth-child(2){width:168px}.gateway-labels-table th:nth-child(3),.gateway-labels-table td:nth-child(3){text-align:center;width:84px}.gateway-labels-table th:nth-child(5),.gateway-labels-table td:nth-child(5){text-align:center;width:92px}.gateway-labels-table th:nth-child(6),.gateway-labels-table td:nth-child(6){text-align:center;width:88px}.gateway-labels-table th:nth-child(7),.gateway-labels-table td:nth-child(7){text-align:center;width:104px}.gateway-labels-table th:nth-child(8),.gateway-labels-table td:nth-child(8){text-align:center;width:84px}.gateway-labels-table th:nth-child(9),.gateway-labels-table td:nth-child(9){width:160px}.gateway-labels-table td:nth-child(2){white-space:nowrap}.gateway-labels-table td:nth-child(2) .copyable-value{max-width:none}.gateway-labels-table td:nth-child(2) .copyable-value span{text-overflow:clip;overflow:visible}.gateway-detail-section{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.gateway-detail-section h4{border-bottom:1px solid var(--border);color:var(--text);background:#f8fafc;margin:0;padding:13px 16px;font-size:14px}.gateway-detail-section dl{margin:0;display:grid}.gateway-detail-section dl>div{border-bottom:1px solid #edf0f3;grid-template-columns:150px minmax(0,1fr);gap:12px;min-width:0;padding:11px 16px;display:grid}.gateway-detail-section dl>div:last-child{border-bottom:0}.gateway-detail-section dt{color:var(--muted);font-size:12px;font-weight:700}.gateway-detail-section dd{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.gateway-timeline-section{border:1px solid var(--border);background:#fff;border-radius:10px;margin-top:18px;overflow:hidden}.gateway-timeline-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.gateway-timeline-header h4{color:var(--text);margin:3px 0 0;font-size:17px}.gateway-timeline-days{gap:14px;padding:18px;display:grid}.gateway-timeline-day{grid-template-columns:104px minmax(0,1fr);align-items:start;gap:16px;display:grid}.gateway-timeline-date{color:var(--navy);text-align:right;gap:3px;padding-top:2px;font-size:12px;display:grid}.gateway-timeline-date strong{font-size:12px}.gateway-timeline-date span{font-weight:700}.gateway-timeline-track{min-width:0;overflow-x:auto}.gateway-timeline-slots{grid-template-columns:repeat(48,minmax(4px,1fr));gap:4px;min-width:620px;display:grid}.gateway-timeline-slot{appearance:none;cursor:default;background:#e5e7eb;border:0;border-radius:2px;min-width:4px;height:26px;padding:0;display:block}.gateway-timeline-slot.online{background:#a8dced}.gateway-timeline-slot.offline{background:#df6d72}.gateway-timeline-slot.never{background:#d8dce0}.gateway-timeline-slots button.gateway-timeline-slot:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.gateway-timeline-tooltip{z-index:1200;color:#111827;pointer-events:none;background:#fff;border:1px solid #0f172a0f;border-radius:4px;width:max-content;min-width:198px;padding:14px 20px 16px;font-size:12px;position:fixed;transform:translate(-50%,-100%);box-shadow:0 10px 26px #0f172a1f}.gateway-timeline-tooltip:after{content:"";background:#fff;border-bottom:1px solid #0f172a0f;border-right:1px solid #0f172a0f;width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.gateway-timeline-tooltip strong{margin-bottom:4px;font-weight:700;display:block}.gateway-timeline-tooltip ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.gateway-timeline-tooltip li{grid-template-columns:46px 10px;justify-content:center;align-items:center;gap:8px;font-weight:700;line-height:1.25;display:grid}.gateway-timeline-tooltip-dot{background:#d8dce0;border-radius:999px;width:10px;height:10px}.gateway-timeline-tooltip-dot.online{background:#a8dced}.gateway-timeline-tooltip-dot.offline{background:#df6d72}.gateway-timeline-tooltip-dot.never{background:#d8dce0}.gateway-timeline-times{color:#44566c;grid-template-columns:repeat(12,1fr);min-width:620px;margin-top:4px;font-size:10px;font-weight:700;display:grid}.gateway-timeline-times span{text-align:left}.gateway-timeline-legend{color:var(--muted);justify-content:center;gap:18px;padding-top:4px;font-size:12px;display:flex}.gateway-timeline-legend span{align-items:center;gap:6px;display:inline-flex}.gateway-timeline-legend .gateway-timeline-slot{width:11px;min-width:11px;height:11px}.gateway-status-badge{color:#4b5563;background:#eef2f7;border-radius:999px;justify-content:center;align-items:center;min-width:96px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.gateway-status-badge.connected{color:#087a73;background:#dff8f4}.gateway-status-badge.disconnected{color:#b91c1c;background:#fee2e2}.firmware-filter-panel{grid-template-columns:minmax(150px,.7fr) minmax(220px,1fr) minmax(150px,.7fr) minmax(160px,.7fr) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.firmware-table{min-width:1120px}.firmware-table th,.firmware-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.firmware-table th:nth-child(3),.firmware-table td:nth-child(3),.firmware-table th:nth-child(8),.firmware-table td:nth-child(8){max-width:220px}.firmware-kind-badge{color:#374151;background:#eef2f7;border-radius:999px;justify-content:center;align-items:center;min-width:88px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.firmware-kind-badge.gateway{color:#08756f;background:#e8fbf9}.firmware-kind-badge.label{color:#1d4f8f;background:#eef6ff}.firmware-kind-badge.power-rail{color:#9a3412;background:#fff7ed}.multi-function-filter-panel{grid-template-columns:repeat(5,minmax(140px,1fr)) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.multi-function-filter-panel.compact{box-shadow:none;border:0;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px;padding:0}.multi-function-filter-panel.compact .operation-filter-actions{grid-column:1/-1;justify-content:flex-end}.multi-function-section-grid{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:start;gap:16px;margin-bottom:16px;display:grid}.multi-function-section-grid.led{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr)}.multi-function-form-panel{padding:18px 20px}.multi-function-button-form,.multi-function-led-command{gap:14px;display:grid}.multi-function-button-form{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-function-led-command{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));padding-top:16px}.multi-function-label-code-field{grid-column:1/-1}.multi-function-label-code-field textarea{resize:vertical;min-height:86px}.multi-function-checkbox{align-self:end;min-height:40px}.multi-function-actions{align-items:center;gap:12px;min-width:0;margin-top:16px;display:flex}.multi-function-payload-preview{text-overflow:ellipsis;min-width:0;color:var(--muted);white-space:nowrap;font-size:11px;overflow:hidden}.multi-function-toolbar{border-bottom:1px solid var(--border);grid-template-columns:minmax(220px,320px);gap:12px;padding:16px 20px;display:grid}.multi-function-button-table{min-width:980px}.multi-function-led-table{min-width:1120px}.multi-function-button-table th,.multi-function-button-table td,.multi-function-led-table th,.multi-function-led-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.multi-function-detail-row{cursor:pointer}.multi-function-detail-row:hover,.multi-function-detail-row:focus{background:#f8fbfc;outline:none}.multi-function-detail-backdrop{z-index:40;background:#1118275c;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.multi-function-detail-modal{border:1px solid var(--border);background:var(--surface);border-radius:14px;width:min(1020px,100%);max-height:min(760px,100vh - 56px);padding:24px;overflow:auto;box-shadow:0 24px 70px #0f172a38}.multi-function-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;padding-bottom:18px;display:flex}.multi-function-detail-header h3{color:var(--text);margin:4px 0 8px;font-size:24px;line-height:1.25}.label-led-filter-panel{grid-template-columns:repeat(5,minmax(150px,1fr)) auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px 20px;display:grid}.label-led-table{min-width:0}.label-led-table th,.label-led-table td{text-overflow:ellipsis;overflow:hidden}.label-led-table .index-col{width:6%}.label-led-table th:nth-child(2),.label-led-table td:nth-child(2),.label-led-table th:nth-child(3),.label-led-table td:nth-child(3){width:18%}.label-led-table th:nth-child(4),.label-led-table td:nth-child(4),.label-led-table th:nth-child(5),.label-led-table td:nth-child(5){width:21%}.label-led-table th:nth-child(6),.label-led-table td:nth-child(6){width:16%}.led-status-badge{border-radius:999px;justify-content:center;min-width:70px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.led-status-badge.active{color:var(--teal-dark);background:#dff8f5}.led-status-badge.pending{color:#92400e;background:#fef3c7}.led-status-badge.completed{color:#1d4ed8;background:#dbeafe}.led-status-badge.failed{color:var(--danger);background:#fee2e2}.led-status-badge.unknown{background:var(--surface-muted);color:var(--muted)}.led-color-chip{color:#374151;align-items:center;gap:7px;min-width:0;font-size:12px;font-weight:700;display:inline-flex}.led-color-dot{background:#94a3b8;border:1px solid #0f172a29;border-radius:999px;flex:none;width:11px;height:11px;display:inline-block}.led-duration{color:var(--muted);align-items:center;gap:4px;font-weight:600;display:inline-flex}.led-duration-icon{color:#64748b;flex:none}.led-color-dot.red{background:#ef4444}.led-color-dot.green{background:#22c55e}.led-color-dot.blue{background:#3b82f6}.led-color-dot.cyan{background:#06b6d4}.led-color-dot.magenta{background:#d946ef}.led-color-dot.yellow{background:#facc15}.led-color-dot.white{background:#fff}.update-result-badge{color:#475569;background:#eef2f7;border-radius:999px;justify-content:center;align-items:center;min-width:58px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.update-result-badge.good{color:var(--teal-dark);background:#e6f8f7}.update-result-badge.danger{color:var(--danger);background:#fff1f2}.update-result-badge.warn{color:#b45309;background:#fff7ed}.success-text{color:#047857}.battery-status-text{white-space:nowrap;align-items:center;min-height:22px;font-size:12px;font-weight:700;line-height:1.35;display:inline-flex}.battery-status-text.good{color:#047857}.battery-status-text.warn{color:#b45309}.battery-status-text.bad{color:#dc2626}.battery-status-text.unknown{color:#64748b}.operation-empty-row{text-align:center;height:54px;color:var(--muted);background:#eef3f6;font-weight:700}.operation-command-bar{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.operation-command-button{justify-content:center;align-items:center;gap:8px;min-width:132px;display:inline-flex}.label-info-heading{align-items:flex-start}.label-search-layout{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;margin-bottom:18px;padding:18px 20px;display:grid}.label-filter-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px 12px;display:grid}.label-field{color:#374151;gap:8px;font-size:12px;font-weight:700;display:grid}.select-field-shell{min-width:0;position:relative}.label-field-title{align-items:center;gap:4px;width:100%;display:flex}.label-field-title-text,.label-field-title-action,.field-management-link{align-items:center;display:inline-flex}.label-field-title-text{gap:4px}.label-field-title-action{margin-left:auto}.field-management-link{color:#2563eb;white-space:nowrap;flex-wrap:nowrap;flex:none;gap:3px;font-size:10px;font-weight:700;line-height:1;text-decoration:none}.field-management-link svg{color:currentColor;flex:none;display:block}.field-management-link:hover,.field-management-link:focus-visible{color:#1d4ed8;text-decoration:underline}.field-help{color:#94a3b8;cursor:help;align-items:center;display:inline-flex;position:relative}.field-help:hover,.field-help:focus-visible{color:var(--teal,#3ab8b7);outline:none}.field-help-bubble{z-index:30;color:#334155;opacity:0;visibility:hidden;background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:4px;width:max-content;max-width:260px;padding:9px 11px;font-size:11.5px;font-weight:500;line-height:1.5;transition:opacity .12s;display:grid;position:absolute;bottom:calc(100% + 8px);left:-8px;box-shadow:0 8px 20px #0f172a24}.field-help:hover .field-help-bubble,.field-help:focus-visible .field-help-bubble{opacity:1;visibility:visible}.field-help-bubble>strong{color:#0f172a;font-size:11.5px;font-weight:700}.field-help-row{gap:8px;display:flex}.field-help-row>b{color:#0f172a;flex:none;min-width:56px;font-weight:700}.field-help-row>i{color:var(--muted);font-style:normal}.inline-select{vertical-align:middle;min-width:120px;max-width:200px;display:inline-block}.inline-select .select-field-trigger{justify-content:space-between;align-items:center;gap:8px;width:100%;height:34px;padding:0 10px;font-weight:600;display:inline-flex}.signage-scene-inline{max-width:190px}.label-field input,.label-field select,.label-field textarea,.select-field-trigger{border-color:var(--border);color:#374151;background:var(--surface);border-radius:8px;min-width:0;font-size:13px}.label-field input,.label-field select,.select-field-trigger{height:40px}.label-field textarea{resize:vertical;min-height:76px;padding:10px 12px}.label-readonly-field input:disabled{color:#475569;cursor:default;opacity:1;-webkit-text-fill-color:#475569;background:#f8fafc}.label-field input::placeholder,.label-field textarea::placeholder{color:#9ca3af}.searchable-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.searchable-input-row input{width:100%}.input-search-button{white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-width:76px;height:40px;display:inline-flex}.date-time-picker-field{min-width:0;position:relative}.date-time-picker-trigger{border:1px solid var(--border);background:var(--surface);color:#374151;cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-width:0;height:40px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.date-time-picker-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.date-time-picker-trigger svg{color:var(--muted);flex:none}.date-time-picker-trigger:focus-visible,.date-time-picker-time select:focus-visible{outline-offset:2px;outline:2px solid #3ab8b773}.date-time-picker-trigger:disabled{cursor:default;opacity:.65;background:#f1f5f9}.date-time-picker-popover{z-index:1000;border:1px solid var(--border);background:#fff;border-radius:10px;width:280px;max-height:calc(100vh - 16px);position:fixed;overflow:hidden;box-shadow:0 20px 50px #0f2d462e}.date-time-picker-month{grid-template-columns:36px 1fr 36px;align-items:center;min-height:38px;padding:4px 6px 0;display:grid}.date-time-picker-month strong{color:#334155;text-align:center;font-size:18px;font-weight:700}.date-time-picker-month button{color:#94a3b8;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.date-time-picker-month button:hover{color:#334155;background:#f1f5f9}.date-time-picker-weekdays,.date-time-picker-grid{grid-template-columns:repeat(7,1fr);padding:0 8px;display:grid}.date-time-picker-weekdays span{color:#94a3b8;place-items:center;height:28px;font-size:13px;font-weight:700;display:grid}.date-time-picker-grid{gap:3px 0;padding-bottom:12px}.date-time-picker-grid button,.date-time-picker-grid>span{height:31px}.date-time-picker-grid button{color:#1f2937;cursor:pointer;background:0 0;border:0;border-radius:999px;font-family:inherit;font-size:14px;font-weight:600}.date-time-picker-grid button:hover:not(:disabled){color:var(--teal-dark);background:#e8f7f7}.date-time-picker-grid button.active{color:#fff;background:#5b9bd5}.date-time-picker-grid button:disabled{color:#cbd5e1;cursor:default}.date-time-picker-time{border-top:1px solid var(--border);justify-content:flex-start;align-items:center;gap:6px;min-height:58px;padding:8px 12px;display:flex}.date-time-picker-time svg{color:#64748b;flex:none}.date-time-picker-time select:not([multiple]):not([size]){border:1px solid var(--border);color:#334155;background-color:#f8fafc;background-position:right 6px center;border-radius:8px;width:66px;height:34px;padding:0 20px 0 8px;font-family:inherit;font-size:15px;font-weight:600}.date-time-picker-time select:not([multiple]):not([size]):disabled{color:#94a3b8;cursor:default}.date-range-picker-field{min-width:0;position:relative}.date-range-picker-popover{width:300px}.date-range-picker-hint{border-bottom:1px solid var(--border);color:var(--muted);margin:0;padding:9px 12px;font-size:12px;font-weight:600}.date-range-picker-day{place-items:center;min-width:0;display:grid}.date-range-picker-day.in-range,.date-range-picker-day.range-start,.date-range-picker-day.range-end{background:#e8f7f7}.date-range-picker-day.range-start{border-radius:999px 0 0 999px}.date-range-picker-day.range-end{border-radius:0 999px 999px 0}.date-range-picker-day.range-start.range-end{border-radius:999px}.date-range-picker-day>button{width:31px}.date-range-picker-day.range-start>button,.date-range-picker-day.range-end>button,.date-range-picker-day.range-start>button:hover:not(:disabled),.date-range-picker-day.range-end>button:hover:not(:disabled){color:#fff;background:#5b9bd5}.date-range-picker-day.in-range>button{color:var(--teal-dark)}.date-range-picker-units{grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 12px 14px;display:grid}.date-range-picker-units button{border:1px solid var(--border);background:var(--surface);color:#334155;cursor:pointer;border-radius:8px;min-height:40px;font-family:inherit;font-size:13px;font-weight:700}.date-range-picker-units button:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark);background:#e8f7f7}.date-range-picker-units button.active{color:#fff;background:#5b9bd5;border-color:#5b9bd5}.date-range-picker-units button:disabled{background:var(--surface-muted);color:#cbd5e1;cursor:not-allowed}.date-range-picker-popover .date-time-picker-month strong{white-space:nowrap;justify-content:center;align-items:baseline;gap:5px;min-width:0;display:flex}.date-range-picker-header-part{white-space:nowrap;align-items:baseline;display:inline-flex}.date-time-picker-month .date-range-picker-unit{width:auto;height:auto;min-height:0;color:inherit;font:inherit;line-height:inherit;border-radius:6px;align-items:baseline;padding:0 3px;display:inline-flex}.date-time-picker-month .date-range-picker-unit:hover{color:var(--teal-dark);background:#e8f7f7}.date-range-picker-times .date-time-picker-time{min-height:46px}.date-range-picker-times .date-time-picker-time+.date-time-picker-time{border-top:1px dashed var(--border)}.date-range-picker-time-label{color:#475569;min-width:26px;font-size:12px;font-weight:600}.date-range-picker-now{margin-left:auto;font-size:12px}.label-search-actions{align-self:end;align-items:center;gap:8px;display:flex}.search-panel{grid-template-columns:1fr;align-items:stretch;gap:14px;margin-bottom:18px;padding:18px 20px;display:grid}.search-form{flex-direction:column;gap:14px;margin-bottom:18px;padding:18px 20px;display:flex}.search-form-main-row{flex-wrap:nowrap;align-items:flex-end;gap:14px;min-width:0;display:flex}.search-form-fields{flex-wrap:nowrap;flex:auto;align-items:flex-end;gap:12px;min-width:0;display:flex}.search-form-fields>*{flex:1 1 0;min-width:140px;max-width:260px}.search-form-fields.operation-filter-row{flex-wrap:nowrap;flex:auto;grid-template-columns:minmax(180px,260px) minmax(190px,260px) auto minmax(190px,260px);gap:14px;display:grid}.search-form-fields.operation-filter-row>*{flex:unset;min-width:0;max-width:none}.search-form-actions{flex:none;align-items:center;gap:8px;display:flex}.search-form-advanced{border-top:1px solid var(--border);padding-top:12px}.search-form-advanced-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end;gap:12px;display:grid}.search-form--embedded{gap:14px;margin:0;padding:0;display:grid}.search-form--embedded .search-form-context{margin-bottom:0}.search-context-item{gap:2px;min-width:0;display:grid}.search-context-item-label{color:var(--muted);letter-spacing:.02em;font-size:11px;font-weight:700}.search-context-item-value{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.search-form--embedded .search-form-context.label-id-context-grid{gap:8px 20px}.search-form--embedded .search-form-actions.label-id-search-actions{justify-content:flex-end}.search-panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;display:flex}.search-panel-heading strong{color:var(--navy);font-size:15px;font-weight:700;line-height:1.25;display:block}.search-panel-heading span{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.45;display:block}.search-panel-main,.advanced-search-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:12px;display:grid}.search-panel-main.operation-filter-row{grid-template-columns:minmax(180px,260px) minmax(190px,260px) auto minmax(190px,260px) auto;gap:14px}.search-panel-main.gateway-search-row{grid-template-columns:minmax(220px,1fr) auto;gap:14px}.search-panel-main.gateway-search-row .search-panel-actions{justify-content:flex-end}.search-panel .label-filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.advanced-search{border-top:1px solid var(--border);padding-top:10px}.advanced-search summary{border:1px solid var(--border);color:#374151;cursor:pointer;background:#f8fafc;border-radius:8px;align-items:center;gap:8px;max-width:100%;min-height:36px;padding:0 12px;font-size:13px;font-weight:700;list-style:none;display:inline-flex}.advanced-search summary::-webkit-details-marker{display:none}.advanced-search summary small{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.advanced-search[open] summary{color:var(--teal-dark);background:#eef9f8;border-color:#3ab8b773;margin-bottom:12px}.search-panel-actions{justify-content:flex-end}.search-panel.product-filter-panel,.search-panel.gateway-filter-panel,.search-panel.firmware-filter-panel,.search-panel.label-search-layout,.search-panel.operation-filter-panel{grid-template-columns:1fr}.label-action-button{white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-width:92px;display:inline-flex}.label-action-button:disabled{cursor:not-allowed;opacity:.65}.label-action-button-square{cursor:pointer;width:42px;height:42px;padding:0}.search-panel-actions .label-action-button[aria-expanded=true]{color:var(--teal-dark);background:#eef9f8;border-color:#3ab8b773}.label-info-table input[type=checkbox]{width:14px;min-width:14px;height:14px;accent-color:var(--teal);border-radius:2px;padding:0}.label-error{margin:0 0 14px}.label-empty-message{color:var(--muted);margin:0 0 14px;font-size:13px}.label-table-panel{overflow:hidden}.label-table-meta{border-bottom:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:13px;display:flex}.label-meta-left{align-items:baseline;gap:8px;display:inline-flex}.label-table-meta strong{color:var(--text);font-size:14px}.label-table-actions{border-bottom:1px solid var(--border);background:#fbfcfd;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 18px;display:flex}.label-bottom-actions{border-top:1px solid var(--border);border-bottom:0;align-items:stretch}.label-action-zone{gap:8px;min-width:0;display:grid}.label-result-action-zone{flex:auto}.label-selected-action-zone{border-left:1px solid var(--border);text-align:right;flex:0 auto;align-items:end;min-width:320px;padding-left:20px}.label-action-zone.result-zone{justify-content:flex-end;align-items:start;gap:8px;display:flex}.label-action-title{color:#374151;font-size:13px;font-weight:700}.label-selected-count{color:var(--muted);font-size:12px}.label-action-list{flex-wrap:wrap;gap:8px;display:flex}.label-selected-action-zone .label-action-list{justify-content:flex-end}.table-action-button{white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-width:86px;display:inline-flex}.table-action-button:disabled{cursor:not-allowed}.label-action-notice{color:var(--muted);background:var(--surface);margin:0;padding:10px 18px;font-size:12px}.modal-backdrop{z-index:40;will-change:opacity;background:#0f172a52;place-items:center;padding:20px;animation:.18s ease-out both modal-backdrop-in;display:grid;position:fixed;inset:0}.action-dialog{border:1px solid var(--border);background:var(--surface);will-change:opacity, transform;border-radius:12px;gap:14px;width:min(100%,800px);max-height:calc(100vh - 40px);padding:22px;animation:.2s cubic-bezier(.16,1,.3,1) both modal-dialog-in;display:grid;overflow-y:auto;box-shadow:0 24px 64px #0f172a38}.modal-backdrop.closing{animation:.16s ease-in both modal-backdrop-out}.action-dialog.closing{pointer-events:none;animation:.16s cubic-bezier(.7,0,.84,0) both modal-dialog-out}.content-size-transition{transition:height var(--content-size-transition-duration,.22s) cubic-bezier(.16, 1, .3, 1);will-change:height;overflow:hidden}.content-size-transition-inner{min-width:0}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes modal-dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modal-dialog-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.action-dialog,.modal-backdrop.closing,.action-dialog.closing,.content-size-transition{transition-duration:1ms;animation-duration:1ms}}.file-upload-dialog{grid-template-columns:minmax(340px,420px) minmax(420px,1fr);align-items:start;gap:22px;width:min(100%,1040px);max-height:calc(100vh - 48px);padding:28px;position:relative;overflow:auto}.label-schedule-dialog{gap:22px;width:min(100%,980px);max-height:calc(100vh - 48px);padding:34px;position:relative;overflow:auto}.label-control-dialog{gap:20px;width:min(100%,720px);max-height:calc(100vh - 48px);padding:30px;position:relative;overflow:auto}.label-id-search-dialog{gap:18px;width:min(100vw - 48px,1120px);max-height:calc(100vh - 48px);padding:28px;position:relative;overflow:auto}.product-id-search-dialog{width:min(100vw - 48px,1040px)}.gateway-id-search-dialog{width:min(100vw - 48px,980px)}.dialog-close-button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:14px;right:14px}.dialog-close-button:hover:not(:disabled){color:var(--text);background:var(--surface-muted)}.file-upload-dialog .dialog-close-button{z-index:2;background:var(--surface);box-shadow:0 0 0 6px var(--surface);top:10px;right:10px}.label-schedule-dialog .dialog-close-button,.label-control-dialog .dialog-close-button,.label-id-search-dialog .dialog-close-button{top:12px;right:12px}.file-upload-dialog .dialog-close-button:hover:not(:disabled){background:var(--surface-muted);box-shadow:0 0 0 6px var(--surface)}.label-schedule-heading{color:#0f2d46;align-items:center;gap:14px;display:flex}.label-schedule-heading h3{margin:0;font-size:26px}.token-list-input{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:10px;min-height:110px;padding:14px;display:grid}.label-schedule-dialog .token-list-input{margin:0 34px}.label-control-dialog .token-list-input{margin:0}.token-list-input-header{color:#334155;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.token-list-input-header strong{font-weight:700}.token-list-input-header span,.token-list-input p,.token-list-input small{color:var(--muted);margin:0;font-size:12px}.token-list-input-items{flex-wrap:wrap;gap:8px;display:flex}.token-list-input-chip{color:#14384f;background:#3ab8b71a;border:1px solid #3ab8b759;border-radius:999px;align-items:center;gap:6px;max-width:100%;min-height:28px;padding:0 8px 0 10px;font-size:12px;font-weight:700;display:inline-flex}.token-list-input-chip span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.token-list-input-chip--readonly{padding:0 10px}.target-label-list-items{max-height:132px;overflow-y:auto}.target-label-list-summary{color:var(--muted);margin:0;font-size:12px}.token-list-input-chip button{color:#14384f;cursor:pointer;background:#0f2d461f;border:0;border-radius:999px;flex:none;place-items:center;width:18px;height:18px;padding:0;display:grid}.token-list-input-chip button:hover:not(:disabled){color:#b4232a;background:#e56d722e}.token-list-input-add{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.token-list-input-add input{min-width:0}.label-schedule-table{border-top:1px solid #334155;border-bottom:1px solid var(--border);margin:6px 24px 0;display:grid}.label-schedule-table-head,.label-schedule-row{grid-template-columns:minmax(150px,.8fr) minmax(220px,1fr) minmax(220px,1fr) 34px;align-items:center;gap:34px;min-height:72px;padding:0 30px;display:grid}.label-schedule-table-head{color:#334155;border-bottom:1px solid #334155;min-height:50px;font-size:13px;font-weight:700}.label-schedule-row{border-bottom:1px solid var(--border)}.label-schedule-row:last-child{border-bottom:0}.label-schedule-row select,.label-schedule-row input,.label-schedule-labels textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:40px;color:var(--text);border-radius:6px;padding:0 12px;font-size:13px}.label-schedule-date-field{min-width:0}.label-schedule-remove{color:#fff;cursor:pointer;background:#e56d72;border:0;border-radius:999px;place-items:center;width:28px;height:28px;display:grid}.label-schedule-remove:disabled{cursor:default;opacity:.35}.label-schedule-error{margin:0 24px}.label-control-field-grid{gap:14px;display:grid}.label-control-field strong{color:var(--danger)}.label-control-actions{justify-content:flex-end}.label-id-search-heading{justify-content:space-between;gap:16px;padding-right:42px;display:flex}.label-id-search-heading p{color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:700}.label-id-search-heading h3{color:var(--text);margin:0;font-size:24px;line-height:1.25}.label-id-search-heading>span{color:#14384f;white-space:nowrap;background:#3ab8b71a;border:1px solid #3ab8b759;border-radius:999px;align-self:start;padding:7px 10px;font-size:12px;font-weight:700}.label-id-context-grid,.label-id-search-filter-grid{gap:12px;display:grid}.label-id-context-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.label-id-condition{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:6px;min-width:0;padding:10px 12px;display:grid}.label-id-condition span{color:var(--muted);font-size:11px;font-weight:700}.label-id-condition strong{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.label-id-search-filter-grid{grid-template-columns:repeat(5,minmax(120px,1fr))}.product-id-search-filter-grid{grid-template-columns:minmax(160px,1fr) minmax(180px,1.2fr) minmax(150px,.8fr);gap:12px;display:grid}.gateway-id-search-filter-grid{grid-template-columns:minmax(220px,1.2fr) minmax(170px,.8fr);gap:12px;display:grid}.label-id-mode-toggle{border:1px solid var(--border);background:#eef4f7;border-radius:8px;align-self:start;width:fit-content;padding:4px;display:inline-flex;box-shadow:inset 0 0 0 1px #0f172a05}.label-id-mode-toggle button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:6px;min-width:104px;height:34px;padding:0 14px;font-size:13px;font-weight:700;transition:background .14s,color .14s,box-shadow .14s}.label-id-mode-toggle button.active{color:#fff;background:#2faba9;box-shadow:0 1px 5px #2faba952}.label-id-lookup-panel,.label-id-selection-card{gap:14px;display:grid}.label-id-selection-card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:16px}.label-id-search-actions,.label-id-result-meta{align-items:center;gap:8px;display:flex}.label-id-search-actions{justify-content:flex-end}.label-id-search-actions button{align-items:center;gap:6px;display:inline-flex}.label-id-manual-input{gap:8px;display:grid}.label-id-search-feedback{color:var(--muted);margin:0;font-size:12px;font-weight:600}.label-id-result-meta{color:var(--muted);justify-content:space-between;font-size:12px;font-weight:700}.label-id-result-table-wrap{border:1px solid var(--border);border-radius:8px;min-height:120px;max-height:360px;overflow:auto}.label-id-result-table-wrap:has(+.modal-search-footer){border-bottom:0;border-radius:8px 8px 0 0}.modal-search-footer{border:1px solid var(--border);background:var(--surface);border-top:0;border-radius:0 0 8px 8px;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 14px;display:flex}.modal-search-footer--actions-only{border-top:1px solid var(--border);border-radius:8px;justify-content:flex-end}.modal-search-footer-pagination{flex:auto;min-width:0}.modal-search-footer-pagination .label-pagination{background:0 0;border:0;min-height:0;padding:0}.modal-search-footer-actions{flex:none;gap:8px}.label-id-result-table{table-layout:fixed;min-width:900px}.label-id-result-table th,.label-id-result-table td{border-bottom:1px solid var(--border);background:var(--surface);color:#334155;text-align:left;vertical-align:middle;height:42px;padding:0 12px;font-size:12px}.label-id-result-table th{z-index:1;background:var(--surface-muted);font-weight:700;position:sticky;top:0}.label-id-result-table th:first-child,.label-id-result-table td:first-child{text-align:center;width:58px}.label-id-result-table th:nth-child(2),.label-id-result-table td:nth-child(2){width:180px}.label-id-result-table th:nth-child(3),.label-id-result-table td:nth-child(3){width:130px}.label-id-result-table th:nth-child(5),.label-id-result-table td:nth-child(5){width:120px}.label-id-result-table th:nth-child(6),.label-id-result-table td:nth-child(6){width:190px}.label-id-result-table tbody tr{cursor:pointer}.label-id-result-row.entering{animation:.18s ease-out both label-id-row-fade-in}.label-id-result-row.entering td{animation:.18s ease-out both label-id-row-cell-in;overflow:hidden}.label-id-result-row.exiting{pointer-events:none;animation:.18s ease-in both label-id-row-fade-out}.label-id-result-row.exiting td{animation:.18s ease-in both label-id-row-cell-out;overflow:hidden}.label-id-empty-state td{animation:.18s ease-out both label-id-row-fade-in}@keyframes label-id-row-fade-in{0%{opacity:0}to{opacity:1}}@keyframes label-id-row-fade-out{0%{opacity:1}to{opacity:0}}@keyframes label-id-row-cell-in{0%{opacity:0;height:0;transform:translateY(-6px)}to{opacity:1;height:42px;transform:translateY(0)}}@keyframes label-id-row-cell-out{0%{opacity:1;height:42px;transform:translateY(0)}to{opacity:0;border-bottom-color:#0000;height:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.label-id-result-row.entering,.label-id-result-row.entering td,.label-id-result-row.exiting,.label-id-result-row.exiting td,.label-id-result-row.entering .label-id-result-cell-content,.label-id-result-row.exiting .label-id-result-cell-content,.label-id-empty-state td{animation-duration:1ms}}.label-search-result-table td{height:auto}.label-search-result-table .label-id-result-cell-content{text-overflow:ellipsis;white-space:nowrap;will-change:height, opacity, transform;min-width:0;height:42px;line-height:42px;display:block;overflow:hidden}.label-search-result-table .label-id-result-cell-content.centered{justify-content:center;align-items:center;line-height:normal;display:flex}.label-search-result-table .label-id-result-row.entering,.label-search-result-table .label-id-result-row.exiting,.label-search-result-table .label-id-result-row.entering td,.label-search-result-table .label-id-result-row.exiting td{animation:none}.label-search-result-table .label-id-result-row.entering .label-id-result-cell-content{animation:.22s cubic-bezier(.16,1,.3,1) both label-id-result-content-in}.label-search-result-table .label-id-result-row.exiting td{border-bottom-color:#0000;overflow:hidden}.label-search-result-table .label-id-result-row.exiting .label-id-result-cell-content{animation:.22s cubic-bezier(.4,0,.2,1) both label-id-result-content-out}@keyframes label-id-result-content-in{0%{opacity:0;height:0;transform:translateY(-8px)}to{opacity:1;height:42px;transform:translateY(0)}}@keyframes label-id-result-content-out{0%{opacity:1;height:42px;transform:translateY(0)}to{opacity:0;height:0;transform:translateY(-8px)}}.label-id-result-table tbody tr:hover td,.label-id-result-table tbody tr.selected td{background:#f0fdfa}.label-id-row-check{border:1px solid var(--border-strong);background:var(--surface);color:#0f766e;cursor:pointer;border-radius:6px;place-items:center;width:24px;height:24px;padding:0;display:inline-grid}.label-id-row-check.selected{background:#ccfbf1;border-color:#0f766e}.label-id-empty-row{height:120px!important;color:var(--muted)!important;text-align:center!important}.label-id-search-footer{align-items:center}.label-schedule-token-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:0 34px -12px;display:flex}.label-schedule-token-toolbar span{color:#334155;font-size:12px;font-weight:700}.label-schedule-actions{justify-content:center;gap:10px;margin-top:90px}.label-schedule-actions button{min-width:112px}.file-upload-heading{color:#0f2d46;grid-column:1;align-items:center;gap:14px;display:flex}.file-upload-heading h3{font-size:26px}.file-upload-help{color:var(--muted);grid-column:1;margin:0;font-size:12px;line-height:1.55}.file-upload-section{grid-column:1;gap:10px;display:grid}.file-upload-label{color:#374151;font-size:12px;font-weight:700}.file-upload-label strong{color:var(--danger)}.file-upload-type-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.file-upload-type{background:var(--surface);color:#9ca3af;cursor:pointer;text-align:center;border:1px solid #c7ced8;border-radius:8px;align-content:center;place-items:center;gap:8px;min-height:126px;padding:14px 10px;display:grid}.file-upload-type strong{color:inherit;font-size:14px}.file-upload-type span{color:inherit;font-size:11px;line-height:1.35}.file-upload-type.active{color:#0f2d46;border:2px solid #0f2d46}.file-upload-type-assign.active{color:#2f6f5f;background:#f4faf8;border-color:#7fb2a3;box-shadow:inset 0 0 0 1px #2f7d681a}.file-upload-type-unassign.active{color:#76572d;background:#fff8ed;border-color:#c6a16b;box-shadow:inset 0 0 0 1px #8f6a351a}.file-upload-type-delete.active{color:#944848;background:#fff5f5;border-color:#d5a0a0;box-shadow:inset 0 0 0 1px #b05a5a1a}.file-picker-field{gap:10px}.file-format-button{color:#0f2d46;cursor:pointer;font:inherit;background:0 0;border:0;margin-left:8px;padding:0;font-weight:700}.file-format-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.65}.file-picker-control{background:var(--surface);color:#374151;border:1px solid #c7ced8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0 12px;display:flex;position:relative;overflow:hidden}.file-picker-control span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-picker-control input{opacity:0;cursor:pointer;position:absolute;inset:0}.selected-file-list{background:var(--surface);border:1px solid #c7ced8;border-radius:8px;align-items:center;min-height:42px;padding:0 12px;display:flex}.selected-file-list span{align-items:center;gap:10px;min-width:0;display:flex}.selected-file-list strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.selected-file-list small,.selected-file-empty{color:var(--muted);font-size:12px}.file-upload-actions{grid-column:1;justify-content:center;gap:10px}.file-upload-error{word-break:keep-all;background:#fff5f5;border:1px solid #fecaca;border-radius:8px;grid-column:1;margin:0;padding:10px 12px}.file-upload-actions button{min-width:150px}.file-upload-dialog button:disabled{cursor:not-allowed;opacity:.6}.upload-validation-panel{border:1px solid var(--border);background:#fbfcfd;border-radius:8px;grid-area:1/2/span 5;align-content:start;align-self:stretch;gap:10px;min-height:430px;padding:12px;display:grid}.upload-validation-empty{color:var(--muted);text-align:center;place-content:center;justify-items:center}.upload-validation-empty strong{color:#374151;font-size:15px}.upload-validation-empty span{max-width:260px;font-size:12px;line-height:1.55}.upload-validation-loading{color:var(--muted);font-size:13px}.upload-validation-summary{color:#374151;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.upload-validation-summary span{color:var(--muted)}.upload-validation-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:8px;max-height:430px;overflow:auto}.upload-validation-table{table-layout:fixed;min-width:620px}.upload-validation-table th,.upload-validation-table td{white-space:nowrap;text-overflow:ellipsis;height:34px;padding:0 10px;font-size:11px;overflow:hidden}.upload-validation-table th:first-child,.upload-validation-table td:first-child{text-align:center;width:54px}.upload-validation-table tr.invalid td{color:var(--danger);background:#fff5f5}.action-dialog h3{color:var(--text);margin:0;font-size:18px}.action-dialog p,.dialog-message{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.action-dialog .label-id-search-heading p{color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:700;line-height:1.35}.action-dialog .label-id-search-heading h3{color:var(--text);margin:0;font-size:24px;line-height:1.25}.dialog-message{gap:12px;display:grid}.dialog-target-count{background:var(--surface-muted);border-radius:8px;padding:10px 12px;font-weight:700;color:#374151!important}.dialog-form-grid{gap:12px;display:grid}.action-dialog.assign-dialog{overflow:visible}.assign-label-template-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}@media (max-width:640px){.assign-label-template-row{grid-template-columns:minmax(0,1fr)}}.assign-template-row{position:relative}.assign-template-scope,.assign-config-toggle{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.assign-template-scope{white-space:nowrap;font-size:12px;position:absolute;top:0;right:0}.assign-config-section{gap:8px;display:grid}.assign-config-toggle small{color:var(--muted);font-size:12px;font-weight:700}.assign-config-loading{color:var(--muted);margin:0;font-size:13px}.assign-dialog-feedback{margin:0}.led-action-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.led-action-form-grid>:nth-child(3){grid-column:1/-1}.led-action-form-grid>.label-field>.label-field-title{height:18px}.led-duration-slider-value{color:#1d4ed8;background:#eff6ff;border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700;line-height:1.4}.led-duration-slider-control{background:0 0;border:0;border-radius:8px;align-items:center;width:100%;height:40px;padding:0 12px;display:flex}.led-duration-slider-field input[type=range]{appearance:none;cursor:pointer;border:0;border-radius:999px;outline:none;width:100%;min-width:0;height:4px;margin:0;padding:0}.led-duration-slider-field input[type=range]::-webkit-slider-thumb{appearance:none;background:#2563eb;border:3px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 1px #2563eb,0 1px 3px #2563eb40}.led-duration-slider-field input[type=range]::-moz-range-thumb{background:#2563eb;border:3px solid #fff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 1px #2563eb,0 1px 3px #2563eb40}.led-duration-slider-control:focus-within{box-shadow:0 0 0 3px #2563eb1a}.led-duration-slider-control:has(input:disabled){opacity:.55;background:0 0}.led-duration-slider-field input[type=range]:disabled{cursor:not-allowed}@media (max-width:640px){.led-action-form-grid{grid-template-columns:minmax(0,1fr)}.led-action-form-grid>:nth-child(3){grid-column:auto}}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.template-group-dialog{width:min(100%,680px)}.template-group-types-cell{max-width:360px}.template-group-types-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.template-group-types-summary.empty{color:var(--muted)}.template-list-editor{gap:10px;display:grid}.template-list-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.template-list-editor-head strong{color:var(--text);font-size:13px}.template-list-editor-head span{color:var(--muted);font-size:12px;font-weight:700}.template-add-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.template-add-row input[readonly]{cursor:pointer;background:#f8fafc}.template-add-row input[readonly]:hover:not(:disabled),.template-add-row input[readonly]:focus:not(:disabled){background:#eef9f8;border-color:#3ab8b78c}.template-search-dialog{width:min(100vw - 48px,1060px)}.template-search-filter-grid{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:12px;display:grid}.template-search-result-table{min-width:980px}.template-search-result-table th,.template-search-result-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.template-search-result-table th:nth-child(2),.template-search-result-table td:nth-child(2){width:260px}.template-search-result-table th:nth-child(3),.template-search-result-table td:nth-child(3){width:200px}.template-search-result-table th:nth-child(4),.template-search-result-table td:nth-child(4),.template-search-result-table th:nth-child(5),.template-search-result-table td:nth-child(5),.template-search-result-table th:nth-child(6),.template-search-result-table td:nth-child(6),.template-search-result-table th:nth-child(7),.template-search-result-table td:nth-child(7){width:110px}.template-token-list{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:42px;max-height:180px;margin:0;padding:10px;list-style:none;display:flex;overflow:auto}.template-token{color:#244256;background:#fff;border:1px solid #cfe1e1;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:5px 8px 5px 10px;font-size:12px;font-weight:700;display:inline-flex}.template-token span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;overflow:hidden}.template-token button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:20px;height:20px;display:inline-grid}.template-token button:hover:not(:disabled){color:var(--danger);background:#fff1f1}.template-empty-message{border:1px dashed var(--border);color:var(--muted);background:var(--surface-muted);text-align:center;border-radius:8px;margin:0;padding:12px;font-size:13px}.label-card-preview{background:#f8fafc;border:1px solid #dbe4ef;border-radius:8px;gap:8px;min-height:118px;padding:8px;display:grid}.label-card-preview.loading,.label-card-preview.error{color:var(--muted);place-items:center;font-size:12px}.label-card-preview.error{color:var(--danger)}.label-card-preview-image{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;height:82px}.label-card-preview-fallback{color:#111827;background:#fff;border:1px solid #111827;border-radius:4px;align-content:center;gap:8px;min-height:82px;padding:10px;display:grid}.label-card-preview-fallback strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.label-card-preview-fallback span{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;overflow:hidden}.label-card-preview-meta{color:var(--muted);justify-content:flex-end;font-size:10px;display:flex}.label-card-preview-meta span{border:1px solid var(--border);background:#fff;border-radius:999px;padding:2px 6px}.label-thumb-col{width:84px}.label-thumb-cell{text-align:center}.label-thumb-image{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;max-width:72px;height:40px;margin:0 auto;display:block}.label-thumb-loading{width:72px;height:40px;color:var(--muted);background:#f8fafc;border-radius:4px;justify-content:center;align-items:center;margin:0 auto;display:flex}.label-thumb-empty{text-align:center;color:var(--muted);font-size:12px;display:block}.label-table-wrap{background:var(--surface);width:100%;overflow-x:auto}.label-info-table{table-layout:fixed}.label-assigned-table{min-width:1446px}.label-unassigned-table{min-width:1190px}.label-info-table th,.label-info-table td{border-bottom:1px solid var(--border);color:#2f3b4f;vertical-align:middle;white-space:nowrap;text-overflow:clip;height:48px;padding:0 14px;font-size:12px;overflow:hidden}.label-info-table th{color:#374151;background:#f8fafc;font-weight:700}.label-info-table .check-col{text-align:center;text-overflow:clip;width:42px;padding:0;overflow:visible}.label-info-table .index-col{text-align:center;width:46px}.label-info-table .icon-col{text-align:center;text-overflow:clip;width:70px;padding:0 6px;overflow:visible}.label-info-table .alive-col{width:70px}.status-icon-cell{justify-content:center;align-items:center;gap:4px;line-height:1;display:inline-flex}.status-icon-text{color:#334155;font-size:12px;font-weight:600}.status-icon-text.unknown,.status-icon.neutral{color:#94a3b8}.status-icon.neutral+.status-icon-text{color:#475569}.status-icon-text.bad{color:#dc2626}.status-icon-text.cold{color:#2563eb}.label-info-table .label-id-col{text-overflow:clip;white-space:nowrap;width:130px;overflow:visible}.label-assigned-table th:nth-child(5),.label-assigned-table td:nth-child(5){text-overflow:clip;width:116px;overflow:visible}.label-assigned-table th:nth-child(6),.label-assigned-table td:nth-child(6){width:176px}.label-assigned-table th:nth-child(7),.label-assigned-table td:nth-child(7){width:160px}.label-assigned-table .status-col{width:112px}.label-assigned-table .temperature-col{text-align:center;width:84px;padding:0 6px}.label-assigned-table th:nth-child(13),.label-assigned-table td:nth-child(13){width:190px}.label-assigned-table th:nth-child(14),.label-assigned-table td:nth-child(14){width:96px}.label-assigned-table td:nth-child(6),.label-assigned-table td:nth-child(7),.label-assigned-table td:nth-child(13){text-overflow:ellipsis}.label-unassigned-table th:nth-child(4),.label-unassigned-table td:nth-child(4){text-overflow:clip;width:130px;overflow:visible}.label-unassigned-table th:nth-child(5),.label-unassigned-table td:nth-child(5){text-overflow:ellipsis;width:190px}.label-unassigned-table th:nth-child(6),.label-unassigned-table td:nth-child(6){width:96px}.label-unassigned-table th:nth-child(10),.label-unassigned-table td:nth-child(10),.label-unassigned-table th:nth-child(11),.label-unassigned-table td:nth-child(11){width:150px}.label-unassigned-table th:nth-child(12),.label-unassigned-table td:nth-child(12){text-align:center;width:64px}.label-product-codes-cell{white-space:nowrap}.label-product-codes{font-family:var(--font-mono);gap:2px;line-height:1.35;display:grid}.label-product-names-cell{overflow:visible!important}.label-product-names{text-overflow:ellipsis;white-space:nowrap;cursor:help;display:block;overflow:hidden}.label-product-names:focus-visible{outline-offset:2px;outline:2px solid #3ab8b7b3}.label-product-tooltip{z-index:1200;color:#111827;pointer-events:none;background:#fff;border:1px solid #0f172a14;border-radius:6px;width:min(420px,100vw - 24px);padding:12px 14px;font-size:12px;position:fixed;transform:translate(-50%,-100%);box-shadow:0 10px 26px #0f172a24}.label-product-tooltip:after{content:"";background:#fff;border-bottom:1px solid #0f172a14;border-right:1px solid #0f172a14;width:14px;height:14px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.label-product-tooltip strong{margin-bottom:7px;font-weight:700;display:block}.label-product-tooltip ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.label-product-tooltip li{grid-template-columns:78px minmax(0,1fr);gap:8px;line-height:1.35;display:grid}.label-product-tooltip-code{color:var(--muted);font-family:var(--font-mono)}.sortable-heading{align-items:center;gap:2px;display:inline-flex}.mono-cell{font-family:var(--font-mono)}.label-detail-row{cursor:pointer}.label-detail-row:focus-visible{outline-offset:-2px;outline:2px solid #3ab8b7b3}.label-detail-link{cursor:pointer}.label-detail-row:hover .label-detail-link{text-underline-offset:2px;text-decoration:underline}.template-cell{color:#364b6a}.state-good{color:var(--teal-dark);font-weight:700}.state-alert{color:var(--danger);font-weight:700}.history-button{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.history-button:hover{color:var(--teal-dark);background:#e9f7f6}.alive-dot{background:#cbd5e1;border-radius:999px;width:13px;height:13px;display:inline-block}.alive-dot.on{background:var(--teal)}.empty-row{text-align:center;color:var(--muted)}.label-pagination{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 14px;display:flex}.label-pagination-range{color:var(--muted);white-space:nowrap;margin:0;font-size:12px}.label-pagination-controls{justify-content:flex-end;align-items:center;gap:6px;display:flex}.label-page-size{color:var(--muted);grid-template-columns:none;align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.label-page-size select{width:92px;height:32px;padding:0 28px 0 10px;font-size:12px}.pagination-button,.pagination-current{border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.pagination-button{border:1px solid var(--border);background:var(--surface);color:#4b5563;cursor:pointer}.pagination-button:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark)}.pagination-button:disabled{cursor:not-allowed;opacity:.45}.pagination-current{background:var(--teal);color:#fff;font-size:13px;font-weight:700}.label-detail-backdrop{align-items:start;overflow-y:auto}.label-detail-dialog{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:min(100%,1320px);margin:28px 0;overflow:hidden;box-shadow:0 24px 72px #0f172a3d}.label-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:18px 22px;display:flex}.label-detail-kicker{color:var(--muted);margin:0 0 4px;font-size:12px}.label-detail-header h3{color:var(--text);align-items:center;gap:8px;margin:0;font-size:22px;display:flex}.label-detail-freezer-icon{color:#2563eb;cursor:help;align-items:center;display:inline-flex}.label-detail-state{color:var(--muted);padding:28px;font-size:14px}.label-detail-body{grid-template-columns:minmax(360px,.86fr) minmax(0,1.14fr);gap:24px;padding:22px;display:grid}.label-detail-body.no-preview{grid-template-columns:minmax(0,1fr)}.label-detail-body.no-preview .label-detail-content{border-left:0;padding-left:0}.label-detail-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:14px 22px;display:flex}.label-detail-footer:empty{display:none}.label-detail-notice{color:var(--muted);margin:0 auto 0 0;font-size:12.5px}.label-detail-header-actions{align-items:center;gap:10px;display:flex}.label-detail-refresh-icon.spinning{animation:.8s linear infinite loading-spinner-rotate}.dialog-inline-error{margin:10px 0 0}.label-preview-panel{align-content:start;gap:16px;min-width:0;display:grid}.label-preview-canvas{border:1px solid var(--border);background:#f8fafc;border-radius:10px;place-items:center;min-height:270px;padding:26px;display:grid}.tooltip-area{min-width:0;display:inline-flex}.tooltip-area>button:disabled{pointer-events:none}.segmented-tab-tooltip-area>button{flex:auto}.tooltip-bubble{z-index:3000;pointer-events:none;will-change:transform;max-width:280px;transition:opacity .14s;position:fixed;top:0;left:0}.tooltip-bubble.closing{opacity:0}.tooltip-bubble-inner{color:#f8fafc;white-space:pre-line;background:#0f172aeb;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:500;line-height:1.5;animation:.14s ease-out tooltip-bubble-in;display:block;box-shadow:0 8px 24px #0f172a47}@keyframes tooltip-bubble-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.loading-spinner{width:var(--loading-spinner-size,20px);height:var(--loading-spinner-size,20px);border:2.5px solid #94a3b84d;border-top-color:currentColor;border-radius:50%;flex-shrink:0;animation:.8s linear infinite loading-spinner-rotate;display:inline-block}@keyframes loading-spinner-rotate{to{transform:rotate(360deg)}}.label-preview-exact-state{min-height:160px;color:var(--muted);place-items:center;font-size:13px;display:grid}.label-preview-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.label-preview-toolbar .segmented-tabs--inline{border-bottom:0}.label-preview-exact-toggle{color:#374151;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;margin-bottom:4px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-flex}.label-preview-exact-toggle:hover{color:#111827}.label-preview-exact-toggle .toggle-switch{width:30px;height:17px}.label-preview-exact-toggle .toggle-switch:after{width:12px;height:12px;top:2.5px;left:2.5px}.label-preview-exact-toggle .toggle-switch.on:after{transform:translate(13px)}.label-preview-content{gap:14px;width:min(100%,420px);display:grid}.label-preview-image{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:0;justify-self:center;max-height:230px}.label-preview-card{aspect-ratio:2.6;color:#111827;background:#fff;border:1px solid #111827;grid-template-rows:repeat(3,1fr);grid-template-columns:minmax(0,1fr) minmax(120px,1fr);gap:4px 20px;width:min(100%,380px);padding:18px;display:grid}.label-preview-card strong{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1/2/2;align-self:start;min-width:0;font-size:20px;overflow:hidden}.label-preview-card span{text-align:center;place-self:center;font-size:18px}.label-preview-price{grid-area:2/2/3/3}.label-preview-barcode{grid-area:3/2/4/3}.label-preview-batch{gap:8px;min-width:0;display:grid}.label-preview-batch-label{color:var(--muted);font-size:11px;font-weight:700;line-height:1.2;display:block}.label-preview-batch .copyable-value{border:1px solid var(--border);background:var(--surface-muted);color:#374151;border-radius:5px;align-items:center;gap:6px;min-width:0;min-height:32px;padding:0 10px;font-size:12px;line-height:1;display:flex}.label-preview-batch .copyable-value>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.label-preview-batch .copyable-value--empty{color:var(--muted);cursor:default}.label-preview-page-tabs{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.label-preview-page-button{min-width:56px;font-size:15px}.label-preview-empty{color:var(--muted);font-size:13px}.label-detail-metrics{grid-template-columns:minmax(88px,.72fr) repeat(2,minmax(132px,1fr));gap:10px 12px;display:grid}.detail-metric{background:0 0;border:0;gap:8px;min-width:0;padding:0;display:grid}.detail-metric span{color:var(--muted);margin:0;font-size:11px;font-weight:700;line-height:1.2;display:block}.detail-metric strong{overflow-wrap:normal;text-overflow:clip;white-space:nowrap;border:1px solid var(--border);background:var(--surface-muted);color:#374151;font-variant-numeric:tabular-nums;border-radius:5px;align-items:center;min-height:32px;padding:0 10px;font-size:12px;line-height:1;display:flex;overflow:hidden}.detail-metric.good strong{color:var(--teal-dark)}.detail-metric.alert strong{color:var(--danger)}.label-detail-content{border-left:1px solid var(--border);min-width:0;padding-left:24px}.label-detail-tabbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.label-detail-tabbar .segmented-tabs--inline{border-bottom:0}.label-detail-tabbar .segmented-tabs--inline button{white-space:nowrap}.label-detail-tab-tools{align-items:center;gap:10px;padding-bottom:4px;display:inline-flex}.label-detail-tab-tools button{color:#9ca3af;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.label-detail-tab-tools button:hover:not(:disabled){background:var(--surface-muted);color:var(--teal-dark)}.label-detail-tab-tools button:disabled{color:#d1d5db;cursor:not-allowed}.led-history-pager{grid-template-columns:28px minmax(30px,auto) 28px;align-items:center;gap:2px;display:grid}.led-history-pager-page{color:var(--navy);text-align:center;font-size:13px;font-weight:700}.led-history-more-link{color:var(--teal-dark);justify-self:start;align-items:center;gap:5px;font-size:12.5px;font-weight:700;text-decoration:none;display:inline-flex}.led-history-more-link:hover{text-decoration:underline}.led-history-more-link svg{flex:none}.label-detail-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;grid-column:1/-1;gap:4px;padding:12px 14px;font-size:12px;display:grid}.label-detail-warning strong{font-size:13px}.label-detail-warning span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-detail-section{grid-template-columns:minmax(0,1fr);gap:16px;padding-top:18px;display:grid}.label-detail-section>*{min-width:0}.label-specification-section{gap:10px;display:grid}.label-specification-section h4{color:#374151;margin:0;font-size:13px}.label-specification-state{border:1px dashed var(--border);background:var(--surface-muted);min-height:40px;color:var(--muted);border-radius:8px;align-items:center;margin:0;padding:10px 12px;font-size:12px;display:flex}.label-specification-state.error{color:var(--danger);background:#fef2f2;border-color:#fecaca}.label-diagnostic-alert{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;gap:4px;padding:10px 12px;font-size:12px;display:grid}.label-diagnostic-alert strong{color:#78350f;font-size:12px}.label-status-ribbon{border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.label-status-cell{border-left:1px solid var(--border);align-items:center;gap:9px;min-width:0;padding:10px 12px;display:flex}.label-status-cell:first-child{border-left:0}.label-status-bar{background:#cbd5e1;border-radius:2px;flex:none;width:3px;height:26px}.label-status-bar.good{background:var(--stable)}.label-status-bar.warn{background:var(--caution)}.label-status-bar.danger{background:var(--danger)}.label-status-bar.info,.label-status-bar.cold{background:#2563eb}.label-status-text{min-width:0}.label-status-text small{color:var(--muted);font-size:11px;line-height:1.5;display:block}.label-status-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;line-height:1.35;display:block;overflow:hidden}.label-status-text strong.good{color:var(--teal-dark)}.label-status-text strong.warn{color:#b45309}.label-status-text strong.danger{color:var(--danger)}.label-status-text strong.info,.label-status-text strong.cold{color:#2563eb}.label-status-text strong.label-status-empty{color:#9ca3af;font-size:13px;font-weight:400}.detail-block{gap:8px;display:grid}.detail-block h4{color:var(--muted);letter-spacing:.03em;margin:0;font-size:12px;font-weight:700}.detail-definition-grid{border-top:1px solid var(--border);grid-template-columns:88px minmax(0,1fr) 88px minmax(0,1fr);margin:0;display:grid}.detail-definition-grid dt{color:var(--muted);border-bottom:1px solid #f1f3f5;align-items:center;padding:9px 10px 9px 0;font-size:12px;display:flex}.detail-definition-grid dd{border-bottom:1px solid #f1f3f5;align-items:center;min-width:0;margin:0;padding:9px 16px 9px 0;display:flex}.detail-definition-grid dd.wide{grid-column:2/-1}.detail-definition-grid .copyable-value{color:#111827;justify-content:space-between;width:100%;font-size:13px}.detail-definition-grid .copyable-value>span{flex:auto}.detail-collapsible{border:1px solid var(--border);background:var(--surface);border-radius:10px}.detail-collapsible>summary{cursor:pointer;align-items:center;gap:10px;min-width:0;padding:10px 12px;list-style:none;display:flex}.detail-collapsible>summary::-webkit-details-marker{display:none}.detail-collapsible[open]>summary{padding-bottom:8px}.detail-collapsible-title{color:var(--muted);letter-spacing:.03em;flex:none;font-size:12px;font-weight:700}.detail-collapsible-summary{text-overflow:ellipsis;white-space:nowrap;color:#1f2937;min-width:0;font-family:var(--font-mono);flex:auto;font-size:12.5px;overflow:hidden}.detail-collapsible>summary svg{color:#9ca3af;flex:none;transition:transform .15s}.detail-collapsible[open]>summary svg{transform:rotate(180deg)}.detail-collapsible-body{padding:0 12px 10px}.detail-spec-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0;display:grid}.detail-spec-row{border-bottom:1px solid #f5f6f7;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:7px 0;display:flex}.detail-spec-row dt{color:var(--muted);font-size:12.5px}.detail-spec-row dd{align-items:center;gap:6px;min-width:0;margin:0;display:flex}.detail-spec-row .template-color-dots,.detail-collapsible>summary .template-color-dots{flex:none}.detail-spec-row .copyable-value{color:#111827;font-size:12.5px}.detail-spec-row .copyable-value>svg{opacity:0}.detail-spec-row:hover .copyable-value>svg,.detail-spec-row .copyable-value:focus-visible>svg{opacity:1}.detail-definition-grid .copyable-value--empty,.detail-spec-row .copyable-value--empty{color:#9ca3af}.detail-table-block{gap:10px;display:grid}.detail-table-block h4{color:#374151;margin:0;font-size:13px}.detail-table-count{color:var(--muted);margin-left:5px;font-size:11.5px;font-weight:400}.detail-mini-table{table-layout:fixed;border:1px solid var(--border);border-collapse:separate;border-spacing:0;border-radius:8px;width:100%;overflow:hidden}.detail-mini-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detail-mini-table th,.detail-mini-table td{white-space:nowrap;height:42px;padding:0 14px;font-size:12px}.detail-mini-table th{background:var(--surface-muted)}.history-table th:first-child,.history-table td:first-child{width:16%}.history-table th:nth-child(2),.history-table td:nth-child(2){width:26%}.history-table th:nth-child(3),.history-table td:nth-child(3),.history-table th:nth-child(4),.history-table td:nth-child(4){width:29%}.status-history-table th,.status-history-table td{padding:0 8px}.status-history-table th:first-child,.status-history-table td:first-child{width:36%}.status-history-table th:nth-child(2),.status-history-table td:nth-child(2){width:19%}.status-history-table th:nth-child(3),.status-history-table td:nth-child(3){width:27%}.status-history-table th:nth-child(4),.status-history-table td:nth-child(4){width:18%}.template-management-page{min-width:0}.template-management-page>.panel+.panel,.template-management-page>.panel+.mapping-summary,.template-management-page>.mapping-summary+.panel{margin-top:20px}.template-heading h2{align-items:center;gap:10px;display:inline-flex}.template-notice{width:fit-content;color:var(--teal-dark);background:#3ab8b714;border:1px solid #3ab8b73d;border-radius:8px;margin-bottom:14px}.template-management-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr);align-items:start;gap:18px;display:grid}@media (max-width:1280px){.template-management-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.template-management-grid>.template-preview-panel{grid-column:1/-1}}.template-column{gap:14px;min-width:0;display:grid}.template-filter-row{grid-template-columns:minmax(160px,210px) minmax(0,1fr);gap:10px;display:grid}.template-filter-row select,.template-search-field input{border:1px solid var(--border);color:#27364b;background:var(--surface);border-radius:8px;height:42px}.template-filter-row select{color:#fff;background:#062a44;padding:0 12px;font-weight:700}.template-filter-row select:disabled{opacity:1}.template-search-field{min-width:0;position:relative}.template-search-field input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){width:100%;padding:0 46px 0 14px}.template-search-field svg{color:#fff;background:#7d8495;border-radius:0 7px 7px 0;width:40px;height:40px;padding:10px;position:absolute;top:1px;right:1px}.template-table-panel{min-height:502px;max-height:502px;overflow:auto}.template-table{border-collapse:collapse;table-layout:fixed;width:100%}.template-table th,.template-table td{border-bottom:1px solid var(--border);color:#25344b;text-overflow:ellipsis;white-space:nowrap;height:48px;padding:0 12px;font-size:12px;overflow:hidden}.template-table th{color:#374151;text-align:left;background:#eef1f4;font-weight:700}.template-table thead tr{cursor:default}.template-sort-button{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;padding:0;display:inline-flex}.template-sort-button.active{color:#062a44}.template-sort-icon{opacity:.35;flex:none}.template-sort-button.active .template-sort-icon{opacity:1}.template-table tr{cursor:pointer}.template-table tbody tr.active td{color:#fff;background:var(--teal-dark);font-weight:600}.template-type-table th:first-child,.template-type-table td:first-child{text-align:center;width:52px}.template-type-table th:nth-child(3),.template-type-table td:nth-child(3){width:170px}.template-type-table th:nth-child(4),.template-type-table td:nth-child(4){width:90px}.template-area-table th:first-child,.template-area-table td:first-child{width:96px}.template-area-table th:nth-child(3),.template-area-table td:nth-child(3){text-align:left}.template-area-table th:nth-child(4),.template-area-table td:nth-child(4){text-align:left;width:72px;padding-left:0;padding-right:4px}.template-area-actions{justify-content:flex-start;align-items:center;gap:4px;display:inline-flex}.template-icon-button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.template-icon-button:hover:not(:disabled){color:#062a44;background:#062a4414}.template-icon-button.danger{color:#dc6a70}.template-icon-button.danger:hover:not(:disabled){color:#b91c1c;background:#fff0f1}.template-icon-button:disabled{opacity:.42;cursor:not-allowed}.template-table tbody tr.active .template-icon-button{color:#fff}.template-table tbody tr.active .template-icon-button.danger{color:#ffc4c8}.template-color-dots{align-items:center;gap:3px;display:inline-flex}.template-color-dot{border:1px solid #0f172a3d;border-radius:2px;width:8px;height:8px}.template-color-dot.black{background:#020617}.template-color-dot.white{background:#fff}.template-color-dot.yellow{background:#facc15}.template-color-dot.red{background:#ef4444}.template-color-dot.unknown{background:#94a3b8}.template-empty-row{text-align:center;height:140px;color:var(--muted)}.template-action-bar{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.template-preview-panel{grid-template-rows:52px minmax(334px,1fr);min-height:444px;display:grid;overflow:hidden}.template-preview-panel header{border-bottom:1px solid var(--border);background:var(--surface-muted);align-items:center;padding:0 16px;display:flex}.template-preview-panel header strong{color:var(--text);font-size:13px;font-weight:600}.template-preview-stage{color:var(--muted);text-align:center;background:#f6f7f9;place-items:center;padding:24px;display:grid}.template-preview-stage img{border:1px solid var(--border);object-fit:contain;background:#fff;max-width:100%;max-height:100%}.template-preview-meta{gap:8px;display:grid}.template-preview-meta strong{max-width:100%;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.template-preview-meta span{color:var(--muted);font-size:13px}.template-type-dialog{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:18px;width:min(100%,560px);padding:28px;display:grid;position:relative;box-shadow:0 24px 64px #0f172a38}.template-details-dialog{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-rows:auto auto minmax(200px,1fr) auto;gap:16px;width:min(100%,720px);max-height:min(760px,100vh - 56px);padding:28px;display:grid;position:relative;box-shadow:0 24px 64px #0f172a38}.template-details-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.template-details-title{color:#0f2d46;align-items:center;gap:14px;display:flex}.template-details-title h3{margin:0;font-size:22px}.template-details-meta{text-align:right;gap:2px;margin:0;padding-right:36px;display:grid}.template-details-meta div{justify-content:flex-end;gap:8px;display:flex}.template-details-meta dt{color:var(--muted);font-size:12px}.template-details-meta dd{text-overflow:ellipsis;white-space:nowrap;max-width:280px;color:var(--text);margin:0;font-size:13px;font-weight:600;overflow:hidden}.template-details-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.template-details-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:10px 18px;font-size:14px;font-weight:600;position:relative}.template-details-tabs button.active{color:#0f2d46}.template-details-tabs button.active:after{content:"";background:var(--accent,#3ab8b7);height:2px;position:absolute;bottom:-1px;left:0;right:0}.template-details-tabs button:disabled{opacity:.42;cursor:not-allowed}.template-details-body{grid-template-rows:auto auto minmax(0,1fr);gap:14px;min-height:0;display:grid}.template-details-body .template-catalog-list{min-height:0}.template-details-context{color:var(--muted);margin:0;font-size:13px}.template-history{min-height:0;overflow:auto}.template-history-table{border-collapse:collapse;width:100%;font-size:13px}.template-history-table thead th{background:var(--surface);text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);padding:12px 14px;font-size:12px;font-weight:600;position:sticky;top:0}.template-history-table tbody td{color:var(--text);border-bottom:1px solid var(--border);padding:12px 14px}.template-history-table tbody td:nth-child(3),.template-history-table tbody td:nth-child(4),.template-history-table thead th:nth-child(3),.template-history-table thead th:nth-child(4){width:110px}.template-history-empty{color:var(--muted)}.template-update-form{align-content:start;gap:18px;min-height:0;padding:4px 2px;display:grid;overflow:auto}.template-update-field{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:18px;display:grid}.template-update-label{color:var(--muted);text-align:right;font-size:13px}.template-update-label strong{color:#dc6a70;margin-left:2px}.template-update-type{border:1px solid var(--border);color:var(--text);background:#f1f5f9;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.template-type-chip{color:#475569;background:#e2e8f0;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.template-file-picker{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:6px;min-width:0;height:42px;padding:0 8px 0 14px;display:flex}.template-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:0 440px;font-size:13px;overflow:hidden}.template-file-name.placeholder{color:var(--muted)}.template-file-picker button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.template-file-picker button:hover:not(:disabled){color:#062a44;background:#062a4414}.template-file-picker button:disabled{opacity:.42;cursor:not-allowed}.template-update-checkbox input{width:18px;height:18px;accent-color:var(--accent,#3ab8b7)}.template-update-options{gap:12px;display:grid}.template-update-options label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.template-update-options input{width:16px;height:16px;accent-color:var(--accent,#3ab8b7);margin-top:2px}.template-update-options span{gap:2px;display:grid}.template-update-options strong{color:var(--text);font-size:13px;font-weight:600}.template-update-options small{color:var(--muted);font-size:12px}.template-details-dialog footer{gap:10px}.template-area-search{position:relative}.template-area-search input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){border:1px solid var(--border);color:#27364b;background:var(--surface);border-radius:8px;width:100%;height:42px;padding:0 14px 0 42px}.template-area-search svg{color:var(--muted);position:absolute;top:12px;left:14px}.template-catalog-list{align-content:start;gap:8px;padding-right:4px;display:grid;overflow:auto}.template-catalog-list button{border:1px solid var(--border);color:#25344b;text-align:left;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:10px 12px;display:flex}.template-catalog-list button:hover:not(:disabled){background:#3ab8b70f;border-color:#3ab8b78a}.template-catalog-list button:disabled{opacity:.62;cursor:not-allowed}.template-catalog-list span{gap:4px;min-width:0;display:grid}.template-catalog-list strong,.template-catalog-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.template-catalog-list strong{color:var(--text);font-size:13px}.template-catalog-list small{color:var(--muted);font-size:12px}.template-details-dialog footer{justify-content:flex-end;display:flex}.template-type-dialog header{color:#0f2d46;align-items:center;gap:14px;display:flex}.template-type-dialog h3{margin:0;font-size:22px}.template-type-dialog p{color:var(--muted);margin:4px 0 0;font-size:13px}.template-dialog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.dialog-field{color:#334155;gap:7px;font-size:12px;font-weight:700;display:grid}.dialog-field span{gap:3px;display:inline-flex}.dialog-field strong{color:var(--danger)}.dialog-field input,.dialog-field select{border:1px solid var(--border);color:#27364b;background:var(--surface);border-radius:8px;min-width:0;height:42px;padding:0 12px}.template-color-field{grid-column:1/-1}.template-color-options{flex-wrap:wrap;gap:8px;display:flex}.template-color-placeholder{color:var(--muted);margin:0;font-weight:400}.template-color-option{border:1px solid var(--border);background:var(--surface);color:#27364b;cursor:pointer;border-radius:8px;align-items:center;gap:8px;height:42px;padding:0 14px;font-size:13px;font-weight:700;transition:border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.template-color-option:hover{background:#f8fafc;border-color:#b6c2d1}.template-color-option.active{border-color:var(--navy);background:#f2f7fb;box-shadow:0 0 0 2px #0026421f}.template-color-option .template-color-dot{border-radius:3px;width:12px;height:12px}.template-color-option-label{font-family:var(--font-mono);letter-spacing:.03em}.template-label-lookup{grid-column:1/-1}.template-label-lookup-row{align-items:center;gap:8px;display:flex}.template-label-lookup-trigger{border:1px solid var(--border);background:var(--surface);color:#27364b;text-align:left;cursor:pointer;border-radius:8px;flex:1;align-items:center;min-width:0;height:42px;padding:0 12px;font-size:13px;font-weight:700;transition:border-color .15s,box-shadow .15s;display:flex}.template-label-lookup-trigger:hover:not(:disabled){border-color:#b6c2d1}.template-label-lookup-trigger:disabled{opacity:.6;cursor:not-allowed;background:#f1f5f9}.template-label-lookup-value{font-family:var(--font-mono);letter-spacing:.02em}.template-label-lookup-placeholder{color:var(--muted);font-weight:500}.template-lookup-note{margin:6px 0 0;font-size:12px;font-weight:700}.template-lookup-note.ok{color:#08756f}.template-lookup-note.error{color:var(--danger)}.template-type-dialog footer{justify-content:flex-end;gap:10px;display:flex}@media (max-width:980px){.console-shell{grid-template-rows:none;grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.sidebar{border-right:0;border-bottom:1px solid var(--border);position:static;overflow:hidden}.workspace{overflow-y:visible}.main-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-item,.nav-group-trigger{justify-content:center}.nav-item span,.nav-group-label span,.nav-group-trigger>svg,.nav-submenu{display:none}.dashboard-grid,.context-form,.form-grid{grid-template-columns:1fr}.mapping-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-edit-top,.template-add-row,.template-search-filter-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{flex-direction:row;align-items:center}.topbar-actions{flex-wrap:nowrap;justify-content:flex-end;width:100%;min-width:0}.topbar-context-trigger{flex:auto;min-width:0;max-width:min(100%,200px)}.topbar-context-trigger-label{max-width:140px}.label-search-layout{grid-template-columns:1fr;gap:14px}.search-form-main-row{flex-wrap:wrap}.search-form-fields{flex-wrap:wrap;flex:100%}.search-form-fields>*{flex:calc(50% - 6px);max-width:none}.search-form-actions{flex:100%;justify-content:flex-start}.operation-filter-row,.search-panel-main.operation-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.search-panel-main.gateway-search-row{grid-template-columns:1fr}.update-record-filter-panel,.gateway-filter-panel,.label-led-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-function-section-grid,.multi-function-section-grid.led{grid-template-columns:1fr}.firmware-filter-panel,.multi-function-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.image-push-main,.template-management-grid{grid-template-columns:1fr}.image-preview-panel:where(:not(.fems-workspace *)){min-height:420px}.image-push-footer{grid-template-columns:1fr;align-items:stretch}.image-push-submit{width:fit-content}.product-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.search-panel.product-filter-panel,.search-panel.gateway-filter-panel,.search-panel.firmware-filter-panel,.search-panel.label-search-layout,.search-panel.operation-filter-panel{grid-template-columns:1fr}.store-filter-panel,.whitelist-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.whitelist-actions{margin-left:0}.gateway-detail-sections,.product-detail-grid{grid-template-columns:1fr}.product-selected-action-zone{border-top:1px solid var(--border);text-align:left;border-left:0;align-items:start;width:100%;min-width:0;padding-top:12px;padding-left:0}.product-selected-action-list{justify-content:flex-start}.store-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.store-detail-sections,.update-record-detail-sections{grid-template-columns:1fr}.label-id-context-grid,.label-id-search-filter-grid,.product-id-search-filter-grid,.gateway-id-search-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operation-date-separator{display:none}.operation-filter-actions{justify-content:flex-start}.label-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.label-search-actions{justify-content:flex-start}.label-table-actions{flex-direction:column}.label-selected-action-zone{border-left:0;border-top:1px solid var(--border);text-align:left;align-items:start;width:100%;min-width:0;padding-top:14px;padding-left:0}.label-selected-action-zone .label-action-list{justify-content:flex-start}.label-action-zone.result-zone{justify-content:flex-start;width:100%}.label-pagination{flex-direction:column;align-items:flex-start}.label-pagination-controls{justify-content:flex-start;width:100%}.label-detail-body{grid-template-columns:1fr}.label-detail-content{border-left:0;border-top:1px solid var(--border);padding-top:18px;padding-left:0}.file-upload-dialog{grid-template-columns:1fr;width:min(100%,560px)}.upload-validation-panel{grid-area:auto/1;min-height:0}.upload-validation-table-wrap{max-height:260px}.template-action-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.content,.topbar,.sidebar{padding-left:18px;padding-right:18px}.metric-grid,.main-nav{grid-template-columns:1fr}.nav-item span,.nav-group-label span,.nav-group-trigger>svg{display:inline}.nav-group-trigger{justify-content:space-between}.nav-submenu{display:grid}.label-filter-grid,.label-search-actions,.operation-filter-row,.update-record-filter-panel,.gateway-filter-panel,.label-led-filter-panel,.firmware-filter-panel,.multi-function-filter-panel,.whitelist-filter-panel,.image-push-footer{grid-template-columns:1fr}.search-panel-heading,.search-panel-actions,.search-form-actions{flex-direction:column;align-items:stretch}.search-form-fields>*{flex:100%}.search-panel.operation-filter-panel,.search-panel-main.operation-filter-row,.search-panel-main.gateway-search-row{grid-template-columns:1fr}.advanced-search summary{justify-content:flex-start;width:100%}.whitelist-table-meta{flex-direction:column;align-items:flex-start}.whitelist-actions{width:100%}.image-push-main{grid-template-columns:minmax(0,1fr)}.led-info-range-field{grid-column:span 1}.gateway-detail-backdrop,.update-record-detail-backdrop,.multi-function-detail-backdrop{padding:14px}.gateway-detail-modal,.update-record-detail-modal,.multi-function-detail-modal{padding:18px}.gateway-detail-header,.update-record-detail-header,.multi-function-detail-header{flex-direction:column}.gateway-detail-section dl>div,.update-record-detail-section dl>div{grid-template-columns:1fr;gap:5px}.template-filter-row,.template-action-bar,.template-dialog-grid{grid-template-columns:1fr}.template-type-dialog footer{flex-direction:column-reverse}.image-push-submit{width:100%}.image-label-info-grid{grid-template-columns:1fr}.image-label-info-item+.image-label-info-item{border-left:0;border-top:1px solid var(--border)}.image-preview-panel:where(:not(.fems-workspace *)){grid-template-rows:54px minmax(260px,1fr) 58px}.image-preview-stage{min-height:260px;padding:16px}.operation-filter-actions,.operation-command-bar{flex-direction:column;align-items:stretch}.operation-command-button{width:100%}.file-upload-dialog,.label-id-search-dialog{padding:24px 18px}.label-id-search-heading{flex-direction:column;padding-right:36px}.label-id-context-grid,.label-id-search-filter-grid,.product-id-search-filter-grid,.gateway-id-search-filter-grid{grid-template-columns:1fr}.label-id-search-actions,.modal-search-footer,.label-schedule-token-toolbar{flex-direction:column;align-items:stretch}.modal-search-footer--with-pagination .modal-search-footer-pagination,.modal-search-footer-actions{width:100%}.modal-search-footer-actions{justify-content:stretch}.label-id-mode-toggle{width:100%}.label-id-mode-toggle button{flex:1;min-width:0}.label-id-search-actions button,.modal-search-footer-actions button,.label-schedule-token-toolbar button{width:100%}.label-schedule-token-toolbar{margin:0 0 -12px}.label-schedule-dialog .token-list-input{margin:0}.file-upload-type-grid{grid-template-columns:1fr}.file-upload-actions{flex-direction:column}.file-upload-actions button{width:100%}.label-search-actions{flex-direction:column;align-items:stretch}.label-info-heading,.content-heading{flex-direction:column;align-items:flex-start}.label-result-action-zone,.label-selected-action-zone,.label-action-zone.result-zone,.label-action-list{flex-direction:column;align-items:stretch}.label-pagination-controls{flex-wrap:wrap}.label-detail-body,.label-detail-header{padding-left:16px;padding-right:16px}.label-detail-metrics,.label-preview-data,.detail-spec-grid{grid-template-columns:1fr}.label-status-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}.label-status-cell:nth-child(3){border-left:0}.label-status-cell:nth-child(n+3){border-top:1px solid var(--border)}.detail-definition-grid{grid-template-columns:84px minmax(0,1fr)}.detail-definition-grid dd.wide{grid-column:2}.label-preview-card{aspect-ratio:auto;grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:148px}.label-preview-price,.label-preview-barcode{grid-area:auto}}@media (max-width:1120px){.whitelist-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-screen{height:auto;min-height:calc(100vh - 64px);overflow:visible}.overview-grid{flex:none;grid-template-rows:auto;grid-template-columns:minmax(0,1fr)}.overview-chart-body{min-height:240px}.overview-label-panel,.overview-exception-panel,.overview-gateway-panel,.overview-chart-panel{grid-column:1/-1}}@media (max-width:760px){.overview-screen{min-height:0;padding:14px}.overview-grid,.overview-label-grid,.overview-exception-grid,.overview-status-rows,.overview-count-grid{grid-template-rows:auto;grid-template-columns:1fr}.overview-status-summary{flex-direction:column;align-items:stretch}.overview-label-panel,.overview-exception-panel,.overview-gateway-panel,.overview-chart-panel{grid-column:1}.overview-gateway-list{padding-top:14px}.overview-footer{margin-top:28px}}@media (max-width:980px){.unified-system-card--wide{display:block}.unified-system-wide-identity,.unified-system-wide-main,.unified-system-wide-meta{border-left:0;border-right:0;flex-basis:auto;padding:18px}.unified-system-wide-identity,.unified-system-wide-main{border-bottom:1px solid #f1f5f9}}@media (max-width:760px){.unified-dashboard-screen{min-height:0;padding:14px}.unified-dashboard-panel-header{flex-direction:column;align-items:flex-start;padding:15px 16px}.unified-system-grid{grid-template-columns:minmax(0,1fr);padding:16px}.unified-system-grid.is-wrapped{grid-template-columns:minmax(0,1fr)}.unified-system-headline-row{flex-direction:column;align-items:flex-start;gap:10px}.unified-system-summary{text-align:left}.unified-system-insights,.unified-trend-content{grid-template-columns:minmax(0,1fr)}.unified-system-insight-panel.trend,.unified-system-insight-panel.devices,.unified-trend-latest{border-left:0;padding-left:0}.unified-system-insight-panel.trend,.unified-system-insight-panel.devices{border-top:1px solid #eef2f7;padding-top:12px}.unified-system-card--signage .unified-system-insight-panel.devices{border-top:0;padding-top:0}.unified-fleet-device-head{display:none}.unified-fleet-device-row{grid-template-columns:minmax(0,1fr) auto auto}.unified-fleet-device-row small{text-align:left;grid-column:1/-1}.unified-trend-latest{border-top:1px solid #e2e8f0;padding-top:10px}.unified-gateway-trend .unified-system-insight-panel.trend{border-top:0;padding-top:0}.unified-system-footer{flex-direction:column;align-items:flex-start}.unified-system-footer-text{white-space:normal}}.text-field{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface);border-radius:7px;outline:none;padding:8px 12px;font-size:13px;line-height:1.5;transition:border-color .15s,box-shadow .15s}.text-field:focus{border-color:var(--teal);box-shadow:0 0 0 3px #3ab8b71f}.text-field::placeholder{color:#9ca3af}.select-field{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface);cursor:pointer;appearance:auto;border-radius:7px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.select-field:focus{border-color:var(--teal);box-shadow:0 0 0 3px #3ab8b71f}.select-field.compact{width:auto;padding:5px 8px;font-size:13px}.select-field-trigger{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);cursor:pointer;text-align:left;background:linear-gradient(#fff 0%,#f8fafc 100%);outline:none;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;transition:border-color .15s,box-shadow .15s,background .15s;display:inline-flex}.select-field-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-field-trigger svg{color:#64748b;flex:none;transition:transform .15s,color .15s}.select-field-trigger[aria-expanded=true]{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px #3ab8b71f}.select-field-trigger[aria-expanded=true] svg{color:var(--teal-dark);transform:rotate(180deg)}.select-field-trigger:hover:not(:disabled){background:#fff;border-color:#aab7c4}.select-field-trigger:disabled{cursor:not-allowed;opacity:.6;background:#f1f5f9}.select-field-trigger.placeholder{color:#9ca3af}.select-field-menu{z-index:35;background:#fff;border:1px solid #cbd5e1;border-radius:8px;max-height:240px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 18px 42px #0f172a29}.select-field-option{color:#334155;cursor:pointer;width:100%;min-height:34px;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px;font-size:13px;font-weight:700;display:flex}.select-field-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-field-option:hover,.select-field-option:focus-visible{color:#0f766e;background:#eef9f8;outline:none}.select-field-option.selected{color:var(--teal-dark);background:#e6f8f7}.primary-button{background:var(--teal);color:#fff;cursor:pointer;white-space:nowrap;border:1px solid #059692eb;border-radius:7px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:inline-flex;box-shadow:0 8px 18px #0f766e2e,inset 0 1px #ffffff38}.primary-button:hover:not(:disabled){background:var(--teal-dark);border-color:var(--teal-dark);transform:translateY(-1px);box-shadow:0 10px 22px #0f766e3d,inset 0 1px #ffffff2e}.primary-button:focus-visible,.secondary-button:focus-visible,.success-button:focus-visible,.warning-button:focus-visible,.danger-button:focus-visible,.icon-button:where(:not(.fems-workspace *)):focus-visible{outline:none;box-shadow:0 0 0 3px #3ab8b72e}.primary-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.primary-button.compact{padding:6px 12px}.secondary-button{color:var(--text);cursor:pointer;white-space:nowrap;background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #cbd5e1;border-radius:7px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,opacity .15s,transform .15s;display:inline-flex;box-shadow:0 1px 2px #0f172a0f}.secondary-button:hover:not(:disabled){color:#0f172a;background:#fff;border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 8px 18px #0f172a1a}.secondary-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.secondary-button.compact{padding:6px 12px}.success-button,.warning-button,.danger-button{color:#fff;cursor:pointer;white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:8px 16px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:inline-flex}.success-button{background:#2f7d68;border:1px solid #286b59;box-shadow:0 6px 14px #2f7d6824,inset 0 1px #ffffff29}.success-button:hover:not(:disabled){background:#286b59;border-color:#235b4d;transform:translateY(-1px);box-shadow:0 8px 18px #235b4d2e,inset 0 1px #ffffff24}.warning-button{background:#8f6a35;border:1px solid #76572d;box-shadow:0 6px 14px #8f6a3524,inset 0 1px #ffffff29}.warning-button:hover:not(:disabled){background:#76572d;border-color:#624925;transform:translateY(-1px);box-shadow:0 8px 18px #6249252e,inset 0 1px #ffffff24}.danger-button{background:#b05a5a;border:1px solid #944848;box-shadow:0 6px 14px #b05a5a24,inset 0 1px #ffffff29}.danger-button:hover:not(:disabled){background:#944848;border-color:#7f3d3d;transform:translateY(-1px);box-shadow:0 8px 18px #7f3d3d2e,inset 0 1px #ffffff24}.success-button:disabled,.warning-button:disabled,.danger-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.success-button.compact,.warning-button.compact,.danger-button.compact{min-height:42px;padding:6px 12px}.icon-button:where(:not(.fems-workspace *)){width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.icon-button:where(:not(.fems-workspace *)):hover{background:var(--surface-muted);color:var(--text)}.icon-button:where(:not(.fems-workspace *)):disabled{opacity:.4;cursor:not-allowed}.admin-page{flex-direction:column;gap:20px;width:100%;max-width:1200px;display:flex}.admin-layout{grid-template-columns:360px 1fr;align-items:start;gap:20px;display:grid}.admin-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:20px}.admin-form-card{max-height:80vh;overflow-y:auto}.admin-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.admin-section-title{color:#374151;margin-bottom:12px;font-size:15px;font-weight:600}.admin-note{color:#6b7280;margin-bottom:12px;font-size:13px}.admin-form{flex-direction:column;gap:14px;display:flex}.form-row{flex-direction:column;gap:6px;display:flex}.form-label{color:#374151;font-size:13px;font-weight:500}.form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.row-actions{gap:4px;display:flex}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover{background:#fee2e2}.selected-row{background:#eff6ff}.role-card-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.role-card-item{border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:12px 14px;transition:border-color .15s,background .15s}.role-card-item:hover{border-color:var(--teal)}.role-card-item.selected{border-color:var(--teal);background:#f0fafa}.role-card-top{align-items:center;gap:10px;margin-bottom:8px;display:flex}.role-card-icon{background:var(--surface-muted);width:32px;height:32px;color:var(--muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.role-card-item.selected .role-card-icon{color:var(--teal-dark);background:#c8eeea}.role-card-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.role-card-name{color:#111827;font-size:13px;font-weight:600}.role-card-code{color:var(--muted);font-size:11px}.role-card-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.role-card-item:hover .role-card-actions{opacity:1}.role-card-footer{justify-content:space-between;align-items:center;display:flex}.role-card-perm-count{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.role-card-sys-badge{color:#1e40af;background:#dbeafe;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.perm-editor{border:1px solid var(--border);border-radius:10px;overflow:hidden}.perm-group-editor{border-bottom:1px solid var(--border)}.perm-group-editor:last-child{border-bottom:none}.perm-group-header{background:#f8fafc;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.perm-group-toggle{cursor:pointer;color:#374151;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;display:flex}.perm-group-toggle:hover{color:var(--teal)}.perm-count{color:#fff;background:var(--teal);border-radius:10px;margin-left:4px;padding:1px 7px;font-size:11px;font-weight:500}.perm-group-all{color:#6b7280;cursor:pointer;flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:flex}.perm-checkboxes{background:#fff;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px;padding:6px 10px 10px;display:grid}.perm-checkbox-item{cursor:pointer;color:#374151;border-radius:6px;align-items:flex-start;gap:8px;padding:7px 8px;font-size:13px;transition:background .1s;display:flex!important}.perm-checkbox-item:hover{background:#f0faf9}.perm-checkbox-item .cb-text{flex-direction:column;align-items:flex-start;gap:1px}.perm-checkbox-item .cb-label-text{color:#1f2937;font-size:13px;font-weight:500;line-height:1.3}.perm-code{color:#9ca3af;font-size:10px;font-family:var(--font-mono);letter-spacing:.02em}.permission-preview{flex-direction:column;gap:14px;display:flex}.perm-group{flex-direction:column;gap:6px;display:flex}.perm-group-name{color:#6b7280;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.perm-list{flex-wrap:wrap;gap:6px;display:flex}.perm-badge{border:1px solid var(--border);color:#374151;background:#f9fafb;border-radius:12px;padding:3px 10px;font-size:12px}.perm-badge.active{color:#065f46;background:#ecfdf5;border-color:#6ee7b7}.perm-badge.inactive{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.user-modal{background:#fff;border:none;border-radius:12px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:0;inset:0;overflow:auto;box-shadow:0 20px 60px #0003}.user-modal::backdrop{background:#00000073}.user-modal-inner{flex-direction:column;gap:0;padding:28px;display:flex}.user-modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.user-modal-title{color:#111827;font-size:18px;font-weight:600}.user-level-radio-group{flex-direction:column;gap:8px;display:flex}.user-level-radio{color:#374151;cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.user-level-radio input[type=radio]{width:16px;height:16px;accent-color:var(--primary,#2563eb);cursor:pointer}.user-readonly-toggle{cursor:pointer;align-items:center;gap:12px;display:flex}.toggle-switch{cursor:pointer;background:#d1d5db;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch.on{background:var(--primary,#2563eb)}.toggle-switch.on:after{transform:translate(18px)}.result-banner{border-radius:6px;margin-bottom:8px;padding:10px 14px;font-size:13px}.result-banner.success{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7}.result-banner.error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.result-banner.info{color:#1d4ed8;background:#dbeafe;border:1px solid #93c5fd}.users-page{flex-direction:column;gap:16px;width:100%;max-width:none;display:flex}.user-filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.user-filter-field{flex:none;align-items:center;display:flex;position:relative}.user-filter-field--search{flex:280px;min-width:220px;max-width:420px}.user-filter-level{flex-shrink:0;min-width:160px}.user-filter-icon{color:var(--muted);pointer-events:none;z-index:1;position:absolute;left:10px}.user-filter-field--search .user-filter-input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){width:100%}.user-filter-input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;outline:none;width:190px;padding:7px 10px 7px 32px;font-size:13px;transition:border-color .15s,box-shadow .15s}.user-filter-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #3ab8b71f}.user-filter-input::placeholder{color:#9ca3af}.user-filter-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}.admin-user-table{table-layout:auto;width:100%;min-width:1080px}.admin-user-table th,.admin-user-table td{white-space:nowrap}.admin-user-table__email{font-family:var(--font-mono);font-size:13px}.admin-user-table__center{text-align:center}.admin-user-table__date{color:var(--muted);font-size:12px}.admin-user-table__actions{text-align:center;width:56px}.admin-user-table__role-select{min-width:180px}.admin-user-table__empty{text-align:center;color:var(--muted);font-size:13px;padding:40px 16px!important}.admin-user-table tbody tr:last-child td{border-bottom:none}.admin-user-mapping-table{table-layout:auto;width:100%;min-width:640px}.admin-user-mapping-table tbody tr:last-child td{border-bottom:none}.user-level-badge{background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.user-level-badge[data-level="1"]{color:#92400e;background:#fef3c7;border-color:#fcd34d}.user-level-badge[data-level="2"]{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}.user-level-badge[data-level="3"]{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.user-level-badge[data-level="4"]{color:#4c1d95;background:#ede9fe;border-color:#c4b5fd}.user-level-badge[data-level="5"]{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.user-status-ok{color:var(--stable);vertical-align:middle}.user-status-no{color:var(--border-strong);vertical-align:middle}.user-readonly-on{color:var(--caution);font-size:12px;font-weight:600}.user-readonly-off{color:var(--border-strong)}.user-mapping-toggle{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.user-mapping-toggle:hover{background:var(--surface-muted)}.user-level-options{flex-wrap:wrap;gap:6px;display:flex}.user-level-option{border:1px solid var(--border);cursor:pointer;background:var(--surface);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:90px;padding:8px 14px;transition:border-color .15s,background .15s;display:flex}.user-level-option input[type=radio]{display:none}.user-level-option.selected{border-color:var(--teal);background:#f0fafa}.user-level-num{color:var(--navy);font-size:18px;font-weight:700;line-height:1}.user-level-option.selected .user-level-num{color:var(--teal-dark)}.user-level-name{color:var(--muted);font-size:11px;line-height:1.2}.form-hint{color:var(--muted);margin-top:4px;font-size:12px;display:block}.form-label-optional{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.status-icon{flex:none}.status-icon.good{color:#059669}.status-icon.info{color:#2563eb}.status-icon.warn{color:#d97706}.status-icon.bad{color:#dc2626}.status-icon.unknown{color:#94a3b8}.status-icon.cold{color:#2563eb}.select-field-icon{align-items:center;margin-right:6px;display:inline-flex}.label-chip{white-space:nowrap;border:1px solid #0000;border-radius:20px;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.label-chip.battery-good{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.label-chip.battery-bad{color:#92400e;background:#fef3c7;border-color:#fcd34d}.label-chip.battery-unknown{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.label-chip.signal-excellent{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.label-chip.signal-good{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}.label-chip.signal-bad{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.label-chip.signal-unknown{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.label-chip.status-success{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.label-chip.status-processing{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}.label-chip.status-timeout,.label-chip.status-fail,.label-chip.status-failure{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.label-chip.status-unassigned{color:#92400e;background:#fef3c7;border-color:#fcd34d}.label-chip.status-unknown{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.alive-chip{color:#6b7280;white-space:nowrap;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:20px;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.alive-chip:not(:has(.status-icon)):before{content:"";background:#9ca3af;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.alive-chip.on{color:#047857;background:#ecfdf5;border-color:#6ee7b7}.alive-chip.on:not(:has(.status-icon)):before{background:#10b981}.label-id-text{font-family:var(--font-mono);color:#1e3a8a;font-size:12px}.copyable-value{appearance:none;color:inherit;cursor:copy;text-align:left;background:0 0;border:0;align-items:center;gap:4px;max-width:100%;padding:0;display:inline-flex}.copyable-value span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.copyable-value svg{color:#94a3b8;opacity:0;flex:none;transition:opacity .14s,color .14s}.copyable-value:hover,.copyable-value:focus-visible{color:#0f766e;outline:none}.copyable-value:hover svg,.copyable-value:focus-visible svg{color:#0f766e;opacity:1}.copyable-value--failed,.copyable-value--failed:hover,.copyable-value--failed:focus-visible{color:#dc2626}.copyable-value--failed svg{color:#dc2626;opacity:1}.copyable-value--empty,.copyable-value--empty:hover,.copyable-value--empty:focus-visible{color:#9ca3af;cursor:default}.page-no-access{text-align:center;color:#64748b;align-content:center;justify-items:center;gap:8px;min-height:240px;padding:40px 20px;display:grid}.page-no-access h2{color:#334155;margin:0;font-size:18px;font-weight:700}.page-no-access p{margin:0;font-size:13px}.gateway-upload-history{width:min(720px,92vw);max-height:80vh;overflow:auto}.gateway-upload-history-state{color:#64748b;padding:8px 0;font-size:13px}.gateway-upload-history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.gateway-upload-history-item{border:1px solid var(--border);border-radius:10px;overflow:hidden}.gateway-upload-history-summary{background:var(--surface);text-align:left;cursor:pointer;border:none;gap:2px;width:100%;padding:10px 12px;display:grid}.gateway-upload-history-summary:hover{background:#f1f5f9}.gateway-upload-history-file{color:#334155;font-size:13px;font-weight:700}.gateway-upload-history-meta{color:#64748b;font-size:12px}.gateway-upload-history-rows{border-top:1px solid var(--border);padding:8px 12px 12px}.gateway-upload-history-table{border-collapse:collapse;width:100%;font-size:12px}.gateway-upload-history-table th,.gateway-upload-history-table td{text-align:left;border-bottom:1px solid #eef2f7;padding:6px 8px}.gateway-upload-history-table tr[data-status=FAILED] td{color:#dc2626}.copyable-value--mono{font-family:var(--font-mono)}.label-info-table thead tr th:first-child{border-left:3px solid var(--teal)}.label-detail-row:hover td{background:#f0fafa}.label-detail-row.selected td{background:#e8f8f8}.overview-chart-body{align-items:stretch;gap:18px;padding:6px 24px 12px;display:flex}.overview-chart-plot{flex:auto;min-width:0;position:relative}.overview-chart-rail{border-left:1px solid #e5e8ec;flex-direction:column;flex:0 0 184px;align-self:center;gap:10px;width:184px;padding:0 0 0 16px;display:flex}.overview-rail-top{justify-content:space-between;align-items:center;display:flex}.overview-rail-date{color:#111827;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.overview-rail-chip{color:#6b7280;border:1px solid #e5e7eb;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.overview-rail-hero{align-items:baseline;gap:6px;display:flex}.overview-rail-hero strong{color:#111827;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1}.overview-rail-hero span{color:#6b7280;font-size:12px;font-weight:600}.overview-rail-chips{gap:6px;display:flex}.overview-rail-c{font-variant-numeric:tabular-nums;border-radius:7px;flex:1;padding:4px 8px;font-size:12px;font-weight:700}.overview-rail-c.success{color:#168f8d;background:#eef6f4}.overview-rail-c.failure{color:#dc2626;background:#fdecec}.overview-rail-rate-head{color:#6b7280;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:12px;font-weight:600;display:flex}.overview-rail-rate-head strong{font-variant-numeric:tabular-nums;font-weight:700}.overview-rail-track{background:#f3f6f8;border-radius:999px;height:6px;display:block;overflow:hidden}.overview-rail-fill{border-radius:999px;height:100%;transition:width .2s;display:block}.overview-rail-delta{color:#6b7280;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.overview-rail-delta strong{font-variant-numeric:tabular-nums;font-weight:700}.overview-rail-hint{color:#6b7280;margin:2px 0 0;font-size:11px;line-height:1.4}.overview-chart-band{fill:#f3f6f8}.overview-chart-guide{stroke:#168f8d;stroke-width:1px;stroke-dasharray:3 3}.overview-chart-ring.success{fill:#168f8d24}.overview-chart-ring.failure{fill:#dc262624}.overview-chart-hit{fill:#0000;cursor:pointer}.overview-chart-point text.is-active{fill:#111827;font-weight:700}@media (max-width:1120px){.overview-chart-body{flex-direction:column}.overview-chart-plot{min-height:220px}.overview-chart-rail{border-top:1px solid #e5e8ec;border-left:none;flex:none;align-self:stretch;width:auto;padding-top:12px;padding-left:0}}.swell-bar{align-items:center;overflow:visible}.swell-seg{height:var(--swell-h,14px);cursor:pointer;border-radius:2px;flex:none;min-width:8px;transition:height .18s cubic-bezier(.2,.8,.3,1.2),box-shadow .18s,opacity .16s,filter .16s;position:relative}.swell-seg.is-first{border-top-left-radius:999px;border-bottom-left-radius:999px}.swell-seg.is-last{border-top-right-radius:999px;border-bottom-right-radius:999px}.swell-bar.is-active .swell-seg:not(.is-hot){opacity:.4;filter:saturate(.85)}.swell-seg.is-hot{z-index:3;height:28px;box-shadow:0 6px 16px #0f172a2e}.swell-cap{white-space:nowrap;border:1px solid var(--border);color:#111827;font-variant-numeric:tabular-nums;pointer-events:none;z-index:6;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:calc(100% + 9px);box-shadow:0 6px 16px #0f172a1f}.swell-cap-dot{border-radius:999px;flex:none;width:7px;height:7px}.swell-cap-stem{border:5px solid #0000;border-top-color:#fff;width:0;height:0;position:absolute;top:100%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.swell-seg{transition:none}}.signage-studio-new{background:var(--navy);color:#fff;border-radius:8px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.signage-studio-new:hover{background:#013457}.signage-scene-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:16px;display:grid}.signage-scene-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.signage-scene-thumb{color:#64748b;background:#0b1220;justify-content:center;align-items:center;height:158px;padding:8px;display:flex;position:relative;overflow:hidden;container-type:size}.signage-scene-thumb-badges{pointer-events:none;margin-top:0;position:absolute;top:8px;left:8px}.signage-slide-preview{border-radius:4px;height:100%;position:relative;overflow:hidden;container-type:size}.signage-slide-preview.landscape{aspect-ratio:16/9;max-width:100%}.signage-slide-preview.portrait{aspect-ratio:9/16}.signage-slide-preview.empty{background:#0b1220;width:100%}.signage-slide-frame{aspect-ratio:16/9;background:var(--surface-muted);border-radius:4px;justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.signage-slide-frame .signage-slide-preview,.signage-slide-frame .signage-slide-preview.empty{height:min(100cqh, 100cqw / var(--ar,1.7778));width:auto;max-width:none}.signage-slide-preview-layer{position:absolute;overflow:hidden}.signage-slide-preview-media{object-fit:cover;width:100%;height:100%;display:block}.signage-slideshow-trigger{border:1px solid var(--border);background:var(--surface);width:100%;max-width:200px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:7px 10px;font-size:13px;display:inline-flex}.signage-slideshow-trigger:hover{border-color:var(--teal)}.signage-slideshow-trigger:disabled{opacity:.55;cursor:not-allowed;background:#f1f5f9}.signage-slideshow-trigger-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signage-slideshow-picker-dialog{width:min(760px,92vw)}.signage-slideshow-picker-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:60vh;margin:10px 0 4px;padding:2px;display:grid;overflow-y:auto}.signage-slideshow-pick{border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.signage-slideshow-pick:hover{border-color:var(--teal)}.signage-slideshow-pick.selected{border-color:var(--teal);box-shadow:0 0 0 2px #3ab8b740}.signage-slideshow-pick:disabled{cursor:progress}.signage-slideshow-pick .signage-slide-frame{width:100%}.signage-slideshow-pick-none{aspect-ratio:16/9;background:var(--surface-muted);color:var(--muted);border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex}.signage-slideshow-pick-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex;overflow:hidden}.signage-scene-body{flex-direction:column;gap:3px;padding:10px 12px 4px;display:flex}.signage-scene-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.signage-scene-meta,.signage-scene-updated{color:var(--muted);font-size:11.5px}.signage-scene-actions{justify-content:space-between;align-items:center;padding:8px 12px 12px;display:flex}.signage-scene-edit{color:var(--navy);align-items:center;gap:5px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.signage-scene-del{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--danger);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.signage-scene-del:hover{background:#fee2e2}.workspace:has(>.signage-studio-v2){flex-direction:column;display:flex}.signage-studio-v2{flex-direction:column;flex:auto;min-height:0;display:flex}.signage-studio-v2 .signage-studio-heading .content-heading__main{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.signage-studio-v2 .signage-studio-heading .content-heading__title{margin:0;font-size:19px}.signage-studio-v2 .signage-studio-heading .content-heading__description{display:none}.signage-studio{height:calc(100dvh - 105px - var(--signage-studio-lift,71px));grid-template-columns:minmax(0,1fr) 400px;gap:18px;min-height:520px;display:grid}.signage-studio-v2 .signage-studio{flex:auto;height:auto;min-height:0}@media (max-width:960px){.signage-studio{grid-template-columns:1fr;height:auto;min-height:0}}.signage-studio-stage{grid-template-rows:minmax(0,1fr) auto auto auto;gap:8px;min-height:0;display:grid}@media (max-width:960px){.signage-studio-stage{grid-template-rows:auto auto auto auto}}.signage-canvas-wrap{justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.signage-canvas{width:100%;box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;container-type:size}@media (min-width:961px){.signage-canvas{width:auto;max-width:100%;height:100%;max-height:100%}}.signage-studio-panel{min-height:0;max-height:calc(100dvh - 24px);position:sticky;top:12px;overflow-y:auto}.signage-studio-v2 .signage-studio{position:relative}.signage-layer-panel{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;width:400px;max-width:calc(100vw - 16px);display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 32px #0f172a2e}.signage-layer-panel-head{border-bottom:1px solid var(--border);background:var(--surface-muted,#f8fafc);cursor:grab;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.signage-layer-panel-head:active{cursor:grabbing}.signage-layer-panel-head strong{font-size:12.5px}.signage-layer-panel-head-actions{gap:2px;display:flex}.signage-layer-panel-head-actions button{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.signage-layer-panel-head-actions button:hover{background:var(--border);color:var(--text)}.signage-layer-panel-body{contain:paint;flex-direction:column;flex:auto;gap:10px;min-height:0;max-height:min(520px,100dvh - 220px);padding:12px;display:flex;overflow-y:auto}.signage-layer-panel[style*=height] .signage-layer-panel-body{max-height:none}.signage-layer-panel-resize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 48%, var(--border) 48% 56%, transparent 56% 100%), linear-gradient(135deg, transparent 0 68%, var(--border) 68% 76%, transparent 76% 100%);width:16px;height:16px;position:absolute;bottom:0;right:0}.signage-layer-panel-body .signage-color-pop{left:auto;right:0}.signage-layer-panel.is-collapsed{width:260px}@media (max-width:960px){.signage-layer-panel{width:100%;max-width:none;margin-top:12px;position:static}.signage-layer-panel-head{cursor:default}.signage-layer-panel-body{max-height:none}}@media (min-width:961px){.signage-studio-page .signage-studio-panel{margin-top:calc(-1 * var(--signage-studio-lift,0px))}.signage-studio-page .schedule-feedback,.signage-studio-page .label-empty-message{margin-right:418px}}.signage-studio-heading{display:flow-root}.signage-guide{z-index:50;pointer-events:none;background:#f43f5e;position:absolute}.signage-guide.v{width:1px;top:0;bottom:0}.signage-guide.h{height:1px;left:0;right:0}.signage-canvas-bg{z-index:0;position:absolute;inset:0;overflow:hidden}.signage-canvas-bg-media{object-fit:cover;width:100%;height:100%;display:block}.signage-overlay-holder{z-index:40;pointer-events:none;position:absolute;inset:0;overflow:hidden}.signage-overlay-canvas{width:100%;height:100%;display:block}.signage-canvas.portrait{max-width:420px;margin:0 auto}.signage-canvas-hint{color:var(--muted);text-align:center;margin:0;font-size:12px}.signage-canvas-tools{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:8px 0 2px;display:flex}.signage-sound-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.signage-sound-toggle:hover{border-color:var(--teal)}.signage-studio-check{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;display:flex}.signage-studio-check input[type=checkbox]{flex-shrink:0;width:16px;height:16px}.signage-selection-frame{z-index:60;pointer-events:none;outline:1.5px solid var(--teal);outline-offset:-1px;position:absolute}.signage-selection-frame>*{pointer-events:auto}.signage-resize-handle{box-sizing:border-box;z-index:50;background:#fff;border:1.25px solid #8a949e;border-radius:50%;width:12px;height:12px;position:absolute;box-shadow:0 1px 2px #00000059}.signage-resize-handle:after{content:"";position:absolute;inset:-6px}.signage-resize-handle:hover{border-color:var(--teal);box-shadow:0 0 0 2px #3ab8b740,0 1px 2px #00000059}.signage-resize-handle.nw{cursor:nwse-resize;top:-6px;left:-6px}.signage-resize-handle.ne{cursor:nesw-resize;top:-6px;right:-6px}.signage-resize-handle.sw{cursor:nesw-resize;bottom:-6px;left:-6px}.signage-resize-handle.se{cursor:nwse-resize;bottom:-6px;right:-6px}.signage-resize-handle.n{cursor:ns-resize;margin-left:-6px;top:-6px;left:50%}.signage-resize-handle.s{cursor:ns-resize;margin-left:-6px;bottom:-6px;left:50%}.signage-resize-handle.w{cursor:ew-resize;margin-top:-6px;top:50%;left:-6px}.signage-resize-handle.e{cursor:ew-resize;margin-top:-6px;top:50%;right:-6px}.signage-rotate-handle{box-sizing:border-box;color:#4b5563;cursor:grab;z-index:51;background:#fff;border:1.25px solid #8a949e;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-left:-9px;display:flex;position:absolute;top:-30px;left:50%;box-shadow:0 1px 3px #00000059}.signage-rotate-handle svg{pointer-events:none;width:11px;height:11px;display:block}.signage-rotate-handle:before{content:"";background:#8a949e;width:1.25px;height:12px;margin-left:-.625px;position:absolute;top:100%;left:50%}.signage-rotate-handle:after{content:"";position:absolute;inset:-7px}.signage-rotate-handle:hover{border-color:var(--teal);color:var(--teal)}.signage-rotate-handle:active{cursor:grabbing}.signage-selection-frame.rotate-below .signage-rotate-handle{top:auto;bottom:-30px}.signage-selection-frame.rotate-below .signage-rotate-handle:before{top:auto;bottom:100%}.signage-filmstrip{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:stretch;gap:10px;padding:10px;display:flex;overflow-x:auto}.signage-filmstrip-item{flex-direction:column;flex:none;gap:4px;display:flex}.signage-filmstrip-thumb{border:2px solid var(--border);background:var(--surface-muted,#f8fafc);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:6px;display:flex;position:relative}.signage-filmstrip-item.active .signage-filmstrip-thumb{border-color:var(--teal);box-shadow:0 0 0 2px #3ab8b72e}.signage-filmstrip-index{color:var(--muted);font-size:11px;font-weight:700;position:absolute;top:2px;left:4px}.product-detail-heading{min-width:0}.product-detail-subtitle{max-width:640px;color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.55}.product-detail-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.product-detail-meta-label{color:var(--muted);font-size:12px;font-weight:700}.signage-thumb-canvas{border-radius:4px;width:132px;max-width:132px;display:block;position:relative;overflow:hidden;container-type:size}.signage-thumb-canvas .signage-layer{cursor:inherit;outline:none}.signage-thumb-canvas.portrait{width:74px}.signage-thumb-layer{justify-content:center;align-items:center;display:flex;position:absolute;overflow:hidden}.signage-filmstrip-sec{color:var(--muted);font-size:11px}.signage-filmstrip-ctrls{justify-content:center;gap:2px;display:flex}.signage-filmstrip-ctrls button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:3px;display:inline-flex}.signage-filmstrip-ctrls button:disabled{opacity:.4;cursor:default}.signage-filmstrip-add{border:1px dashed var(--border);min-width:96px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:4px;padding:8px;font-size:12px;display:flex}.signage-filmstrip-add:hover{border-color:var(--teal);color:var(--teal)}.signage-layer{cursor:move;outline:1px dashed #0000;justify-content:center;align-items:center;display:flex;position:absolute;overflow:hidden}.signage-layer.selected{outline:1.5px solid var(--teal);outline-offset:-1px}.signage-layer-media{object-fit:contain;pointer-events:none;width:100%;height:100%}.signage-media-rotator{width:100%;height:100%;position:relative;overflow:hidden;container-type:size}.signage-media-rotator-plane{transform-origin:50%;position:absolute;top:50%;left:50%}.signage-layer-text{text-align:center;word-break:break-word;pointer-events:none;text-shadow:0 1px 3px #00000073;width:100%;line-height:1.15}.signage-layer-shape{pointer-events:none;border-radius:0;width:100%;height:100%}.signage-layer-missing{color:#94a3b8;background:repeating-linear-gradient(45deg,#1e293b,#1e293b 8px,#0f172a 8px 16px);justify-content:center;align-items:center;width:100%;height:100%;font-size:12px;display:flex}.signage-studio-panel{flex-direction:column;gap:12px;display:flex}.signage-studio-block{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.signage-studio-fold{padding:0;display:block}.signage-studio-fold>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 14px}.signage-studio-fold-body{flex-direction:column;gap:10px;padding:0 14px 14px;display:flex}.signage-studio-title{color:var(--text);margin:0;font-size:13px;font-weight:700}.signage-studio-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.signage-studio-popout{border:1px solid var(--border);background:var(--surface);width:24px;height:24px;color:var(--text-muted,#64748b);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.signage-studio-popout:hover{color:var(--text);border-color:var(--teal)}.signage-layers-panel .signage-layer-panel-body{flex-direction:column;gap:10px;display:flex;overflow:hidden}.signage-layers-split{flex:1;align-items:stretch;gap:10px;min-height:0;display:flex}.signage-layers-split .signage-studio-add{flex:none;grid-template-columns:1fr;align-content:start;gap:6px;overflow-y:auto}.signage-layers-split .signage-studio-add button{flex-direction:row;justify-content:center;gap:0;padding:8px;font-size:0}.signage-layers-split .signage-studio-add button svg{width:19px;height:19px}.signage-layers-split-list{flex:1;min-width:0;overflow-y:auto}.signage-studio-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.signage-studio-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.signage-strip-row{align-items:flex-end;gap:8px;display:flex}.signage-strip-row .label-field{flex:1;min-width:0}.signage-strip-row .signage-scene-del{flex:none;width:38px;height:42px}.signage-strip-row .signage-scene-del:disabled{opacity:.35;cursor:default}.signage-text-format{gap:6px;display:inline-flex}.signage-text-format button{border:1px solid var(--border);background:var(--surface);width:34px;height:30px;color:var(--text);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.signage-text-format button.active{border-color:var(--teal);color:var(--teal);background:#3ab8b724}.signage-text-bg{align-items:center;gap:8px;min-width:0;display:inline-flex}.signage-text-bg>input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal);flex:none;margin:0}.signage-text-bg .signage-color-field{flex:auto;min-width:0}.signage-text-bg input[type=color]{width:46px;height:30px;padding:2px}.signage-studio-add{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.signage-studio-add button{border:1px solid var(--border);background:var(--surface-muted);color:var(--text);cursor:pointer;border-radius:9px;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;font-size:12px;display:inline-flex}.signage-studio-add button:hover{border-color:var(--teal);color:var(--teal-dark)}.signage-save-modal.signage-shortcut-modal{max-width:620px}.signage-shortcut-help{flex-direction:column;gap:2px;max-height:min(420px,55dvh);margin:0;display:flex;overflow-y:auto}.signage-shortcut-row{grid-template-columns:72px 168px 1fr;align-items:baseline;gap:10px;padding:5px 2px;display:grid}.signage-shortcut-group{color:var(--muted);font-size:11px;font-weight:700}.signage-shortcut-row dt{color:var(--text);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:700}.signage-shortcut-row dd{color:var(--text);margin:0;font-size:12px}.signage-studio-note{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.signage-layer-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.signage-layer-list li{border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:4px 6px 4px 4px;display:flex}.signage-layer-list li.selected{border-color:var(--teal);background:#3ab8b712}.signage-layer-pick{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:4px;display:flex}.signage-layer-tag{color:#fff;border-radius:5px;flex-shrink:0;padding:2px 6px;font-size:10.5px;font-weight:700}.signage-layer-tag.media{background:#2563eb}.signage-layer-tag.text{background:#7c3aed}.signage-layer-tag.shape{background:#0d9488}.signage-layer-tag.datetime{background:#d97706}.signage-layer-tag.weather{background:#0284c7}.signage-layer-tag.product{background:#be123c}.signage-layer-tag.qr{background:#4b5563}.signage-layer-tag.icon{background:#ca8a04}.signage-layer-tag.news{background:#1e3a8a}.signage-layer-tag.integration_item{background:#9d174d}.signage-layer-tag.menu_section{background:#15803d}.signage-dropzone{border:2px dashed var(--border);background:var(--surface);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:34px 20px;transition:border-color .15s,background .15s;display:flex}.signage-dropzone:hover{border-color:var(--teal)}.signage-dropzone.is-over{background:#2563eb14;border-color:#2563eb}.signage-dropzone>strong{color:var(--text);font-size:15px;font-weight:700}.signage-dropzone>span{color:var(--muted);font-size:12.5px}.signage-dropzone-button{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:8px;margin-top:6px;padding:7px 18px;font-size:13px;font-weight:600}.signage-dropzone:hover .signage-dropzone-button{border-color:var(--teal);color:var(--teal-dark)}.signage-dropzone-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.signage-encode-box{border:1px solid var(--border);background:var(--surface-muted);border-radius:9px;gap:6px;padding:10px 12px;display:grid}.signage-encode-box>strong{font-size:12.5px}.signage-encode-devices{gap:4px;max-height:140px;display:grid;overflow-y:auto}.signage-encode-devices label{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.signage-encode-devices label:has(input:disabled){color:var(--muted);cursor:not-allowed}.signage-encode-res{color:var(--muted);margin-left:auto;font-size:11.5px}.signage-ai-refs{margin-top:12px}.signage-ai-refs-title{color:#374151;align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.signage-ai-refs-count{color:var(--muted);font-weight:400}.signage-ai-refs-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:8px;display:grid}.signage-ai-ref{border:1px solid var(--border);background:var(--surface-muted);aspect-ratio:1;border-radius:8px;padding:0;position:relative;overflow:hidden}.signage-ai-ref img{object-fit:cover;width:100%;height:100%;display:block}.signage-ai-ref-remove{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:50%;padding:3px;display:inline-flex;position:absolute;top:3px;right:3px}.signage-ai-ref-remove:hover:not(:disabled){background:#000000bf}.signage-ai-ref-remove:disabled{opacity:.4;cursor:not-allowed}.signage-ai-ref-add{aspect-ratio:1;border:1px dashed var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;font-size:11px;display:flex}.signage-ai-ref-add:hover:not(:disabled){border-color:var(--teal,#3ab8b7);color:var(--teal,#3ab8b7)}.signage-ai-ref-add:disabled{opacity:.4;cursor:not-allowed}.signage-ai-refs-input{display:none}.signage-ai-refs-notice{color:var(--warning,#b26a00);margin:6px 0 0;font-size:12px}.signage-ai-examples{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.signage-ai-examples button{border:1px solid var(--border);background:var(--surface-muted);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 10px;font-size:11.5px}.signage-ai-examples button:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark)}.signage-ai-check{color:var(--text);cursor:pointer;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;display:flex}.signage-product-choose{border:1px solid var(--border);background:var(--surface-muted);width:100%;color:var(--text);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:12.5px;display:inline-flex;overflow:hidden}.signage-product-choose:hover{border-color:var(--teal);color:var(--teal-dark)}.signage-product-picker{width:min(560px,92vw)}.signage-product-search{gap:8px;margin:10px 0;display:flex}.signage-product-search input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;flex:1;padding:8px 10px;font-size:13px}.signage-product-list{border:1px solid var(--border);border-radius:9px;max-height:46vh;margin:0;padding:0;list-style:none;overflow-y:auto}.signage-product-list li+li{border-top:1px solid var(--border)}.signage-product-list button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:10px;padding:9px 12px;font-size:13px;display:flex}.signage-product-list button:hover:not(:disabled){background:var(--surface-muted)}.signage-product-list button:disabled{cursor:progress;opacity:.6}.signage-product-code{font-family:var(--font-mono);color:var(--muted);flex-shrink:0;font-size:12px}.signage-product-thumb{border:1px solid var(--border);object-fit:contain;background:#fff;border-radius:4px;flex:none;width:46px;height:32px}.signage-product-thumb.is-empty{background:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 4px,#e2e8f0 4px 8px)}.signage-product-thumb.is-none{background:var(--surface-muted)}.signage-product-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signage-product-pick-dialog{width:min(560px,92vw)}.signage-product-pick-toolbar{align-items:center;gap:8px;margin:8px 0 6px;display:flex}.signage-product-pick-toolbar .input-icon{flex:auto;min-width:0}.signage-product-pick-list{gap:4px;max-height:46vh;padding:2px;display:grid;overflow-y:auto}.signage-product-pick-row{border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:minmax(84px,auto) 1fr auto;align-items:center;gap:10px;padding:9px 11px;transition:border-color .12s,background .12s;display:grid}.signage-product-pick-row:hover{border-color:var(--teal);background:#3ab8b70f}.signage-product-pick-row:disabled{cursor:progress;opacity:.6}.signage-product-pick-row>code{color:var(--muted);font-size:12.5px}.signage-product-pick-row>strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.signage-product-pick-row>span{color:var(--muted);white-space:nowrap;font-size:11.5px}.signage-product-state{color:var(--muted);margin-left:auto;font-size:11.5px}.signage-layer-desc{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.signage-layer-ctrls{gap:2px;display:inline-flex}.signage-layer-ctrls button{background:var(--surface-muted);width:24px;height:24px;color:var(--muted);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.signage-layer-ctrls button:hover:not(:disabled){color:var(--text);background:var(--border)}.signage-layer-ctrls button:disabled{opacity:.35;cursor:default}.signage-studio-panel .label-field select,.signage-studio-panel .label-field input:not([type=checkbox]),.signage-studio-panel .label-field textarea{width:100%}.signage-studio-panel .label-field input[type=color]{height:34px;padding:2px}.signage-studio-panel .label-field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:26px}.signage-anim-fade{animation:.7s cubic-bezier(.16,1,.3,1) both signage-fade}.signage-anim-slide_left{animation:.82s cubic-bezier(.16,1,.3,1) both signage-slide-left}.signage-anim-slide_right{animation:.82s cubic-bezier(.16,1,.3,1) both signage-slide-right}.signage-anim-slide_up{animation:.82s cubic-bezier(.16,1,.3,1) both signage-slide-up}.signage-anim-slide_down{animation:.82s cubic-bezier(.16,1,.3,1) both signage-slide-down}.signage-anim-zoom{animation:.72s cubic-bezier(.34,1.4,.64,1) both signage-zoom}.signage-anim-flip{animation:.8s cubic-bezier(.22,1,.36,1) both signage-flip}.signage-anim-rotate{animation:.7s cubic-bezier(.22,1,.36,1) both signage-rotate}.signage-anim-tada{animation:.9s ease-in-out both signage-tada}.signage-anim-blink{animation:1.4s ease-in-out infinite signage-blink}.signage-anim-flash{animation:2.2s ease-in-out infinite signage-flash}.signage-anim-pulse{animation:2.2s ease-in-out infinite signage-pulse}.signage-anim-heartbeat{animation:2.2s ease-in-out infinite signage-heartbeat}.signage-anim-glow{animation:2.6s ease-in-out infinite signage-glow}.signage-anim-rainbow{animation:6s linear infinite signage-rainbow}.signage-anim-marquee{animation:12s linear infinite signage-marquee}.signage-anim-float{animation:3.2s ease-in-out infinite signage-float}.signage-anim-bounce{animation:1.8s ease-in-out infinite signage-bounce}.signage-anim-shake{animation:2.4s ease-in-out infinite signage-shake}.signage-anim-wobble{animation:2.6s ease-in-out infinite signage-wobble}.signage-anim-swing{transform-origin:top;animation:2.4s ease-in-out infinite signage-swing}.signage-anim-jello{animation:2.3s ease-in-out infinite signage-jello}.signage-anim-snow{animation:6s linear infinite signage-snow}.signage-anim-fire{transform-origin:bottom;animation:1.6s ease-in-out infinite signage-fire}.signage-anim-blur_in{animation:.8s cubic-bezier(.22,1,.36,1) both signage-blur-in}.signage-anim-mask_up{animation:.7s cubic-bezier(.22,1,.36,1) both signage-mask-up}.signage-anim-pop_in{animation:.55s cubic-bezier(.34,1.8,.64,1) both signage-pop-in}.signage-anim-wipe_in{animation:.6s cubic-bezier(.65,0,.35,1) both signage-wipe-in}.signage-anim-ken_burns{animation:14s ease-in-out infinite alternate signage-ken-burns}.signage-anim-glitch{animation:3s linear infinite signage-glitch}.signage-anim-light_sweep{background-image:linear-gradient(105deg,#fff0 0%,#ffffff59 50%,#fff0 100%);background-position:-30% 0;background-repeat:no-repeat;background-size:30% 100%;animation:3s linear infinite signage-light-sweep}@keyframes signage-fade{0%{opacity:0;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@keyframes signage-slide-left{0%{opacity:0;transform:translate(-14%)scale(.985)}60%{opacity:1}to{opacity:1;transform:translate(0)scale(1)}}@keyframes signage-slide-right{0%{opacity:0;transform:translate(14%)scale(.985)}60%{opacity:1}to{opacity:1;transform:translate(0)scale(1)}}@keyframes signage-slide-up{0%{opacity:0;transform:translateY(18%)scale(.985)}60%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes signage-slide-down{0%{opacity:0;transform:translateY(-18%)scale(.985)}60%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes signage-zoom{0%{opacity:0;transform:scale(.88)}55%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes signage-flip{0%{opacity:0;transform:perspective(800px)rotateY(-70deg)}to{opacity:1;transform:perspective(800px)rotateY(0)}}@keyframes signage-rotate{0%{opacity:0;transform:rotate(-8deg)scale(.95)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes signage-tada{0%{transform:scale(1)rotate(0)}10%,20%{transform:scale(.95)rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.05)rotate(3deg)}40%,60%,80%{transform:scale(1.05)rotate(-3deg)}to{transform:scale(1)rotate(0)}}@keyframes signage-blink{0%,12%,to{opacity:1}50%{opacity:.45}}@keyframes signage-flash{0%,40%,60%,to{filter:brightness()}47%,53%{filter:brightness(1.6)}}@keyframes signage-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes signage-heartbeat{0%{transform:scale(1)}14%{transform:scale(1.06)}30%{transform:scale(1)}44%{transform:scale(1.05)}59%,to{transform:scale(1)}}@keyframes signage-glow{0%,to{filter:drop-shadow(0 0 4px #fff9)}50%{filter:drop-shadow(0 0 14px #fff9)}}@keyframes signage-rainbow{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}@keyframes signage-marquee{0%{transform:translate(40%)}to{transform:translate(-40%)}}@keyframes signage-float{0%,to{transform:translateY(-7px)}50%{transform:translateY(7px)}}@keyframes signage-bounce{0%{animation-timing-function:cubic-bezier(.33,.66,.66,1);transform:translateY(0)}28%{animation-timing-function:cubic-bezier(.33,0,.66,.33);transform:translateY(-14px)}56%,to{transform:translateY(0)}}@keyframes signage-shake{0%,37.5%,to{transform:translate(0)}6%{transform:translate(5px)}12%{transform:translate(-4px)}19%{transform:translate(3px)}25%{transform:translate(-2px)}31%{transform:translate(1px)}}@keyframes signage-wobble{0%,46%,to{transform:translate(0)rotate(0)}9%{transform:translate(-6px)rotate(-4deg)}18%{transform:translate(5px)rotate(3deg)}27%{transform:translate(-3px)rotate(-2deg)}37%{transform:translate(1px)rotate(1deg)}}@keyframes signage-swing{0%,58%,to{transform:rotate(0)}10%{transform:rotate(12deg)}20%{transform:rotate(-10deg)}30%{transform:rotate(6deg)}39%{transform:rotate(-4deg)}49%{transform:rotate(2deg)}}@keyframes signage-jello{0%,48%,to{transform:skew(0deg)skewY(0)}8%{transform:skew(6deg)skewY(6deg)}16%{transform:skew(-5deg)skewY(-5deg)}24%{transform:skew(3deg)skewY(3deg)}32%{transform:skew(-2deg)skewY(-2deg)}40%{transform:skew(1deg)skewY(1deg)}}@keyframes signage-snow{0%{opacity:.55;transform:translateY(-12%)translate(0)}50%{opacity:.85;transform:translateY(0)translate(2%)}to{opacity:.55;transform:translateY(12%)translate(0)}}@keyframes signage-fire{0%,to{filter:brightness();transform:scaleY(1)scaleX(1)}35%{filter:brightness(1.12);transform:scaleY(1.03)scaleX(.99)}60%{filter:brightness(1.04);transform:scaleY(.995)scaleX(1)}80%{filter:brightness(1.15);transform:scaleY(1.04)scaleX(.985)}}@keyframes signage-blur-in{0%{filter:blur(12px);opacity:0}to{filter:blur();opacity:1}}@keyframes signage-mask-up{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes signage-pop-in{0%{opacity:0;transform:scale(.5)}40%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes signage-wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes signage-ken-burns{0%{transform:scale(1)translate(0)}to{transform:scale(1.08)translate(1.5%,-1.5%)}}@keyframes signage-glitch{0%,8%,to{clip-path:inset(0);filter:none;opacity:1;transform:translate(0)}1%{clip-path:inset(8% 0 62%);filter:hue-rotate(70deg);opacity:.85;transform:translate(-3px)}2%{clip-path:inset(0);filter:none;opacity:1;transform:translate(0)}3.5%{clip-path:inset(58% 0 12%);filter:hue-rotate(-55deg);opacity:.9;transform:translate(3px)}4.5%{clip-path:inset(0);filter:none;opacity:1;transform:translate(0)}6%{clip-path:inset(30% 0 38%);filter:hue-rotate(40deg);opacity:.92;transform:translate(-2px)}}@keyframes signage-light-sweep{0%{background-position:-30% 0}36.7%{background-position:130% 0}to{background-position:130% 0}}@media (prefers-reduced-motion:reduce){[class*=signage-anim-]{animation:none}.signage-anim-light_sweep{background-image:none}}.signage-canvas-plane{z-index:2;position:absolute;inset:0}.signage-canvas-plane.outgoing{z-index:1;pointer-events:none}.signage-trans-in-fade{animation:.5s cubic-bezier(.65,0,.35,1) both signage-trans-in-fade}.signage-trans-in-slide_left{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-push-left}.signage-trans-out-slide_left{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-push-left}.signage-trans-in-slide_right{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-push-right}.signage-trans-out-slide_right{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-push-right}.signage-trans-in-slide_up{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-push-up}.signage-trans-out-slide_up{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-push-up}.signage-trans-in-push_left{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-film-left}.signage-trans-out-push_left{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-film-left}.signage-trans-in-push_right{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-film-right}.signage-trans-out-push_right{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-film-right}.signage-trans-in-push_up{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-film-up}.signage-trans-out-push_up{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-film-up}.signage-trans-in-push_down{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-film-down}.signage-trans-out-push_down{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-film-down}@keyframes signage-trans-in-film-left{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes signage-trans-out-film-left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes signage-trans-in-film-right{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes signage-trans-out-film-right{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes signage-trans-in-film-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes signage-trans-out-film-up{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes signage-trans-in-film-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes signage-trans-out-film-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}.signage-trans-in-slide_down{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-in-push-down}.signage-trans-out-slide_down{animation:.65s cubic-bezier(.65,0,.35,1) both signage-trans-out-push-down}.signage-trans-in-zoom_in{animation:.6s cubic-bezier(.22,1,.36,1) both signage-trans-in-zoom-in}.signage-trans-out-zoom_in{animation:.6s cubic-bezier(.22,1,.36,1) both signage-trans-out-zoom-in}.signage-trans-in-zoom_out{animation:.6s cubic-bezier(.22,1,.36,1) both signage-trans-in-zoom-out}.signage-trans-out-zoom_out{animation:.6s cubic-bezier(.22,1,.36,1) both signage-trans-out-zoom-out}@keyframes signage-trans-in-fade{0%{opacity:0}to{opacity:1}}@keyframes signage-trans-in-push-left{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes signage-trans-out-push-left{0%{opacity:1;transform:translate(0)}to{opacity:.6;transform:translate(-30%)}}@keyframes signage-trans-in-push-right{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes signage-trans-out-push-right{0%{opacity:1;transform:translate(0)}to{opacity:.6;transform:translate(30%)}}@keyframes signage-trans-in-push-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes signage-trans-out-push-up{0%{opacity:1;transform:translateY(0)}to{opacity:.6;transform:translateY(-30%)}}@keyframes signage-trans-in-push-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes signage-trans-out-push-down{0%{opacity:1;transform:translateY(0)}to{opacity:.6;transform:translateY(30%)}}@keyframes signage-trans-in-zoom-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes signage-trans-out-zoom-in{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes signage-trans-in-zoom-out{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes signage-trans-out-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}.signage-trans-backdrop{z-index:0;pointer-events:none}.signage-trans-in-dip_to_black,.signage-trans-in-dip_to_white{animation:.7s cubic-bezier(.65,0,.35,1) both signage-trans-in-dip}.signage-trans-out-dip_to_black,.signage-trans-out-dip_to_white{animation:.7s cubic-bezier(.65,0,.35,1) both signage-trans-out-dip}.signage-trans-in-cross_blur{animation:.7s cubic-bezier(.65,0,.35,1) both signage-trans-in-cross-blur}.signage-trans-out-cross_blur{animation:.7s cubic-bezier(.65,0,.35,1) both signage-trans-out-cross-blur}.signage-trans-in-whip_left{animation:.3s cubic-bezier(.3,0,.7,1) both signage-trans-in-whip-left}.signage-trans-out-whip_left{animation:.3s cubic-bezier(.3,0,.7,1) both signage-trans-out-whip-left}.signage-trans-in-whip_right{animation:.3s cubic-bezier(.3,0,.7,1) both signage-trans-in-whip-right}.signage-trans-out-whip_right{animation:.3s cubic-bezier(.3,0,.7,1) both signage-trans-out-whip-right}.signage-trans-in-wipe{animation:.6s cubic-bezier(.65,0,.35,1) both signage-trans-in-wipe}@keyframes signage-trans-out-dip{0%{opacity:1}50%,to{opacity:0}}@keyframes signage-trans-in-dip{0%,50%{opacity:0}to{opacity:1}}@keyframes signage-trans-out-cross-blur{0%{filter:blur();opacity:1}to{filter:blur(10px);opacity:0}}@keyframes signage-trans-in-cross-blur{0%{filter:blur(10px);opacity:0}to{filter:blur();opacity:1}}@keyframes signage-trans-in-whip-left{0%{filter:blur(6px);transform:translate(100%)}70%{filter:blur(6px)}to{filter:blur();transform:translate(0)}}@keyframes signage-trans-out-whip-left{0%{filter:blur();transform:translate(0)}30%{filter:blur(6px)}to{filter:blur(6px);transform:translate(-100%)}}@keyframes signage-trans-in-whip-right{0%{filter:blur(6px);transform:translate(-100%)}70%{filter:blur(6px)}to{filter:blur();transform:translate(0)}}@keyframes signage-trans-out-whip-right{0%{filter:blur();transform:translate(0)}30%{filter:blur(6px)}to{filter:blur(6px);transform:translate(100%)}}@keyframes signage-trans-in-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.signage-save-modal-backdrop{z-index:60;background:#0f172a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.signage-save-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:460px;padding:20px 22px;box-shadow:0 20px 50px #00000040}.signage-save-modal h3{margin:0 0 8px;font-size:16px}.signage-device-log-dialog{width:min(960px,94vw)}.signage-device-log-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.signage-device-log-head h3{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.signage-device-log-head-actions{flex-shrink:0;gap:8px;display:flex}.signage-device-log-note{color:var(--text-muted,#64748b);margin:0 0 8px;font-size:12px}.signage-device-log-body{border:1px solid var(--border);background:var(--surface-sub,#00000008);max-height:64vh;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;border-radius:8px;padding:12px;font-size:12px;line-height:1.55;overflow:auto}.signage-duration-warn-list{gap:8px;max-height:240px;margin:12px 0 4px;padding:0;list-style:none;display:grid;overflow-y:auto}.signage-duration-warn-list li{border:1px solid var(--border);border-radius:8px;gap:2px;padding:8px 10px;font-size:13px;display:grid}.signage-duration-warn-list li span{color:var(--muted);font-size:12px}.signage-save-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.signage-map-layout{align-items:flex-start;gap:16px;display:flex}.signage-map-canvas-wrap{flex:auto;min-width:0;position:relative}.signage-map-canvas{border:1px solid var(--border);border-radius:12px;width:100%;height:clamp(360px,100dvh - 300px,560px);min-height:360px;overflow:hidden}.signage-map-place-search{margin-bottom:10px}.signage-map-place-search gmp-place-autocomplete{width:100%;display:block}.signage-map-place-hint{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.signage-app-lock{justify-content:center;padding:48px 16px;display:flex}.signage-app-lock-card{border:1px solid var(--border);background:var(--surface);text-align:center;width:100%;max-width:320px;color:var(--muted);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:32px 28px;display:flex}.signage-app-lock-card h2{color:var(--text);margin:4px 0 0;font-size:17px}.signage-app-lock-card p{margin:0;font-size:13px}.signage-app-lock-card input{border:1px solid var(--border);background:var(--surface-muted);width:100%;color:var(--text);text-align:center;letter-spacing:4px;border-radius:8px;margin-top:6px;padding:9px 12px;font-size:15px}.signage-app-lock-err{color:var(--danger);font-size:12.5px}.signage-prov{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.signage-prov-check{color:var(--text);align-items:center;gap:8px;font-size:13px;display:inline-flex}.signage-prov-result{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-wrap:wrap;align-items:flex-start;gap:18px;padding:14px;display:flex}.signage-prov-qr{background:#fff;border-radius:8px;width:220px;height:220px}.signage-prov-steps{color:var(--text);flex:260px;margin:0;padding-left:20px;font-size:13px;line-height:1.8}.pac-container,.gm-style .pac-container{z-index:2000}.signage-ratio-custom{align-items:center;gap:8px;display:flex}.signage-ratio-custom input{flex:1;min-width:0}.signage-layer-schedule-hint{color:var(--muted-foreground,#6b7280);margin:0;font-size:11px;line-height:1.5}.signage-studio.is-wide{grid-template-columns:minmax(0,1fr)}@media (min-width:961px){.signage-studio-v2 .signage-canvas-wrap{container-type:size}.signage-studio-v2 .signage-canvas{width:min(100cqw, calc(100cqh * var(--canvas-ar,1.7778)));height:auto}}.signage-integration-editor{gap:14px;margin-top:14px;display:grid}.signage-integration-editor>.panel,.signage-integration-editor.panel{padding:16px 20px 20px}.signage-integration-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.signage-integration-heading h3{align-items:center;gap:6px;margin:0;display:inline-flex}.signage-integration-actions{flex-wrap:wrap;gap:6px;display:flex}.signage-store-switcher{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.signage-integration-section{border-top:1px solid var(--border);margin:18px 0 8px;padding-top:12px;font-size:14px}.signage-integration-check{align-items:flex-end;padding-bottom:8px;display:flex}.signage-integration-query{margin-top:10px}.signage-integration-query small{color:var(--muted);margin-left:6px;font-weight:400}.signage-integration-query textarea{resize:vertical;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5}.signage-integration-preview-bar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:10px 0;display:flex}.signage-integration-preview-bar .label-field{flex:0 260px}.signage-integration-table{max-height:320px;overflow:auto}.signage-integration-table td{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.signage-integration-fields-head{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 8px;display:flex}.signage-integration-fields-head span{color:var(--muted);flex:auto;font-size:12.5px}.signage-integration-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.signage-integration-field-table input,.signage-integration-store-table input{width:100%;min-width:90px;height:34px}.signage-integration-row-actions{white-space:nowrap;gap:6px;display:flex}.signage-integration-error{color:#b45309;margin:8px 0 0;font-size:12.5px}.signage-integration-field-table .signage-integration-key-cell{text-align:center;width:72px}.signage-color-defaults{position:relative}.signage-color-defaults-dot{border:1px solid var(--border);border-radius:50%;width:10px;height:10px}.signage-color-defaults-pop{z-index:30;border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:10px;width:260px;padding:12px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 10px 26px #0f172a29}.signage-color-defaults-row{flex-direction:column;gap:6px;display:flex}.signage-color-defaults-pop .schedule-form-help{margin:0}.signage-map-placing-banner{z-index:5;color:#fff;background:#0f172ae6;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000004d}.signage-map-side{contain:paint;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex:0 0 470px;max-height:clamp(360px,100dvh - 300px,560px);padding:12px 14px;overflow-y:auto}.signage-map-stats{color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;margin-bottom:10px;padding-bottom:10px;font-size:12.5px;display:flex}.signage-map-stats span{align-items:center;gap:5px;display:inline-flex}.signage-map-dot{background:#9ca3af;border-radius:50%;width:10px;height:10px;display:inline-block}.signage-map-dot.on{background:#16a34a}.signage-map-dot.off{background:#dc2626}.signage-map-dot.none{background:#9ca3af}.signage-map-group{margin-top:12px}.signage-map-group h4{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:0 0 6px;font-size:12.5px;display:flex}.signage-map-selectall{color:var(--teal);cursor:pointer;background:0 0;border:0;padding:0;font-size:11.5px;font-weight:700}.signage-map-list li.is-selected{border-color:var(--teal);background:#3ab8b714}.signage-map-bulk-bar{border:1px solid var(--teal);background:#3ab8b714;border-radius:8px;flex-direction:column;gap:6px;margin-bottom:10px;padding:10px;display:flex}.signage-map-bulk-bar strong{font-size:12.5px}.signage-map-bulk-actions{flex-wrap:wrap;gap:6px;display:flex}.signage-map-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.signage-map-list li{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:3px;padding:8px 10px;display:flex}.signage-map-name{align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.signage-map-meta{color:var(--muted);font-size:11.5px}.signage-map-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}@media (max-width:900px){.signage-map-layout{flex-direction:column}.signage-map-side{flex-basis:auto;width:100%;max-height:60dvh}.signage-map-canvas{height:46vh}}.signage-history-list{flex-direction:column;gap:6px;max-height:340px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.signage-history-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;font-size:13px;display:flex}.signage-history-when{color:var(--muted);white-space:nowrap;font-size:12px}.signage-history-what{text-align:right;font-weight:600}.signage-media-thumb.is-blurred img,.signage-media-thumb.is-blurred video{filter:blur(10px)}.signage-media-thumb.is-blocked img,.signage-media-thumb.is-blocked video{filter:blur(14px)grayscale()brightness(.5)}.signage-mod-badge{z-index:2;color:#fff;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:700;position:absolute;bottom:8px;left:8px}.signage-mod-badge.blurred{background:#b45309}.signage-mod-badge.blocked{background:var(--danger)}.signage-media-moderate{z-index:2;color:#fff;cursor:pointer;background:#0f172aa6;border:none;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;position:absolute;top:8px;right:38px}.signage-media-moderate:hover{background:#0f172ad9}.signage-mod-options{flex-wrap:wrap;gap:8px;margin:10px 0 4px;display:flex}.signage-mod-option{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.signage-mod-option.selected{border-color:var(--teal-strong,#0f766e);background:#3ab8b71a;font-weight:600}.signage-entry-kind{color:#fff;vertical-align:middle;background:#2563eb;border-radius:5px;margin-right:6px;padding:1px 6px;font-size:10.5px;font-weight:700;display:inline-block}.signage-entry-kind.scene{background:#7c3aed}.signage-scene-select{border:1px solid var(--border);background:var(--surface);max-width:170px;color:var(--text);border-radius:7px;padding:5px 8px;font-size:12.5px}.signage-device-card-scene{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:8px 0 2px;font-size:12.5px;display:flex}.signage-device-card-scene .signage-scene-select{max-width:60%}.signage-sched-screen{flex-direction:column;height:calc(100dvh - 64px);min-height:0;display:flex;overflow:hidden}.signage-sched-screen>*{flex:none}.signage-sched-screen .signage-cal{flex-direction:column;flex:auto;min-height:0;display:flex}.signage-sched-screen .signage-cal-body{flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.signage-sched-screen .signage-cal-week{flex:1 1 0}.signage-sched-screen .signage-cal-daycells{height:100%}.signage-sched-toolbar{justify-content:flex-end;align-items:center;gap:10px;margin-bottom:12px;display:flex}.signage-sched-detail{flex-direction:column;gap:8px;margin:8px 0 4px;display:flex}.signage-sched-detail>div{grid-template-columns:120px 1fr;gap:10px;font-size:13px;display:grid}.signage-sched-detail dt{color:var(--muted);font-weight:600}.signage-sched-detail dd{color:var(--text);margin:0}.signage-sched-day-list{flex-direction:column;gap:8px;margin:8px 0 4px;padding:0;list-style:none;display:flex}.signage-sched-day-item{border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%;padding:10px 12px;display:flex}.signage-sched-day-item:hover{border-color:var(--teal)}.signage-sched-day-name{color:var(--text);font-weight:600}.signage-sched-day-meta{color:var(--muted);font-size:12.5px}.signage-sched-day-period{color:var(--muted);margin-left:auto;font-size:12px}.signage-cal{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.signage-cal-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.signage-cal-nav{align-items:center;gap:8px;display:inline-flex}.signage-cal-nav button{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.signage-cal-nav button:hover{border-color:var(--teal);color:var(--teal)}.signage-cal-title{text-align:center;min-width:116px;font-size:15px}.signage-cal-today{padding:0 12px;font-size:12.5px;font-weight:600;width:auto!important}.signage-cal-hint{color:var(--muted);font-size:12px}.signage-cal-weekdays{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.signage-cal-weekday{text-align:center;color:var(--muted);padding:7px 0;font-size:12px;font-weight:700}.signage-cal-weekday.sun{color:#dc2626}.signage-cal-weekday.sat{color:#2563eb}.signage-cal-week{position:relative}.signage-cal-daycells{grid-template-columns:repeat(7,1fr);display:grid}.signage-cal-day{text-align:left;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);cursor:pointer;flex-direction:column;place-content:flex-start;align-items:flex-start;padding:4px 6px;display:flex!important}.signage-cal-day>.signage-cal-daynum{align-self:flex-start;margin-top:0}.signage-cal-day:nth-child(7n){border-right:none}.signage-cal-day.other{background:#94a3b814}.signage-cal-day.other .signage-cal-daynum{color:#9ca3af}.signage-cal-day.selected{background:#3ab8b724}.signage-cal-day:hover{background:#3ab8b714}.signage-cal-daynum{color:var(--text);font-size:12.5px;font-weight:600;line-height:1.2}.signage-cal-day.sun .signage-cal-daynum{color:#dc2626}.signage-cal-day.sat .signage-cal-daynum{color:#2563eb}.signage-cal-day.holiday .signage-cal-daynum{color:#dc2626}.signage-cal-holiday-name{color:#dc2626;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10px;font-weight:600;line-height:1.1;display:block;overflow:hidden}.signage-cal-day.other .signage-cal-holiday-name{color:#f0a3a3}.signage-cal-day.today .signage-cal-daynum{background:var(--teal);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;display:inline-flex}.signage-cal-bars{pointer-events:none;grid-template-columns:repeat(7,1fr);gap:2px 0;display:grid;position:absolute;top:30px;left:0;right:0}.signage-cal-bar{pointer-events:auto;color:#fff;text-align:left;white-space:nowrap;cursor:pointer;border:none;border-radius:4px;height:18px;margin:0 3px;padding:0 7px;font-size:11px;line-height:18px;overflow:hidden}.signage-cal-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signage-cal-bar.active{background:#16a34a}.signage-cal-bar.upcoming{background:#2563eb}.signage-cal-bar.expired{background:#94a3b8}.signage-cal-more{pointer-events:auto;height:18px;color:var(--teal);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0 3px;padding:0 7px;font-size:11px;font-weight:600;line-height:18px}.signage-cal-more:hover{background:#3ab8b71f}.signage-cal-bar.open-left{border-top-left-radius:0;border-bottom-left-radius:0}.signage-cal-bar.open-right{border-top-right-radius:0;border-bottom-right-radius:0}.signage-cal-bar:hover{filter:brightness(1.08)}.signage-sched-devices{flex-direction:column;gap:16px;display:flex}.signage-sched-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.signage-sched-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.signage-sched-card-title{align-items:center;gap:8px;display:inline-flex}.signage-sched-card-title strong{color:var(--text);font-size:15px}.signage-sched-online-text{color:var(--muted);font-size:12px}.signage-sched-now{background:var(--surface-muted,#f1f5f9);color:var(--text);border-radius:999px;padding:5px 12px;font-size:13px}.signage-sched-now b{font-weight:700}.signage-sched-now em{color:var(--muted);font-style:normal}.signage-sched-now.override{color:var(--teal-strong,#0f766e);background:#3ab8b724}.signage-sched-now.none{color:var(--muted)}.signage-sched-base{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.signage-sched-base .label-field{flex:260px;min-width:0}.signage-timeline{flex-direction:column;gap:4px;display:flex}.signage-timeline-track{background:repeating-linear-gradient(90deg, var(--surface-muted,#f1f5f9) 0 1px, transparent 1px 40px);border:1px solid var(--border);border-radius:6px;height:26px;position:relative;overflow:hidden}.signage-timeline-base{background:#94a3b81f;position:absolute;inset:0}.signage-timeline-seg{background:var(--teal);opacity:.9;border-radius:4px;height:18px;position:absolute;top:4px}.signage-timeline-seg.upcoming{background:#f59e0b}.signage-timeline-today{background:#ef4444;width:2px;position:absolute;top:-2px;bottom:-2px}.signage-timeline-legend{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.signage-sched-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.signage-sched-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.signage-sched-item.expired{opacity:.55}.signage-sched-phase{border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.signage-sched-phase.active{color:var(--teal-strong,#0f766e);background:#3ab8b729}.signage-sched-phase.upcoming{color:#b45309;background:#f59e0b29}.signage-sched-phase.expired{background:var(--surface-muted,#f1f5f9);color:var(--muted)}.signage-batch-devices{contain:paint;border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:220px;padding:8px;display:grid;overflow-y:auto}.signage-batch-devices label{border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-width:0;padding:6px 8px;font-size:13px;display:flex}.signage-batch-devices label:hover{background:#3ab8b714}.signage-batch-devices label:has(input:checked){border-color:var(--teal);background:#3ab8b71f}.signage-batch-devices input[type=checkbox]{accent-color:var(--teal);flex:none}.signage-batch-devices label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signage-batch-devices label:first-child{border-style:dashed;grid-column:1/-1;font-weight:600}.signage-batch-devices .muted{color:var(--muted);font-size:12px}.signage-sched-item-name{color:var(--text);font-weight:600}.signage-sched-item-show{color:var(--teal-strong,#0f766e)}.signage-sched-item-period,.signage-sched-item-prio{color:var(--muted);font-size:12px}.signage-sched-item-period{margin-left:auto}.signage-shot-dialog{max-width:760px}.signage-shot-image{object-fit:contain;border:1px solid var(--border);background:#000;border-radius:8px;width:100%;max-height:62vh;display:block}.signage-sched-layer-toggle{margin:4px 0}.signage-layer-sched-slides{flex-direction:column;gap:12px;display:flex}.signage-layer-sched-slide{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:180px minmax(0,1fr);gap:12px;padding:10px;display:grid}.signage-layer-sched-slide .signage-import-layers{max-height:200px}.signage-layer-sched-slide-head{flex-direction:column;gap:6px;display:flex}.signage-layer-sched-canvas{border-radius:6px;height:110px;margin-bottom:0}.signage-layer-sched-slide-title{color:var(--muted);font-size:12px;font-weight:600}.signage-import-layer.is-disabled{cursor:default;opacity:.55}.signage-layer-sched-count{background:var(--teal-soft,#e6f6f4);color:var(--teal,#0f766e);border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-weight:600}.signage-layer-sched-editor{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:12px;padding:12px;display:flex}.signage-layer-sched-current{align-items:center;gap:12px;display:flex}.signage-layer-sched-current-label{color:var(--muted);font-size:12px}.signage-layer-sched-current-name{font-weight:600}.signage-layer-sched-thumb{border-radius:8px;flex:0 0 160px;width:160px}.signage-layer-sched-thumb.is-small{flex-basis:96px;width:96px}.signage-layer-sched-entries{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.signage-layer-sched-entries li{border:1px dashed var(--border);border-radius:8px;align-items:center;gap:12px;padding:8px;display:flex}.signage-layer-sched-entry-body{flex:1;min-width:0}.signage-layer-sched-entry-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.signage-layer-sched-entry-period{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.signage-layer-sched-form{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:10px;display:flex}.signage-layer-sched-media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:320px;padding:2px;display:grid;overflow-y:auto}.signage-layer-sched-media-pick{text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex-direction:column;gap:4px;padding:4px;display:flex}.signage-layer-sched-media-pick .signage-layer-sched-thumb{flex-basis:auto;width:100%}.signage-layer-sched-media-pick:hover{border-color:var(--border)}.signage-layer-sched-media-pick.selected{border-color:var(--teal)}.signage-layer-sched-media-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex;overflow:hidden}.signage-import-layer input[type=radio]{border-radius:50%;width:16px;min-width:16px;height:16px}.product-ean-panel{max-width:none}.product-ean-body{padding:18px 18px 16px}.product-ean-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.product-ean-count{color:var(--text);font-size:14px}.product-ean-count strong{color:var(--navy);font-weight:700}.product-ean-hint{color:var(--muted);font-size:12px}.product-ean-chips{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;flex-wrap:wrap;gap:8px;padding:14px;display:flex}.product-ean-chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:4px;height:32px;padding:0 5px 0 12px;display:inline-flex;box-shadow:0 1px 2px #0f172a0d}.product-ean-chip-value{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text);font-size:13px;font-weight:700}.product-ean-chip-remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.product-ean-chip-remove:hover:not(:disabled){color:var(--danger);background:#fdecec}.product-ean-chip-remove:disabled{opacity:.5;cursor:not-allowed}.product-ean-empty{border:1px dashed var(--border);background:var(--surface-muted);color:var(--muted);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:26px 14px;display:flex}.product-ean-empty p{color:var(--text);margin:6px 0 0;font-size:14px;font-weight:700}.product-ean-empty span{font-size:12px}.product-ean-add{align-items:center;gap:8px;max-width:560px;margin-top:14px;display:flex}.product-ean-input{border:1px solid var(--border);background:var(--surface);min-width:0;height:38px;color:var(--text);border-radius:8px;flex:1;padding:0 12px;font-size:14px}.product-ean-input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0026421a}.product-ean-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.product-ean-feedback{flex-direction:column;gap:2px;min-width:0;display:flex}.product-ean-notice{color:#08756f;margin:0;font-size:13px;font-weight:700}.product-detail-edit-bar{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:12px;display:flex}.product-detail-edit-input{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;height:34px;color:var(--text);border-radius:8px;padding:0 10px;font-size:13px}.product-detail-edit-input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0026421a}.gateway-detail-edit-bar{justify-content:flex-end;align-items:center;gap:8px;margin:4px 0 12px;display:flex}.gateway-edit-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:12px;line-height:1.5}.gateway-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.gateway-edit-field{color:#334155;gap:6px;font-size:12px;font-weight:700;display:grid}.gateway-edit-field input{border:1px solid var(--border);background:var(--surface);min-width:0;height:40px;color:var(--text);border-radius:8px;padding:0 12px;font-size:13px;font-weight:500}.gateway-edit-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0026421a}.gateway-edit-field input[aria-invalid=true]{border-color:#dc2626}.gateway-edit-field input[aria-invalid=true]:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.gateway-edit-field-error{color:#dc2626;font-size:11px;font-weight:600}.gateway-detail-section dd:has(.gateway-edit-input){white-space:normal;gap:4px;display:grid;overflow:visible}.gateway-edit-input{border:1px solid var(--border);width:100%;min-width:0;height:34px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px;font-size:13px;font-weight:500}.gateway-edit-input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0026421a}.gateway-edit-input:disabled{color:var(--muted);cursor:not-allowed;background:#f1f5f9}.gateway-edit-input[aria-invalid=true]{border-color:#dc2626}.gateway-edit-input[aria-invalid=true]:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.product-detail-tabs{flex-direction:column;flex:1;min-height:0;margin-top:0;padding:14px 22px 20px;display:flex}.product-detail-tab-list{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:4px;display:flex}.product-detail-tab{min-width:120px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:8px 8px 0 0;font-weight:700}.product-detail-tab[aria-selected=true]{border-color:var(--border);color:var(--navy);background:#fff}.product-detail-tab-panel{flex:1;min-height:0;padding-top:18px;overflow:auto}.product-detail-blank{border:1px dashed var(--border);background:var(--surface-muted);min-height:260px;color:var(--muted);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:32px 16px;display:flex}.product-detail-blank p{color:var(--text);margin:8px 0 0;font-size:15px;font-weight:700}.product-detail-blank span{font-size:13px}.product-detail-blank--error{background:#fef2f2;border-color:#fecaca}.product-detail-blank--error svg{color:var(--danger)}.product-detail-retry{margin-top:14px}.product-history{grid-template-columns:minmax(190px,240px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.product-history-list{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;max-height:480px;display:flex;overflow:hidden}.product-history-list-head{background:var(--navy);color:#fff;text-align:center;flex:none;padding:13px 14px;font-size:13px;font-weight:700}.product-history-list-scroll{overflow-y:auto}.product-history-item{width:100%;color:var(--text);cursor:pointer;background:0 0;border-top:0;border-bottom:1px solid #edf0f3;border-left:3px solid #0000;border-right:0;justify-content:center;align-items:center;gap:8px;padding:15px 12px;font-size:13px;transition:background .12s;display:flex}.product-history-item:last-child{border-bottom:0}.product-history-item:hover,.product-history-item:focus-visible{background:var(--surface-muted);outline:none}.product-history-item.is-selected{background:var(--surface-muted);border-left-color:var(--navy);font-weight:700}.product-history-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:28px 14px;font-size:13px;display:flex}.product-history-panel{min-width:0}.product-history-hint{border:1px dashed var(--border);background:var(--surface-muted);color:var(--muted);text-align:center;border-radius:10px;margin:0;padding:18px 16px;font-size:13px}.product-history-detail{min-width:0}.product-history-detail-body{transition:opacity .12s}.product-history-detail-body.is-loading{opacity:.5}.product-history-detail-head{flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 12px;display:flex}.product-history-detail-head h4{color:var(--text);margin:0;font-size:15px}.product-history-readonly{background:var(--surface-muted);border:1px solid var(--border);min-height:22px;color:var(--muted);border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.product-detail-data-head{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}.product-detail-data-title{flex:none}.product-data-edit-grid>div{align-items:center}.product-detail-tab-header{border-bottom:1px solid var(--border);flex:none;align-items:flex-end;gap:12px;display:flex}.product-detail-tab-header .product-detail-tab-list{border-bottom:0;flex:auto;min-width:0}.product-detail-tab-actions{flex:none;align-items:center;gap:8px;margin-bottom:12px;margin-left:auto;display:inline-flex}.product-detail-tab-actions .primary-button,.product-detail-tab-actions .secondary-button{box-shadow:0 1px 2px #0f172a14,inset 0 1px #ffffff38}.product-detail-tab-actions .primary-button:hover:not(:disabled),.product-detail-tab-actions .secondary-button:hover:not(:disabled){box-shadow:0 2px 6px #0f172a24,inset 0 1px #ffffff38}.product-detail-hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.product-hero-item{border:1px solid var(--border);background:#fff;border-radius:10px;gap:4px;min-width:0;padding:12px 14px;display:grid}.product-hero-item>span{color:var(--muted);font-size:12px;font-weight:700}.product-field-barcode{align-items:center;gap:8px;min-width:0;display:flex}.product-field-barcode>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.product-field-barcode-toggle{border:1px solid var(--border);width:24px;height:24px;color:var(--muted);cursor:pointer;background:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.product-field-barcode-toggle:hover{border-color:var(--accent,#3ab8b7);color:var(--accent,#3ab8b7)}.product-field-barcode-toggle.is-active{border-color:var(--accent,#3ab8b7);background:var(--accent,#3ab8b7);color:#fff}.product-field-barcode-code{grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;display:grid}.product-field-barcode-svg{max-width:100%;height:32px;margin:0 auto;display:block}.product-field-barcode-caption{color:var(--text);font-family:var(--font-mono);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.2;display:block;overflow:hidden}.product-field-sections{gap:12px;display:grid}.product-field-section{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.product-field-section h5{border-bottom:1px solid var(--border);color:var(--text);background:#f8fafc;margin:0;padding:10px 14px;font-size:13px}.product-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-field-row{border-bottom:1px solid #edf0f3;grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr);align-items:center;gap:12px;min-width:0;padding:10px 14px;display:grid}.product-field-grid>.product-field-row:nth-child(odd){border-right:1px solid #edf0f3}.product-field-grid>.product-field-row:last-child,.product-field-grid>.product-field-row:nth-last-child(2):nth-child(odd){border-bottom:0}.product-field-row>span{color:var(--muted);font-size:12px;font-weight:700}.product-field-row .product-data-key,.product-hero-item .product-data-key{color:var(--muted);opacity:.8;overflow-wrap:anywhere;margin-top:2px;font-size:11px;font-weight:600;display:block}.product-field-value{gap:2px;min-width:0;display:grid}.product-field-value strong,.product-hero-item strong,.product-field-locked-value,.product-field-locked-value strong{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;overflow:hidden}.product-hero-item strong{font-size:14px;font-weight:600}strong.product-field-empty{color:var(--muted);font-style:italic;font-weight:400}.product-field-row--changed{background:#fffbeb;box-shadow:inset 3px 0 #f59e0b}.product-field-row--added{background:#ecfdf5;box-shadow:inset 3px 0 #10b981}.product-field-row--removed{background:#fef2f2;box-shadow:inset 3px 0 #ef4444}.product-field-prev{overflow-wrap:anywhere;font-size:11px;font-weight:700}.product-field-prev--changed{color:#92400e}.product-field-prev--added{color:#047857}.product-field-prev--removed{color:#b91c1c}.product-field-row--locked{background:var(--surface-muted)}.product-field-locked-badge{border:1px solid var(--border);min-height:18px;color:var(--muted);background:#fff;border-radius:999px;align-items:center;margin-left:6px;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.product-history-selected-date{color:var(--text);font-size:13px;font-weight:700}.product-diff-summary{border:1px solid var(--border);background:var(--surface-muted);min-height:22px;color:var(--muted);border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.product-diff-summary--changed{color:#92400e;background:#fffbeb;border-color:#fcd34d}.product-history-meta{align-items:center;gap:8px;min-width:0;margin:0 0 10px;display:flex}.product-history-meta-label{color:var(--muted);font-size:11px;font-weight:700}.product-history-compare-note{border:1px dashed var(--border);background:var(--surface-muted);color:var(--muted);border-radius:8px;margin:0 0 10px;padding:8px 12px;font-size:12px}.signage-log-dialog{max-width:820px}.signage-log-view{border:1px solid var(--border);background:var(--surface);max-height:52vh;color:var(--text);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:12px 14px;font-size:12px;line-height:1.55;overflow:auto}.signage-report-range{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}.signage-report-range input[type=date]{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text);border-radius:8px;padding:0 8px;font-size:13px}.signage-report-range-sep{color:var(--muted);font-size:13px}.signage-report-deleted{color:var(--muted);font-style:italic}.template-ai-launch-dialog{width:min(1320px,100vw - 48px);max-width:1320px;max-height:calc(100dvh - 48px);overflow-y:auto}.template-ai-launch-dialog .dialog-actions{z-index:1;border-top:1px solid var(--border);background:var(--surface);margin:0 -22px -22px;padding:14px 22px 22px;position:sticky;bottom:-22px;box-shadow:0 -8px 16px #0f172a0f}.template-ai-launch-dialog label{color:var(--text);gap:7px;font-size:13px;font-weight:700;display:grid}.template-ai-launch-dialog input,.template-ai-launch-dialog select,.template-ai-launch-dialog textarea,.template-ai-controls textarea{border:1px solid var(--border);width:100%;font:inherit;background:var(--surface);color:var(--text);border-radius:8px;padding:10px}.template-ai-launch-dialog textarea,.template-ai-controls textarea{resize:vertical;min-height:112px;line-height:1.5}.template-ai-launch-header{margin:0 0 18px}.template-ai-launch-header>span,.template-ai-eyebrow,.template-ai-card-heading>div>span,.template-ai-refine-card>span,.template-ai-downloads>span{color:var(--muted);letter-spacing:.03em;font-size:12px;font-weight:700}.template-ai-launch-header h3{color:var(--navy);margin:4px 0 0;font-size:22px}.template-ai-request-card,.template-ai-label-card,.template-ai-field-card,.template-ai-refine-card{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;padding:16px}.template-ai-request-card{margin-bottom:12px}.template-ai-request-card textarea{background:var(--surface);min-height:142px}.template-ai-label-card{background:#fff;gap:12px;margin-bottom:12px;display:grid}.template-ai-label-card>div:first-child{gap:3px;display:grid}.template-ai-label-card strong{color:var(--navy)}.template-ai-label-card span{color:var(--muted);font-size:12px}.template-ai-label-lookup{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.template-ai-label-lookup .button{min-height:40px}.template-ai-selected-label{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;gap:3px;min-height:40px;padding:9px 10px;display:grid}.template-ai-selected-label span{font-size:11px}.template-ai-selected-label strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.template-ai-size-notice{color:var(--success);margin:-3px 0 0;font-size:12px;font-weight:700}.template-ai-size-fields{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.template-ai-field-card{background:#fff;gap:12px;margin-bottom:12px;display:grid}.template-ai-field-card>div:first-child{gap:3px;display:grid}.template-ai-field-card strong{color:var(--navy)}.template-ai-field-card span{color:var(--muted);font-size:12px}.template-ai-field-options{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;display:grid}.template-ai-field-options label{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text);cursor:pointer;border-radius:9px;align-items:center;gap:8px;padding:9px 11px;font-size:13px;font-weight:700;transition:border-color .12s,background .12s,color .12s;display:flex}.template-ai-field-options label:hover{border-color:var(--navy)}.template-ai-field-options label:has(input:checked){border-color:var(--navy);color:var(--navy);background:#eef4ff}.template-ai-field-options .template-ai-field-label{gap:2px;display:grid}.template-ai-field-options .template-ai-field-label span{color:var(--muted);font-size:11px;font-weight:600;line-height:1.2}.template-ai-field-options input{appearance:auto;width:16px;height:16px;min-height:0;accent-color:var(--navy);background:0 0;border:0;border-radius:3px;flex:none;margin:0;padding:0}.template-ai-suggestions,.template-ai-heading,.template-ai-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-ai-suggestions{margin-top:10px}.template-ai-suggestions button{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.template-ai-suggestions button:hover,.template-ai-suggestions button:focus-visible{border-color:var(--navy);color:var(--navy);outline:none}.template-ai-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px;display:grid}.template-ai-heading{justify-content:space-between;margin-bottom:16px}.template-ai-heading h2{color:var(--navy);margin:3px 0 0}.template-ai-grid{grid-template-columns:minmax(0,1fr) minmax(290px,360px);align-items:start;gap:18px;display:grid}.template-ai-canvas-card{padding:0;overflow:hidden}.template-ai-card-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:12px;padding:16px 18px;display:flex}.template-ai-card-heading h3{margin:3px 0 0;font-size:16px}.template-ai-card-heading p{color:var(--muted);white-space:nowrap;margin:1px 0 0;font-size:12px}.template-ai-preview{background-color:#eee;background-image:linear-gradient(45deg,#ddd 25%,#0000 25%),linear-gradient(-45deg,#ddd 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ddd 75%),linear-gradient(-45deg,#0000 75%,#ddd 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;max-width:100%;padding:24px;overflow:auto}.template-ai-html-preview{margin:0 auto;position:relative;overflow:hidden;box-shadow:0 4px 14px #0f172a29}.template-ai-html-text{box-sizing:border-box;position:absolute;overflow:hidden}.template-ai-html-line{box-sizing:border-box;transform-origin:0 0;position:absolute}.template-ai-html-image{color:#64748b;place-items:center;font-size:11px;display:grid;background:#f8fafc!important;border:1px dashed #94a3b8!important}.template-ai-loading{min-height:360px;color:var(--muted);place-items:center;padding:24px;font-size:14px;font-weight:700;display:grid}.template-ai-controls{gap:14px;padding:16px;display:grid}.template-ai-status{border-bottom:1px solid var(--border);padding-bottom:14px}.template-ai-status span{color:var(--navy);font-size:12px;font-weight:700}.template-ai-status p{color:var(--text);margin:5px 0 0;font-size:13px;line-height:1.5}.template-ai-warning{color:var(--danger);margin:0;font-size:12px;line-height:1.4}.template-ai-diagnostic{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;padding:10px}.template-ai-diagnostic summary{color:var(--muted);cursor:pointer;font-size:12px;font-weight:700}.template-ai-diagnostic pre{white-space:pre-wrap;word-break:break-word;color:var(--text);margin:10px 0 0;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.template-ai-refine-card{gap:8px;display:grid}.template-ai-refine-card h3{color:var(--navy);margin:-2px 0 2px;font-size:16px}.template-ai-refine-card textarea{background:var(--surface);min-height:132px}.template-ai-refine-card .template-ai-actions{margin-top:4px}.template-ai-downloads{gap:8px;padding-top:2px;display:grid}@media (max-width:900px){.template-ai-grid{grid-template-columns:1fr}}@media (max-width:520px){.template-ai-label-lookup,.template-ai-size-fields,.template-ai-settings-grid{grid-template-columns:1fr}.template-ai-label-lookup .button{width:100%}.template-ai-card-heading{flex-direction:column}}.action-dialog.signage-player-dialog{width:min(96vw,960px);max-width:960px}.signage-player-ratio-list{gap:8px;margin:12px 0 4px;display:grid}.signage-player-ratio{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.signage-player-ratio.selected{border-color:var(--teal);background:#3ab8b714}.signage-player-ratio input{accent-color:var(--teal)}.signage-player-ratio-name{font-weight:600}.signage-player-ratio-detail{color:var(--muted);margin-left:auto;font-size:12px}.signage-player{flex-direction:column;gap:10px;margin-top:8px;display:flex}.signage-player-canvas-wrap{justify-content:center;display:flex}.signage-player-canvas-wrap .signage-canvas{width:100%;max-width:calc(56vh * var(--signage-player-ar,1.78));cursor:default;touch-action:auto}.signage-player-segments{gap:3px;display:flex}.signage-player-segment{background:var(--surface-muted);min-width:20px;height:20px;color:var(--muted);cursor:pointer;border:none;border-radius:5px;flex-basis:0;font-size:11px;line-height:1}.signage-player-segment:hover{background:#3ab8b740}.signage-player-segment.active{background:var(--teal);color:#fff;font-weight:600}.signage-player-scrub{width:100%;accent-color:var(--teal);margin:0}.signage-player-controls{align-items:center;gap:10px;display:flex}.signage-player-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.signage-player-spacer{flex:1}.signage-crash-cards{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.signage-crash-card{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;transition:border-color .15s,box-shadow .15s;display:flex}.signage-crash-card:hover{border-color:var(--primary-color,#2f6feb)}.signage-crash-card.is-active{border-color:var(--primary-color,#2f6feb);box-shadow:0 0 0 1px var(--primary-color,#2f6feb) inset}.signage-crash-card-count{font-variant-numeric:tabular-nums;font-size:1.05rem}.signage-crash-clear{color:var(--primary-color,#2f6feb);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.signage-crash-detail{background:var(--surface-muted,#f6f7f9);padding:.75rem 1rem 1rem}.signage-crash-hint{color:var(--text-muted,#5a6270);align-items:center;gap:.4rem;margin:0 0 .75rem;display:flex}.signage-crash-facts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem 1rem;margin:0 0 .75rem;display:grid}.signage-crash-fact dt{color:var(--text-muted,#5a6270);font-size:.78rem}.signage-crash-fact dd{word-break:break-all;margin:0}.signage-crash-trace-title{margin-bottom:.35rem;display:block}.signage-crash-trace{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);max-height:320px;font-family:var(--font-mono);white-space:pre;border-radius:6px;margin:0;padding:.75rem;font-size:.78rem;line-height:1.5;overflow:auto}.signage-crash-pager{justify-content:flex-end;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.signage-media-filters{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.6rem 1rem .2rem;display:flex}.signage-select.signage-media-category-filter{flex:none;width:200px}.signage-products-empty{color:var(--muted);align-items:center;gap:8px;margin:0;padding:14px 18px;font-size:13px;display:flex}.signage-products-empty>svg{flex:none}.signage-media-search{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);min-width:180px;color:inherit;border-radius:6px;padding:.35rem .6rem}.signage-media-filters select{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);color:inherit;border-radius:6px;padding:.35rem .6rem}.signage-media-filter-chip{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);color:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.25rem;padding:.3rem .6rem;font-size:.8rem;display:inline-flex}.signage-media-filter-chip:hover{border-color:var(--primary-color,#2f6feb)}.signage-media-filter-chip.is-active{border-color:var(--primary-color,#2f6feb);background:var(--primary-color,#2f6feb)}@supports (color:color-mix(in lab, red, red)){.signage-media-filter-chip.is-active{background:color-mix(in srgb, var(--primary-color,#2f6feb) 12%, transparent)}}.signage-media-favorite{color:#fff;cursor:pointer;background:#00000073;border:none;border-radius:6px;padding:4px;display:inline-flex;position:absolute;bottom:6px;left:6px}.signage-media-favorite.is-on{color:#fbbf24}.signage-media-chips{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.signage-media-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:100%;padding:1px 7px;font-size:11px;line-height:17px;display:inline-flex;overflow:hidden}.signage-media-chip.is-optimized{color:#047857;background:#0478571a}.signage-media-chip.is-source{background:var(--surface-muted);color:var(--muted)}.signage-media-chip.is-warn{color:#b45309;background:#b453091f}.signage-media-tags{flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.35rem;display:flex}.signage-media-untagged{border:1px dashed var(--border);color:var(--muted);border-radius:4px;padding:.1rem .4rem;font-size:.72rem}.signage-media-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;margin-top:.35rem;display:flex}.signage-media-actions .signage-media-classify-btn{margin-left:0}.signage-media-category{background:var(--primary-color,#2f6feb);border-radius:4px;padding:.1rem .4rem}@supports (color:color-mix(in lab, red, red)){.signage-media-category{background:color-mix(in srgb, var(--primary-color,#2f6feb) 14%, transparent)}}.signage-media-category{font-size:.72rem}.signage-media-tag{color:var(--text-muted,#5a6270);font-size:.72rem}.signage-media-classify-btn{border:1px solid var(--border-color,#d8dce3);color:var(--text-muted,#5a6270);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.2rem;margin-left:auto;padding:.1rem .35rem;font-size:.72rem;display:inline-flex}.signage-media-classify-btn:hover{border-color:var(--primary-color,#2f6feb);color:var(--primary-color,#2f6feb)}.signage-classify-form{flex-direction:column;gap:.75rem;min-width:320px;display:flex}.signage-classify-actions{justify-content:flex-end;gap:.5rem;display:flex}.eps-image-panel{overflow:visible}.eps-image-toolbar .signage-select{flex:0 0 150px;width:150px}.eps-image-search{align-items:center;gap:6px;width:min(300px,100%);display:flex}.eps-image-search input{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);width:100%;min-width:0;height:34px;color:var(--text);font:inherit;padding:0 10px;font-size:12px}.eps-image-search input:focus-visible{border-color:var(--teal);outline:2px solid var(--teal)}@supports (color:color-mix(in lab, red, red)){.eps-image-search input:focus-visible{outline:2px solid color-mix(in srgb, var(--teal) 22%, transparent)}}.eps-image-search input:focus-visible{outline-offset:1px}.eps-image-storage{border-bottom:1px solid var(--border);background:var(--surface-muted);align-items:center;gap:10px;min-height:54px;padding:9px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.eps-image-storage{background:color-mix(in srgb, var(--surface-muted) 58%, var(--surface))}}.eps-image-storage{color:var(--muted);font-size:12px}.eps-image-storage>svg{color:var(--teal);flex:none}.eps-image-storage-main{flex:280px;gap:5px;min-width:180px;max-width:520px;display:grid}.eps-image-storage-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.eps-image-storage-label strong{color:var(--text);font-size:12px}.eps-image-storage-progress{background:var(--border);border-radius:999px;height:5px;overflow:hidden}.eps-image-storage-progress>span{border-radius:inherit;background:var(--teal);height:100%;display:block}.eps-image-storage-progress.is-full>span{background:var(--danger)}.eps-image-storage-files,.eps-image-storage-status{white-space:nowrap;margin-left:auto}.eps-image-storage-warning{color:var(--danger);white-space:nowrap}.eps-image-breadcrumb{border-bottom:1px solid var(--border);min-height:38px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:3px;padding:6px 12px;display:flex}.eps-image-breadcrumb>span,.eps-image-breadcrumb button{align-items:center;gap:4px;min-width:0;display:inline-flex}.eps-image-breadcrumb>span{max-width:100%}.eps-image-breadcrumb svg{flex:none}.eps-image-breadcrumb button{max-width:240px;color:inherit;cursor:pointer;overflow-wrap:anywhere;text-align:left;white-space:normal;background:0 0;border:0;border-radius:4px;padding:3px 5px;font-size:12px}.eps-image-breadcrumb button:hover,.eps-image-breadcrumb button[aria-current=page]{background:var(--surface-muted);color:var(--text)}.eps-image-breadcrumb button.is-drop-target{background:var(--teal)}@supports (color:color-mix(in lab, red, red)){.eps-image-breadcrumb button.is-drop-target{background:color-mix(in srgb, var(--teal) 14%, var(--surface))}}.eps-image-breadcrumb button.is-drop-target{color:var(--teal);outline:1px solid var(--teal)}.eps-image-grid{padding-top:14px}.eps-folder-card,.eps-image-card{position:relative}.eps-folder-card.is-drop-target{border-color:var(--teal);outline:2px solid var(--teal)}@supports (color:color-mix(in lab, red, red)){.eps-folder-card.is-drop-target{outline:2px solid color-mix(in srgb, var(--teal) 32%, transparent)}}.eps-folder-card.is-drop-target{outline-offset:2px}.eps-image-card.is-dragging{opacity:.55}.eps-folder-open{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:5px;padding:0 0 10px;display:flex}.eps-folder-preview{aspect-ratio:16/9;border-bottom:1px solid var(--border);background:var(--surface-muted);width:100%;color:var(--muted);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));place-items:center;display:grid;overflow:hidden}.eps-folder-preview img{object-fit:cover;width:100%;min-width:0;height:100%;min-height:0;display:block}.eps-folder-preview>:only-child{grid-area:1/1/-1/-1}.eps-folder-preview[data-image-count="2"]{grid-template-rows:minmax(0,1fr)}.eps-folder-preview[data-image-count="3"]>img:first-child{grid-area:1/1}.eps-folder-preview[data-image-count="3"]>img:nth-child(2){grid-area:2/1}.eps-folder-preview[data-image-count="3"]>img:nth-child(3){grid-area:1/2/-1}.eps-folder-name,.eps-folder-open small{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 24px);margin-inline:11px;overflow:hidden}.eps-folder-name{align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:600;display:flex}.eps-folder-name svg{color:var(--teal);flex:none}.eps-folder-open small{color:var(--muted);font-size:11.5px}.eps-folder-counts,.eps-image-metadata{flex-wrap:wrap;gap:6px 14px;display:flex}.eps-folder-counts>span,.eps-image-metadata>span{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.eps-folder-counts svg,.eps-image-metadata svg{flex:none}.eps-image-thumb{background:var(--surface-muted);cursor:grab}.eps-image-thumb:active{cursor:grabbing}.eps-image-thumb img{object-fit:contain}.eps-image-card-action{z-index:2;color:#fff;cursor:pointer;background:#111827c7;border:1px solid #ffffff80;border-radius:5px;justify-content:center;align-items:center;width:27px;height:27px;padding:0;display:inline-flex;position:absolute}.eps-image-card-action:hover{background:#111827}.eps-image-card-action.is-delete{top:7px;right:7px}.eps-image-card-action.is-move,.eps-image-card-action.is-rename{top:7px;right:40px}.eps-image-loading{min-height:120px;color:var(--muted);justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.eps-image-pager{margin-top:12px}.eps-image-upload-dialog,.eps-image-detail-dialog{width:min(620px,92vw);position:relative}.eps-image-detail-dialog{flex-direction:column;width:min(960px,94vw);max-height:calc(100dvh - 40px);display:flex;overflow:hidden}.eps-image-detail-dialog>h3{text-overflow:ellipsis;white-space:nowrap;flex:none;min-width:0;padding-right:28px;overflow:hidden}.eps-image-upload-form,.eps-image-new-folder-form,.eps-image-move-form{gap:12px;display:grid}.eps-image-detail-body{overscroll-behavior:contain;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:28px;min-height:0;display:grid;overflow-y:auto}.eps-image-upload-target{border:1px solid var(--border);background:var(--surface-muted);border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 8px;padding:10px 12px;display:grid}.eps-image-upload-target>svg{color:var(--teal);grid-row:1/span 2}.eps-image-upload-target>span{color:var(--muted);font-size:11px}.eps-image-upload-target>strong{overflow-wrap:anywhere;font-size:13px}.eps-image-select-field{gap:6px;display:grid}.eps-image-select-field>span{color:var(--muted);font-size:12px;font-weight:600}.eps-image-select-field .signage-select{width:100%}.eps-image-select-field .signage-select-trigger{justify-content:flex-start;width:100%}.eps-image-select-field .signage-select-chevron{margin-left:auto}.eps-image-dropzone{min-height:170px}.eps-image-file-check{border:1px solid var(--border);background:var(--surface-muted);border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 8px;padding:10px 12px;display:grid}.eps-image-file-check>span{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.eps-image-file-check small{color:var(--muted);grid-column:2}.eps-image-file-list{gap:7px;max-height:230px;display:grid;overflow-y:auto}.eps-image-file-check.is-error,.eps-image-field-error{color:var(--danger)}.eps-image-field-error{margin:-7px 0 0;font-size:12px}.eps-image-detail-preview{background:var(--surface-muted);border-radius:6px;place-items:center;min-width:0;height:clamp(280px,55vh,520px);display:grid;overflow:hidden}.eps-image-detail-preview img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.eps-image-detail-info{flex-direction:column;gap:20px;min-width:0;display:flex}.eps-image-detail-list{gap:18px;min-width:0;margin:0;font-size:13px;display:grid}.eps-image-detail-list>div{grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:12px;display:grid}.eps-image-detail-list dt{color:var(--muted);font-size:12px}.eps-image-detail-list dd{overflow-wrap:anywhere;min-width:0;color:var(--text);margin:0}.eps-image-detail-list>.eps-image-detail-filename{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr);gap:6px;padding-bottom:18px}.eps-image-filename-row{align-items:center;gap:8px;min-height:34px;display:flex}.eps-image-filename{flex:1;min-width:0;font-size:14px;font-weight:500}.eps-image-filename-row input{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);width:100%;min-width:0;height:34px;color:var(--text);font:inherit;flex:1;padding:0 8px}.eps-image-filename-row input:focus-visible{border-color:var(--teal);outline:2px solid var(--teal)}@supports (color:color-mix(in lab, red, red)){.eps-image-filename-row input:focus-visible{outline:2px solid color-mix(in srgb, var(--teal) 22%, transparent)}}.eps-image-filename-row input:focus-visible{outline-offset:1px}.eps-image-filename-action{flex:0 0 34px;width:34px;height:34px}.eps-image-detail-filename .eps-image-field-error{margin:8px 0 0}.eps-image-detail-actions{border-top:1px solid var(--border);flex-wrap:wrap;flex:none;margin-top:0;padding-top:14px}@media (max-width:680px){.eps-image-detail-body{grid-template-columns:minmax(0,1fr);gap:20px}.eps-image-detail-preview{height:clamp(180px,35vh,320px)}.eps-image-toolbar .list-toolbar-filters>*{min-width:0}.eps-image-toolbar .signage-select{flex:140px;width:auto}.eps-image-search{width:100%}.eps-image-storage{flex-wrap:wrap;align-items:flex-start}.eps-image-storage-main{max-width:none}.eps-image-storage-files,.eps-image-storage-status,.eps-image-storage-warning{width:100%;margin-left:28px}}.signage-import-dialog{width:92vw;max-width:900px}.signage-import{flex-direction:column;gap:.75rem;display:flex}.signage-import-head{flex-direction:column;gap:.2rem;display:flex}.signage-import-tabs{gap:.4rem;display:flex}.signage-import-body{grid-template-columns:minmax(180px,260px) 1fr;gap:1rem;min-height:320px;display:grid}@media (max-width:720px){.signage-import-body{grid-template-columns:1fr}}.signage-import-sources{flex-direction:column;gap:.4rem;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.signage-import-source{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.35rem;display:flex}.signage-import-source:hover{border-color:var(--primary-color,#2f6feb)}.signage-import-source.is-active{border-color:var(--primary-color,#2f6feb);box-shadow:0 0 0 1px var(--primary-color,#2f6feb) inset}.signage-import-source .signage-slide-preview{flex:0 0 64px;width:64px}.signage-import-source-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.82rem;overflow:hidden}.signage-import-detail{flex-direction:column;gap:.6rem;display:flex}.signage-import-slide-tabs{flex-wrap:wrap;gap:.25rem;display:flex}.signage-import-slide-tab{border:1px solid var(--border-color,#d8dce3);background:var(--surface-color,#fff);min-width:30px;color:inherit;cursor:pointer;border-radius:6px;padding:.2rem .45rem}.signage-import-slide-tab.is-active{border-color:var(--primary-color,#2f6feb);background:var(--primary-color,#2f6feb)}@supports (color:color-mix(in lab, red, red)){.signage-import-slide-tab.is-active{background:color-mix(in srgb, var(--primary-color,#2f6feb) 12%, transparent)}}.signage-import-layers{flex:1;max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.signage-import-layer{border-bottom:1px solid var(--border-color,#eceef1);cursor:pointer;align-items:center;gap:.5rem;padding:.3rem .2rem;display:flex}.signage-import-layer-type{color:var(--text-muted,#5a6270);flex:0 0 68px;font-size:.75rem}.signage-import-layer-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.signage-import-actions{flex-wrap:wrap;gap:.4rem;display:flex}.signage-import-foot{justify-content:flex-end;display:flex}.easy-aims-notices{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.easy-aims-card-heading{color:var(--teal);align-items:center;gap:8px;padding-bottom:1rem;display:flex}.easy-aims-card-heading .admin-section-title{margin-bottom:0}.easy-aims-card-desc{color:var(--muted);margin:6px 0 16px;font-size:13px;line-height:1.5}.easy-aims-toggle-list{flex-direction:column;gap:10px;display:flex}.easy-aims-toggle{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:14px 16px}.easy-aims-toggle .cb-label{align-items:flex-start}.easy-aims-toggle .cb-box{margin-top:2px}.easy-aims-toggle .cb-label-text{font-size:13.5px;font-weight:600}.easy-aims-toggle-desc{color:var(--muted);margin:6px 0 0 24px;font-size:12.5px;line-height:1.55}.easy-aims-inline-error{margin-top:12px}.easy-aims-card-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:14px;display:flex}.menu-visibility-page{max-width:1280px}.menu-visibility-card .easy-aims-card-heading{flex-wrap:wrap;gap:8px}.menu-visibility-summary{color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:10px;padding:2px 9px;font-size:12px}.menu-visibility-summary strong{color:var(--danger);font-weight:700}.menu-visibility-toolbar-actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.menu-visibility-layout{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:16px;margin-top:14px;display:grid}@media (max-width:900px){.menu-visibility-layout{grid-template-columns:1fr}}.menu-visibility-tree{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;max-height:620px;padding:8px 6px;overflow-y:auto}.menu-visibility-row{border-radius:7px;align-items:center;gap:2px;transition:background .1s;display:flex;position:relative}.menu-visibility-row:hover{background:#eef7f7}.menu-visibility-row--selected{background:#e2f4f3}.menu-visibility-row--selected:before{content:"";background:var(--teal);border-radius:0 3px 3px 0;width:3px;position:absolute;top:4px;bottom:4px;left:0}.menu-visibility-chevron{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex}.menu-visibility-chevron:hover{color:var(--teal)}.menu-visibility-chevron-spacer{flex:none;width:18px}.menu-visibility-label{cursor:pointer;text-align:left;color:#1f2937;background:0 0;border:none;border-radius:6px;flex:1;align-items:center;gap:6px;min-width:0;padding:6px 8px 6px 4px;display:flex}.menu-visibility-label-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-visibility-row--l1 .menu-visibility-label-text{letter-spacing:.02em;color:var(--navy);font-size:13px;font-weight:700}.menu-visibility-row--l1{margin-top:6px}.menu-visibility-row--l1:first-child,.menu-visibility-node:first-child>.menu-visibility-row--l1{margin-top:0}.menu-visibility-row--l2 .menu-visibility-label-text{color:#334155;font-size:12.5px;font-weight:600}.menu-visibility-row--l3 .menu-visibility-label-text{color:#475569;font-size:12.5px;font-weight:500}.menu-visibility-row--l4 .menu-visibility-label-text{color:#64748b;font-size:12px;font-weight:400}.menu-visibility-row--l2 .menu-visibility-label:before,.menu-visibility-row--l3 .menu-visibility-label:before,.menu-visibility-row--l4 .menu-visibility-label:before{content:"";background:#cbd5e1;border-radius:50%;flex:none}.menu-visibility-row--l2 .menu-visibility-label:before{background:var(--teal);width:5px;height:5px}.menu-visibility-row--l3 .menu-visibility-label:before{width:4px;height:4px}.menu-visibility-row--l4 .menu-visibility-label:before{width:3px;height:3px}.menu-visibility-children{position:relative}.menu-visibility-children:before{content:"";top:0;bottom:4px;left:var(--menu-guide-left,17px);background:#e2e8f0;width:1px;position:absolute}.menu-visibility-node>.menu-visibility-row--l1+.menu-visibility-children{--menu-guide-left:17px}.menu-visibility-node>.menu-visibility-row--l2+.menu-visibility-children{--menu-guide-left:35px}.menu-visibility-node>.menu-visibility-row--l3+.menu-visibility-children{--menu-guide-left:53px}.menu-visibility-row--off .menu-visibility-label-text{color:#9ca3af;text-decoration:line-through;text-decoration-thickness:1px}.menu-visibility-row--masked .menu-visibility-label-text{color:#9ca3af}.menu-visibility-chip{white-space:nowrap;letter-spacing:.01em;border-radius:9px;flex:none;padding:1px 6px;font-size:10px;font-weight:700}.menu-visibility-chip--off{color:#b91c1c;background:#fee2e2}.menu-visibility-chip--masked{color:#92400e;background:#fef3c7}.menu-visibility-detail{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:14px;min-height:260px;padding:18px 20px;display:flex}.menu-visibility-detail--empty{color:var(--muted);background:var(--surface-muted);justify-content:center;align-items:center;font-size:13px}.menu-visibility-detail-head{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding-bottom:14px;display:flex}.menu-visibility-path{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px;font-size:14px;display:flex}.menu-visibility-path-step{align-items:center;gap:2px;display:inline-flex}.menu-visibility-path-step strong{color:var(--text);font-size:16px;font-weight:700}.menu-visibility-path-sep{color:#cbd5e1;margin:0 4px}.menu-visibility-path-link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.menu-visibility-path-link:hover{color:var(--teal-dark);text-decoration:underline}.menu-visibility-detail-meta{align-items:center;gap:8px;display:flex}.menu-visibility-level{color:#fff;background:var(--navy);border-radius:10px;padding:2px 8px;font-size:10.5px;font-weight:700}.menu-visibility-level--l2{background:var(--teal-dark)}.menu-visibility-level--l3{background:#64748b}.menu-visibility-level--l4{background:#94a3b8}.menu-visibility-setting{flex-direction:column;gap:2px;display:flex}.menu-visibility-setting-title{color:#334155;font-size:13px;font-weight:700}.menu-visibility-setting-desc{margin-left:0}.menu-visibility-bulk-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.menu-visibility-dirty{color:var(--caution);margin-right:auto;font-size:12px;font-weight:600}.easy-aims-id-form{border-bottom:1px solid var(--border);gap:8px;margin-bottom:14px;padding-bottom:14px;display:flex}.easy-aims-id-form .text-field{flex:1}.easy-aims-id-form--stacked{flex-direction:column;align-items:stretch;gap:12px}.easy-aims-id-form-main{gap:8px;display:flex}.easy-aims-id-form-main .text-field{flex:1}.easy-aims-id-actions{flex:none;align-items:center;gap:4px;display:flex}.easy-aims-edit-dialog{width:min(600px,100vw - 40px)}.easy-aims-id-status{vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.easy-aims-id-status--expired{color:#dc2626;background:#dc26261a}.easy-aims-id-status--pending{color:#b45309;background:#d977061f}.date-time-range-field{min-width:0}.date-time-range-slots{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.date-time-range-slot{flex:1;min-width:190px;max-width:260px}.date-time-range-slot .date-time-picker-field>span{color:var(--muted);margin-bottom:5px;font-size:12px;font-weight:500;display:block}.date-time-range-separator{color:var(--muted);padding-bottom:11px}.date-time-range-unlimited-box{border:1px dashed var(--border);background:var(--surface-muted);height:40px;color:var(--muted);border-radius:8px;align-items:center;padding:0 12px;font-size:13px;display:flex}.date-time-range-unlimited-toggle{padding-bottom:11px}.date-time-range-error{margin-top:8px}.easy-aims-id-toolbar{gap:8px;margin-bottom:10px;display:flex}.easy-aims-id-toolbar .text-field{flex:1;max-width:320px}.easy-aims-id-footer{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.easy-aims-id-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.easy-aims-id-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;display:flex}.easy-aims-id-row:last-child{border-bottom:none}.easy-aims-id-info{flex-direction:column;gap:2px;min-width:0;display:flex}.easy-aims-id-name{color:var(--text);word-break:break-all;font-size:13px;font-weight:500}.easy-aims-id-meta{color:var(--muted);font-size:11.5px}.easy-aims-id-empty{color:var(--muted);padding:12px 2px;font-size:13px}.led-pattern-diagram-panel{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 52px;padding:18px 24px;display:flex}.led-pattern-diagram{width:min(100%,480px);height:auto}.led-pattern-legend{gap:10px;margin:0;padding:0;list-style:none;display:grid}.led-pattern-legend li{align-items:center;gap:8px;display:flex}.led-pattern-legend-badge{border:1.5px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.led-pattern-legend-badge--on{color:var(--danger)}.led-pattern-legend-badge--off{color:#9ca3af}.led-pattern-legend-badge--idle{color:#0ea5e9}.led-pattern-legend-badge--count{color:var(--navy)}.led-pattern-legend-name{color:#374151;font-size:13px;font-weight:700}.led-pattern-legend-help{color:#9ca3af;cursor:help;display:inline-flex}.led-pattern-legend-help:hover{color:#6b7280}.led-pattern-table .selection-col{text-align:center;width:46px}.led-pattern-table .selection-col input[type=checkbox]{width:14px;min-width:14px;height:14px;accent-color:var(--teal);padding:0}.led-pattern-table .selection-col input[type=checkbox]:disabled{cursor:not-allowed;opacity:.35}.led-pattern-row{cursor:pointer}.led-pattern-row:hover,.led-pattern-row:focus{background:#f8fbfc;outline:none}.led-pattern-default-badge{border:1px solid var(--border);color:#64748b;font-family:var(--font-sans);vertical-align:1px;background:#f3f6f8;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.led-pattern-table-actions{border-top:1px solid var(--border);border-bottom:0}.led-pattern-dialog{width:min(100%,640px)}.action-dialog.led-pattern-dialog>.led-pattern-dialog-title{overflow-wrap:anywhere;padding-right:32px;font-size:27px;font-weight:600;line-height:1.25}.led-pattern-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.led-pattern-form-grid label{align-content:start;gap:6px;display:grid}.led-pattern-form-grid .led-pattern-name-field{grid-column:1/-1}.led-pattern-field-label{color:#1f2937;align-items:baseline;gap:6px;font-size:13px;font-weight:700;display:flex}.led-pattern-field-label em{color:#9ca3af;font-size:11px;font-style:normal;font-weight:600}.led-pattern-field-hint{color:#9ca3af;font-size:11px;font-weight:500}.led-pattern-alert-list{gap:4px;margin:0;padding-left:18px;display:grid}.led-tester{background:#0f172a;border:1px solid #1e293b;border-radius:10px;position:relative}.led-tester-stage{align-items:center;gap:14px;min-height:64px;padding:12px 16px;display:flex}.led-tester-lamp{background:#1e293b;border:2px solid #f8fafc1f;border-radius:50%;flex:none;width:26px;height:26px}.led-tester-status{gap:2px;min-width:0;display:grid}.led-tester-status strong{color:#e2e8f0;font-size:12px;font-weight:700}.led-tester-status span{color:#94a3b8;font-size:12px}.led-tester-controls{align-items:center;gap:8px;margin-left:auto;display:flex}.led-tester-replay,.led-tester-settings{color:#e2e8f0;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.led-tester-replay:hover,.led-tester-settings:hover,.led-tester-settings[aria-expanded=true]{background:#334155}.led-tester-replay:focus-visible,.led-tester-settings:focus-visible{outline-offset:2px;outline:2px solid #5eead4}.led-tester-options{z-index:5;border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:max-content max-content;align-items:center;gap:8px 16px;padding:10px 12px;display:grid;position:absolute;top:calc(100% + 8px);right:8px;box-shadow:0 12px 32px #0f172a38}.led-tester-options[hidden]{display:none}.led-tester-option-label{color:#374151;text-align:left;white-space:nowrap;min-width:0;font-size:12px;font-weight:700}.led-tester-swatches{gap:4px;display:flex}.led-tester-swatch{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:inline-flex}.led-tester-swatch:hover{border-color:var(--border);background:#f3f6f8}.led-tester-swatch.selected{border-color:var(--teal);box-shadow:0 0 0 2px #3ab8b733}.led-tester-options>select{width:120px;height:32px;padding:0 8px;font-size:12px}.led-tester-safety-toggle{width:auto;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-self:start;align-items:center;padding:0;line-height:1;display:inline-flex}.led-tester-safety-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #3ab8b733}@media (max-width:640px){.led-pattern-form-grid{grid-template-columns:1fr}}.signage-wall-layout{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (max-width:960px){.signage-wall-layout{grid-template-columns:1fr}}.signage-wall-side{flex-direction:column;gap:12px;display:flex}.signage-wall-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.signage-wall-preset{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--navy);border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;font-size:13px;font-weight:600;transition:border-color .15s,background .15s;display:flex}.signage-wall-preset:hover{border-color:var(--teal-dark);background:var(--bg)}.signage-wall-preset-count{color:#6b7280;font-size:11px;font-weight:500}.signage-wall-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.signage-wall-item{border:1px solid var(--border);border-radius:10px;align-items:center;gap:6px;padding:4px 8px 4px 4px;display:flex}.signage-wall-item.is-editing{border-color:var(--teal-dark)}.signage-wall-item-open{cursor:pointer;text-align:left;min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:1px;padding:6px 8px;display:flex}.signage-wall-main{flex-direction:column;gap:12px;min-width:0;display:flex}.signage-wall-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.signage-wall-name{min-width:240px}.signage-wall-canvas{aspect-ratio:16/9;background:#0f172a;border-radius:12px;width:100%;position:relative;overflow:hidden}.signage-wall-cell{color:#e2e8f0;text-align:center;background:#1e293b;outline:2px solid #0f172a;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex;position:absolute;overflow:hidden}.signage-wall-cell.is-filled{background:#14532d}.signage-wall-cell-pick{color:#e2e8f0;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#0f172a;border:1px solid #334155;border-radius:6px;max-width:100%;padding:4px 10px;font-size:12px;overflow:hidden}.signage-wall-cell-pick:hover,.signage-wall-cell-pick:focus-visible{border-color:var(--teal)}.signage-wall-cell-hint{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.signage-wall-cell-warn{color:#fbbf24;font-size:11px}.signage-wall-size{align-items:flex-end;gap:8px;display:flex}.signage-wall-size .label-field{flex:1;min-width:0}.signage-wall-bezel{flex:0 0 116px;width:116px}.signage-wall-size input{width:100%}.signage-wall-size-x{color:#6b7280;padding-bottom:8px;font-weight:600}.signage-wall-item-actions{flex-shrink:0;gap:4px;display:flex}.signage-wall-item-action{border:1px solid var(--border);background:var(--surface);color:var(--navy);cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:5px 8px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.signage-wall-item-action:hover{border-color:var(--teal-dark);color:var(--teal-dark)}.signage-wall-item-action.is-danger:hover{color:#dc2626;border-color:#dc2626}.signage-import-canvas{border:1px solid var(--border);background:#0b1220;border-radius:8px;justify-content:center;align-items:center;height:min(46vh,420px);margin-bottom:10px;display:flex;overflow:hidden;container-type:size}.signage-scene-thumb .signage-slide-preview,.signage-import-canvas .signage-slide-preview{height:min(100cqh, 100cqw / var(--ar,1.7778));width:auto;max-width:none}.signage-media-detail-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;margin:12px 0 4px;display:grid}.signage-media-detail-grid>div{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;padding:6px 0;font-size:13px;display:flex}.signage-media-detail-grid dt{color:#6b7280;flex:0 0 62px;font-size:12px;font-weight:600}.signage-media-detail-grid dd{min-width:0;color:var(--navy);margin:0}.signage-media-detail-file{word-break:break-all;font-family:var(--font-mono);font-size:12px}.signage-media-detail-heading{color:var(--navy);margin:18px 0 4px;font-size:14px}.signage-select{width:100%;position:relative}.signage-select-trigger{border:1px solid var(--border);background:var(--surface);width:100%;height:42px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:14px;display:flex}.signage-select-trigger:focus-visible{outline:2px solid var(--navy);outline-offset:1px}.signage-select-trigger:disabled{opacity:.55;cursor:default;background:#f1f5f9}.signage-select-value{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.signage-select-chevron{color:var(--muted);flex:none;transition:transform .15s}.signage-select-chevron.is-open{transform:rotate(180deg)}.signage-select-list{z-index:40;border:1px solid var(--border);background:var(--surface);border-radius:10px;width:max-content;min-width:100%;max-width:min(320px,90vw);max-height:280px;margin:0;padding:5px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto;overflow-y:auto;box-shadow:0 10px 26px #0f172a24}.signage-select-list.is-portaled{z-index:1000;overscroll-behavior:contain;min-width:0;max-width:calc(100vw - 16px);position:fixed}.signage-select-option{color:var(--text);cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.signage-select-option-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.signage-select-icon{width:16px;height:16px;color:var(--text);flex:none;display:inline-flex}.signage-select-icon svg{width:100%;height:100%}.signage-select-option-hint{color:var(--muted);font-size:12px}.signage-select-option.is-active{background:var(--surface-muted,#f1f5f9)}.signage-select-option.is-selected{color:var(--navy);font-weight:700}.signage-canvas-plane.transparent-sim,.signage-thumb-canvas.transparent-sim{background-color:#eef1f5;background-image:linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%),linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%);background-position:0 0,8px 8px;background-size:16px 16px}.signage-transparent-row{align-items:center;gap:12px;margin-top:2px;display:flex}.signage-transparent-preset{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--text);cursor:pointer;border-radius:8px;flex:none;padding:0 12px;font-size:12px}.signage-transparent-preset:hover{border-color:var(--teal);color:var(--teal-dark)}.signage-transparent-toggle{flex:1}.signage-color-field{min-width:0;position:relative}.signage-color-trigger{border:1px solid var(--border);background:var(--surface);width:100%;height:40px;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.signage-color-trigger:hover{border-color:var(--teal)}.signage-color-chip{border:1px solid var(--border);background-color:#fff;background-image:linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%),linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%);background-position:0 0,5px 5px;background-size:10px 10px;border-radius:5px;flex:none;width:20px;height:20px;position:relative;overflow:hidden}.signage-color-chip i{display:block;position:absolute;inset:0}.signage-color-readout{white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);font-size:12px;overflow:hidden}.signage-color-pop{z-index:40;border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;width:228px;padding:10px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 10px 26px #0f172a29}.signage-color-pop.align-right{left:auto;right:0}.signage-color-sv{border:1px solid var(--border);cursor:crosshair;touch-action:none;border-radius:8px;height:132px;position:relative}.signage-color-sv-cursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0f172a73}.signage-color-bar{cursor:pointer;touch-action:none;border-radius:999px;height:14px;position:relative}.signage-color-bar-thumb{pointer-events:none;border:2px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0f172a66}.signage-color-bar-alpha{background-color:#fff;background-image:linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%),linear-gradient(45deg,#d7dce4 25%,#0000 25% 75%,#d7dce4 75%);background-position:0 0,5px 5px;background-size:10px 10px}.signage-color-bar-fill{pointer-events:none;border-radius:999px;position:absolute;inset:0}.signage-color-mode{border:1px solid var(--border);background:var(--surface-muted,#f1f5f9);border-radius:8px;flex:auto;padding:2px;display:flex}.signage-color-mode button{height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;font-size:11px;font-weight:700}.signage-color-mode button.is-active{background:var(--teal);color:#fff}.signage-color-pop-row{align-items:center;gap:6px;display:flex}.signage-color-rgb{gap:6px;display:flex}.signage-color-rgb label{text-align:center;flex-direction:column;flex:1;align-items:stretch;gap:2px;min-width:0;display:flex}.signage-color-rgb label span{color:var(--muted);font-size:10px;font-weight:700}.signage-color-rgb input{text-align:center;min-width:0;height:32px;padding:0 6px;font-size:12px}.signage-color-pop .signage-color-hex{width:100%;height:34px;font-family:var(--font-mono);padding:0 8px;font-size:12px}.signage-color-pop-row .signage-color-hex{min-width:0;height:34px;font-family:var(--font-mono);flex:auto;padding:0 8px;font-size:12px}.signage-color-alpha{color:var(--muted);flex:none;align-items:center;gap:3px;font-size:12px;display:inline-flex}.signage-color-alpha input{width:56px;height:34px;padding:0 6px;font-size:12px}.signage-wall-guide{z-index:60;pointer-events:none;position:absolute;inset:0}.signage-wall-guide-cell{box-sizing:border-box;border:1px dashed #ff7a00d9;position:absolute}.signage-wall-guide-cell em{color:#ff7a00;white-space:nowrap;background:#0000008c;border-radius:4px;padding:1px 5px;font-size:10px;font-style:normal;position:absolute;top:2px;left:4px}.signage-wall-guide-name{color:#ff7a00;background:#0000008c;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600;position:absolute;bottom:4px;right:6px}.signage-wall-item-preview{border-radius:8px;margin-top:6px;display:block;position:relative;overflow:hidden}.signage-wall-item-preview-cells{pointer-events:none;position:absolute;inset:0}.signage-wall-item-preview-cells i{box-sizing:border-box;border:1px dashed #ffffffbf;position:absolute}.signage-media-preview{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;margin:12px 0 4px;display:flex}.signage-media-preview img,.signage-media-preview video{background:#000;border-radius:8px;max-width:100%;max-height:46vh}.button-config-table{min-width:1080px}.button-config-table .selection-col{text-align:center;width:46px}.button-config-table .selection-col input[type=checkbox]{width:14px;min-width:14px;height:14px;accent-color:var(--teal);padding:0}.button-config-table .selection-col input[type=checkbox]:disabled{cursor:not-allowed;opacity:.35}.button-config-table th>span,.button-config-table th>small{color:#64748b;font-size:10.5px;font-weight:700;line-height:1.4;display:block}.button-config-table tbody td{padding-top:12px;padding-bottom:12px}.button-config-row{cursor:pointer}.button-config-row:hover,.button-config-row:focus{background:#f8fbfc;outline:none}.button-config-action-pair{gap:5px;min-width:150px;display:grid}.button-config-action-pair>span{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;display:grid}.button-config-action-pair b{color:#64748b;letter-spacing:.04em;background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;justify-content:center;align-items:center;min-height:20px;font-size:9px;font-weight:700;display:inline-flex}.button-config-action-pair>span:first-child b{color:#0f766e;background:#3ab8b714;border-color:#3ab8b76b}.button-config-action-pair em{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;font-weight:700;overflow:hidden}.button-config-action-pair em.muted{color:#94a3b8;font-weight:600}.button-config-default-badge{border:1px solid var(--border);color:#64748b;font-family:var(--font-sans);vertical-align:1px;background:#f3f6f8;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.button-config-power{letter-spacing:.04em;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;min-width:42px;min-height:24px;font-size:10px;font-weight:700;display:inline-flex}.button-config-power.on{color:#0f766e;background:#3ab8b71a;border-color:#3ab8b773}.button-config-power.off{color:#64748b;background:#f8fafc}.button-config-table-actions{border-top:1px solid var(--border);border-bottom:0}.button-config-alert-list{gap:4px;margin:0;padding-left:18px;display:grid}.action-dialog.button-config-dialog{width:min(96vw,980px)}.action-dialog.button-config-dialog>h3{overflow-wrap:anywhere;padding-right:34px;font-size:25px;font-weight:600;line-height:1.25}.button-config-dialog-description{margin-top:-4px!important}.button-config-name-field{gap:7px;display:grid}.button-config-name-field>span{color:#1f2937;align-items:baseline;gap:7px;font-size:13px;font-weight:700;display:flex}.button-config-name-field em{color:#94a3b8;font-size:11px;font-style:normal;font-weight:600}.button-config-name-field input:disabled{color:#64748b;cursor:not-allowed;background:#f1f5f9}.button-config-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.button-config-form-card{border:1px solid #dbe4e8;border-top:3px solid var(--navy);background:#fbfdfe;border-radius:10px;align-content:start;gap:13px;min-width:0;padding:14px;display:grid}.button-config-form-card>header{border-bottom:1px solid #e5edf0;align-items:center;gap:10px;padding-bottom:11px;display:flex}.button-config-form-card>header>span{background:var(--navy);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.button-config-form-card>header>div{gap:1px;display:grid}.button-config-form-card>header strong{color:#1e293b;font-size:13px;font-weight:700}.button-config-form-card>header small{color:#94a3b8;letter-spacing:.08em;font-size:9px;font-weight:700}.button-config-form-card .label-field{gap:6px}.button-config-form-card .label-field-title{color:#475569;font-size:11px;font-weight:600}.button-config-form-card .select-field-trigger{background:var(--surface);min-height:38px;font-size:13px;font-weight:600}.button-config-lp-tooltip{min-width:0;display:grid}.button-config-lp-tooltip button:disabled{pointer-events:none}.button-config-power-section{grid-template-columns:minmax(190px,230px) minmax(0,1fr);align-items:center;gap:14px;display:grid}.button-config-power-field{background:#fbfdfe;border:1px solid #dbe4e8;border-radius:9px;align-items:center;gap:10px;min-height:62px;padding:10px 14px;display:flex}.button-config-power-label{color:#1f2937;font-size:13px;font-weight:700}.button-config-power-toggle{background:0 0;border:0;padding:0;display:inline-flex}.button-config-power-toggle:disabled{cursor:not-allowed;opacity:.55}.button-config-power-state{color:#64748b;letter-spacing:.06em;min-width:24px;font-size:11px;font-weight:700}.button-config-support-note{color:#7c5c18;background:#fffaf0;border:1px solid #f0d89b;border-radius:9px;align-items:center;gap:9px;min-height:62px;padding:10px 12px;display:flex}.button-config-support-note svg{flex:none}.button-config-support-note p{color:inherit;font-size:11px;font-weight:700;line-height:1.5}@media (max-width:860px){.button-config-form-grid{grid-template-columns:1fr}.button-config-power-section{grid-template-columns:1fr;align-items:stretch}}input:where(:not(.fems-workspace *)):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):not([type=range]):disabled,textarea:where(:not(.fems-workspace *)):disabled,select:where(:not(.fems-workspace *)):disabled{color:var(--muted);cursor:not-allowed;background-color:#f1f5f9}a.topbar-pill-user{color:inherit;cursor:pointer;text-decoration:none;transition:background .15s}a.topbar-pill-user:hover{background:#f3f4f6}.account-profile-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.account-profile-identity{align-items:center;gap:14px;min-width:0;display:flex}.account-avatar{width:46px;height:46px;color:var(--teal-dark);background:#3ab8b724;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:inline-flex}.account-profile-text{flex-direction:column;gap:2px;min-width:0;display:flex}.account-profile-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.account-profile-text span{color:var(--muted);font-size:13px}.account-profile-account{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-profile-actions{flex-wrap:wrap;gap:8px;display:flex}.account-section-title{margin:24px 0 10px;font-size:15px;font-weight:600}.account-section-count{color:var(--muted);margin-left:4px;font-weight:400}.local-accounts-table{margin-top:18px;overflow-x:auto}.local-accounts-table table{border-collapse:collapse;width:100%;min-width:680px}.local-accounts-table th,.local-accounts-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 14px}.local-accounts-table th{color:var(--muted);font-weight:600}.local-accounts-table td:first-child,.local-accounts-table td:nth-child(4){text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.local-accounts-table td:last-child{white-space:nowrap}.aims-account-connection .easy-aims-card-heading{flex-wrap:wrap}.aims-account-connection .easy-aims-card-heading>span{overflow-wrap:anywhere}.aims-account-connection p{color:var(--muted);margin:12px 0 0}.account-session-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.account-session-branch{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 16px}.account-session-branch--ended{background:var(--surface-muted);border-style:dashed}.account-session-row{align-items:center;gap:14px;display:flex}.account-session-row--ended .account-session-name,.account-session-row--ended .account-session-meta,.account-session-row--ended .account-session-icon{color:var(--muted)}.account-session-row--ended .account-session-name{font-weight:400}.account-session-children{border-left:2px solid var(--border);margin:10px 0 0 9px;padding-left:16px}.account-session-children-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.account-session-toggle,.account-session-bulk{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.account-session-toggle{align-items:center;gap:4px;display:inline-flex}.account-session-bulk{text-underline-offset:2px;flex-shrink:0;text-decoration:underline}.account-session-bulk:hover{color:var(--danger)}.account-session-child-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.account-session-row--child{background:var(--surface-muted);border-radius:10px;padding:10px 12px}.account-session-branch--ended .account-session-row--child{background:var(--surface);border:1px solid var(--border)}.account-session-icon{color:var(--muted);flex-shrink:0}.account-session-info{flex:1;min-width:0}.account-session-name{flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:500;display:flex}.account-session-row--child .account-session-name{font-size:13px}.account-session-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;overflow:hidden}.account-badge{border:1px solid var(--border);color:var(--muted);background:var(--surface-muted);border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;display:inline-flex}.account-badge--current{color:var(--teal-dark);background:#3ab8b71f;border-color:#3ab8b766}.account-badge--muted{color:var(--muted)}.account-session-placeholder{color:var(--muted);padding:18px 4px;font-size:13px}.account-confirm-note{color:var(--caution);margin-top:8px;font-size:12.5px}@media (max-width:640px){.account-profile-card{flex-direction:column;align-items:stretch}.account-profile-actions{justify-content:flex-end}.account-session-row{flex-wrap:wrap}.account-session-children{margin-left:2px;padding-left:10px}}.login-audit-toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.login-audit-toolbar .text-field{flex:1;min-width:220px;max-width:320px}.login-audit-toolbar .login-audit-ip-field{min-width:160px;max-width:220px}.login-audit-toolbar .select-field,.login-audit-toolbar label{min-width:160px}.login-audit-table .login-audit-time{white-space:nowrap}.login-audit-table .login-audit-detail{text-overflow:ellipsis;white-space:nowrap;max-width:260px;color:var(--muted);overflow:hidden}.login-audit-event{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.login-audit-event--ok{color:var(--teal-dark);background:#3ab8b724}.login-audit-event--warn{color:#b45309;background:#f59e0b24}.login-audit-event--danger{color:#b91c1c;background:#ef44441f}.login-audit-event--neutral{background:var(--surface-muted);color:var(--muted)}.session-state-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.session-state-badge--online{color:var(--teal-dark);background:#3ab8b724}.session-state-badge--offline{background:var(--surface-muted);color:var(--muted)}.easy-aims-session-table{min-width:1360px}.easy-aims-session-table td{white-space:normal;overflow-wrap:anywhere;padding-block:10px}.easy-aims-session-account{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.oauth-complete-actions{flex-direction:column;gap:10px;margin-top:20px;display:flex}.oauth-complete-hint{color:var(--muted);margin:0;font-size:13px}.label-inventory-page,.label-inventory-page .operation-table-panel,.label-inventory-page .operation-table-wrap{min-width:0;max-width:100%}.label-inventory-page .operation-table th,.label-inventory-page .operation-table td{text-overflow:ellipsis;overflow:hidden}.label-inventory-current-filters{grid-template-columns:repeat(5,minmax(0,1fr)) minmax(112px,auto);align-items:end}.label-inventory-history-filters{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(112px,auto);align-items:end}.label-inventory-analytics-filters{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(112px,auto);align-items:end}.label-inventory-analytics-filters .label-inventory-filter-submit{grid-column:5}.label-inventory-filter-panel{padding:18px 20px}.label-inventory-sync-note{gap:4px;padding-inline:2px;display:grid}.label-inventory-stale-warning,.label-inventory-sync-hint{margin:0}.label-inventory-stale-warning{color:var(--caution);font-size:13px;font-weight:600;line-height:1.55}.label-inventory-sync-hint{color:var(--muted);font-size:12.5px;line-height:1.55}.label-inventory-filter-submit{align-self:end;width:auto;min-width:112px}.label-inventory-single-filter-panel .label-field{max-width:320px}.label-inventory-current-table{width:100%;min-width:1120px}.label-inventory-current-table th:first-child,.label-inventory-current-table td:first-child{text-align:center;width:56px;padding-left:8px;padding-right:8px}.label-inventory-current-table th:nth-child(2),.label-inventory-current-table td:nth-child(2){width:140px}.label-inventory-current-table th:nth-child(3),.label-inventory-current-table td:nth-child(3){width:250px}.label-inventory-current-table th:nth-child(4),.label-inventory-current-table td:nth-child(4){width:100px}.label-inventory-current-table th:nth-child(5),.label-inventory-current-table td:nth-child(5){width:90px}.label-inventory-current-table th:nth-child(6),.label-inventory-current-table td:nth-child(6){width:125px}.label-inventory-current-table th:nth-child(7),.label-inventory-current-table td:nth-child(7){width:170px}.label-inventory-current-table th:nth-child(8),.label-inventory-current-table td:nth-child(8){width:190px}@media (max-width:980px){.label-inventory-current-filters,.label-inventory-history-filters,.label-inventory-analytics-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.label-inventory-filter-submit,.label-inventory-analytics-filters .label-inventory-filter-submit{grid-column:1/-1;justify-self:start}}@media (max-width:640px){.label-inventory-tabs{scrollbar-width:thin;display:flex;overflow-x:auto}.label-inventory-tabs button{white-space:nowrap;flex:none;min-width:112px;padding:0 12px}.label-inventory-current-filters,.label-inventory-history-filters,.label-inventory-analytics-filters{grid-template-columns:1fr}.label-inventory-filter-panel{padding:16px}.label-inventory-filter-submit,.label-inventory-analytics-filters .label-inventory-filter-submit{grid-column:1/-1;justify-self:stretch;width:100%}.label-inventory-single-filter-panel .label-field{max-width:none}}@container topbar (max-width:520px){.topbar-toolbar{display:none}}.license-page .license-panel+.license-panel{margin-top:16px}.license-page .stat-ribbon{margin-bottom:16px}.license-quota-grid{background:var(--border);border-radius:0 0 12px 12px;flex-wrap:wrap;gap:1px;display:flex;overflow:hidden}.license-quota-tile{background:var(--surface);flex:200px;align-content:start;gap:10px;min-width:0;padding:16px 18px 18px;display:grid}.license-quota-label{color:var(--muted);font-size:12.5px;font-weight:600}.license-quota-single{gap:6px;display:grid}.license-quota-row{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 10px;display:grid}.license-quota-row+.license-quota-row{margin-top:2px}.license-quota-row-label{color:var(--muted);font-size:12.5px}.license-quota-row-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.license-quota-row .license-quota-bar{grid-column:1/-1}.license-quota-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.2}.license-quota-hint{color:var(--muted);font-size:12px}.license-quota-bar{--stat-dot:#cbd5e1;background:var(--surface-muted);border-radius:999px;max-width:360px;height:4px;margin-top:2px;display:block;overflow:hidden}.license-quota-bar.tone-good{--stat-dot:var(--teal-dark)}.license-quota-bar.tone-warn{--stat-dot:#c08a3e}.license-quota-bar.tone-danger{--stat-dot:#b05a5a}.license-quota-bar>span{border-radius:inherit;background:var(--stat-dot);height:100%;display:block}.license-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;padding:6px 18px 14px;display:grid}.license-detail-item{border-bottom:1px solid var(--border);grid-template-columns:140px minmax(0,1fr);align-items:baseline;gap:10px;padding:9px 0;font-size:13px;display:grid}.license-detail-item dt{color:var(--muted);font-size:12.5px}.license-detail-item dd{color:var(--text);word-break:break-all;margin:0}.license-chip-list{flex-wrap:wrap;gap:8px;padding:14px 18px 16px;display:flex}.license-chip{--stat-dot:#cbd5e1;border:1px solid var(--border);background:var(--surface-muted);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.license-chip.is-on{--stat-dot:var(--teal-dark);border-color:var(--teal-dark)}@supports (color:color-mix(in lab, red, red)){.license-chip.is-on{border-color:color-mix(in srgb, var(--teal-dark) 35%, var(--border))}}.license-chip.is-on{background:var(--teal-dark)}@supports (color:color-mix(in lab, red, red)){.license-chip.is-on{background:color-mix(in srgb, var(--teal-dark) 8%, transparent)}}.license-chip.is-on{color:var(--text)}.license-chip-dot{background:var(--stat-dot);border-radius:999px;flex:none;width:8px;height:8px}.license-chip-detail{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.license-empty{color:var(--muted);margin:0;font-size:13px}@media (max-width:900px){.license-detail-grid{grid-template-columns:minmax(0,1fr);column-gap:0}}.device-source-toolbar{align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.device-source-tabs{margin-bottom:0}.device-source-toolbar .signage-terms-help-trigger{margin:0 0 4px auto}.operation-table-panel[hidden]{display:none!important}.eps-device-panel{overflow:hidden}.eps-device-table th,.eps-device-table td{white-space:nowrap}.eps-device-table{min-width:1320px}.eps-device-table th,.eps-device-table td{vertical-align:middle}.eps-device-table .eps-device-name-cell{text-overflow:ellipsis;max-width:180px;font-weight:600;overflow:hidden}.eps-device-detail-trigger{max-width:100%;color:inherit;font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;overflow:hidden}.eps-device-detail-trigger:hover{color:var(--accent);text-decoration:underline}.eps-device-detail-trigger:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.eps-device-table .eps-content-name-cell{text-overflow:ellipsis;max-width:220px;overflow:hidden}.eps-live-preview-column,.eps-live-preview-cell{text-align:center;width:118px}.eps-list-preview,.eps-card-preview,.eps-detail-content-image,.eps-content-image-empty{border:1px solid var(--border);background:var(--surface-muted);object-fit:contain;justify-content:center;align-items:center;display:flex;overflow:hidden}img.eps-list-preview{display:block}.eps-list-preview{border-radius:6px;width:96px;height:64px;margin:0 auto}.eps-list-preview.is-portrait{object-fit:contain}.eps-image-fallback{color:var(--muted)}.eps-device-cards{padding-top:2px}.eps-device-card{overflow:hidden}.eps-card-preview{border-width:0 0 1px;border-radius:0;width:calc(100% + 32px);height:168px;margin:-14px -16px 14px}img.eps-card-preview{display:block}.eps-mac{font-family:var(--font-mono);font-size:12px}.eps-tags,.eps-tag-summary{flex-wrap:wrap;align-items:center;gap:5px;display:inline-flex}.eps-tag-summary{max-width:360px}.eps-tag-toggle{border:1px solid var(--border);background:var(--surface);max-width:140px;color:var(--muted);font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:6px;padding:3px 8px;font-size:11px;line-height:18px;overflow:hidden}.eps-tag-toggle:hover{border-color:var(--teal);color:var(--text)}.eps-tag-toggle.active{border-color:var(--teal);color:var(--teal-dark);background:#3ab8b71a;font-weight:600}.eps-tag-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.eps-tag{border:1px solid var(--border);background:var(--surface-muted);max-width:140px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11px;line-height:18px;display:inline-flex;overflow:hidden}.eps-tag-count{color:var(--muted);white-space:nowrap;font-size:11.5px}.action-dialog.eps-device-dialog{flex-direction:column;gap:0;width:min(100vw - 48px,1200px);max-height:calc(100vh - 48px);padding:0;display:flex;position:relative;overflow:hidden}.eps-detail-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 64px 18px 24px;display:flex}.eps-detail-heading h3{margin:0 0 5px;font-size:21px}.eps-detail-loading,.eps-detail-error{align-items:center;gap:10px;min-height:72px;padding:18px 24px;display:flex}.eps-detail-loading{color:var(--muted);justify-content:center;font-size:13px}.eps-detail-error{align-items:flex-end}.eps-detail-error>:first-child{flex:auto}.eps-detail-body{flex:auto;grid-template-columns:minmax(360px,.86fr) minmax(0,1.14fr);align-items:start;gap:24px;min-height:0;padding:22px 24px;display:grid;overflow-y:auto}.eps-detail-body.is-timeline{grid-template-columns:minmax(0,1fr)}.eps-detail-preview-panel{align-content:start;gap:16px;min-width:0;display:grid}.eps-detail-preview-toolbar{border-bottom:1px solid var(--border);align-items:flex-end;display:flex}.eps-detail-preview-toolbar .segmented-tabs--inline{border-bottom:0}.eps-detail-preview-canvas{border:1px solid var(--border);background:#f8fafc;border-radius:10px;min-height:390px;padding:18px}.eps-detail-preview-canvas.is-timeline{background:var(--surface);min-height:470px;padding:0;overflow:hidden}.eps-content-view{min-width:0}.eps-detail-info{border-left:1px solid var(--border);min-width:0;padding-left:24px}.eps-detail-info h4{color:var(--text);margin:3px 0 14px;font-size:15px}.eps-detail-grid.signage-detail-grid{grid-template-columns:minmax(0,1fr);margin:0}.eps-detail-grid .signage-detail-item{grid-template-columns:112px minmax(0,1fr);padding:9px 0}.eps-screen-content+.eps-screen-content{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.eps-screen-label{color:var(--muted);margin-bottom:7px;font-size:11px;font-weight:600;display:block}.eps-screen-content.is-empty{border:1px dashed var(--border);min-height:350px;color:var(--muted);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.eps-screen-content.is-empty .eps-screen-label{margin-bottom:2px}.eps-content-gallery{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;place-items:center;min-height:350px;display:grid;overflow-x:auto}.eps-content-gallery.has-multiple{overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;grid-auto-columns:clamp(156px,44%,210px);grid-auto-flow:column;justify-content:start;align-items:stretch;gap:8px;padding:8px}.eps-content-gallery figure{justify-content:center;align-items:center;min-width:0;height:348px;margin:0;display:flex;position:relative}.eps-content-gallery.has-multiple figure{scroll-snap-align:start;width:100%}.eps-content-image-link,.eps-content-image-frame{width:100%;height:100%;color:inherit;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}button.eps-content-image-link,button.eps-timeline-image-link{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.eps-content-image-link:focus-visible,.eps-timeline-image-link:focus-visible{outline:2px solid var(--teal-dark);outline-offset:-2px;border-radius:5px}.eps-image-detail-badge{z-index:2;background:var(--navy);border-radius:4px;padding:4px 7px;position:absolute;top:8px;right:8px}@supports (color:color-mix(in lab, red, red)){.eps-image-detail-badge{background:color-mix(in srgb, var(--navy) 88%, transparent)}}.eps-image-detail-badge{color:var(--surface);opacity:0;pointer-events:none;font-size:11px;font-weight:600;line-height:1;transition:opacity .14s}.eps-content-image-link:hover .eps-image-detail-badge,.eps-content-image-link:focus-visible .eps-image-detail-badge,.eps-timeline-image-link:hover .eps-image-detail-badge,.eps-timeline-image-link:focus-visible .eps-image-detail-badge{opacity:1}.eps-detail-content-image,.eps-content-image-empty{border:0;width:100%;height:348px}img.eps-detail-content-image{display:block}.eps-content-gallery.has-multiple .eps-detail-content-image{height:330px}.eps-content-gallery figcaption{border:1px solid var(--border);background:var(--surface);min-width:20px;color:var(--muted);text-align:center;border-radius:4px;padding:2px 5px;font-size:10px;position:absolute;bottom:6px;right:6px}.eps-content-image-empty{color:var(--muted);flex-direction:column;gap:8px;font-size:12px}.eps-content-copy{flex-direction:column;gap:3px;min-width:0;margin-top:10px;display:flex}.eps-content-copy strong,.eps-content-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eps-content-copy strong{color:var(--text);font-size:13px}.eps-content-copy span{color:var(--muted);font-size:11.5px}.eps-timeline-panel{min-width:0}.eps-timeline-controls{border-bottom:1px solid var(--border);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:12px 16px;display:flex}.eps-timeline-controls label{color:var(--muted);align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.eps-timeline-controls input{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);height:34px;color:var(--text);font:inherit;padding:0 9px}.eps-timeline-controls>span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.eps-timeline-loading,.eps-timeline-message{min-height:120px;color:var(--muted);justify-content:center;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.eps-timeline-screen{min-width:0;padding:16px}.eps-timeline-screen+.eps-timeline-screen{border-top:1px solid var(--border)}.eps-timeline-screen-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:14px;display:grid}.eps-timeline-screen-heading strong{font-size:13px}.eps-timeline-screen-heading span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.eps-timeline-screen-heading small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.eps-timeline-scroll{max-height:min(410px,45vh);overflow:auto}.eps-timeline-chart{grid-template-columns:148px minmax(560px,1fr);min-width:720px;display:grid}.eps-timeline-axis-label,.eps-timeline-axis{z-index:3;border-bottom:1px solid var(--border);background:var(--surface);height:28px;position:sticky;top:0}.eps-timeline-axis-label{left:0}.eps-timeline-axis span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px;line-height:1;position:absolute;bottom:7px;transform:translate(-50%)}.eps-timeline-axis span:first-child{transform:none}.eps-timeline-axis span:last-child{transform:translate(-100%)}.eps-timeline-row{display:contents}.eps-timeline-image-label{z-index:2;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;min-height:58px;padding:6px 10px 6px 0;display:grid;position:sticky;left:0}.eps-timeline-image-label>img,.eps-timeline-image-link{object-fit:contain;background:var(--surface-muted);width:48px;height:42px;color:var(--muted);border-radius:4px;overflow:hidden}.eps-timeline-image-link{justify-content:center;align-items:center;display:flex;position:relative}.eps-timeline-image-link img{object-fit:contain;width:100%;height:100%}.eps-timeline-image-link .eps-image-detail-badge{padding:3px 4px;font-size:9px;top:3px;right:3px}.eps-timeline-image-copy{gap:3px;min-width:0;display:grid}.eps-timeline-image-copy strong,.eps-timeline-image-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eps-timeline-image-copy strong{font-size:11px}.eps-timeline-image-copy small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.eps-timeline-track{border-bottom:1px solid var(--border);background:var(--surface-muted);min-height:58px;position:relative;overflow:hidden}.eps-timeline-track>i{background:var(--border);width:1px;position:absolute;top:0;bottom:0}.eps-timeline-track>button,.eps-timeline-track>span{opacity:.88;border:0;min-width:2px;padding:0;position:absolute;top:12px;bottom:12px}.eps-timeline-track>button{cursor:pointer}.eps-timeline-track>button:hover,.eps-timeline-track>button:focus-visible{z-index:1;opacity:1;outline:2px solid var(--text);outline-offset:-2px}.eps-detail-tags{color:var(--muted);align-items:flex-start;gap:12px;margin-top:18px;font-size:12.5px;display:flex}.eps-detail-tags>span:first-child{flex:none;width:102px}.eps-detail-footer{border-top:1px solid var(--border);margin:0;padding:14px 24px}.eps-detail-feedback{padding:14px 24px 0}.eps-screen-heading{justify-content:space-between;align-items:center;gap:12px;min-height:32px;margin-bottom:7px;display:flex}.eps-screen-heading .eps-screen-label{margin:0}.action-dialog.eps-device-form-dialog{width:min(820px,100vw - 40px);max-height:calc(100vh - 40px);position:relative;overflow-y:auto}.eps-device-form-heading{padding-right:32px}.eps-device-form-heading h3{margin-bottom:5px}.eps-device-form-heading p,.eps-advanced-heading p{color:var(--muted);margin:0;font-size:12px}.eps-device-form{gap:12px;display:grid}.eps-device-form-section{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-muted);padding:14px}.eps-device-form-section h4{margin:0 0 12px;font-size:13px}.eps-device-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.eps-device-form-grid>.is-wide{grid-column:1/-1}.eps-auto-update-toggle{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;margin-bottom:12px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.eps-auto-update-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}.eps-toggle-track{background:var(--border);border-radius:999px;flex:none;align-items:center;width:36px;height:20px;padding:2px;transition:background .14s;display:inline-flex}.eps-toggle-thumb{background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .14s;box-shadow:0 1px 2px #00000040}.eps-auto-update-toggle.is-on .eps-toggle-track{background:var(--teal)}.eps-auto-update-toggle.is-on .eps-toggle-thumb{transform:translate(16px)}.eps-tag-field{gap:8px;display:grid}.eps-tag-suggestions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.eps-tag-suggestions>button{border:1px dashed var(--border);background:var(--surface);max-width:160px;color:var(--muted);font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:999px;padding:3px 9px;font-size:11.5px;line-height:18px;overflow:hidden}.eps-tag-suggestions>button:hover,.eps-tag-suggestions>button:focus-visible{border-color:var(--teal);color:var(--teal-dark)}.eps-tag-badges{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.eps-tag-badge{align-items:center;gap:4px}.eps-tag-badge>button{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.eps-tag-badge>button:hover,.eps-tag-badge>button:focus-visible{color:var(--danger)}.eps-advanced-config{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.eps-advanced-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.eps-advanced-heading h4{margin:0 0 4px}.eps-update-status{background:var(--teal);border-radius:5px;flex:none;padding:4px 7px}@supports (color:color-mix(in lab, red, red)){.eps-update-status{background:color-mix(in srgb, var(--teal) 12%, var(--surface))}}.eps-update-status{color:var(--teal-dark);font-size:11px;font-weight:600}.eps-advanced-loading,.eps-advanced-empty{min-height:76px;color:var(--muted);justify-content:center;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.eps-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.eps-advanced-grid .signage-detail-item{grid-template-columns:110px minmax(0,1fr);padding:8px 0}.eps-firmware-form{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-muted);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:14px;padding:12px;display:grid}.is-spinning{animation:.8s linear infinite eps-loading-spin}@keyframes eps-loading-spin{to{transform:rotate(360deg)}}@media (max-width:720px){.device-source-toolbar{flex-wrap:wrap;align-items:stretch}.device-source-tabs{flex:auto}.device-source-toolbar .signage-terms-help-trigger{margin-left:auto}.action-dialog.eps-device-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.eps-detail-body{grid-template-columns:1fr;gap:22px;padding:18px}.eps-timeline-controls{flex-direction:column;align-items:flex-start;gap:8px}.eps-detail-info{border-top:1px solid var(--border);border-left:0;padding:20px 0 0}.eps-detail-heading{padding-left:18px}.eps-detail-footer{padding:12px 18px}.action-dialog.eps-device-form-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.eps-device-form-grid,.eps-advanced-grid,.eps-firmware-form{grid-template-columns:minmax(0,1fr)}.eps-device-form-grid>.is-wide{grid-column:auto}}.eps-content-total,.eps-content-toolbar .signage-studio-new,.eps-content-toolbar .compact{white-space:nowrap;flex:none}.eps-content-toolbar .list-toolbar-filters,.eps-content-toolbar .list-toolbar-actions{gap:8px}.eps-content-search{flex:240px;align-items:center;gap:6px;min-width:190px;max-width:320px;display:flex}.eps-content-search input{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);width:100%;min-width:0;height:34px;color:var(--text);padding:0 10px}.eps-content-sort{flex:0 0 170px;width:170px}.eps-content-toolbar .signage-studio-new{width:auto;height:42px;padding:0 16px}.eps-content-card .signage-scene-thumb{background:var(--surface-muted)}.eps-content-card .signage-scene-thumb img{object-fit:contain;background:var(--surface-muted);width:100%;height:100%}.eps-content-empty-preview{width:100%;height:100%;color:var(--muted);background:var(--surface-muted);justify-content:center;align-items:center;display:flex}.eps-content-count{border-radius:var(--radius-control);background:var(--navy);color:var(--surface);white-space:nowrap;padding:3px 7px;font-size:11px;font-weight:600;position:absolute;bottom:8px;right:8px}.eps-content-actions{justify-content:flex-start;gap:6px}.eps-content-actions .signage-scene-edit{margin-right:auto}.eps-content-actions button.signage-scene-edit{font:inherit;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.eps-content-actions .compact{height:32px;padding:0 12px}.eps-content-pager{margin-top:16px}.eps-deploy-dialog{width:min(760px,100vw - 32px)}.eps-deploy-heading{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.eps-deploy-heading strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eps-deploy-heading span{color:var(--muted);flex:none;font-size:13px}.eps-deploy-dialog>.label-field{margin-top:14px}.eps-deploy-dialog>.segmented-tabs{margin:14px 0 0}.eps-deploy-table-wrap{border:1px solid var(--border);border-radius:var(--radius-control);max-height:min(440px,55vh);margin-top:12px;overflow:auto}.eps-deploy-table{min-width:620px}.eps-deploy-table th:nth-child(3),.eps-deploy-table td:nth-child(3){text-align:center;width:128px}.eps-deploy-screens{justify-content:center;gap:16px;display:inline-flex}.eps-deploy-table td strong,.eps-deploy-table td small{text-overflow:ellipsis;white-space:nowrap;max-width:220px;display:block;overflow:hidden}.eps-deploy-table td small{color:var(--muted);margin-top:3px}.eps-deploy-table .cb-label{justify-content:center}.eps-content-loading{min-height:140px;color:var(--muted);justify-content:center;align-items:center;gap:8px;display:flex}.eps-content-editor-page{min-width:0;overflow-x:hidden}.eps-editor-workspace,.eps-editor-stage,.eps-editor-panel{min-width:0}.eps-editor-stage{grid-template-rows:minmax(0,1fr) auto auto}.eps-editor-canvas-wrap{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:16px}.eps-editor-canvas{border:1px solid var(--border-strong);background:var(--surface-muted);justify-content:center;align-items:center;display:flex}.eps-editor-canvas.landscape{aspect-ratio:16/9}.eps-editor-canvas.portrait{aspect-ratio:9/16;max-width:min(420px,100%)}.eps-editor-canvas>img{object-fit:contain;pointer-events:none;width:100%;height:100%}.eps-editor-empty-preview{color:var(--muted);justify-items:center;gap:9px;font-size:13px;display:grid}.eps-editor-canvas-hint{min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:center;align-items:center;gap:6px;margin:0;display:flex;overflow-x:auto}.eps-editor-filmstrip{min-width:0;padding:8px}.eps-editor-filmstrip .eps-filmstrip-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-rows:82px 14px 34px 26px;gap:5px;width:156px;height:179px;padding:6px;transition:border-color .14s,background-color .14s;display:grid}.eps-editor-filmstrip .eps-filmstrip-item.active{border-color:var(--teal-dark);background:var(--teal-soft)}.eps-editor-filmstrip .eps-filmstrip-thumb{background:var(--surface-muted);border:0;width:100%;min-width:0;height:82px;padding:4px}.eps-editor-filmstrip .eps-filmstrip-item.active .eps-filmstrip-thumb{box-shadow:none;border-color:#0000}.eps-filmstrip-canvas{background:var(--surface-muted);width:100%;max-width:none;height:100%;color:var(--muted);border-radius:4px;justify-content:center;align-items:center;display:flex}.eps-filmstrip-canvas img{object-fit:contain;width:100%;height:100%}.eps-filmstrip-time-label{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:14px;overflow:hidden}.eps-duration-input{min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:4px;font-weight:700;display:grid}.eps-duration-input input{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-width:0;height:32px;color:var(--text);font:inherit;text-align:center;border-radius:6px;padding:0 5px}.eps-duration-input input:focus-visible{border-color:var(--teal-dark);outline:2px solid var(--teal)}@supports (color:color-mix(in lab, red, red)){.eps-duration-input input:focus-visible{outline:2px solid color-mix(in srgb, var(--teal) 28%, transparent)}}.eps-duration-input input:focus-visible{outline-offset:1px}.eps-duration-input input:disabled{cursor:not-allowed;opacity:.6}.eps-editor-filmstrip .signage-filmstrip-ctrls{align-items:center;height:26px}.eps-editor-filmstrip .signage-filmstrip-ctrls button{width:27px;height:26px;padding:0}.eps-editor-filmstrip .eps-filmstrip-add-item{grid-template-rows:1fr}.eps-filmstrip-add-button{border:1px dashed var(--border-strong);background:var(--surface-muted);width:100%;height:100%;color:var(--muted);cursor:pointer;border-radius:6px;grid-row:1/-1;justify-content:center;align-items:center;display:flex}.eps-filmstrip-add-button:hover:not(:disabled),.eps-filmstrip-add-button:focus-visible{border-color:var(--teal-dark);color:var(--teal-dark);outline:none}.eps-filmstrip-add-button:disabled{cursor:not-allowed;opacity:.55}.eps-editor-panel{flex-direction:column;gap:12px;display:flex}.eps-editor-properties,.eps-editor-summary{gap:14px;display:grid}.eps-editor-properties h3,.eps-editor-summary h3,.eps-image-picker-heading h3{margin:0;font-size:14px}.eps-editor-orientation{gap:7px;display:grid}.eps-editor-orientation>span{color:var(--muted);font-size:12px;font-weight:600}.eps-editor-orientation .segmented-tabs{margin:0}.eps-editor-summary dl{gap:8px;margin:0;display:grid}.eps-editor-summary dl>div{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.eps-editor-summary dt,.eps-editor-summary dd{white-space:nowrap;margin:0}.eps-editor-summary dt{color:var(--muted);font-size:12px}.eps-editor-summary dd{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.eps-editor-summary>span{color:var(--muted);text-align:right;white-space:nowrap;font-size:11px}.eps-image-picker-dialog{flex-direction:column;width:min(1040px,100vw - 32px);max-height:min(820px,100dvh - 32px);display:flex;overflow:hidden}.eps-image-picker-heading{justify-content:space-between;align-items:center;gap:16px;padding-right:34px;display:flex}.eps-image-picker-sort{flex:0 0 160px;width:160px}.eps-editor-breadcrumb{white-space:nowrap;flex:none;gap:3px;margin:10px 0;display:flex;overflow-x:auto}.eps-editor-breadcrumb button{color:var(--teal-dark);background:0 0;border:0;flex:none;align-items:center;gap:4px;padding:4px 3px;font-size:12px;display:inline-flex}.eps-editor-library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-height:260px;max-height:min(540px,60dvh);padding:1px;display:grid;overflow-y:auto}.eps-editor-media-card{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);text-align:left;border-radius:8px;grid-template-rows:auto minmax(24px,auto);gap:7px;padding:7px;display:grid}.eps-editor-media-card:hover,.eps-editor-media-card:focus-visible,.eps-editor-media-card.selected{border-color:var(--teal-dark);outline:none}.eps-editor-media-card.selected{background:var(--teal-soft)}.eps-editor-media-preview{aspect-ratio:16/9;background:var(--surface-muted);width:100%;color:var(--muted);border-radius:4px;justify-content:center;align-items:center;display:flex;overflow:hidden}.eps-editor-media-preview img{object-fit:contain;width:100%;height:100%}.eps-editor-media-info{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.eps-editor-media-card strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.eps-editor-media-info>span{color:var(--teal-dark);white-space:nowrap;flex:none;font-size:11px;font-weight:600}.eps-editor-media-card.is-folder{grid-template-rows:auto 24px}.eps-editor-media-card.is-folder strong{align-self:center}.eps-editor-library-pager{flex:none;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.eps-editor-library-pager span{color:var(--muted);white-space:nowrap;font-size:12px}@media (max-width:960px){.eps-editor-stage{grid-template-rows:minmax(320px,auto) auto auto}.eps-editor-canvas-wrap{min-height:320px}.eps-editor-panel{max-height:none;position:static;overflow:visible}.eps-editor-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.eps-content-search{flex:1 0 100%;max-width:none}.eps-content-sort{flex-basis:160px;width:160px}.eps-editor-canvas-wrap{padding:10px}.eps-image-picker-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.eps-editor-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.eps-content-toolbar .signage-studio-new,.eps-content-toolbar .compact,.eps-content-sort{flex:auto}.eps-image-picker-heading{flex-direction:column;align-items:stretch;padding-right:34px}.eps-image-picker-sort{flex-basis:auto;width:100%}.eps-editor-library-grid{grid-template-columns:minmax(0,1fr)}}.eps-dash-quad>.signage-dash-cell:nth-child(-n+4){grid-column:span 3}@media (max-width:1200px){.eps-dash-quad>.signage-dash-cell:nth-child(-n+4){grid-column:auto}}.eps-dash-storage{flex-direction:column;flex:1;justify-content:center;gap:10px;display:flex}.eps-dash-storage .eps-image-storage{flex-wrap:wrap}.eps-dash-more{color:var(--teal-dark,var(--teal));font-size:12px;text-decoration:none}.eps-dash-more:hover{text-decoration:underline}.eps-dash-scroll{scrollbar-width:thin;flex-direction:column;gap:10px;min-height:0;max-height:196px;margin:0;padding:0 4px 0 0;display:flex;overflow-y:auto}.eps-dash-scroll::-webkit-scrollbar{width:8px}.eps-dash-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.eps-dash-recent-group h3{color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.eps-dash-recent-group h3 small{font-weight:500}.eps-dash-content-list,.eps-dash-top-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.eps-dash-content{border-radius:var(--radius-control,8px);color:inherit;align-items:center;gap:10px;padding:6px 8px;text-decoration:none;display:flex}.eps-dash-content:hover{background:var(--surface-muted)}.eps-dash-thumb{border:1px solid var(--border);background:var(--surface-muted);width:44px;height:44px;color:var(--muted);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.eps-dash-thumb img{object-fit:cover;width:100%;height:100%;display:block}.eps-dash-content-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.eps-dash-content-body strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.eps-dash-content-body small{color:var(--muted);font-size:11.5px}.eps-dash-rank{background:var(--surface-muted);width:20px;height:20px;color:var(--muted);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;display:inline-flex}.eps-dash-top-list li:first-child .eps-dash-rank{background:var(--navy);color:#fff}.eps-dash-deploy-bar{background:var(--surface-muted);border-radius:999px;height:4px;margin-top:2px;display:block;overflow:hidden}.eps-dash-deploy-bar>span{border-radius:inherit;background:#6366f1;height:100%;display:block}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
