:root{--bg:#0d1117;--surface:#161b22;--surface-hover:#1c232d;--input:#0d1117;--text:#e6edf3;--text-soft:#c9d1d9;--muted:#8b949e;--border:#30363dcc;--purple:#8a2be2;--lilac:#c084fc;--cyan:#22d3ee;--brand-gradient:linear-gradient(135deg, var(--lilac) 0%, var(--cyan) 100%);--line-gradient:linear-gradient(90deg, var(--purple), var(--cyan));--glow:0 0 15px #c084fc4d;--glow-strong:0 0 25px #c084fc80;--online:#3fb950;--warning:#d29922;--alarm:#f85149;--offline:#6e7681;--error:#f85149;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:inherit}.brand{letter-spacing:.04em;text-transform:uppercase;background:var(--brand-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;text-decoration:none}.brand-large{text-shadow:0 0 20px #c084fc33;font-size:1.8rem}.muted{color:var(--muted)}.small{font-size:.85rem}.loading,.fatal{text-align:center;color:var(--muted);padding:32px}.fatal{color:var(--error)}.auth{background:radial-gradient(ellipse 50% 50% at 12% 12%, #7c3aed1f 0%, transparent 70%), radial-gradient(ellipse 45% 45% at 88% 88%, #22d3ee14 0%, transparent 70%), radial-gradient(ellipse 90% 70% at 50% 18%, var(--surface) 0%, var(--bg) 75%);place-content:center;justify-items:center;gap:24px;min-height:100vh;padding:24px 16px;display:grid}.lang-switch{background:#161b2299;border:1px solid #30363de6;border-radius:999px;padding:3px;display:inline-flex}.lang-button{color:var(--muted);letter-spacing:.5px;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:700;transition:color .18s,background-color .18s}.lang-button:hover{color:var(--text)}.lang-button.active{color:#fff;background:linear-gradient(135deg, var(--purple) 0%, var(--cyan) 100%)}.lang-button:focus-visible{outline-offset:1px;outline:2px solid #c084fc99}.auth-language{position:absolute;top:16px;right:4vw}.auth,.who{position:relative}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:16px;width:min(420px,100vw - 32px);padding:32px;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 32px #8a2be226}.auth-card:before{content:"";background:var(--line-gradient);opacity:.8;height:3px;position:absolute;inset:0 0 auto}.auth-card h1{background:linear-gradient(to bottom, #fff 20%, var(--lilac) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.6rem}.auth-card p{margin:0}.form{gap:14px;display:grid}.form label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}.form input{border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:8px;padding:12px 14px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form input:focus{border-color:var(--lilac);outline:none;box-shadow:0 0 0 3px #c084fc33}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.primary{background:var(--brand-gradient);color:var(--bg);box-shadow:var(--glow);border:none;border-radius:8px;padding:12px 20px;font-weight:700;transition:transform .2s,box-shadow .2s}.primary:not(:disabled):hover{box-shadow:var(--glow-strong);transform:translateY(-2px)}.ghost{color:var(--lilac);background:#c084fc0d;border:1px solid #c084fc66;border-radius:8px;padding:12px 20px;font-weight:600;transition:background .2s,border-color .2s,color .2s}.ghost:not(:disabled):hover{border-color:var(--lilac);color:var(--text);background:#8a2be226}.link-button{color:var(--muted);background:0 0;border:none;padding:0;transition:color .2s}.link-button:hover,.secondary-link:hover{color:var(--lilac)}.secondary-link{color:var(--muted);font-size:.9rem;text-decoration:none;transition:color .2s}.error{color:var(--error);margin:0;font-size:.9rem}.mfa-setup{justify-items:center;gap:8px;display:grid}.mfa-setup img{box-shadow:var(--glow);background:#fff;border-radius:8px}.mfa-setup code{word-break:break-all;color:var(--cyan)}.topbar{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);background:#0d1117e0;align-items:center;gap:28px;height:64px;padding:0 4vw;display:flex;position:sticky;top:0}.primary-nav{align-items:center;gap:20px;display:flex}.nav-link,.nav-dropdown .dropdown-trigger{color:var(--muted);background:0 0;border:none;align-items:center;gap:4px;padding:6px 0;font-size:.92rem;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.nav-link:hover,.nav-dropdown .dropdown-trigger:hover,.nav-dropdown .dropdown-trigger[aria-expanded=true]{color:var(--text)}.nav-link.active{color:var(--text);font-weight:600}.nav-link.active:after{content:"";background:var(--line-gradient);border-radius:2px;height:2px;position:absolute;inset:auto 0 -2px}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.icon-button,.icon-dropdown .dropdown-trigger{width:38px;height:38px;color:var(--text);background:0 0;border:none;border-radius:8px;place-items:center;transition:background .2s,color .2s;display:inline-grid;position:relative}.icon-button:hover,.icon-dropdown .dropdown-trigger:hover,.icon-dropdown .dropdown-trigger[aria-expanded=true]{color:var(--lilac);background:#8a2be226}.menu-toggle{display:none}.search{border:1px solid #0000;border-radius:8px;align-items:center;gap:4px;transition:border-color .2s,background .2s;display:flex}.search[data-open=true]{background:var(--input);border-color:#c084fc66}.search input{width:240px;color:var(--text);background:0 0;border:none;padding:8px 10px 8px 0;font-size:.92rem}.search input:focus{outline:none}.badge{background:var(--alarm);color:#fff;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:18px;position:absolute;top:3px;right:2px}.account-dropdown .dropdown-trigger{color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:4px;display:inline-flex}.account-dropdown .dropdown-trigger:hover,.account-dropdown .dropdown-trigger[aria-expanded=true]{color:var(--text)}.avatar{background:var(--brand-gradient);min-width:34px;height:34px;color:var(--bg);letter-spacing:.04em;border-radius:8px;place-items:center;padding:0 6px;font-size:.72rem;font-weight:800;display:inline-grid}.dropdown{position:relative}.dropdown-panel{z-index:20;border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:220px;padding:6px;display:grid;position:absolute;top:calc(100% + 10px);left:0;box-shadow:0 16px 40px #00000073,0 0 0 1px #c084fc14}.dropdown-panel[data-align=end]{left:auto;right:0}.dropdown-item{width:100%;color:var(--text-soft);text-align:left;background:0 0;border:none;border-radius:6px;padding:9px 12px;font-size:.9rem;text-decoration:none;display:block}.dropdown-item:hover,.dropdown-item:focus-visible{color:var(--text);background:#8a2be226;outline:none}.dropdown-item[data-unread=true]{color:var(--text);font-weight:600}.dropdown-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:4px 12px 6px;font-size:.8rem;font-weight:700}.dropdown-empty{color:var(--muted);margin:0;padding:10px 12px;font-size:.88rem}.notifications-panel{width:320px}.account-summary{border-bottom:1px solid var(--border);gap:2px;margin-bottom:4px;padding:10px 12px 12px;display:grid}.account-panel .dropdown-item:last-child{border-top:1px solid var(--border);border-radius:0 0 6px 6px;margin-top:4px}.page{align-content:start;gap:12px;padding:32px 4vw 48px;display:grid}.page-title{background:linear-gradient(to bottom, #fff 20%, var(--lilac) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;justify-self:start;margin:0;font-size:1.8rem}.page>.muted{margin:0}.page .empty{text-align:left;margin:32px 0}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:12px;display:grid}.facts{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;max-width:720px;margin:12px 0 0;display:grid}.facts div{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:16px}.facts dt{color:var(--muted);font-size:.8rem}.facts dd{word-break:break-word;margin:6px 0 0;font-weight:600}.catalog{background:radial-gradient(50% 40% at 85% 0,#0ea5e90f 0%,#0000 70%),radial-gradient(35% 35% at 5% 60%,#7c3aed0d 0%,#0000 70%);gap:32px;padding:24px 0 48px;display:grid}.empty{text-align:center;color:var(--muted);margin:48px 4vw;font-size:1.05rem}.row h2{background:linear-gradient(to bottom, #fff 20%, var(--lilac) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 4vw 12px;font-size:1.15rem}.row-items{scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#c084fc4d transparent;gap:14px;margin:0;padding:8px 4vw 16px;list-style:none;display:flex;overflow-x:auto}.row-item{scroll-snap-align:start;flex:none;align-items:flex-end;display:flex}.row-items[data-ranked=true]{gap:4px}.rank{letter-spacing:-.06em;color:var(--bg);-webkit-text-stroke:2px #c084fc99;-webkit-user-select:none;user-select:none;margin-right:-14px;font-size:7rem;font-weight:900;line-height:.8}.page .row h2,.page .row-items{margin-left:0;padding-left:0}.machine-card{--status:var(--online);scroll-snap-align:start;border:1px solid var(--border);border-top:3px solid var(--status);background:var(--surface);border-radius:12px;flex:0 0 220px;align-content:space-between;gap:8px;min-height:130px;padding:16px;text-decoration:none;transition:transform .3s,border-color .3s,box-shadow .3s;display:grid}.machine-card:hover,.machine-card:focus-visible{border-color:#c084fc66;border-top-color:var(--status);outline:none;transform:translateY(-4px);box-shadow:0 12px 32px #8a2be226}[data-status=warning]{--status:var(--warning)}[data-status=alarm]{--status:var(--alarm)}[data-status=outOfService],[data-status=offline]{--status:var(--offline)}.machine-card-status,.detail-status{color:var(--status);align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:flex}.dot{background:var(--status);width:8px;height:8px;box-shadow:0 0 8px var(--status);border-radius:50%}.machine-card-name{color:var(--text);font-size:1.05rem;font-weight:700}.machine-card-summary{color:var(--muted);font-size:.85rem}.detail{gap:16px;max-width:720px;padding:24px 4vw 48px;display:grid}.detail-card{--status:var(--online);border:1px solid var(--border);border-left:4px solid var(--status);background:var(--surface);border-radius:12px;gap:8px;padding:24px;display:grid;position:relative;overflow:hidden}.detail-card:before{content:"";background:var(--line-gradient);opacity:.7;height:3px;position:absolute;inset:0 0 auto}.detail-card h1,.detail-card p{margin:0}.detail-card h1{color:var(--text)}.detail-card>p:not(.muted):not(.detail-status){color:var(--text-soft)}.detail-status{font-size:1rem}.actions{gap:12px;margin-top:12px;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.danger{color:var(--alarm);background:#f851491f;border:1px solid #f8514980;border-radius:6px;padding:6px 12px;font-weight:600}.danger:not(:disabled):hover{background:#f8514938}.link-button:disabled{opacity:.4}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-top:8px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;padding:10px 14px;font-size:.92rem;text-decoration:none;transition:color .2s;position:relative}.tab:hover{color:var(--text)}.tab.active{color:var(--text);font-weight:600}.tab.active:after{content:"";background:var(--line-gradient);border-radius:2px;height:2px;position:absolute;inset:auto 8px -1px}.editor{gap:16px;max-width:900px;display:grid}.editor-add,.editor-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.editor-add input,.editor-inline input{border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:8px;flex:220px;padding:10px 12px;font-size:.95rem}.editor-add input:focus,.editor-inline input:focus{border-color:var(--lilac);outline:none;box-shadow:0 0 0 3px #c084fc33}.editor-add .primary,.editor-inline .primary,.editor-inline .ghost{padding:10px 18px}.editor .empty{text-align:left;margin:16px 0}.editor-table{border-collapse:collapse;border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;font-size:.93rem;overflow:hidden}.editor-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.78rem;font-weight:600}.editor-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.editor-table tr:last-child td{border-bottom:none}.editor-table tbody tr:hover{background:#8a2be20f}.editor-table code{color:var(--cyan);font-size:.85rem}.editor-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.button-link{white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.editor-table a{color:var(--text);text-decoration:none}.editor-table a:hover{color:var(--lilac)}.editor-actions .link-button{font-size:.93rem;text-decoration:none}.tag{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem}.notice{color:var(--text-soft);background:#22d3ee0f;border:1px solid #22d3ee4d;border-radius:10px;margin:0;padding:14px 16px}.notice a{color:var(--cyan)}.editor-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.editor-toolbar input,.editor-toolbar select,.machine-form input,.machine-form select,.machine-form textarea{border:1px solid var(--border);background:var(--input);color:var(--text);font:inherit;border-radius:8px;padding:10px 12px;font-size:.95rem}.editor-toolbar input{flex:260px}.editor-toolbar .primary{margin-left:auto;padding:10px 18px}.editor-toolbar input:focus,.editor-toolbar select:focus,.machine-form input:focus,.machine-form select:focus,.machine-form textarea:focus{border-color:var(--lilac);outline:none;box-shadow:0 0 0 3px #c084fc33}.machine-form input:disabled{opacity:.6}.machine-form{gap:20px;max-width:900px;margin-top:8px;display:grid}.machine-form fieldset{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px 18px;margin:0;padding:18px 20px 20px;display:grid}.machine-form legend{color:var(--lilac);padding:0 8px;font-weight:700}.field{align-content:start;gap:6px;display:grid}.field-label{color:var(--muted);font-size:.85rem}.field-hint{color:var(--muted);opacity:.85;margin:0;font-size:.78rem}.machine-form .field:has(textarea){grid-column:1/-1}.topic-preview{color:var(--muted);grid-column:1/-1;margin:0;font-size:.85rem}.topic-preview code,.fact-wide code{color:var(--cyan);word-break:break-all}.switch{align-items:center;gap:10px;font-weight:600;display:flex}.switch input{width:18px;height:18px;accent-color:var(--purple)}.machine-form .switch+.field-hint{align-self:center}.fact-wide{grid-column:1/-1}.notes{white-space:pre-wrap;font-weight:400}.profile-avatar{--profile-color:var(--purple);background:linear-gradient(135deg, var(--profile-color), color-mix(in srgb, var(--profile-color) 55%, var(--bg)));color:#fff;letter-spacing:.04em;text-shadow:0 2px 8px #00000059;-webkit-user-select:none;user-select:none;border-radius:14px;place-items:center;width:120px;height:120px;font-size:2.6rem;font-weight:800;display:inline-grid}.profile-avatar[data-size=small]{border-radius:8px;width:34px;height:34px;font-size:.78rem}.profile-add{color:var(--lilac);text-shadow:none;background:0 0;border:2px dashed #c084fc73;font-size:3rem;font-weight:300}.who{text-align:center;background:radial-gradient(ellipse 50% 50% at 12% 12%, #7c3aed1f 0%, transparent 70%), radial-gradient(ellipse 45% 45% at 88% 88%, #22d3ee14 0%, transparent 70%), var(--bg);align-content:center;justify-items:center;gap:20px;min-height:100vh;padding:32px 16px;display:grid}.who-title{margin:0;font-size:clamp(1.8rem,4vw,3rem);font-weight:600}.who-name{margin:0;font-size:1.6rem}.who>.muted{margin:-8px 0 0}.who-grid{flex-wrap:wrap;justify-content:center;gap:28px;max-width:960px;margin:12px 0;display:flex}.who-profile{width:140px;color:var(--muted);background:0 0;border:none;justify-items:center;gap:10px;padding:0;display:grid}button.who-profile,.who-profile-edit{cursor:pointer}.who-profile-edit{color:var(--muted);background:0 0;border:none;justify-items:center;gap:10px;padding:0;display:grid}.who-profile .profile-avatar{transition:transform .2s,box-shadow .2s}button.who-profile:hover .profile-avatar,button.who-profile:focus-visible .profile-avatar,.who-profile-edit:hover .profile-avatar,.who-profile-edit:focus-visible .profile-avatar{box-shadow:0 0 0 3px var(--text), 0 12px 32px #8a2be240;transform:translateY(-4px)}button.who-profile:focus-visible,.who-profile-edit:focus-visible{outline:none}.who-profile:hover .who-profile-name,.who-profile-edit:hover .who-profile-name{color:var(--text)}.who-profile[data-locked=true] .profile-avatar{filter:grayscale(.85);opacity:.55}.who-profile-name{color:var(--text-soft);font-size:1.05rem}.who-profile-role{color:var(--muted);margin-top:-6px;font-size:.8rem}.who-confirm{align-items:center;gap:10px;display:flex}.who-manage{letter-spacing:.08em;text-transform:uppercase;padding:10px 28px;font-size:.85rem}.who-form-page{align-content:start}.who-form-page .operator-form{text-align:left;width:min(900px,100%)}.pin-pad{justify-items:center;gap:16px;display:grid}.pin-title{color:var(--muted);margin:0}.pin-dots{gap:14px;display:flex}.pin-dot{border:2px solid #c084fc99;border-radius:50%;width:16px;height:16px;transition:background .15s}.pin-dot[data-filled=true]{background:var(--lilac);box-shadow:0 0 10px #c084fc99}.pin-keys{grid-template-columns:repeat(3,76px);gap:12px;display:grid}.pin-key{border:1px solid var(--border);background:var(--surface);height:64px;color:var(--text);touch-action:manipulation;border-radius:14px;font-size:1.6rem;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.pin-key:not(:disabled):hover{background:var(--surface-hover);border-color:#c084fc80}.pin-key:not(:disabled):active{transform:scale(.96)}.operator-preview{align-items:center;gap:18px;font-size:1.3rem;font-weight:700;display:flex}.operator-preview .profile-avatar{width:72px;height:72px;font-size:1.6rem}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:8px;width:34px;height:34px}.swatch[aria-checked=true]{border-color:var(--text);box-shadow:0 0 0 2px var(--bg) inset}.operator-cell{align-items:center;gap:10px;display:inline-flex}.operator-locked{color:var(--warning);font-weight:600}.units-field{grid-column:1/-1}@media (width<=1000px){.topbar{gap:12px}.menu-toggle{display:inline-grid}.primary-nav{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;padding:8px 4vw 16px;display:none;position:absolute;top:64px;left:0;right:0}.primary-nav[data-open=true]{display:flex}.primary-nav .nav-link,.primary-nav .nav-dropdown .dropdown-trigger{width:100%;padding:12px 0;font-size:1rem}.primary-nav .nav-link.active:after{width:24px;inset:auto auto 6px 0}.primary-nav .dropdown-panel{box-shadow:none;margin:0 0 8px 12px;position:static}.search input{width:min(180px,40vw)}}@media (width<=640px){.auth-card{padding:24px}.notifications-panel{width:min(320px,100vw - 32px)}}.readonly-banner{z-index:9;border-bottom:1px solid var(--warning);color:var(--warning);background:#d2992224;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 4vw;font-weight:600;display:flex;position:sticky;top:64px}.machine-card[data-readonly=true]{cursor:default}.supervision-audit{margin-top:40px}.page-status{text-align:center;color:var(--muted);padding:2rem 1rem}.breadcrumb{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;font-size:.875rem;display:flex}.breadcrumb a{color:var(--muted)}.breadcrumb a:after{content:" ›";margin-left:.5rem}.chips{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);border-radius:999px;padding:.35rem .85rem;text-decoration:none}.chip:hover{background:var(--surface-hover);color:var(--text)}.levels{color:var(--text-soft);margin-bottom:1rem}.tree{margin:1rem 0 0;padding:0;list-style:none}.tree li{border-bottom:1px solid var(--border)}.tree-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 0;display:flex}.company-form fieldset{border:1px solid var(--border);border-radius:8px;padding:1rem}.level-list{gap:.5rem;margin:.5rem 0;padding-left:1.5rem;display:grid}.level-list li{align-items:center;gap:.5rem;display:flex}.company-switch .dropdown-item[aria-current=true]{color:var(--lilac)}:root{--stale:#bf8700;--waiting:#8b949e}[data-status=stale]{--status:var(--stale)}[data-status=waiting]{--status:var(--waiting)}[data-status=waiting] .dot{animation:1.4s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.live-indicator{color:var(--text-soft);white-space:nowrap;--status:var(--online);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.live-indicator[data-connection=connecting],.live-indicator[data-connection=reconnecting]{--status:var(--warning)}.live-indicator[data-connection=connecting] .dot,.live-indicator[data-connection=reconnecting] .dot{animation:1.4s ease-in-out infinite live-pulse}.live-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:1.5rem 0;padding:1rem 1.25rem}.live-panel h2{margin:0 0 .75rem;font-size:1rem}.live-stats{flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.75rem;display:flex}@media (prefers-reduced-motion:reduce){[data-status=waiting] .dot,.live-indicator .dot{animation:none}}
