/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@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-space-x-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--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;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@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-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-800:oklch(27.8% .033 256.848);--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-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--radius-md:.375rem;--radius-lg:.5rem;--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)}}@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{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.top-0{top:0}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-2{margin:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.me-1{margin-inline-end:var(--spacing)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.mt-0{margin-top:0}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:0}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.p-3{padding:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-end{text-align:end}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.italic{font-style:italic}.grayscale{--tw-grayscale:grayscale(100%);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))}}#root{height:100%;margin:0 auto;padding:0;display:flex}.app-container{box-sizing:border-box;flex-direction:column;width:100%;height:100vh;margin:0;padding:0;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:auto;height:100%;padding:5px 10px;display:flex;position:relative;overflow-y:auto}.collapsible-content{opacity:1;max-height:1000px;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .7s;overflow:hidden}.collapsible-content.collapsed{opacity:0;pointer-events:none;max-height:0}input{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300);background-color:var(--color-white);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);border-radius:.25rem}.checkbox-group{align-items:center;gap:calc(var(--spacing) * 2);padding-block:var(--spacing);display:flex}.checkbox{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300);background-color:var(--color-white);border-radius:.25rem;justify-content:center;align-items:center}.checkbox-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center}.flex-container{box-sizing:border-box;text-align:left;background-color:#fff;border:0 solid #ccc;border-radius:10px;flex-direction:row;gap:2px;height:100%;margin:2px;padding:10px;display:flex;box-shadow:0 0 2px #00000080}.flex-container.column{flex-direction:column;height:auto}.flex-container.no-padding{box-shadow:none;background-color:#0000;border-radius:0;gap:5px;margin:0;padding:0}@media (width<=768px){.flex-container{flex-direction:column}.home-header{display:none!important}}.split-screen{box-sizing:border-box;grid-template-columns:1fr 1fr;max-height:100%;display:grid;overflow:hidden}@media (width<=960px){.split-screen.flex{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}.split-screen.three-columns{grid-template-columns:1fr 1fr 1fr}@media (width<=768px){.split-screen.three-columns.flex{grid-template-rows:1fr 1fr 1fr;grid-template-columns:1fr}}.split-screen>.flex-container{flex-direction:column;height:100%;max-height:100%;display:flex;overflow:auto}.image-container{justify-content:center;align-items:center;width:100%;height:100%;max-height:100%;display:flex;position:relative;overflow:hidden}.img-calibration{object-fit:contain;cursor:crosshair;touch-action:manipulation;width:auto;max-width:100%;height:auto;max-height:100%;pointer-events:auto!important}.log-container{white-space:pre-wrap;border-radius:5px;flex:1;width:100%;padding:10px;font-family:monospace;overflow-y:scroll}.help-block{width:100% display: block;color:#666;margin-top:0;margin-bottom:0;padding-left:10px;font-size:.7875rem}.help-block a{color:#646cff}.help-block a:hover{color:#646cff;font-weight:700}.frame-control-bar{align-items:center;gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-slate-200);background-color:var(--color-white);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);display:flex}@media (prefers-color-scheme:dark){.frame-control-bar{border-color:var(--color-slate-700);background-color:var(--color-slate-900)}}.frame-slider{height:calc(var(--spacing) * 2);cursor:pointer;appearance:none;border-radius:var(--radius-lg);background-color:var(--color-slate-300);accent-color:var(--color-blue-500);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));flex:1}@media (hover:hover){.frame-slider:hover{background-color:var(--color-slate-400)}}@media (prefers-color-scheme:dark){.frame-slider{background-color:var(--color-slate-600)}@media (hover:hover){.frame-slider:hover{background-color:var(--color-slate-500)}}}.frame-label{min-width:fit-content;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));white-space:nowrap;color:var(--color-slate-600)}@media (prefers-color-scheme:dark){.frame-label{color:var(--color-slate-400)}}.control-btn{height:calc(var(--spacing) * 10);background-color:var(--color-slate-100);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-slate-700);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));--tw-duration:.2s;border-radius:.25rem;transition-duration:.2s}@media (hover:hover){.control-btn:hover{background-color:var(--color-slate-200)}}.control-btn:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.control-btn:disabled{cursor:not-allowed;opacity:.5}@media (prefers-color-scheme:dark){.control-btn{background-color:var(--color-slate-800);color:var(--color-slate-200)}@media (hover:hover){.control-btn:hover{background-color:var(--color-slate-700)}}}.control-btn-group{margin-left:calc(var(--spacing) * 4);align-items:center;gap:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-slate-200);padding-left:calc(var(--spacing) * 4);display:flex}@media (prefers-color-scheme:dark){.control-btn-group{border-color:var(--color-slate-700)}}.tabbed-form-container{object-fit:contain;flex-direction:column;max-height:100%;margin:0;display:flex;position:relative}.thumb-value{color:#000;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:2px 5px;font-size:11px;position:absolute;top:28px;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #0000001a}.container.tab{margin-top:5px;overflow:auto}.tabbed-layout{border:1px solid #ccc;margin-bottom:10px;display:flex}.tabs-header{flex-shrink:0}.tabs-row{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-gray-300)}.tabs-row button{padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-gray-800);margin-bottom:-2px}.tabs-row button:disabled{cursor:not-allowed;color:var(--color-gray-400);opacity:2}.tabs-row .active-tab{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-blue-500);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold);color:var(--color-blue-600);margin-bottom:-2px}.tabs-row button:disabled span,.tabs-row button:not(:disabled) span{align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);display:flex}@media (hover:hover){.tabs-row button:not(:disabled) span:hover{background-color:var(--color-gray-200)}}.tab-container{flex-grow:1;width:100%;overflow-y:auto}.tab-content{background:#fff;flex:1;height:calc(100vh - 50px);max-height:100%;margin-top:0;margin-bottom:0;padding:0;transition:all .3s;position:relative;overflow:auto}.tab-content.shifting{margin-right:300px}.btn{color:#fff;background-color:#0a4777;border-color:#0a4777;margin:10px;border-radius:15px!important}.btn:hover{color:#fff;font-weight:700}button.btn-danger{color:#fff;margin-bottom:10px;background-color:#dc3545!important;border-color:#dc3545!important}button.btn-icon{margin-right:calc(var(--spacing) * 2);gap:calc(var(--spacing) * 2);cursor:pointer;color:#696969;background:0 0;border:none;transition:color .3s}button.btn-icon:disabled,button.btn-icon:disabled:hover{cursor:not-allowed}button.btn-icon:hover .danger{color:red;transition:color .3s}button.btn-icon:hover .run{color:#00f;transition:color .3s}button.btn-icon:hover .edit{color:green;transition:color .3s}button.btn-icon:hover .document{color:#00a6ff;transition:color .3s}button.btn-icon:disabled .danger,button.btn-icon:disabled .run,button.btn-icon:disabled .edit,button.btn-icon:disabled .document{color:#b0b0b0}.close-button{color:#fff;cursor:pointer;background:0 0;border:none;align-self:flex-end;margin-bottom:20px;font-size:24px;font-weight:700}.logo{will-change:filter;height:6em;padding:1.5em;transition:filter .3s}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:20s linear infinite logo-spin}}.pulsating-icon{animation:1.5s infinite pulse}.card{padding:2em}.read-the-docs{color:#888}@media (width<=768px){.read-the-docs{display:none!important}}.custom-file-button input[type=file]{margin-left:-2px!important}.custom-file-button input[type=file]::file-selector-button{display:none}.custom-file-button:hover label{cursor:pointer;background-color:#dde0e3}.spinner-viewport{color:#fff;z-index:1000;background-color:#00000080;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;font-size:24px;font-weight:700;display:flex;position:fixed;top:0;left:0}.spinner-container{color:#666;z-index:1000;background-color:#eee;flex-direction:column;align-items:center;font-size:20px;font-weight:700;display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%)}.spinner{border:8px solid #0003;border-top-color:#3498db;border-radius:50%;width:50px;height:50px;margin-bottom:20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cell-icon-text{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.sticky-actions-header{white-space:nowrap;z-index:0;position:sticky;right:0;background:#fff!important;box-shadow:-5px 0 10px -5px #fff3!important}.sticky-actions-cell{white-space:nowrap;z-index:0;position:sticky;right:0;box-shadow:-5px 0 10px -5px #fff3;background:#fff!important}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}.navbar{color:#fff;background-color:#0a4777;flex:0 auto;justify-content:space-between;align-items:center;height:60px;padding:0;display:flex;box-shadow:4px 0 10px #00000080}.navbar-toggler{cursor:pointer;z-index:1;color:#fff;background:0 0;border:none;position:relative}.navbar-toggler:hover:before{content:"";z-index:-1;background-color:#ffffff1a;border-radius:50%;width:50px;height:50px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.navbar-message{align-items:center;font-size:1rem;display:flex}.navbar-brand{align-items:center;gap:10px;display:flex}.navbar-right{z-index:.5;background-color:#0a4777;gap:12px;padding:10px;display:flex;position:relative}.user-menu-wrapper{align-items:center;display:inline-flex;position:relative}.user-menu-wrapper:after{content:"";pointer-events:auto;height:12px;position:absolute;top:20px;left:-8px;right:-8px}.user-menu{color:#fff;z-index:1000;background-color:#343a40;border:1px solid #333;border-radius:6px;min-width:160px;padding:6px 0;position:absolute;top:28px;right:0;box-shadow:0 6px 18px #00000040}.user-menu-item{cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-size:14px;display:flex}.user-menu-item:hover{background-color:#495057}.user-menu-item.no-hover-bg:hover{cursor:default;background-color:#0000!important}a{color:#fff}a:hover{color:#fff;font-weight:700}.sidebar{color:#fff;z-index:1050;background-color:#343a40;flex-direction:column;justify-content:start;align-items:start;width:250px;height:100%;padding:20px;transition:left .3s;display:flex;position:fixed;top:0;left:-250px;overflow-y:auto;box-shadow:2px 0 5px #00000080}.sidebar.open{left:0}.sidebar.right{transition:right .3s;left:auto;right:-250px;box-shadow:-2px 0 5px #00000080}.sidebar.right.open{right:0}.sidebar-nav{width:100%;padding:0;list-style:none}.sidebar-nav li{margin-bottom:10px}.sidebar-nav.right{flex-direction:column;align-items:flex-end;gap:10px;width:100%;height:100%;margin:10px;padding:10px;display:flex}.sidebar-link{color:#fff;border-radius:5px;align-items:center;padding:10px 15px;font-size:18px;text-decoration:none;transition:background-color .2s;display:flex}.sidebar-link:hover{background-color:#495057}.sidebar-link.active{background-color:#007bff}.sidebar-header{justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.sidebar-overlay{z-index:1040;cursor:pointer;background-color:#00000080;width:100%;height:100%;position:fixed;top:0;left:0}.sidebar-right{color:#fff;z-index:1040;background-color:#343a40;width:0;height:100%;max-height:100%;padding:10px;transition:all .3s;position:absolute;top:0;right:0;overflow:auto;box-shadow:-5px 0 5px #00000080}.sidebar-right.visible{z-index:1050;width:300px}.sidebar-right input{width:100px}.footer{color:#fff;text-align:left;z-index:10;background-color:#0a4777;flex:0 auto;width:100%;padding:1rem;position:relative;bottom:0;box-shadow:4px 0 10px #00000080}.footer-content img{display:inline-block}.footer-content p{align-items:center;margin:0;font-size:.9rem;display:inline-block}.dark-link{color:#fff}.dark-link:hover{color:#fff;font-weight:700}.update-info{margin-bottom:12px}.release-notes{background:var(--af-sunken);border:1px solid var(--af-rule);text-align:left;box-shadow:none;border-radius:12px;margin:12px 0;padding:14px 16px;font-size:13.5px}.release-notes h5,.release-notes h4{margin:0 0 8px;font-size:13px}.no-update{color:var(--af-ok);margin-top:12px;font-size:14px}.no-update.error{color:var(--af-danger);background:var(--af-danger-bg);border:0;border-radius:10px;padding:10px 14px}.update.error{color:var(--af-ok);background:var(--af-ok-bg);border:0;border-radius:10px}.date-picker-container{flex-direction:row;align-items:flex-start;gap:20px;display:flex}.date-picker-container .mb-3{flex:1}.button-container{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.horizontal-slider{width:100%;margin-bottom:30px}.slider-container{width:100%;position:relative}.slider-min{color:#333;font-size:12px;position:absolute;top:-20px;left:0}.slider-max{color:#333;font-size:12px;position:absolute;top:-20px;right:0}.thumb{cursor:grab;background-color:#007bff;border-radius:50%;width:20px;height:20px;position:relative;top:50%;transform:translateY(-25%)}.thumb-disabled{cursor:not-allowed;background-color:#bbb}.track{background-color:#ddd;height:10px}.form-horizontal{align-items:center;gap:1rem;width:97%;font-size:14px;display:flex}.form-horizontal label{width:200px}.form-horizontal input{flex:1}table{border-collapse:collapse}.table-dark th{color:#fff!important;background-color:#0a4777!important}td,th{text-align:center;vertical-align:middle;border:0 solid #0000;justify-content:center;align-items:center;height:20px;padding:0;line-height:1}td input{text-align:center;background-color:#0000;border:none;width:100%;height:100%;margin:0;padding:0}td input:focus{background-color:#eaf6ff;outline:2px solid #007bff}tr{border:1px;margin:1px;padding:1px;transition:background-color .2s,border .2s}.gcp-icon{color:#000;pointer-events:none;z-index:100;background-color:#ffffffb3;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}.gcp-icon.fitted{text-shadow:0 0 5px #000;z-index:101;background-color:#0000;border-radius:0;font-weight:400}.bbox-marker{z-index:100;background-color:#1a86ff80;border:2px solid #ffffffb3;border-radius:7.5px;position:absolute;transform:translate(-50%,-50%)}.control-styles{z-index:100;background:#fff3;border-radius:5px;flex-direction:column;padding:5px;display:flex;position:absolute;top:105px;right:5px}.button-styles{color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;margin:5px;padding:5px;transition:background .2s;display:flex}.button-styles:disabled{opacity:.5;cursor:not-allowed}.button-styles:hover{background:#000000b3}.button-styles.selected{background-color:#009ed3}.button-group-styles{margin-bottom:5px;display:flex}.services-admin-container,.service-detail-container{max-width:1200px;margin:0 auto;padding:2rem}.page-header{margin-bottom:2rem}.page-header h1{color:#333;margin:0 0 .5rem;font-size:2.5rem}.page-header .subtitle,.page-header .service-id{color:#666;margin:.25rem 0;font-size:1rem}.page-header code{background:#f5f5f5;border-radius:3px;padding:.25rem .5rem;font-family:Courier New,monospace}.service-description{background:#f9f9f9;border-left:4px solid #2196f3;border-radius:4px;margin:1.5rem 0;padding:1rem}.service-description-green{background:#f9f9f9;border-left:4px solid #28f321;border-radius:4px;height:25rem;margin:1.5rem 0;padding:1rem;overflow-y:scroll}.service-description-wrapper{margin-bottom:1rem}.service-description-header{align-items:center;display:flex}.toggle-service-description{color:#666;cursor:pointer;background:0 0;border:none;margin-right:.5rem;padding-right:1rem;font-size:1rem}.toggle-service-description:hover,.toggle-service-description:focus{color:#333;box-shadow:none;background:0 0;outline:none}.service-label{font-weight:700}.service-warning{background:#f9f9f9;border-left:4px solid #f38a21;border-radius:4px;margin:1.5rem 0;padding:1rem}.section-toolbar{flex-wrap:wrap;gap:1rem;margin:1.5rem 0;display:flex}.section-header{border-bottom:2px solid #eee;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.section-header h2{color:#333;margin:0;font-size:1.8rem}.services-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.service-card{background:#fff;border:1px solid #ddd;border-radius:8px;flex-direction:column;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 2px 4px #0000001a}.service-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.card-header{margin-bottom:1rem}.card-header h3{color:#333;margin:0 0 .5rem;font-size:1.3rem}.service-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.service-shortname{color:#666;background:#f5f5f5;border-radius:4px;padding:.25rem .75rem;font-family:Courier New,monospace;font-size:.85rem}.service-type{border-radius:4px;padding:.25rem .75rem;font-size:.85rem;font-weight:500;display:inline-block}.service-type.one_time{color:#1976d2;background:#e3f2fd}.service-type.timer{color:#7b1fa2;background:#f3e5f5}.card-description{color:#666;margin:.5rem 0 1rem;font-size:.95rem;line-height:1.4}.card-stats{border-top:1px solid #eee;border-bottom:1px solid #eee;flex-grow:1;align-items:center;gap:1.5rem;margin:1rem 0;padding:1rem 0;display:flex}.stat{flex-direction:column;gap:.25rem;display:flex}.stat .label{color:#999;text-transform:uppercase;font-size:.85rem;font-weight:600}.stat .value{color:#333;font-size:1.5rem;font-weight:700}.stat .status{border-radius:3px;padding:.25rem .5rem;font-size:.9rem;font-weight:500}.stat .status.enabled{color:#2e7d32;background:#c8e6c9}.stat .status.disabled{color:#d84315;background:#ffccbc}.card-actions{gap:.75rem;margin-top:1rem;display:flex}.card-actions .btn{flex:1}.empty-state{text-align:center;background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;padding:4rem 2rem}.empty-state h2{color:#666;margin-bottom:.5rem}.empty-state p{color:#999;margin-bottom:1.5rem}.service-control-panel{background:#f9f9f9;border:1px solid #eee;border-radius:8px;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;padding:1.5rem;display:grid}@media (width<=768px){.service-control-panel{grid-template-columns:1fr}}.status-info h3,.control-buttons h3{color:#333;margin-top:0;margin-bottom:1rem;font-size:1.1rem}.status-details p{margin:.75rem 0;font-size:1rem}.status-details strong{color:#666;width:100px;display:inline-block}.status-active,.status-enabled{color:#2e7d32;font-weight:600}.status-inactive,.status-disabled{color:#d84315;font-weight:600}.status-unknown{color:#f57c00;background:#fff3e0;border-radius:4px;padding:1rem;font-weight:600}.button-group{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.button-group:last-child{margin-bottom:0}.button-group .btn{flex:1;min-width:100px}.parameters-section{margin:2rem 0}.parameters-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;display:grid}.parameter-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000000d}.param-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.param-header h4{color:#333;margin:0;font-size:1.1rem}.param-short-name{color:#666;white-space:nowrap;background:#f5f5f5;border-radius:3px;padding:.25rem .5rem;font-size:.8rem}.param-description{color:#666;margin:.5rem 0 1rem;font-size:.9rem;line-height:1.4}.param-type{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.badge{color:#333;background:#e0e0e0;border-radius:12px;padding:.25rem .75rem;font-size:.8rem;font-weight:500;display:inline-block}.badge-info{color:#1976d2;background:#e3f2fd}.param-input-group{margin:1rem 0}.form-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:.75rem;font-family:inherit;font-size:.95rem}.form-input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.form-input textarea{resize:vertical;font-family:Courier New,monospace}.param-default{color:#999;margin-top:.5rem;margin-bottom:0;font-size:.85rem}.param-actions{border-top:1px solid #eee;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.param-actions .btn{flex:1}.no-parameters{text-align:center;color:#999;background:#f9f9f9;border-radius:8px;padding:2rem}.form-group{flex-direction:column;gap:1.5rem;display:flex}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{color:#333;font-size:1rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid #ddd;border-radius:4px;padding:.75rem;font-family:inherit;font-size:1rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.form-field small{color:#999;font-size:.85rem}.form-field code{background:#f5f5f5;border-radius:3px;padding:.25rem .5rem;font-family:Courier New,monospace}.form-buttons{justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;padding:2rem;animation:.3s slideUp;overflow-y:auto;box-shadow:0 4px 24px #00000026}.modal-content.modal-lg{max-width:700px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2,.modal-content h3{color:#333;margin-top:0;margin-bottom:1.5rem}.info-box{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:4px;margin:1rem 0;padding:1rem}.info-box h4{color:#1976d2;margin-top:0;margin-bottom:.75rem}.info-box ul{color:#555;margin:0;padding-left:1.5rem}.info-box li{margin-bottom:.5rem}.btn{cursor:pointer;text-align:center;border:none;border-radius:4px;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:#2196f3}.btn-primary:hover:not(:disabled){background:#1976d2}.btn-secondary{color:#fff;background:#00ad09}.btn-secondary:hover:not(:disabled){background:#007f06}.btn-success{color:#fff;background:#4caf50}.btn-success:hover:not(:disabled){background:#388e3c}.btn-danger{color:#fff;background:#f44336}.btn-danger:hover:not(:disabled){background:#d32f2f}.btn-info{color:#fff;background:#00bcd4}.btn-info:hover:not(:disabled){background:#0097a7}.btn-sm{padding:.5rem 1rem;font-size:.9rem}.btn-lg{padding:1rem 2rem;font-size:1.1rem}.action-buttons{justify-content:center;gap:1rem;margin-top:2rem;display:flex}.loading{text-align:center;color:#666;padding:2rem;font-size:1.1rem}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;flex-direction:column;width:90%;max-width:900px;max-height:90vh;display:flex;overflow-y:auto;box-shadow:0 2px 10px #0003}.modal-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:#333;margin:0;font-size:1.5rem}.modal-close{cursor:pointer;color:#999;background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:1.5rem;display:flex}.modal-close:hover{color:#333}.modal-body{flex:1;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid #eee;justify-content:flex-end;gap:1rem;padding:1.5rem;display:flex}.deploy-textarea{resize:vertical;font-family:Courier New,monospace;font-size:.9rem}.error{color:#c62828;background:#ffebee;border:1px solid #ef5350;border-radius:4px;margin:1rem;padding:1rem}@media (width<=768px){.services-admin-container,.service-detail-container{padding:1rem}.services-grid,.parameters-grid{grid-template-columns:1fr}.page-header h1{font-size:1.8rem}.section-header{flex-direction:column;align-items:flex-start}.button-group{flex-direction:column}.button-group .btn{width:100%}.form-buttons{flex-direction:column-reverse}.modal-content{width:95%;padding:1.5rem}}@font-face{font-family:Sora;font-weight:600;font-display:swap;src:url(/aquaflow/fonts/sora-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Sora;font-weight:700;font-display:swap;src:url(/aquaflow/fonts/sora-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Public Sans;font-weight:400;font-display:swap;src:url(/aquaflow/fonts/public-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Public Sans;font-weight:600;font-display:swap;src:url(/aquaflow/fonts/public-sans-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Public Sans;font-weight:700;font-display:swap;src:url(/aquaflow/fonts/public-sans-latin-700-normal.woff2)format("woff2")}:root{--af-indigo:#3050c0;--af-indigo-700:#2843a6;--af-indigo-900:#0e1a4a;--af-indigo-50:#eef1fc;--af-indigo-100:#dfe5f9;--af-cyan:#00c0ff;--af-text:#12181f;--af-text-2:#3a434d;--af-muted:#6b7685;--af-rule:#e4e8ef;--af-bg:#f3f5f9;--af-surface:#fff;--af-sunken:#f4f6fa;--af-hover:#eef1f6;--af-danger:#c2321f;--af-danger-bg:#fceeec;--af-warn:#9a6200;--af-warn-bg:#fff5e0;--af-ok:#0e7a6e;--af-ok-bg:#e5f5f2;--af-shadow:0 1px 2px #1018280a, 0 6px 20px -8px #1018281a;--af-shadow-lg:0 24px 60px -18px #0e1a4a59;--af-ring:0 0 0 3px #3050c02e;--af-font:"Public Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--af-font-head:"Sora", "Public Sans", system-ui, sans-serif;--af-h:40px;--af-side-w:248px;--bs-body-font-family:var(--af-font);--bs-body-color:var(--af-text-2);--bs-body-bg:var(--af-bg);--bs-primary:#3050c0;--bs-primary-rgb:48, 80, 192;--bs-link-color:var(--af-indigo);--bs-link-hover-color:var(--af-indigo-700);--bs-border-color:var(--af-rule);--bs-border-radius:10px;--bs-danger:#c2321f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--af-text-2);background-color:var(--af-bg);font-family:var(--af-font)}html,body{height:100%}body{background:var(--af-bg);min-width:320px;font:400 14.5px/1.55 var(--af-font);color:var(--af-text-2);-webkit-font-smoothing:antialiased;margin:0;display:block}#root{max-width:none;height:100%;font-family:var(--af-font);display:block}::selection{background:var(--af-indigo-100)}a{color:var(--af-indigo);font-weight:600;text-decoration:none}a:hover{color:var(--af-indigo-700);text-decoration:underline}.app-container.af-shell{grid-template-columns:var(--af-side-w) minmax(0, 1fr);background:var(--af-bg);grid-template-rows:60px minmax(0,1fr);width:100%;height:100vh;display:grid;overflow:hidden}.app-container.af-bare{background:var(--af-bg);height:100vh;display:block;overflow:auto}.af-bare .main-content{padding:0}.af-side{color:#ffffffb8;z-index:40;background:linear-gradient(#0e1a4a 0%,#13245f 100%);flex-direction:column;grid-area:1/1/span 2;min-height:0;padding:22px 14px 16px;display:flex}.af-brand{flex:none;padding:2px 12px 18px;position:relative}.af-brand img{height:22px;display:block}.af-brand span{font:600 10px var(--af-font);letter-spacing:.07em;text-transform:uppercase;color:#ffffff73;white-space:nowrap;margin-top:9px;display:block}.af-side-close{color:#ffffffb3;background:0 0;border:0;padding:6px;font-size:18px;display:none;position:absolute;top:-4px;right:0}.af-nav{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex:auto;min-height:0;margin-right:-6px;padding-right:6px;overflow-y:auto}.af-section{flex-direction:column;gap:2px;display:flex}.af-group{font:600 10.5px var(--af-font);letter-spacing:.12em;text-transform:uppercase;color:#ffffff61;white-space:nowrap;padding:16px 12px 6px}.af-section:first-child .af-group{padding-top:4px}.af-link,.af-link:visited{color:#ffffffbd;font:500 14px var(--af-font);border-radius:9px;align-items:center;gap:11px;padding:8px 12px;text-decoration:none;transition:background .12s,color .12s;display:flex}.af-link:hover{color:#fff;background:#ffffff12;text-decoration:none}.af-link.active{color:#fff;background:#ffffff1f;font-weight:600}.af-link .af-ico{opacity:.75;flex:none;width:18px;height:18px}.af-link.active .af-ico{opacity:1;color:var(--af-cyan)}.af-link span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.af-who{background:#ffffff0f;border-radius:12px;flex:none;align-items:center;gap:10px;margin-top:14px;padding:12px;font-size:13px;display:flex}.af-avatar{color:#bdebff;width:34px;height:34px;font:600 12px var(--af-font-head);background:#00c0ff2e;border-radius:50%;flex:none;place-items:center;display:grid}.af-id{flex:1;min-width:0}.af-id strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.af-id span{color:#ffffff80;font-size:12px;display:block}.af-tools{gap:0;display:flex}.af-tools button{color:#fff9;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:6px;font-size:15px;line-height:0;display:grid}.af-tools button:hover{color:#fff;background:#ffffff1a}.af-top{background:var(--af-surface);border-bottom:1px solid var(--af-rule);z-index:30;grid-area:1/2;align-items:center;gap:16px;min-width:0;padding:0 28px;display:flex;position:relative}.af-menu-btn{color:var(--af-text);background:0 0;border:0;border-radius:8px;padding:6px;font-size:20px;line-height:0;display:none}.af-top-run{min-width:0;color:var(--af-text-2);flex:auto;align-items:center;gap:10px;font-size:13px;display:flex}.af-run{font:600 12px var(--af-font);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.af-run svg{width:13px;height:13px}.af-run-busy{background:var(--af-indigo-50);color:var(--af-indigo)}.af-run-ok{background:var(--af-ok-bg);color:var(--af-ok)}.af-run-error{background:var(--af-danger-bg);color:var(--af-danger)}.af-run-file{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--af-muted);overflow:hidden}.af-spin{animation:1s linear infinite af-spin}@keyframes af-spin{to{transform:rotate(360deg)}}.af-top-right{flex:none;align-items:center;gap:14px;display:flex}.af-restart{cursor:pointer;background:var(--af-warn-bg);height:32px;color:var(--af-warn);font:600 12.5px var(--af-font);border:0;border-radius:9px;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.af-restart:hover{background:#ffebc2}.af-clock{color:var(--af-muted);white-space:nowrap;cursor:default;align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.af-clock svg{width:14px;height:14px}.af-clock-label{color:var(--af-text-2);font-weight:600}.af-clock-time{font-variant-numeric:tabular-nums}.af-shell .main-content{background:var(--af-bg);flex-direction:column;grid-area:2/2;min-width:0;height:auto;min-height:0;padding:26px 28px 36px;display:flex;overflow-y:auto}.af-side-overlay{z-index:35;background:#0e1a4a59;position:fixed;inset:0}@media (width<=900px){.app-container.af-shell{grid-template-columns:minmax(0,1fr)}.af-side{width:272px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.af-side.open{box-shadow:var(--af-shadow-lg);transform:none}.af-side-close{display:grid}.af-top,.af-shell .main-content{grid-column:1}.af-top{padding:0 14px}.af-menu-btn{display:grid}.af-clock-label,.af-run-file{display:none}.af-shell .main-content{padding:18px 14px 28px}}.af-notfound{text-align:center;margin:80px auto}.af-notfound h1{font:600 26px var(--af-font-head);color:var(--af-text)}.af-notfound p{color:var(--af-muted)}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.modal h5,.modal-title{font-family:var(--af-font-head);color:var(--af-text);letter-spacing:-.015em}.main-content h1{margin:0 0 18px;font-size:26px;font-weight:600;line-height:1.2}.main-content h2{margin:0 0 12px;font-size:18px;font-weight:600}.main-content h3{margin:0 0 10px;font-size:16px;font-weight:600}.main-content h4,.main-content h5{margin:0 0 8px;font-size:14.5px;font-weight:600}.main-content p{margin:0 0 10px}.help-block,.form-text,.text-muted,small,.small{font-size:12.5px;color:var(--af-muted)!important}.main-content code,.main-content pre{font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.main-content .flex-container{background:var(--af-surface);box-shadow:var(--af-shadow);border:0;border-radius:16px;gap:12px;margin:0;padding:20px 22px}.main-content .flex-container.no-padding{box-shadow:none;background:0 0;border-radius:0;gap:20px;padding:0}.main-content .flex-container>h2:first-child,.main-content .flex-container>h3:first-child,.main-content .flex-container>h4:first-child{margin-top:0}.main-content .split-screen{gap:20px}.main-content .split-screen>.flex-container{overflow:auto}.btn{--bs-btn-border-radius:10px;min-height:38px;font:600 13.5px var(--af-font);border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:7px 15px;line-height:1.2;transition:background-color .12s,box-shadow .12s;display:inline-flex;box-shadow:0 1px 2px #1018280f}.btn:focus-visible{box-shadow:var(--af-ring);outline:none}.btn-primary,.btn-primary:focus{background:var(--af-indigo);color:#fff}.btn-primary:hover,.btn-primary:active{color:#fff;background:var(--af-indigo-700)!important}.btn-secondary,.btn-outline-secondary,.btn-light,.btn-outline-primary{background:var(--af-surface);color:var(--af-text);box-shadow:0 0 0 1px var(--af-rule), 0 1px 2px #1018280d}.btn-secondary:hover,.btn-outline-secondary:hover,.btn-light:hover,.btn-outline-primary:hover,.btn-secondary:active,.btn-outline-secondary:active{background:var(--af-hover)!important;color:var(--af-text)!important}.btn-danger,.btn-outline-danger{background:var(--af-danger-bg);color:var(--af-danger);box-shadow:none}.btn-danger:hover,.btn-outline-danger:hover{background:var(--af-danger)!important;color:#fff!important}.btn-success{background:var(--af-ok);color:#fff}.btn-warning{background:var(--af-warn-bg);color:var(--af-warn)}.btn:disabled,.btn.disabled{opacity:.45;box-shadow:none}.btn-sm{border-radius:8px;min-height:30px;padding:4px 11px;font-size:12.5px}.btn-close{opacity:.5;box-shadow:none}.btn-close:hover{opacity:.9}.main-content input[type=text],.main-content input[type=number],.main-content input[type=password],.main-content input[type=email],.main-content input[type=url],.main-content input[type=search],.main-content input[type=date],.main-content input[type=datetime-local],.main-content input[type=time],.main-content input:not([type]),.main-content select,.main-content textarea,.form-control,.form-select,.modal input[type=text],.modal input[type=password],.modal input[type=number],.modal select,.modal textarea{box-sizing:border-box;min-height:var(--af-h);background-color:var(--af-sunken);color:var(--af-text);font:400 14px var(--af-font);box-shadow:none;border:1px solid #0000;border-radius:10px;padding:8px 12px;transition:background-color .12s,border-color .12s,box-shadow .12s}.main-content textarea,textarea.form-control{min-height:96px;line-height:1.5}.main-content input:hover,.main-content select:hover,.main-content textarea:hover,.form-control:hover,.form-select:hover{background-color:var(--af-hover)}.main-content input:focus,.main-content select:focus,.main-content textarea:focus,.form-control:focus,.form-select:focus,.modal input:focus,.modal select:focus{background-color:var(--af-surface);border-color:var(--af-indigo);box-shadow:var(--af-ring);outline:none}.form-control[readonly],.form-control:disabled,.main-content input[readonly],.main-content input:disabled,.main-content select:disabled{background-color:var(--af-sunken);color:var(--af-muted);border-color:#0000}.form-control-sm{border-radius:8px;min-height:32px;padding:4px 10px;font-size:13px}.form-label,.main-content label{font:600 13px/1.4 var(--af-font);color:var(--af-text-2);margin-bottom:6px}.form-group,.mb-3{margin-bottom:14px}.input-group-text{background:var(--af-sunken);color:var(--af-muted);border:0;border-radius:10px;font-size:13px}.input-group>.form-control,.input-group>.form-select{border-radius:10px}.input-group>:not(:first-child){border-radius:10px!important;margin-left:4px!important}.form-check-input,.main-content input[type=checkbox],.main-content input[type=radio]{accent-color:var(--af-indigo);min-height:0}.form-check-input:checked{background-color:var(--af-indigo);border-color:var(--af-indigo)}.form-check-input:focus{box-shadow:var(--af-ring);border-color:var(--af-indigo)}.form-switch .form-check-input{width:2.2em;height:1.2em}.checkbox-label{color:var(--af-text);font-weight:500}.main-content .error,.text-danger{color:var(--af-danger)!important}.tabs-row{flex-wrap:wrap;gap:2px;margin-bottom:14px;display:flex;border-bottom:1px solid var(--af-rule)!important}.tabs-row button{color:var(--af-muted);font:600 13px var(--af-font);box-shadow:none;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin:0 0 -1px;padding:0}.tabs-row button span{border-radius:8px 8px 0 0;align-items:center;gap:7px;display:inline-flex;padding:10px 12px!important}.tabs-row button:not(:disabled):hover span{background:var(--af-hover);color:var(--af-text)}.tabs-row button.active-tab,.tabs-row .active-tab{border-bottom-color:var(--af-indigo)!important;color:var(--af-indigo)!important;font-weight:600!important}.tabs-row button:disabled{opacity:1;color:#a9b1bc!important}.main-content .table,.modal .table{--bs-table-bg:transparent;--bs-table-striped-bg:transparent;color:var(--af-text);border-color:var(--af-rule);margin:0;font-size:13.5px}.main-content .table>:not(caption)>*>*,.modal .table>:not(caption)>*>*{border-width:0 0 1px;border-color:var(--af-rule);box-shadow:none;vertical-align:middle;background:0 0;padding:10px 12px}.main-content .table thead th,.modal .table thead th{color:var(--af-muted);font:600 12px var(--af-font);white-space:nowrap;background:0 0}.main-content .table-bordered>:not(caption)>*{border-width:0}.main-content .table tbody tr:hover>*{background:var(--af-indigo-50)}.modal{z-index:1060}.modal-dialog{margin-top:90px}.modal-content{box-shadow:var(--af-shadow-lg);background:var(--af-surface);border:0;border-radius:16px}.modal-header{border-bottom:1px solid var(--af-rule);padding:18px 22px 14px}.modal-title{font-size:17px;font-weight:600}.modal-body{padding:18px 22px}.modal-footer{border-top:1px solid var(--af-rule);gap:8px;padding:14px 22px}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1050;position:fixed;inset:0;background:#0e1a4a59!important}.horizontal-slider{height:28px}.horizontal-slider .track,.horizontal-slider [class*=track]{background:var(--af-rule);border-radius:999px;height:4px;top:12px}.horizontal-slider .track-0,.horizontal-slider [class*=track-0]{background:var(--af-indigo)}.horizontal-slider .thumb,.horizontal-slider [class*=thumb]:not(.thumb-value){background:var(--af-surface);width:18px;height:18px;box-shadow:0 0 0 2px var(--af-indigo), 0 2px 6px #10182833;cursor:grab;border-radius:50%;outline:none;top:5px}.thumb-value{font:600 12px var(--af-font);color:var(--af-text-2)}.spinner{border-color:var(--af-indigo-100)!important;border-top-color:var(--af-indigo)!important}.spinner-container{background:var(--af-bg);color:var(--af-text-2);font:500 14px var(--af-font)}.btn{border-radius:10px!important}.btn-sm{border-radius:8px!important}.btn:hover{font-weight:600}button.btn-danger,button.btn-danger:focus{background-color:var(--af-danger-bg)!important;color:var(--af-danger)!important;border:0!important}button.btn-danger:hover{background-color:var(--af-danger)!important;color:#fff!important}button.btn-icon{color:var(--af-muted);box-shadow:none;background:0 0;border:0;border-radius:8px;place-items:center;min-height:0;margin:0 2px;padding:6px;display:inline-grid}button.btn-icon:hover:not(:disabled){background:var(--af-hover);color:var(--af-indigo)}button.btn-icon:hover .run,button.btn-icon:hover .edit,button.btn-icon:hover .document{color:var(--af-indigo)!important}button.btn-icon:hover .danger{color:var(--af-danger)!important}button.btn-icon:disabled{opacity:.4}button.btn-icon svg{width:17px;height:17px}.logo:hover{filter:none}.help-block a,.help-block a:hover{color:var(--af-indigo);font-weight:600}.frame-control-bar{background:var(--af-surface)!important;border-top:1px solid var(--af-rule)!important}.frame-slider{accent-color:var(--af-indigo);background:var(--af-rule)!important}.af-auth{background:var(--af-bg);grid-template-columns:minmax(320px,44%) 1fr;min-height:100vh;display:grid}.af-auth-brand{color:#fffc;background:radial-gradient(120% 80% at 0 100%,#00c0ff38 0%,#00c0ff00 55%),linear-gradient(160deg,#0e1a4a 0%,#13245f 60%,#1b3290 100%);flex-direction:column;justify-content:space-between;gap:40px;padding:44px 48px;display:flex}.af-auth-brand img{align-self:flex-start;width:auto;height:28px}.af-auth-brand h1{font:600 34px/1.15 var(--af-font-head);color:#fff;letter-spacing:-.025em;margin:0 0 14px}.af-auth-brand p{color:#ffffffb8;max-width:420px;margin:0;font-size:15px;line-height:1.6}.af-auth-ver{font:600 11px var(--af-font);letter-spacing:.08em;text-transform:uppercase;color:#ffffff73}.af-auth-main{place-items:center;padding:32px 20px;display:grid}.af-auth-card{background:var(--af-surface);width:100%;max-width:380px;box-shadow:var(--af-shadow);border-radius:18px;flex-direction:column;padding:34px 32px 30px;display:flex}.af-auth-card h2{font:600 22px var(--af-font-head);color:var(--af-text);letter-spacing:-.02em;margin:0 0 6px}.af-auth-lead{color:var(--af-muted);margin:0 0 22px;font-size:14px}.af-auth-card label{font:600 13px var(--af-font);color:var(--af-text-2);margin:0 0 6px}.af-auth-card input{box-sizing:border-box;background:var(--af-sunken);width:100%;height:44px;color:var(--af-text);font:400 15px var(--af-font);border:1px solid #0000;border-radius:10px;margin:0 0 16px;padding:0 14px}.af-auth-card input:focus{background:var(--af-surface);border-color:var(--af-indigo);box-shadow:var(--af-ring);outline:none}.af-auth-submit{width:100%;height:44px;font-size:14.5px;margin:6px 0 0!important}.af-auth-error,.af-auth-ok{margin:-8px 0 12px;font-size:13px;font-weight:600}.af-auth-error{color:var(--af-danger)}.af-auth-ok{color:var(--af-ok)}@media (width<=800px){.af-auth{grid-template-columns:1fr}.af-auth-brand{gap:18px;padding:28px 24px}.af-auth-brand h1{font-size:24px}.af-auth-brand p,.af-auth-ver{display:none}}.af-page-head{margin:0 0 20px}.af-page-head h1{margin:0 0 4px!important}.af-page-head p{color:var(--af-muted);margin:0;font-size:14.5px}.af-state{vertical-align:-3px;flex:none;width:16px;height:16px;margin-right:6px}.af-state-ok{color:var(--af-ok)}.af-state-warn{color:var(--af-warn)}.af-state-error{color:var(--af-danger)}.main-content .readonly{color:var(--af-text);font-size:14px}.main-content>h1,.main-content>div>h1,.main-content>*>h1:first-child{margin-bottom:4px}.af-lead{color:var(--af-muted);max-width:900px;font-size:14.5px;margin:0 0 20px!important}.main-content h1+.flex-container,.main-content h1+div{margin-top:16px}svg[height="1em"]{vertical-align:-.125em;display:inline-block}.af-state{display:inline-block}.form-select,.main-content select.form-select,.modal select.form-select{background-position:right 10px center;background-size:14px 10px;padding-right:34px!important}.btn-primary:disabled,.btn-primary.disabled{opacity:.4;background:var(--af-indigo)!important;color:#fff!important}.btn-secondary:disabled,.btn-secondary.disabled{opacity:.7;background:var(--af-surface)!important;color:var(--af-muted)!important;box-shadow:0 0 0 1px var(--af-rule)!important}button.btn-danger:disabled{opacity:.45}.main-content table.table th,.main-content table.table td,.modal table.table th,.modal table.table td{text-align:left!important}.main-content table.table td:last-child,.main-content table.table th:last-child{white-space:nowrap}.main-content>.container,.main-content>div>.container{width:100%;max-width:none;margin:0;padding:0}.main-content .flex-container.column>form{width:100%;max-width:780px}.af-donut{width:210px;max-width:100%}button.af-tool-danger:hover{color:var(--af-danger)!important}.af-who{flex-wrap:wrap;row-gap:8px}.af-who .af-tools{border-top:1px solid #ffffff14;justify-content:space-between;width:100%;padding-top:8px}.main-content .flex-container.no-padding:has(>.toggle-service-description){align-items:center;gap:6px}.main-content .flex-container.no-padding:has(>.toggle-service-description)>h5{margin:0}.toggle-service-description{width:28px;height:28px;color:var(--af-muted);box-shadow:none;background:0 0;border:0;border-radius:8px;place-items:center;margin:0;padding:0;display:inline-grid;position:static!important}.toggle-service-description:hover{background:var(--af-hover);color:var(--af-text)}.af-note{color:var(--af-muted);margin:0 0 10px;font-size:13px}.main-content .table>:not(caption)>*>*{padding:9px 10px}.sticky-actions-cell{background:var(--af-surface)!important}.service-warning{color:var(--af-text-2);font-size:13.5px;background:var(--af-warn-bg)!important;border:0!important;border-radius:12px!important;margin:4px 0 18px!important;padding:14px 18px!important}.service-warning svg{color:var(--af-warn)!important}.main-content input[type=file],.modal input[type=file]{box-sizing:border-box;width:100%;max-width:520px;min-height:var(--af-h);background:var(--af-sunken);color:var(--af-muted);font:400 13.5px var(--af-font);cursor:pointer;border:0;border-radius:10px;padding:4px 12px 4px 4px}.main-content input[type=file]::file-selector-button{cursor:pointer;background:var(--af-surface);height:32px;color:var(--af-text);box-shadow:0 0 0 1px var(--af-rule);font:600 12.5px var(--af-font);border:0;border-radius:8px;margin-right:12px;padding:0 12px}.modal input[type=file]::file-selector-button{cursor:pointer;background:var(--af-surface);height:32px;color:var(--af-text);box-shadow:0 0 0 1px var(--af-rule);font:600 12.5px var(--af-font);border:0;border-radius:8px;margin-right:12px;padding:0 12px}.main-content input[type=file]:hover::file-selector-button{background:var(--af-hover)}.btn:not([class*=btn-]){background:var(--af-indigo);color:#fff}.btn:not([class*=btn-]):hover{background:var(--af-indigo-700);color:#fff}.main-content .container.mt-4,.main-content .container.mt-3{margin-top:0!important}.af-boot{background:radial-gradient(90% 70% at 50% 0%, #fff 0%, var(--af-bg) 70%);place-items:center;min-height:100vh;padding:24px;display:grid}.af-boot-card{text-align:center;background:var(--af-surface);width:100%;max-width:420px;box-shadow:var(--af-shadow);border-radius:18px;padding:36px 32px 30px}.af-boot-logo{width:auto;height:30px;margin:0 auto 28px;display:block}.af-boot-spinner{border:3px solid var(--af-indigo-100);border-top-color:var(--af-indigo);border-radius:50%;width:34px;height:34px;margin:0 auto 20px;animation:.9s linear infinite af-spin}.af-boot-card h1{font:600 19px var(--af-font-head);color:var(--af-text);letter-spacing:-.015em;margin:0 0 8px}.af-boot-card p{color:var(--af-text-2);margin:0 0 14px;font-size:14px;line-height:1.55}.af-boot-hint{color:var(--af-muted);font-size:12px}.main-content .flex-container:has(.af-pager){gap:0;overflow:hidden;padding:18px 0 6px!important}.main-content .flex-container:has(.af-pager)>h5{padding:0 24px}.main-content .flex-container:has(.af-pager)>p{padding:0 24px}.main-content .flex-container:has(.af-pager)>.af-note{padding:0 24px}.main-content .flex-container:has(.af-pager)>h5{margin-bottom:4px}.af-list-toolbar{box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:0 24px 14px;display:flex}.af-list-toolbar-left,.af-list-toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.af-list-toolbar .btn{margin:0!important}.af-list-count{color:var(--af-muted);font-size:12.5px}.main-content .flex-container:has(.af-pager) table.table{border-top:1px solid var(--af-rule);margin:0}.main-content table.table>:not(:first-child){border-top:0!important}.main-content table.table>thead>tr>th{vertical-align:middle;background:var(--af-surface)!important;color:var(--af-muted)!important;font:600 12px var(--af-font)!important;border-bottom:1px solid var(--af-rule)!important;padding:12px!important}.main-content table.table>tbody>tr>td{color:var(--af-text);vertical-align:middle;font-size:13.5px;border-bottom:1px solid #eef1f6!important;padding:11px 12px!important}.main-content table.table>tbody>tr:last-child>td{border-bottom:0!important}.main-content table.table>tbody>tr:hover>td{background:var(--af-indigo-50)!important}.main-content .flex-container:has(.af-pager) table.table>*>tr>:first-child{width:1%;padding-left:24px!important}.main-content .flex-container:has(.af-pager) table.table>*>tr>:last-child{padding-right:24px!important}.main-content table.table input[type=checkbox]{vertical-align:middle;width:16px;min-height:0;accent-color:var(--af-indigo);margin:0;height:16px!important}.main-content table.table td button.btn-icon{margin:0 1px;padding:5px}.main-content table.table td button.btn-icon svg{width:16px;height:16px}.af-pager{box-sizing:border-box;border-top:1px solid var(--af-rule);width:100%;color:var(--af-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 24px;font-size:13px;display:flex}.af-pager-nav{align-items:center;gap:6px;display:flex}.af-pager-nav label{font:500 12.5px var(--af-font)!important;color:var(--af-muted)!important;margin:0 4px 0 0!important}.af-pager .form-select{background-color:var(--af-surface);width:auto;height:32px;min-height:32px;box-shadow:0 0 0 1px var(--af-rule);padding-top:0;padding-bottom:0;font-size:13px}.af-pager-btn{cursor:pointer;background:var(--af-surface);width:32px;height:32px;color:var(--af-text-2);box-shadow:0 0 0 1px var(--af-rule);border:0;border-radius:8px;place-items:center;padding:0;display:inline-grid}.af-pager-btn:hover:not(:disabled){background:var(--af-hover);color:var(--af-text)}.af-pager-btn:disabled{opacity:.4;cursor:default}.main-content .flex-container.column>form.af-settings{max-width:none}.main-content .flex-container:has(>form.af-settings){padding:6px 0 0!important}.af-set-section{border-bottom:1px solid var(--af-rule);grid-template-columns:minmax(200px,280px) minmax(0,560px);gap:8px 48px;padding:22px 26px;display:grid}.af-set-head h3{color:var(--af-text);font:600 15px var(--af-font-head)!important;margin:0 0 4px!important}.af-set-head p{color:var(--af-muted);font-size:13px;line-height:1.5;margin:0!important}.af-set-body{min-width:0}.af-set-body .help-block{margin:6px 0 0;padding:0;font-size:12.5px;line-height:1.5}.af-set-body .form-control,.af-set-body select{width:100%;margin-bottom:0!important}.af-set-body .af-input-short{max-width:200px}.af-set-gap{display:block;margin-top:18px!important}.af-set-check{margin-top:14px}.af-set-body .checkbox-group{padding:4px 0}.af-switch-row{align-items:center;gap:12px;display:flex}.af-switch-row .form-check{min-height:0;margin:0;padding-left:2.6em}.af-switch-row .form-check-input{cursor:pointer;width:2.4em!important;height:1.3em!important}.af-switch-label{font:600 14px var(--af-font)!important;color:var(--af-text)!important;margin:0!important}.af-pill{font:600 12px var(--af-font);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.af-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.af-pill-ok{background:var(--af-ok-bg);color:var(--af-ok)}.af-pill-muted{background:var(--af-sunken);color:var(--af-muted)}.af-example{background:var(--af-indigo-50);border-radius:10px;flex-direction:column;gap:3px;margin-top:14px;padding:12px 14px;display:flex}.af-example-title{color:var(--af-text-2);font-size:12px;font-weight:600}.af-example-name{color:var(--af-indigo);background:0 0;padding:0;font:600 13.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.af-example-path{color:var(--af-muted);text-overflow:ellipsis;white-space:nowrap;font:400 11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.af-set-actions{flex-wrap:wrap;gap:10px;padding:18px 26px 22px;display:flex}.af-set-actions .btn{margin:0!important}@media (width<=1100px){.af-set-section{grid-template-columns:1fr;gap:14px}}.af-set-head code{color:var(--af-text-2);background:var(--af-sunken);white-space:nowrap;border-radius:5px;padding:1px 5px;font:11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.af-code-input{font:12.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}.af-status-row{flex-wrap:wrap;gap:8px;display:flex}.af-pill-error{background:var(--af-danger-bg);color:var(--af-danger)}.af-linked{background:var(--af-indigo-50);border-radius:10px;flex-direction:column;gap:2px;margin-top:14px;padding:12px 14px;display:flex}.af-linked-label{font:600 11px var(--af-font);letter-spacing:.08em;text-transform:uppercase;color:var(--af-muted)}.af-linked strong{font:600 16px var(--af-font-head);color:var(--af-text)}.af-linked-id{color:var(--af-muted);font-size:12px}.af-kv{background:var(--af-sunken);border-radius:10px;justify-content:space-between;gap:12px;padding:10px 14px;font-size:13.5px;display:flex}.af-kv span{color:var(--af-muted)}.af-kv strong{color:var(--af-text);font-variant-numeric:tabular-nums;font-weight:600}.af-details{margin-top:12px}.af-details>summary{cursor:pointer;font:600 13px var(--af-font);color:var(--af-indigo);list-style:none}.af-details>summary::-webkit-details-marker{display:none}.af-details>summary:before{content:"›";margin-right:6px;transition:transform .15s;display:inline-block}.af-details[open]>summary:before{transform:rotate(90deg)}.af-details .af-code-input{color:var(--af-muted);font-size:11.5px!important}.af-station{background:#ffffff12;border-radius:12px;flex:none;margin:0 4px 6px;padding:12px 14px;box-shadow:inset 0 0 0 1px #ffffff0f}.af-station-label{font:600 10px var(--af-font);letter-spacing:.12em;text-transform:uppercase;color:var(--af-cyan);opacity:.85;margin-bottom:3px;display:block}.af-station-name{font:600 17px/1.25 var(--af-font-head);color:#fff;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.af-brand{padding-bottom:14px}.af-home{flex-direction:column;gap:20px;display:flex}.af-home .af-page-head{margin-bottom:0}.af-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.af-kpi{background:var(--af-surface);box-shadow:var(--af-shadow);border-radius:16px;flex-direction:column;gap:6px;min-width:0;padding:18px 20px;display:flex}.af-kpi-label{font:600 12px var(--af-font);color:var(--af-muted)}.af-kpi-value{font:600 28px/1.1 var(--af-font-head);color:var(--af-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.af-kpi-value small{font:600 13px var(--af-font);color:var(--af-muted);letter-spacing:0;margin-left:6px}.af-kpi-note{color:var(--af-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.af-kpi:first-child{background:linear-gradient(160deg,#0e1a4a 0%,#1b3290 100%)}.af-kpi:first-child .af-kpi-label,.af-kpi:first-child .af-kpi-note{color:#ffffffa6}.af-kpi:first-child .af-kpi-value{color:#fff}.af-kpi:first-child .af-kpi-value small{color:var(--af-cyan)}.af-home-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);align-items:start;gap:20px;display:grid}.af-home-side{flex-direction:column;gap:20px;min-width:0;display:flex}.main-content .af-card{gap:14px!important;height:auto!important;padding:18px 20px 20px!important}.af-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.af-card-head h4{margin:0!important;font-size:15px!important}.af-card-link{font:600 12.5px var(--af-font)}.af-empty{text-align:center;color:var(--af-muted);background:var(--af-sunken);border-radius:12px;padding:40px 16px;font-size:14px}.af-seg{background:var(--af-sunken);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.af-seg button{height:28px;color:var(--af-text-2);font:600 12px var(--af-font);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.af-seg button[aria-pressed=true]{background:var(--af-surface);color:var(--af-indigo);box-shadow:0 1px 2px #1018281f}.af-lv-media{aspect-ratio:16/9;background:#0e1a4a;border-radius:12px;position:relative;overflow:hidden}.af-lv-media img,.af-lv-media video{object-fit:contain;width:100%;height:100%;display:block}.af-lv-missing{color:#ffffffb3;text-align:center;place-items:center;padding:20px;font-size:14px;display:grid;position:absolute;inset:0}.af-meta{border:1px solid var(--af-rule);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;display:grid;overflow:hidden}.af-meta>div{border-right:1px solid var(--af-rule);min-width:0;padding:10px 14px}.af-meta>div:last-child{border-right:0}.af-meta dt{font:600 11px var(--af-font);letter-spacing:.06em;text-transform:uppercase;color:var(--af-muted);margin:0 0 4px}.af-meta dd{color:var(--af-text);flex-wrap:wrap;align-items:center;gap:8px;min-width:0;margin:0;font-size:13.5px;display:flex}.af-mono{text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;font-size:12.5px!important;display:block!important}.af-meta-link{font:600 12.5px var(--af-font);align-items:center;gap:2px;display:inline-flex}.af-pill-info{background:var(--af-indigo-50);color:var(--af-indigo)}.af-status-list{margin:0;padding:0;list-style:none}.af-status-list li{border-top:1px solid var(--af-rule);align-items:center;gap:12px;padding:12px 0;display:flex}.af-status-list li:first-child{border-top:0;padding-top:4px}.af-status-ico{border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.af-status-ico.af-tone-ok{background:var(--af-ok-bg);color:var(--af-ok)}.af-status-ico.af-tone-warn{background:var(--af-warn-bg);color:var(--af-warn)}.af-status-ico.af-tone-error{background:var(--af-danger-bg);color:var(--af-danger)}.af-status-ico.af-tone-muted{background:var(--af-sunken);color:var(--af-muted)}.af-status-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.af-status-text strong{font:600 13.5px var(--af-font);color:var(--af-text);align-items:center;gap:6px;display:inline-flex}.af-status-text span{color:var(--af-muted);font-size:12.5px;line-height:1.45}.af-tone-mark{width:14px;height:14px}.af-tone-mark.af-tone-ok{color:var(--af-ok)}.af-tone-mark.af-tone-warn{color:var(--af-warn)}.af-tone-mark.af-tone-error{color:var(--af-danger)}.af-tone-mark.af-tone-muted{color:var(--af-muted)}.af-status-go{width:30px;height:30px;color:var(--af-muted);border-radius:8px;flex:none;place-items:center;display:grid}.af-status-go:hover{background:var(--af-hover);color:var(--af-indigo);text-decoration:none}.af-bar-block{flex-direction:column;gap:8px;display:flex}.af-bar-block+.af-bar-block{border-top:1px solid var(--af-rule);padding-top:14px}.af-bar-title{color:var(--af-text-2);justify-content:space-between;font-size:13px;display:flex}.af-bar-title strong{color:var(--af-text);font-variant-numeric:tabular-nums;font-weight:600}.af-bar{background:var(--af-sunken);border-radius:999px;gap:2px;height:10px;display:flex;overflow:hidden}.af-bar-seg{min-width:4px;height:100%;display:block}.af-seg-ok{background:var(--af-indigo)}.af-seg-info{background:var(--af-cyan)}.af-seg-muted{background:#c7cfdb}.af-seg-error{background:var(--af-danger)}.af-bar-legend{color:var(--af-text-2);grid-template-columns:1fr 1fr;gap:4px 16px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.af-bar-legend li{align-items:center;gap:7px;display:flex}.af-bar-legend i{border-radius:50%;flex:none;width:8px;height:8px}.af-bar-legend strong{color:var(--af-text);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}@media (width<=1280px){.af-kpis,.af-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.af-meta>div:nth-child(2){border-right:0}.af-meta>div:nth-child(-n+2){border-bottom:1px solid var(--af-rule)}}@media (width<=1100px){.af-home-grid{grid-template-columns:minmax(0,1fr)}}.af-station-name,.af-linked strong{font-family:var(--af-font)!important;letter-spacing:0!important;font-weight:700!important}.af-drop{background:var(--af-surface);cursor:pointer;border:1.5px dashed #c7cfdb;border-radius:14px;align-items:center;gap:14px;margin:0 0 16px;padding:14px 18px;transition:border-color .12s,background-color .12s;display:flex}.af-drop:hover,.af-drop:focus-within{border-color:var(--af-indigo);background:var(--af-indigo-50)}.af-drop-ico{background:var(--af-indigo-50);width:38px;height:38px;color:var(--af-indigo);border-radius:10px;flex:none;place-items:center;font-size:18px;display:grid}.af-drop-text{color:var(--af-muted);font-size:13px}.af-drop-text strong{font:600 14px var(--af-font);color:var(--af-text);margin-bottom:1px;display:block}.af-vtool{width:100%}.af-vtool-row{border-bottom:1px solid var(--af-rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:14px;padding:0 24px 14px;display:flex}.af-vtool-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.af-vtool-group .btn{margin:0!important}.af-vtool-label{font:600 12px var(--af-font);color:var(--af-muted);margin-right:2px}.af-range{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.af-range label{font:600 12px var(--af-font)!important;color:var(--af-muted)!important;margin:0!important}.af-range input{height:34px;width:210px!important;min-height:34px!important;padding:4px 10px!important;font-size:13px!important}.af-range-clear{color:var(--af-indigo);font:600 12.5px var(--af-font);cursor:pointer;background:0 0;border:0;padding:4px 6px}.btn svg{width:15px;height:15px}.main-content table.table th.af-num,.main-content table.table td.af-num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.main-content table.af-videos-table>*>tr>*{padding-left:8px!important;padding-right:8px!important}.main-content table.af-videos-table td:nth-child(3),.main-content table.af-videos-table td:nth-child(6){text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.main-content table.af-videos-table td:nth-child(5) img{object-fit:cover;border-radius:6px;width:52px;height:30px}.main-content table.af-videos-table td button.btn-icon{margin:0;padding:4px}.main-content table.af-videos-table .sticky-actions-cell,.main-content table.af-videos-table .sticky-actions-header{white-space:nowrap;width:auto!important}.main-content table.af-videos-table .cell-icon-text{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.main-content table.af-videos-table .sticky-actions-cell,.main-content table.af-videos-table .sticky-actions-header{box-shadow:none!important;position:static!important}.main-content table.af-videos-table td:nth-child(3){max-width:120px}.main-content table.af-videos-table td:nth-child(6){max-width:115px}.main-content table.af-videos-table td:nth-child(2),.main-content table.af-videos-table th:nth-child(2){color:var(--af-muted)}.main-content table.af-videos-table>*>tr>*{font-size:13px;padding-left:7px!important;padding-right:7px!important}.main-content table.af-videos-table>*>tr>:first-child{padding-left:22px!important}.main-content table.af-videos-table>*>tr>:last-child{padding-right:16px!important}.main-content table.af-videos-table td button.btn-icon svg{width:15px;height:15px}.af-auth-kicker{font:600 11px var(--af-font);letter-spacing:.14em;text-transform:uppercase;color:var(--af-cyan);margin-bottom:10px;display:block}.af-auth-brand h1.af-auth-station{font-family:var(--af-font);letter-spacing:-.02em;word-break:break-word;font-size:40px;font-weight:700}.modal .modal-dialog{width:calc(100% - 48px);margin-bottom:48px;margin-top:48px!important;margin-left:auto!important;margin-right:auto!important}.modal .modal-dialog>.modal-content{flex-direction:column;max-height:calc(100vh - 96px);animation:none;display:flex;overflow:hidden;width:100%!important;max-width:none!important;padding:0!important}.modal .modal-dialog>.modal-content>.modal-header,.modal .modal-dialog>.modal-content>.modal-footer{flex:none}.modal .modal-dialog>.modal-content>.modal-body{flex:auto;min-height:0;padding:20px 24px;overflow-y:auto}.modal .modal-dialog>.modal-content>.modal-header{padding:18px 24px 14px}.modal .modal-dialog>.modal-content>.modal-footer{justify-content:flex-end;padding:14px 24px}.modal .modal-dialog>.modal-content>.modal-footer .btn{margin:0!important}.modal .modal-header .modal-title{margin:0}.af-upd-hero{background:var(--af-surface);box-shadow:var(--af-shadow);border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;margin:0 0 20px;padding:22px 26px;display:grid}.af-upd-version{border-right:1px solid var(--af-rule);flex-direction:column;gap:4px;padding-right:28px;display:flex}.af-upd-version span{font:600 11px var(--af-font);letter-spacing:.08em;text-transform:uppercase;color:var(--af-muted)}.af-upd-version strong{font:600 30px/1 var(--af-font-head);color:var(--af-text);letter-spacing:-.02em}.af-upd-state{align-items:flex-start;gap:14px;min-width:0;display:flex}.af-upd-state-ico{border-radius:11px;flex:none;place-items:center;width:40px;height:40px;font-size:19px;display:grid}.af-upd-state.af-tone-ok .af-upd-state-ico{background:var(--af-ok-bg);color:var(--af-ok)}.af-upd-state.af-tone-warn .af-upd-state-ico{background:var(--af-warn-bg);color:var(--af-warn)}.af-upd-state.af-tone-info .af-upd-state-ico{background:var(--af-indigo-50);color:var(--af-indigo)}.af-upd-state.af-tone-muted .af-upd-state-ico{background:var(--af-sunken);color:var(--af-muted)}.af-upd-state>div{flex-direction:column;gap:3px;min-width:0;display:flex}.af-upd-state strong{font:600 15px var(--af-font);color:var(--af-text)}.af-upd-state span{color:var(--af-muted);font-size:13px}.af-upd-state code{max-width:100%;color:var(--af-muted);background:var(--af-sunken);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-self:flex-start;margin-top:4px;padding:2px 8px;font:11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.af-upd-hero .btn{margin:0!important}.af-note-box{border-radius:10px;margin-top:10px;padding:10px 14px;font-size:13px}.af-note-box.af-tone-error{background:var(--af-danger-bg);color:var(--af-danger)}.af-note-box.af-tone-muted{background:var(--af-sunken);color:var(--af-text-2)}.af-checks{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.af-checks li{color:var(--af-text);align-items:flex-start;gap:10px;font-size:13.5px;display:flex}.af-checks li svg{flex:none;margin-top:2px}.af-checks small{color:var(--af-muted);font-size:12.5px;display:block}.af-checklist{color:var(--af-text-2);margin:0;padding-left:18px;font-size:13.5px;line-height:1.6}.af-notes{color:var(--af-text-2);font-size:13.5px;line-height:1.6}.af-notes h1,.af-notes h2,.af-notes h3{margin:10px 0 4px!important;font-size:14px!important}@media (width<=900px){.af-upd-hero{grid-template-columns:1fr;gap:16px}.af-upd-version{border-right:0;padding-right:0}}.af-inline-note{align-self:center;margin:0 0 0 6px!important}.af-notes ul,.af-notes ol,.af-checklist{margin:0 0 8px;padding-left:20px;list-style:outside}.af-notes ol{list-style:decimal}.af-notes li,.af-checklist li{margin:2px 0}.af-notes p{margin:0 0 8px}.af-aim{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start;gap:20px;display:grid}.af-aim-side{flex-direction:column;gap:20px;min-width:0;display:flex}.af-aim-frame{aspect-ratio:16/9;background:radial-gradient(120% 90% at 50% 0,#1b2a6b 0%,#0e1a4a 70%);border-radius:12px;position:relative;overflow:hidden}.af-aim-frame img{object-fit:contain;width:100%;height:100%;display:block}.af-aim-empty{text-align:center;color:#ffffff9e;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:13.5px;display:flex;position:absolute;inset:0}.af-aim-empty svg{color:#ffffff59;width:40px;height:40px;margin-bottom:4px}.af-aim-empty strong{color:#fff;font:600 16px var(--af-font)}.af-aim-empty span{max-width:380px;line-height:1.5}.af-aim-error svg{color:#ff9c8f}.af-aim-form{flex-direction:column;gap:6px;display:flex}.af-aim-form .help-block{margin:0 0 8px;padding:0}.af-aim-form .btn{align-self:flex-start;margin:0!important}.af-aim-slider .form-label{margin-bottom:4px;display:block}.af-aim-side .af-card>.btn{align-self:flex-start;margin:0!important}.af-aim-side .af-note{padding:0 4px}.af-note-box.af-tone-warn{background:var(--af-warn-bg);color:var(--af-warn)}@media (width<=1100px){.af-aim{grid-template-columns:minmax(0,1fr)}}.af-switch-row.af-set-gap{border-top:1px dashed var(--af-rule);padding-top:18px;display:flex;margin-top:22px!important}.af-ipcam-fields{background:var(--af-sunken);border-radius:12px;margin-top:14px;padding:16px}.af-ipcam-grid{grid-template-columns:repeat(2,minmax(0,200px));gap:14px;margin-top:14px;display:grid}.af-ipcam-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.af-ipcam-actions .btn{align-items:center;gap:8px;display:inline-flex;margin:0!important}.af-cimp .af-set-actions .btn{align-items:center;gap:8px;display:inline-flex}.af-cimp-drop{border:1.5px dashed var(--af-rule);background:var(--af-sunken);min-height:132px;color:var(--af-text-2);text-align:center;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:22px;transition:border-color .12s,background .12s;display:flex;margin:0!important}.af-cimp-drop svg{width:26px;height:26px;color:var(--af-indigo);margin-bottom:4px}.af-cimp-drop strong{font:600 14px var(--af-font);color:var(--af-text)}.af-cimp-drop strong u{color:var(--af-indigo);text-decoration:none}.af-cimp-drop span{color:var(--af-muted);font-size:12.5px}.af-cimp-drop:hover,.af-cimp-drop.is-over{border-color:var(--af-indigo);background:var(--af-indigo-50)}.af-cimp-file{background:var(--af-sunken);box-shadow:0 0 0 1px var(--af-rule);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.af-cimp-file>div{flex-direction:column;flex:1;min-width:0;display:flex}.af-cimp-file strong{font:600 14px var(--af-font);color:var(--af-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.af-cimp-file span{color:var(--af-muted);font-size:12.5px}.af-cimp-file-ico{background:var(--af-indigo-50);width:30px;height:30px;color:var(--af-indigo);border-radius:9px;flex:none;padding:6px}.af-cimp-x{width:30px;height:30px;color:var(--af-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;display:grid}.af-cimp-x:hover{background:var(--af-hover);color:var(--af-text)}.af-cimp-unit{align-items:stretch;max-width:220px;display:flex}.af-cimp-unit .form-control{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.af-cimp-unit>span{background:var(--af-sunken);box-shadow:inset 0 0 0 1px var(--af-rule);color:var(--af-muted);border-radius:0 10px 10px 0;align-items:center;padding:0 12px;font-size:13px;display:flex}.af-cimp-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.af-cimp-list li{color:var(--af-text-2);align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.5;display:flex}.af-cimp-list svg{width:18px;height:18px;color:var(--af-indigo);flex:none;margin-top:1px}.af-cimp-list strong{color:var(--af-text);font-weight:600}.af-cimp-note{background:var(--af-indigo-50);color:var(--af-text);border-radius:10px;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.af-cimp-note svg{flex:none;width:17px;height:17px;margin-top:1px}.af-cimp-note.is-warn{background:var(--af-warn-bg,#fff5e0)}.af-cimp-note.is-warn svg{color:#9a6700}.af-cimp-note.is-ok{background:var(--af-ok-bg);margin:14px 0 0}.af-cimp-note.is-ok svg{color:var(--af-ok)}.af-cimp-facts{background:var(--af-rule);box-shadow:0 0 0 1px var(--af-rule);border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.af-cimp-facts>div{background:var(--af-surface);padding:10px 14px}.af-cimp-facts dt{font:500 12px var(--af-font);color:var(--af-muted);margin:0 0 3px}.af-cimp-facts dd{color:var(--af-text);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.af-cimp-chips{flex-wrap:wrap;gap:6px 8px;margin-top:14px;font-size:12.5px;display:flex}.af-cimp-chips>span:first-child{width:100%;color:var(--af-text-2);font-weight:600}.af-cimp-chips>span:not(:first-child){background:var(--af-sunken);color:var(--af-text-2);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 10px}.af-cimp-chips>span.is-high{background:var(--af-warn-bg,#fff5e0)}.af-cimp-kinds{color:var(--af-muted);margin:8px 0 0;padding:0 0 0 16px;font-size:12.5px;line-height:1.55}.af-cimp-kinds li{margin:0 0 4px}.af-cimp-kinds strong{color:var(--af-text-2);font-weight:600}.af-cimp code,.af-cimp-kinds code{background:var(--af-sunken);color:var(--af-text-2);border-radius:5px;padding:1px 5px;font:11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.af-cimp-size{align-items:center;gap:10px;display:flex}.af-cimp-size .af-cimp-unit{max-width:160px}.af-cimp-times{color:var(--af-muted)}.tabs-row.af-steps-row{scrollbar-width:thin;flex-wrap:nowrap;gap:0;overflow-x:auto}.tabs-row.af-steps-row button span{gap:5px;padding:10px 6px!important}.af-step-n{background:var(--af-sunken);width:18px;height:18px;color:var(--af-muted);font:700 11px var(--af-font);border-radius:50%;place-items:center;display:inline-grid}.tabs-row button.active-tab .af-step-n{background:var(--af-indigo);color:#fff}.tabs-row.af-steps-row button span{white-space:nowrap}.tabs-row.af-steps-row button:disabled{opacity:.45;cursor:not-allowed}form>hr.af-recipe-sep:first-child{display:none}.af-step{padding:6px 4px 12px}.af-step h5{margin:4px 0 6px}.af-step-hint{color:var(--af-muted);margin:0 0 12px;font-size:13px;line-height:1.5}.af-step-table-wrap{max-height:240px;box-shadow:0 0 0 1px var(--af-rule);border-radius:10px;margin-bottom:14px;overflow:auto}.af-step-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.af-step-table th{background:var(--af-sunken);color:var(--af-muted);font:600 12px var(--af-font);text-align:left;border-bottom:1px solid var(--af-rule);padding:7px 10px;position:sticky;top:0}.af-step-table td{border-bottom:1px solid var(--af-rule);color:var(--af-text);padding:6px 10px}.af-step-table tbody tr{cursor:pointer}.af-step-table tbody tr:hover{background:var(--af-hover)}.af-step-table tbody tr.is-selected{background:var(--af-indigo-50)}.af-step-table tbody tr:last-child td{border-bottom:0}.af-step-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.af-step-facts{background:var(--af-rule);box-shadow:0 0 0 1px var(--af-rule);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;margin:14px 0 0;display:grid;overflow:hidden}.af-step-facts>div{background:var(--af-surface);padding:9px 12px}.af-step-facts dt{font:500 12px var(--af-font);color:var(--af-muted);margin:0 0 2px}.af-step-facts dd{color:var(--af-text);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.af-step-advanced{color:var(--af-muted);margin-top:12px;font-size:12.5px}.af-step-advanced summary{cursor:pointer;color:var(--af-text-2);font-weight:600}.af-step-advanced p{margin:6px 0 0;line-height:1.5}.af-gcp-table{min-width:560px}.af-gcp-table td,.af-gcp-table th{vertical-align:middle;padding:4px 5px!important}.af-gcp-table input{font-variant-numeric:tabular-nums;min-height:32px!important;padding:5px 7px!important;font-size:13px!important}.af-gcp-table td:nth-child(2) input,.af-gcp-table td:nth-child(3) input{min-width:62px}.af-gcp-table td:nth-child(4) input,.af-gcp-table td:nth-child(5) input{min-width:112px}.af-gcp-table td:nth-child(6) input{min-width:72px}.af-calib-start{color:var(--af-text-2);margin:0;padding-left:20px;font-size:13.5px;line-height:1.6;list-style:decimal}.af-calib-start li{margin-bottom:6px}.af-calib-start strong{color:var(--af-text)}.af-run-body{flex-direction:column;gap:14px;max-height:calc(100vh - 190px);display:flex;overflow-y:auto;padding:18px 22px!important}.af-run-note{background:var(--af-indigo-50);color:var(--af-text);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13.5px;line-height:1.5;display:flex}.af-run-note.is-ok{background:var(--af-ok-bg)}.af-run-note.is-warn{background:var(--af-warn-bg,#fff5e0)}.af-run-loading{color:var(--af-muted);align-items:center;gap:8px;font-size:13px;display:flex}.af-spin{color:var(--af-indigo);flex:none;margin-top:2px;animation:1s linear infinite spin}.af-run-chart{height:240px;box-shadow:0 0 0 1px var(--af-rule);background:var(--af-surface);border-radius:12px;padding:8px 6px 4px;position:relative}.af-run-chart>*{height:100%!important}.af-run-level{background:var(--af-sunken);border-radius:12px;padding:12px 16px 10px}.af-run-level-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.af-run-level-head label{font:600 13px var(--af-font)!important;color:var(--af-text-2)!important;margin:0!important}.af-run-level-head strong{font:600 18px var(--af-font-head);color:var(--af-indigo);font-variant-numeric:tabular-nums}.af-run-slider{margin:10px 0 6px!important}.af-run-level-range{color:var(--af-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.af-run-frame{box-shadow:0 0 0 1px var(--af-rule);border-radius:12px;overflow:hidden}.af-run-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.af-run-actions .btn{margin:0!important}.af-run-spacer{flex:1}.af-dialog-overlay{z-index:1050;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e1a4a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.af-dialog{background:var(--af-surface);width:min(520px,100%);max-height:calc(100vh - 32px);box-shadow:var(--af-shadow-lg,0 24px 60px -18px #0e1a4a59);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow:auto}.af-dialog-head{border-bottom:1px solid var(--af-rule);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 12px;display:flex}.af-dialog-head h4{color:var(--af-text);font:600 17px var(--af-font-head)!important;margin:0!important}.af-dialog-head p{color:var(--af-muted);overflow-wrap:anywhere;font-size:13px;margin:3px 0 0!important}.af-dialog-x{width:32px;height:32px;color:var(--af-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;font-size:18px;display:grid}.af-dialog-x:hover{background:var(--af-hover);color:var(--af-text)}.af-dialog-body{flex-direction:column;gap:6px;padding:16px 22px 18px;display:flex}.af-dialog-body .af-run-note{margin-bottom:8px}.af-dialog-label{margin:4px 0 2px!important}.af-dialog-foot{border-top:1px solid var(--af-rule);background:var(--af-sunken);border-radius:0 0 16px 16px;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 22px;display:flex}.af-dialog-foot .btn{margin:0!important}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e1a4a73!important}.modal .modal-dialog{width:calc(100% - 32px)}.modal .modal-dialog>.modal-content{background:var(--af-surface)!important;border:0!important;border-radius:16px!important;box-shadow:0 24px 60px -18px #0e1a4a59!important}.modal .modal-dialog>.modal-content>.modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex;border-bottom:1px solid var(--af-rule)!important;padding:16px 20px 14px!important}.modal .modal-header .modal-title{font:600 17px/1.3 var(--af-font-head)!important;color:var(--af-text)!important}.modal .modal-header .btn-close{opacity:.55;background-position:50%;background-size:12px;border-radius:8px;flex:none;width:32px;height:32px;padding:0;box-shadow:none!important;margin:0!important}.modal .modal-header .btn-close:hover{opacity:1;background-color:var(--af-hover)}.modal .modal-dialog>.modal-content>.modal-body{color:var(--af-text-2);font-size:14px;padding:18px 20px!important}.modal .modal-body h5,.modal .modal-body h6{font:600 13px var(--af-font)!important;color:var(--af-text-2)!important;margin:16px 0 6px!important}.modal .modal-body>h5:first-child,.modal .modal-body>h6:first-child{margin-top:0!important}.modal .modal-body .form-group{margin:0 0 14px}.modal .modal-body .form-group>label,.modal .modal-body>label{font:600 13px var(--af-font);color:var(--af-text-2);margin:0 0 6px;display:block}.modal .modal-body .form-group>div:has(>input[type=checkbox]){align-items:center;gap:8px;padding:3px 0;display:flex}.modal .modal-body .form-group>div>label{color:var(--af-text);margin:0;font-weight:400;padding-left:0!important}.modal .modal-body input[type=checkbox]{width:16px;height:16px;accent-color:var(--af-indigo)}.modal .modal-body hr{border:0;border-top:1px solid var(--af-rule);opacity:1;margin:16px 0}.modal .modal-body [role=alert]:not(.af-run-note){font-style:normal!important}.modal .modal-dialog>.modal-content>.modal-footer{background:var(--af-sunken);border-radius:0 0 16px 16px;gap:10px;display:flex;border-top:1px solid var(--af-rule)!important;padding:12px 20px!important}.modal .modal-footer .btn{margin:0!important}.af-modal-lead{color:var(--af-muted);font-size:13.5px;margin:0 0 14px!important}.af-field-msg{margin-top:10px;font-size:13px}.af-field-msg.is-ok{color:var(--af-ok)}.af-field-msg.is-error{color:var(--af-danger)}.af-dialog-wide{width:min(980px,100%)}.af-dialog-wide .af-dialog-body{padding:14px 20px}.af-log{border-radius:10px;height:calc(100vh - 290px);min-height:240px;overflow:auto}.af-picker-drop{border:1.5px dashed var(--af-rule);background:var(--af-sunken);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex;margin:0!important}.af-picker-drop:hover,.af-picker-drop.is-over{border-color:var(--af-indigo);background:var(--af-indigo-50)}.af-picker-drop svg{width:20px;height:20px;color:var(--af-indigo);flex:none}.af-picker-drop span{color:var(--af-text-2);font-size:13.5px}.af-picker-drop strong{color:var(--af-indigo);font-weight:600}.af-picker-drop em{color:var(--af-muted);margin-top:1px;font-size:12px;font-style:normal;display:block}.af-picker-file{background:var(--af-sunken);box-shadow:0 0 0 1px var(--af-rule);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.af-picker-file svg{width:18px;height:18px;color:var(--af-indigo);flex:none}.af-picker-file span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--af-text);flex:1;font-size:13.5px;overflow:hidden}.af-picker-file button{width:28px;height:28px;color:var(--af-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;display:grid}.af-picker-file button:hover{background:var(--af-hover);color:var(--af-text)}.af-date-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px;display:grid}.af-date-pair .form-label{margin-bottom:6px}@media (width<=520px){.af-date-pair{grid-template-columns:1fr}}.modal .modal-body .form-group:has(>div>input[type=checkbox]){grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;display:grid}:is(.modal .modal-body .form-group:has(>div>input[type=checkbox])>h5,.modal .modal-body .form-group:has(>div>input[type=checkbox])>label){grid-column:1/-1}.af-name-row{grid-template-columns:90px minmax(0,1fr) auto;align-items:end;gap:12px;margin:0 0 18px;display:grid}.af-name-row .btn{height:var(--af-h,40px);margin:0!important}@media (width<=560px){.af-name-row{grid-template-columns:1fr}}.af-modbus-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:14px;display:grid}.af-modbus-grid:first-child{margin-top:0}.af-modbus-grid .form-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.af-modbus-note{margin-top:14px}.af-modbus-note svg{flex:none;margin-top:3px}.af-modbus-note code{color:var(--af-text-2);font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
