.login-page{min-height:100vh;font-family:var(--font-sans,"Outfit", system-ui, sans-serif);background:radial-gradient(900px 420px at 10% 0,#1e3a8a2e,#0000 55%),radial-gradient(700px 360px at 90% 100%,#2563eb1f,#0000 50%),#eef2f7;justify-content:center;align-items:center;padding:24px;display:flex}.login-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;width:min(440px,100%);overflow:hidden;box-shadow:0 20px 40px #0f172a1a}.login-brand{color:#fff;text-align:center;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);padding:28px 28px 20px}.login-logos{justify-content:center;align-items:center;gap:14px;margin-bottom:16px;display:flex}.login-logos img{object-fit:contain;filter:brightness(0)invert();width:auto;height:34px}.login-logos img[alt=ROM]{filter:none}.login-brand h1{letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}.login-brand p{color:#fffc;margin:6px 0 0;font-size:.85rem}.login-form{flex-direction:column;gap:14px;padding:24px 28px 28px;display:flex}.login-form label{flex-direction:column;gap:6px;display:flex}.login-form label span{letter-spacing:.03em;text-transform:uppercase;color:#64748b;font-size:.78rem;font-weight:600}.login-form input,.login-form select{min-height:44px;font:inherit;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:0 12px;font-size:.95rem;transition:border-color .15s,box-shadow .15s,background .15s}.login-form input:focus,.login-form select:focus{background:#fff;border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb24}.login-error{color:#b91c1c;background:#fef2f2;border-radius:10px;padding:10px 12px;font-size:.875rem;font-weight:500}.login-submit{color:#fff;min-height:46px;font:inherit;cursor:pointer;background:#1e3a8a;border:none;border-radius:11px;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.login-submit:hover{background:#1e40af}.login-submit:active{transform:translateY(1px)}.login-hint{color:#94a3b8;text-align:center;margin:4px 0 0;font-size:.75rem;line-height:1.45}.main-content.users-mode{background:#f3f4f6;flex-direction:column;display:flex;overflow:auto}.main-content.users-mode .content-section.active{flex-direction:column;flex:1;min-height:0;display:flex}.users-page{flex-direction:column;gap:16px;height:100%;min-height:0;display:flex}.users-top{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.users-top h1{color:#0f172a;margin:0;font-size:1.25rem;font-weight:700}.users-top p{color:#64748b;margin:4px 0 0;font-size:.85rem}.users-back{color:#334155;min-height:38px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:.875rem;font-weight:500;display:inline-flex}.users-back:hover{background:#f8fafc}.users-grid{flex:1;grid-template-columns:minmax(280px,360px) 1fr;gap:14px;min-height:0;display:grid}.users-page .panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 1px 2px #0f172a0a}.users-form{flex-direction:column;align-self:start;gap:12px;display:flex}.users-form-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.users-form h2,.users-list h2{color:#0f172a;margin:0;font-size:1rem;font-weight:650}.users-form label{flex-direction:column;gap:5px;display:flex}.users-form label span{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-size:.72rem;font-weight:600}.users-form input,.users-form select{min-height:40px;font:inherit;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:0 11px;font-size:.9rem}.users-form input:focus,.users-form select:focus{background:#fff;border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.users-form input:disabled,.users-form select:disabled{opacity:.65;cursor:not-allowed}.users-error{color:#b91c1c;background:#fef2f2;border-radius:10px;padding:10px 12px;font-size:.85rem}.users-save{color:#fff;min-height:42px;font:inherit;cursor:pointer;background:#1e3a8a;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-weight:600;display:inline-flex}.users-save:hover{background:#1e40af}.linkish{color:#2563eb;font:inherit;cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:550}.users-list{flex-direction:column;min-height:0;display:flex;overflow:hidden}.users-table-wrap{flex:1;margin-top:12px;overflow:auto}.users-list table{border-collapse:collapse;width:100%;font-size:.875rem}.users-list th,.users-list td{text-align:left;color:#334155;border-bottom:1px solid #f1f5f9;padding:10px 8px}.users-list th{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-size:.72rem;font-weight:650}.role-pill{border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.role-pill.admin{color:#1d4ed8;background:#eff6ff}.role-pill.user{color:#475569;background:#f1f5f9}.users-actions{justify-content:flex-end;gap:4px;display:flex}.users-actions button{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.users-actions button:hover:not(:disabled){color:#0f172a;background:#f8fafc}.users-actions button:disabled{opacity:.35;cursor:not-allowed}@media (width<=900px){.users-grid{grid-template-columns:1fr}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--header-bg:#1e3a8a;--header-text:#fff;--sidebar-bg:#f9fafb;--sidebar-border:#e5e7eb;--sidebar-text:#374151;--sidebar-text-hover:#111827;--sidebar-item-hover:#f3f4f6;--sidebar-item-active:#e5e7eb;--primary:#2563eb;--primary-light:#eff6ff;--danger:#dc2626;--danger-light:#fef2f2;--header-height:64px;--sidebar-width-collapsed:64px;--sidebar-width-expanded:256px;--transition-speed:.3s}body{font-family:var(--font-sans);color:#1f2937;background-color:#f3f4f6;flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{height:var(--header-height);background-color:var(--header-bg);color:var(--header-text);z-index:50;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0000001a}.header-left{z-index:10;align-items:center;display:flex}.logo-container{align-items:center;gap:12px;display:flex}.logo-img{object-contain:contain;width:auto;height:40px;transition:filter var(--transition-speed)}.logo-aselsan{filter:brightness(0)invert();height:38px}.logo-rom{height:38px}.logo-kutay{filter:brightness(0)invert();height:38px}.logo-divider{background-color:#ffffff4d;width:1px;height:32px}.header-center{text-align:center;z-index:10;-webkit-user-select:text;user-select:text;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-title{letter-spacing:.5px;white-space:nowrap;font-size:1.15rem;font-weight:600}.header-subtitle{color:#fffc;white-space:nowrap;margin-top:2px;font-size:.85rem;font-weight:500}.header-right{z-index:10;align-items:center;gap:16px;display:flex}.header-divider{background-color:#ffffff26;width:1px;height:24px}.nav-btn{color:var(--header-text);cursor:pointer;font-family:var(--font-sans);transition:background-color var(--transition-speed);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:.875rem;font-weight:500;display:flex}.nav-btn:hover{background-color:#ffffff26}.btn-icon{width:16px;height:16px}.portal-links{align-items:center;gap:12px;display:flex}.portal-link-item{transition:opacity var(--transition-speed), transform var(--transition-speed);justify-content:center;align-items:center;display:flex}.portal-link-item:hover{opacity:.8;transform:translateY(-1px)}.portal-icon{filter:brightness(0)invert();object-fit:contain;width:30px;height:30px}.user-profile-container{position:relative}.profile-trigger{cursor:pointer;text-align:left;transition:background-color var(--transition-speed);background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:6px 12px;display:flex}.profile-trigger:hover{background-color:#ffffff1a}.hexagon-avatar{width:40px;height:40px;position:relative}.hexagon-inner{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background-color:#fff3;border:1.5px solid #ffffff4d;position:absolute;inset:0;overflow:hidden}.hexagon-inner img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{color:#fff;background-color:#ffffff40;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.avatar-icon{stroke-width:2.2px;width:20px;height:20px}.profile-info{flex-direction:column;display:flex}.profile-greeting{color:#ffffffb3;font-size:.7rem;line-height:1}.profile-name{color:var(--header-text);margin-top:2px;font-size:.875rem;font-weight:500}.profile-chevron{color:#ffffffb3;width:16px;height:16px;transition:transform var(--transition-speed)}.profile-trigger:hover .profile-chevron{color:#fff;transform:translateY(2px)}.profile-dropdown{border:1px solid var(--sidebar-border);z-index:60;background-color:#fff;border-radius:8px;flex-direction:column;width:240px;padding:8px;animation:.2s slideDown;display:none;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.profile-dropdown.show{display:flex}.dropdown-header{padding:8px 12px}.dropdown-user-name{color:#111827;font-size:.875rem;font-weight:600}.dropdown-user-email{color:#6b7280;margin-top:2px;font-size:.75rem}.dropdown-divider{background-color:var(--sidebar-border);height:1px;margin:8px 0}.dropdown-item{cursor:pointer;width:100%;font-family:var(--font-sans);text-align:left;color:#374151;transition:background-color var(--transition-speed), color var(--transition-speed);background:0 0;border:none;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;font-size:.875rem;font-weight:500;display:flex}.dropdown-item:hover{color:#111827;background-color:#f3f4f6}.dropdown-item i{width:16px;height:16px}.logout-btn{color:var(--danger)}.logout-btn:hover{background-color:var(--danger-light);color:#b91c1c}.mobile-menu-btn{color:var(--header-text);cursor:pointer;background:0 0;border:none;padding:8px;display:none}.mobile-menu-btn i{width:24px;height:24px}.sidebar-wrapper{top:var(--header-height);z-index:40;position:fixed;bottom:0;left:0}.app-sidebar{width:var(--sidebar-width-collapsed);background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);height:100%;transition:width var(--transition-speed) cubic-bezier(.4, 0, .2, 1);flex-direction:column;display:flex;overflow:hidden auto;box-shadow:4px 0 24px #00000008}.app-sidebar:hover{width:var(--sidebar-width-expanded)}.platform-info{border-bottom:1px solid var(--sidebar-border);box-sizing:border-box;background-color:#fff;align-items:center;gap:12px;min-height:73px;padding:16px 12px;display:flex}.platform-logo-wrapper{background-color:#1e3a8a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 2px 4px #0000001a}.platform-logo{object-fit:contain;filter:brightness(0)invert();width:32px;height:32px}.platform-details{opacity:0;visibility:hidden;white-space:nowrap;flex-direction:column;transition:opacity .2s,visibility .2s;display:flex}.app-sidebar:hover .platform-details{opacity:1;visibility:visible}.platform-name{color:#111827;font-size:.875rem;font-weight:600}.platform-sub{color:#6b7280;font-size:.75rem}.sidebar-nav{flex:1;padding:12px 8px}.nav-list{flex-direction:column;gap:6px;list-style:none;display:flex}.nav-link{color:var(--sidebar-text);transition:background-color var(--transition-speed), color var(--transition-speed);white-space:nowrap;border-radius:8px;align-items:center;gap:12px;padding:10px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background-color:var(--sidebar-item-hover);color:var(--sidebar-text-hover)}.nav-link.active{background-color:var(--sidebar-item-active);color:#111827;font-weight:600}.nav-icon-wrapper{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.nav-icon-wrapper i,.nav-icon-wrapper svg{color:currentColor;width:20px;height:20px;transition:transform .2s}.nav-link:hover .nav-icon-wrapper i,.nav-link:hover .nav-icon-wrapper svg{transform:scale(1.05)}.nav-badge{background-color:#ef4444;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 0 1px #ef444466}.nav-label{opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.app-sidebar:hover .nav-label{opacity:1;visibility:visible}.sidebar-footer{border-top:1px solid var(--sidebar-border);background-color:#fff;padding:8px}.sidebar-logout-btn{width:100%;color:var(--danger);cursor:pointer;font-family:var(--font-sans);transition:background-color var(--transition-speed);white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:10px;font-size:.875rem;font-weight:500;display:flex}.sidebar-logout-btn:hover{background-color:var(--danger-light)}.sidebar-logout-btn i{flex-shrink:0;width:20px;height:20px}.main-content{margin-top:var(--header-height);margin-left:var(--sidebar-width-collapsed);transition:margin-left var(--transition-speed) cubic-bezier(.4, 0, .2, 1);height:calc(100vh - var(--header-height));flex:1;padding:32px;overflow-y:auto}.content-section{animation:.4s fadeIn;display:none}.content-section.active{display:block}@media (width<=800px){.header-center{display:none}.btn-text,.profile-info,.profile-chevron{display:none!important}.logo-container{gap:8px}.logo-img{height:28px}.logo-divider{height:24px}.mobile-menu-btn{display:block}.portal-icon{width:24px;height:24px}.sidebar-wrapper{top:var(--header-height);pointer-events:none;z-index:99;width:100%;height:100%;position:fixed;bottom:0;left:0}.app-sidebar{width:280px;transition:transform var(--transition-speed) ease;pointer-events:auto;z-index:101;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-wrapper.mobile-open .app-sidebar{transform:translate(0)}.sidebar-wrapper.mobile-open{pointer-events:auto}.platform-details,.nav-label{opacity:1!important;visibility:visible!important}.sidebar-overlay{z-index:98;background-color:#0006;animation:.2s fadeIn;display:none;position:fixed;inset:0}.sidebar-wrapper.mobile-open~.sidebar-overlay{display:block}.main-content{margin-left:0;padding:20px}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.15)}}.main-content:has(.workshop-page){background:radial-gradient(1200px 480px at 0 0,#2563eb0f,#0000 55%),#f3f4f6;flex-direction:column;padding:12px 16px;display:flex;overflow:hidden}.main-content:has(.workshop-page) .content-section.active{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.workshop-page{flex-direction:column;flex:1;gap:10px;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.workshop-loading{z-index:80;-webkit-backdrop-filter:blur(10px);background:#f8fafc8c;justify-content:center;align-items:center;padding:24px;animation:.22s workshopLoadIn;display:flex;position:absolute;inset:0}.workshop-loading.soft{-webkit-backdrop-filter:blur(6px);background:#f8fafc6b}@keyframes workshopLoadIn{0%{opacity:0}to{opacity:1}}.workshop-loading-card{text-align:center;background:#ffffffeb;border:1px solid #e2e8f0f2;border-radius:18px;flex-direction:column;align-items:center;gap:8px;min-width:220px;padding:28px 32px;display:flex;box-shadow:0 20px 40px -16px #0f172a47,inset 0 0 0 1px #ffffff80}.workshop-loading-spinner{color:#1d4ed8;background:linear-gradient(145deg,#eff6ff,#e0e7ff);border-radius:16px;place-items:center;width:52px;height:52px;margin-bottom:4px;display:grid}.workshop-loading-spinner svg{animation:.85s linear infinite workshopSpin}.workshop-loading-card strong{letter-spacing:-.02em;color:#0f172a;font-size:1rem;font-weight:700}.workshop-loading-card span{color:#64748b;font-size:.82rem}@keyframes workshopSpin{to{transform:rotate(360deg)}}.workshop-toolbar button .is-spinning,.workshop-toolbar svg.is-spinning{animation:.85s linear infinite workshopSpin}.workshop-hero{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;display:flex}.workshop-hero h1{letter-spacing:-.02em;color:#0f172a;margin:0;font-size:1.2rem;font-weight:650}.workshop-hero p{color:#64748b;margin:2px 0 0;font-size:.8rem}.workshop-legend{color:#64748b;flex-wrap:wrap;gap:10px 14px;font-size:.75rem;display:flex}.workshop-legend span{align-items:center;gap:6px;display:inline-flex}.workshop-legend i{border-radius:50%;width:8px;height:8px;display:inline-block}.workshop-legend .lg-work{background:#10b981}.workshop-legend .lg-wait{background:#f59e0b}.workshop-legend .lg-done{background:#3b82f6}.workshop-legend .lg-fault{background:#ef4444}.workshop-legend .lg-stale-2{background:#fda4af}.workshop-legend .lg-stale-5{background:#f43f5e}.workshop-legend .lg-stale-10{background:#be123c}.workshop-legend .lg-stale-20{background:#4c0519}.workshop-panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;flex-shrink:0;padding:10px 12px;box-shadow:0 1px 2px #0f172a0a}.workshop-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.zone-tabs{border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex}.zone-tab{appearance:none;color:#334155;letter-spacing:.02em;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.zone-tab:hover{border-color:color-mix(in srgb, var(--zone-accent,#64748b) 45%, #cbd5e1);background:#fff}.zone-tab.active{background:color-mix(in srgb, var(--zone-accent,#1d4ed8) 14%, #fff);border-color:color-mix(in srgb, var(--zone-accent,#1d4ed8) 55%, #94a3b8);color:#0f172a;box-shadow:0 0 0 2px color-mix(in srgb, var(--zone-accent,#1d4ed8) 18%, transparent)}.zone-tab-count{font-variant-numeric:tabular-nums;background:#0f172a0f;border-radius:999px;justify-content:center;min-width:1.4rem;padding:1px 6px;font-size:.7rem;display:inline-flex}.zone-tab.active .zone-tab-count{background:color-mix(in srgb, var(--zone-accent,#1d4ed8) 22%, #fff)}.zone-overview{flex:auto;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;min-height:0;padding:2px;display:grid;overflow:auto}.zone-overview-card{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid color-mix(in srgb, var(--zone-accent) 35%, #e2e8f0);background:#fff;border-radius:14px;flex-direction:column;gap:8px;padding:14px 14px 12px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;box-shadow:0 1px 2px #0f172a0a}.zone-overview-card:hover{border-color:color-mix(in srgb, var(--zone-accent) 65%, #94a3b8);transform:translateY(-1px);box-shadow:0 10px 22px #0f172a14}.zone-overview-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.zone-overview-top strong{letter-spacing:.04em;color:var(--zone-accent);font-size:.95rem;font-weight:750}.zone-overview-total{font-variant-numeric:tabular-nums;color:#0f172a;font-size:1.15rem;font-weight:800}.zone-overview-sub{color:#64748b;margin:0;font-size:.78rem}.zone-overview-bars{background:#f1f5f9;border-radius:999px;gap:2px;height:8px;display:flex;overflow:hidden}.zone-overview-bars i{border-radius:2px;min-width:0;display:block}.zone-overview-bars .b-work{background:#10b981}.zone-overview-bars .b-wait{background:#f59e0b}.zone-overview-bars .b-done{background:#3b82f6}.zone-overview-bars .b-idle{background:#cbd5e1}.zone-overview-bars .b-fault{background:#ef4444}.zone-overview-stats{grid-template-columns:1fr 1fr;gap:6px 10px;margin:0;display:grid}.zone-overview-stats div{justify-content:space-between;gap:8px;display:flex}.zone-overview-stats dt{color:#94a3b8;margin:0;font-size:.7rem;font-weight:600}.zone-overview-stats dd{font-variant-numeric:tabular-nums;color:#0f172a;margin:0;font-size:.82rem;font-weight:750}.zone-overview-cta{color:color-mix(in srgb, var(--zone-accent) 80%, #64748b);margin-top:2px;font-size:.72rem;font-weight:700}.zone-detail{flex-direction:column;flex:auto;gap:12px;min-height:0;padding:2px;display:flex;overflow:auto}.zone-detail-head{flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.zone-detail-head h2{letter-spacing:.03em;color:var(--zone-accent,#0f172a);margin:0;font-size:1.15rem;font-weight:800}.zone-detail-head p{color:#64748b;margin:2px 0 0;font-size:.82rem}.zone-detail-meta{color:#94a3b8;font-size:.75rem;font-weight:650}.zone-empty{text-align:center;color:#94a3b8;background:#fff;border:1px dashed #e2e8f0;border-radius:14px;padding:28px;font-size:.9rem}.zone-station-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));align-content:start;gap:12px;display:grid}.workshop-field{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:8px;min-height:40px;padding:0 12px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.workshop-field:focus-within{background:#fff;border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.workshop-field svg{color:#94a3b8;flex-shrink:0;width:16px;height:16px}.workshop-field input,.workshop-field select{font:inherit;color:#0f172a;background:0 0;border:none;outline:none;min-width:0;font-size:.875rem}.workshop-field.search{flex:220px;max-width:320px}.workshop-field.search input{width:100%}.workshop-toolbar>button{color:#334155;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:6px;padding:0 14px;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.workshop-toolbar>button:hover{background:#f8fafc;border-color:#cbd5e1}.workshop-toolbar>button:active{transform:translateY(1px)}.workshop-toolbar>button.primary{color:#fff;background:#1e3a8a;border-color:#1e3a8a}.workshop-toolbar>button.primary:hover{background:#1e40af;border-color:#1e40af}.workshop-toolbar>button:disabled{opacity:.65;cursor:wait;transform:none}.workshop-toolbar>button svg{width:15px;height:15px}.workshop-live{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;gap:8px;min-height:40px;margin-left:auto;padding:0 12px;font-size:.8rem;font-weight:550;display:inline-flex}.workshop-live .dot{background:#10b981;border-radius:50%;width:7px;height:7px;animation:2s infinite livePulse;box-shadow:0 0 0 3px #10b98138}.workshop-live.error{color:#b91c1c;background:#fef2f2}.workshop-live.error .dot{background:#ef4444;animation:none;box-shadow:0 0 0 3px #ef444433}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.workshop-stats{flex-shrink:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.workshop-stat{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-shrink:0;padding:10px 14px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #0f172a08}.workshop-stat:hover{border-color:#dbeafe;box-shadow:0 4px 12px #1e3a8a0f}.workshop-stat span{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-size:.72rem;font-weight:550;display:block}.workshop-stat b{letter-spacing:-.03em;color:#0f172a;margin-top:4px;font-size:1.35rem;font-weight:700;line-height:1;display:block}.workshop-stat.working b{color:#059669}.workshop-stat.fault b{color:#dc2626}.workshop-stat.unconfirmed{background:linear-gradient(#fff1f2 0%,#fff 70%);border-color:#be123c40}.workshop-stat.unconfirmed b{color:#be123c}.factory-scroll{overscroll-behavior:contain;cursor:grab;touch-action:none;background:#fff;border:1px solid #e5e7eb;border-radius:16px;flex:auto;min-height:0;overflow:auto;box-shadow:inset 0 1px #fffc}.factory-scroll.is-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.factory-scroll.is-panning .station-card{pointer-events:none}.workshop-live.muted{color:#64748b;font-variant-numeric:tabular-nums;padding:0 8px;font-size:.78rem;font-weight:650}.factory-scroll::-webkit-scrollbar{width:10px;height:10px}.factory-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #fff;border-radius:999px}.factory-scaler{position:relative;transform:translateZ(0)}.factory{box-sizing:border-box;-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;background:radial-gradient(80% 50% at 50% 0,#e8eef7 0%,#0000 55%),linear-gradient(#eef2f7 0%,#e2e8f0 100%);border:1px solid #cbd5e1;padding:14px 16px 16px;position:relative}.facility{color:#e2e8f0f2;letter-spacing:.04em;background:linear-gradient(90deg,#0f2744 0%,#1e3a5f 55%,#1d4ed8 100%);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;font-size:.72rem;font-weight:600;display:flex;box-shadow:0 4px 14px #0f27442e}.facility span:last-child{opacity:.85;letter-spacing:.02em;font-weight:500}.facility-top{flex-shrink:0;margin:0 0 12px}.factory:not(.factory-pack){flex-direction:column;height:auto;min-height:100%;display:flex}.factory-grid{background:repeating-linear-gradient(0deg,#0000 0 47px,#0f172a09 47px 48px),repeating-linear-gradient(90deg,#0000 0 47px,#0f172a09 47px 48px),linear-gradient(#f8fafc 0%,#f1f5f9 100%);border:1px solid #dbe3ee;border-radius:12px;flex:none;margin:0 auto;position:relative;box-shadow:inset 0 1px #ffffffb3}.floor-corridor,.main-corridor{box-sizing:border-box;z-index:1;pointer-events:none;color:#92400e;letter-spacing:.18em;text-transform:uppercase;background:repeating-linear-gradient(90deg,#f59e0b12 0 12px,#f59e0b24 12px 24px),#fef3c78c;border:1.5px dashed #b4530973;border-radius:10px;justify-content:center;align-items:center;font-size:.7rem;font-weight:750;display:flex;position:absolute}.floor-corridor.axis-h{background:repeating-linear-gradient(90deg,#f59e0b0f 0 16px,#f59e0b21 16px 32px),#fef3c799}.floor-corridor.axis-v{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.22em;background:repeating-linear-gradient(#f59e0b0f 0 16px,#f59e0b21 16px 32px),#fef3c78c}.floor-corridor span,.main-corridor span{background:#ffffff8c;border-radius:999px;padding:4px 8px;box-shadow:0 1px 2px #92400e14}.layout-zone{border:2px solid color-mix(in srgb, var(--zone-accent) 58%, #94a3b8);background:linear-gradient(165deg, color-mix(in srgb, var(--zone-accent) 12%, #fff) 0%, color-mix(in srgb, var(--zone-accent) 5%, #fff) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--zone-accent) 14%, transparent), 0 2px 8px #0f172a0a;z-index:0;pointer-events:none;border-radius:14px;position:absolute}.layout-zone-head{z-index:1;pointer-events:none;flex-direction:column;align-items:stretch;gap:4px;display:flex;position:absolute;top:10px;left:12px;right:12px}.layout-zone-head strong{letter-spacing:.05em;color:var(--zone-accent);white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:800;line-height:1.15;display:block;overflow:hidden}.layout-zone-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;min-width:0;display:flex}.layout-zone-head .unconfirmed-label{color:#be123c;letter-spacing:.01em;white-space:nowrap;flex:0 auto;margin:0;font-size:.82rem;font-style:normal;font-weight:800;line-height:1.2}.layout-zone-head span{color:#475569;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;max-width:100%;margin:0;font-size:.82rem;font-weight:650;line-height:1.2;overflow:hidden}.factory:not(.factory-pack) .layout-zone-head{gap:6px;top:12px;left:14px;right:14px}.factory:not(.factory-pack) .layout-zone-head strong{font-size:1.35rem}.factory:not(.factory-pack) .layout-zone-head .unconfirmed-label,.factory:not(.factory-pack) .layout-zone-head span{font-size:.95rem;font-weight:700}.factory:not(.factory-pack) .layout-zone-head span{color:#334155}.factory-pack{background:#f8fafc;border:none;padding:0}.pack-grid{background:color-mix(in srgb, var(--zone-accent,#64748b) 6%, #fff), #f8fafc;border:2px solid color-mix(in srgb, var(--zone-accent,#64748b) 45%, #94a3b8);border-radius:12px;margin:0}.pack-zone-frame{pointer-events:none;z-index:0;position:absolute;inset:0}.pack-head{gap:6px;top:12px;left:16px;right:16px}.pack-head strong{font-size:1.45rem}.pack-head .layout-zone-meta{gap:6px 16px}.pack-head .unconfirmed-label,.pack-head span{font-size:1.05rem;font-weight:700}.pack-head span{color:#334155}.pack-empty{position:absolute;inset:72px 16px 16px}.zone-kubik1,.zone-kubik2,.zone-kubik3{background:color-mix(in srgb, var(--zone-accent) 6%, #f8fafc);border-style:dashed}.workstation{z-index:2;transition:opacity .2s;position:absolute}.workstation.filtered{opacity:.12;pointer-events:none}.station-card{text-align:left;cursor:pointer;width:100%;height:100%;font:inherit;color:inherit;background:#fff;border:1px solid #e2e8f0;border-top:3px solid #94a3b8;border-radius:10px;flex-direction:column;gap:2px;padding:8px 9px 9px;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;inset:0;box-shadow:0 4px 12px #0f172a12}.station-card:hover{z-index:3;transform:translateY(-1px);box-shadow:0 10px 22px #0f172a1f}.station-card.working{background:linear-gradient(#f0fdf4 0%,#fff 42%);border-color:#10b981 #10b98147 #10b98147}.station-card.done{border-color:#3b82f6 #3b82f640 #3b82f640}.station-card.paused,.station-card.waiting{background:linear-gradient(#fffbeb 0%,#fff 42%);border-color:#f59e0b #f59e0b59 #f59e0b59}.station-card.idle{opacity:.92;border-top-color:#94a3b8}.station-card.fault{border-color:#ef4444 #ef444459 #ef444459}.station-card.done-stale{border-top-width:5px}.station-card.done-stale-2{background:linear-gradient(#fff1f2 0%,#ffe4e6 55%,#fff 100%);border-color:#fb7185 #fda4af #fda4af;box-shadow:0 4px 12px #fb718533}.station-card.done-stale-2 .status-badge{color:#e11d48;font-weight:800}.station-card.done-stale-2 .status-dot{background:#fb7185;box-shadow:0 0 0 3px #fb718540}.station-card.done-stale-2 .timer.primary{color:#9f1239;background:#fecdd3;border:1px solid #fda4af}.station-card.done-stale-5{background:linear-gradient(#fecdd3 0%,#ffe4e6 50%,#fff1f2 100%);border-color:#e11d48 #fb7185 #fb7185;box-shadow:0 5px 14px #e11d4847}.station-card.done-stale-5 .status-badge{color:#be123c;font-weight:800}.station-card.done-stale-5 .status-dot{background:#e11d48;box-shadow:0 0 0 3px #e11d484d}.station-card.done-stale-5 .timer.primary{color:#4c0519;background:#fb7185;border:1px solid #e11d48}.station-card.done-stale-10{background:linear-gradient(#fb7185 0%,#fecdd3 45%,#ffe4e6 100%);border-color:#9f1239 #e11d48 #e11d48;box-shadow:0 6px 18px #9f123959}.station-card.done-stale-10 .status-badge{color:#881337;font-weight:800}.station-card.done-stale-10 .status-dot{background:#9f1239;box-shadow:0 0 0 3px #9f123959}.station-card.done-stale-10 .operator{color:#4c0519}.station-card.done-stale-10 .timer.primary{color:#fff;background:#e11d48;border:1px solid #9f1239}.station-card.done-stale-20{background:linear-gradient(#e11d48 0%,#fb7185 40%,#fecdd3 100%);border-color:#4c0519 #9f1239 #9f1239;box-shadow:0 8px 22px #4c051973}.station-card.done-stale-20 .status-badge{color:#4c0519;font-weight:800}.station-card.done-stale-20 .status-dot{background:#4c0519;box-shadow:0 0 0 3px #4c051966}.station-card.done-stale-20 .operator,.station-card.done-stale-20 .part,.station-card.done-stale-20 .operation{color:#4c0519}.station-card.done-stale-20 .timer.primary{color:#fff;background:#4c0519;border:1px solid #881337}.station-card.done-stale-20 .timer.primary b{color:#fff}.station-card .head{justify-content:space-between;align-items:center;gap:4px;margin-bottom:2px;display:flex}.station-card .seat-no{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.station-card .status-badge{color:#64748b;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;max-width:78%;font-size:9px;font-weight:700;display:inline-flex;overflow:hidden}.station-card .status-badge.working{color:#047857}.station-card .status-badge.done{color:#1d4ed8}.station-card .status-badge.paused,.station-card .status-badge.waiting{color:#b45309}.station-card .status-badge.fault{color:#b91c1c}.station-card .status-badge.idle{color:#64748b}.station-card .status-dot{background:#94a3b8;border-radius:50%;flex-shrink:0;width:7px;height:7px}.station-card.working .status-dot{background:#10b981}.station-card.done .status-dot{background:#3b82f6}.station-card.paused .status-dot,.station-card.waiting .status-dot{background:#f59e0b}.station-card.fault .status-dot{background:#ef4444;box-shadow:0 0 0 3px #ef44442e}.station-card .operator{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;line-height:1.25;overflow:hidden}.station-card .line-chip{letter-spacing:.02em;color:#334155;background:#f1f5f9;border-radius:4px;align-self:flex-start;margin-top:2px;padding:1px 6px;font-size:9px;font-weight:700}.station-card .part,.station-card .operation{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.station-card .part{color:#475569;margin-top:4px;font-weight:600}.station-card .operation{color:#1e293b;font-weight:650}.station-card .timers{grid-template-columns:1.15fr .85fr;gap:4px;margin-top:auto;padding-top:6px;display:grid}.station-card .timer{background:#f8fafc;border:1px solid #eef2f7;border-radius:6px;min-width:0;padding:4px 5px}.station-card .timer.primary{background:#f1f5f9}.station-card.working .timer.primary{background:#ecfdf5;border-color:#d1fae5}.station-card .timer small{letter-spacing:.02em;color:#94a3b8;font-size:8px;font-weight:650;display:block}.station-card .timer b{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;font-weight:750;display:block;overflow:hidden}.logo-fallback{letter-spacing:.5px;color:#fff;border:1px solid #ffffff59;border-radius:4px;justify-content:center;align-items:center;min-width:56px;height:32px;padding:0 8px;font-size:.7rem;font-weight:700;display:inline-flex}.platform-logo-fallback{color:#fff;justify-content:center;align-items:center;width:32px;height:32px;font-size:.65rem;font-weight:700;display:flex}.modal-root{z-index:200;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a7a;animation:.18s fadeIn;position:absolute;inset:0}.modal-card{z-index:1;color:#0f172a;background:#fff;border:1px solid #e2e8f0e6;border-radius:18px;width:min(540px,100%);max-height:min(94vh,900px);animation:.22s cubic-bezier(.22,1,.36,1) modalIn;position:relative;overflow:auto;box-shadow:0 25px 50px -12px #0f172a59,inset 0 0 0 1px #ffffff0f}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-card-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.modal-card-header h2{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700}.modal-card-header .sub{color:#64748b;margin-top:4px;font-size:.85rem}.modal-close{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,color .15s;display:inline-flex}.modal-close:hover{color:#0f172a;background:#e2e8f0}.modal-status-pill{border-radius:999px;align-items:center;gap:6px;margin:14px 20px 0;padding:6px 10px;font-size:.75rem;font-weight:650;display:inline-flex}.modal-status-pill.idle{color:#475569;background:#f1f5f9}.modal-status-pill.paused,.modal-status-pill.waiting{color:#b45309;background:#fffbeb}.modal-status-pill.done{color:#1d4ed8;background:#eff6ff}.modal-status-pill.working{color:#047857;background:#ecfdf5}.modal-status-pill.fault{color:#b91c1c;background:#fef2f2}.modal-status-pill .pip{background:currentColor;border-radius:50%;width:7px;height:7px}.modal-body{flex-direction:column;gap:12px;margin:16px 20px 18px;display:flex}.modal-job-block{background:#f8fafc;border:1px solid #eef2f7;border-radius:14px;padding:14px 14px 12px}.modal-job-block.empty{opacity:.88}.modal-job-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.modal-job-head h3{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:0;font-size:.72rem;font-weight:700}.modal-job-step{color:#0f172a;margin:4px 0 0;font-size:.95rem;font-weight:650;line-height:1.25}.modal-job-duration{text-align:right;flex-shrink:0}.modal-job-duration-label{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-size:.68rem;font-weight:600;display:block}.modal-job-duration strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#0f172a;margin-top:2px;font-size:1.35rem;font-weight:750;line-height:1.1;display:block}.modal-job-empty{color:#94a3b8;margin:0;font-size:.85rem}.modal-timeline{background:#fff;border:1px solid #e8eef5;border-radius:12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:10px 12px;display:grid}.modal-timeline.open .modal-timeline-line{background:linear-gradient(90deg,#059669 0%,#94a3b8 100%)}.modal-time-point{flex-direction:column;gap:2px;min-width:0;display:flex}.modal-time-point.start{text-align:left}.modal-time-point.end{text-align:right}.modal-time-label{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;font-size:.68rem;font-weight:700}.modal-time-clock{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#0f172a;font-size:1.2rem;font-weight:750;line-height:1.15}.modal-time-date{color:#64748b;font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:550}.modal-time-point.missing .modal-time-clock,.modal-time-point.missing .modal-time-date{color:#cbd5e1}.modal-timeline-track{flex-shrink:0;align-items:center;gap:0;width:56px;display:flex}.modal-timeline-dot{background:#059669;border-radius:50%;flex-shrink:0;width:8px;height:8px}.modal-timeline-dot.end{background:#2563eb}.modal-timeline.open .modal-timeline-dot.end{background:#94a3b8}.modal-timeline-line{background:linear-gradient(90deg,#059669 0%,#2563eb 100%);border-radius:2px;flex:1;height:2px}.modal-timeline-note{color:#64748b;margin:8px 2px 0;font-size:.75rem;line-height:1.35}.modal-facts{background:#f8fafc;border:1px solid #eef2f7;border-radius:14px;grid-template-columns:1fr 1fr;gap:10px 12px;margin:0;padding:12px 14px;display:grid}.modal-facts>div{min-width:0}.modal-facts dt{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;margin:0;font-size:.68rem;font-weight:700}.modal-facts dd{color:#0f172a;word-break:break-word;margin:3px 0 0;font-size:.9rem;font-weight:650}.modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 20px 20px;display:grid}.modal-actions button{color:#334155;min-height:42px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.85rem;font-weight:550;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.modal-actions button:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.modal-actions button:disabled{opacity:.38;cursor:not-allowed}.modal-actions button.primary{color:#fff;background:#1e3a8a;border-color:#1e3a8a}.modal-actions button.primary:hover:not(:disabled){background:#1e40af}.modal-actions button.danger{color:#fff;background:#dc2626;border-color:#dc2626;grid-column:1/-1}.modal-actions button.danger:hover:not(:disabled){background:#b91c1c}.modal-actions button.resolve{color:#fff;background:#0f766e;border-color:#0f766e;grid-column:1/-1}.modal-actions button.resolve:hover:not(:disabled){background:#0d9488}.modal-hint{color:#94a3b8;border-top:1px solid #f1f5f9;margin:0;padding:10px 20px 18px;font-size:.72rem}.modal-events{background:#f8fafc;border:1px solid #eef2f7;border-radius:14px;padding:14px 14px 10px}.modal-events-title{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:0 0 10px;font-size:.72rem;font-weight:700}.modal-job-serial{color:#64748b;margin:2px 0 0;font-size:.78rem}.modal-events-list{scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9;max-height:168px;padding-right:2px;overflow-y:auto}.modal-events-list::-webkit-scrollbar{width:6px}.modal-events-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-events-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-events-row{color:#334155;font-variant-numeric:tabular-nums;border-bottom:1px solid #f1f5f9;grid-template-columns:7.2rem minmax(0,1fr);gap:10px;padding:8px 0;font-size:.8rem;line-height:1.4;display:grid}.modal-events-row:last-child{border-bottom:none}.modal-events-time{color:#64748b;white-space:nowrap;padding-top:1px;font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,Consolas,monospace;font-size:.72rem}.modal-events-msg{word-break:break-word;color:#1e293b;min-width:0}.modal-events-empty{color:#94a3b8;margin:0;padding:4px 0;font-size:.8rem}@media (width<=1100px){.workshop-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=800px){.main-content:has(.workshop-page){padding:16px}.workshop-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-live{justify-content:center;width:100%;margin-left:0}.modal-actions{grid-template-columns:1fr}.modal-actions button.danger,.modal-actions button.resolve{grid-column:auto}.modal-facts{grid-template-columns:1fr}.modal-time-clock{font-size:1.05rem}}html,body,#root{height:100%}body{margin:0}
