@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.help-drawer-overlay{position:fixed;inset:0;z-index:1000;background:#00000040;opacity:0;pointer-events:none;transition:opacity .2s ease}.help-drawer-overlay.open{opacity:1;pointer-events:auto}.help-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:90vw;z-index:1001;background:var(--color-surface, #fff);box-shadow:-4px 0 24px #0000001f;transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}.help-drawer.open{transform:translate(0)}.help-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border, #e2e8f0);flex-shrink:0}.help-drawer-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary, #1a202c)}.help-drawer-close{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--color-text-secondary, #718096);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.help-drawer-close:hover{background:var(--color-surface-hover, #f7fafc);color:var(--color-text-primary, #1a202c)}.help-drawer-body{flex:1;overflow-y:auto;padding:20px}.help-drawer-body p{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--color-text-secondary, #4a5568)}.help-drawer-body strong{color:var(--color-text-primary, #1a202c)}.help-drawer-body ul,.help-drawer-body ol{padding-left:20px;margin:0 0 12px}.help-drawer-body li{font-size:14px;line-height:1.6;color:var(--color-text-secondary, #4a5568);margin-bottom:4px}.help-drawer-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--color-border, #e2e8f0)}.help-drawer-tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;background:var(--color-primary-bg, #ebf5ff);color:var(--color-primary, #2563eb)}.help-drawer-related{margin-top:16px;padding-top:12px;border-top:1px solid var(--color-border, #e2e8f0)}.help-drawer-related h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary, #a0aec0);margin:0 0 8px}.help-drawer-related-link{display:block;font-size:13px;color:var(--color-primary, #2563eb);cursor:pointer;padding:4px 0;background:none;border:none;text-align:left}.help-drawer-related-link:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow-y:auto;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:width .2s ease,min-width .2s ease}.sidebar.collapsed{width:52px;min-width:52px}.sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.sidebar.collapsed .sidebar-header{padding:var(--sp-4) var(--sp-2);justify-content:center}.sidebar-logo{font-size:var(--text-xl);font-weight:700;color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em}.sidebar-version{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.sidebar-toggle{margin-left:auto;background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-lg);font-family:var(--font-mono);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);line-height:1;transition:color .15s,background .15s;flex-shrink:0}.sidebar-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar.collapsed .sidebar-toggle{margin-left:0}.sidebar .brand-logo{color:var(--accent);flex-shrink:0}.sidebar.collapsed .brand-logo{max-width:28px;width:auto;height:auto}.sidebar-logo-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:opacity .15s}.sidebar-logo-btn:hover{opacity:.7}.sidebar-nav{padding:var(--sp-3) 0;flex:1}.nav-group{margin-bottom:var(--sp-2)}.nav-group-label{padding:var(--sp-2) var(--sp-4) var(--sp-1);font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;text-decoration:none;min-height:var(--touch-min);transition:background .1s,color .1s;border-left:3px solid transparent}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--sp-2) var(--sp-1);font-size:var(--text-xs);font-weight:700;font-family:var(--font-mono);letter-spacing:.05em}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{color:var(--accent-text);background:var(--accent-muted);border-left-color:var(--accent)}.nav-icon{font-size:var(--text-lg);width:20px;text-align:center}.nav-badge{margin-left:auto;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border-radius:9999px;font-size:10px;font-weight:700;font-family:var(--font-mono);background:var(--accent);color:#fff;line-height:1}.sidebar.collapsed .nav-badge{display:none}.main-content{flex:1;margin-left:var(--sidebar-width);padding:var(--sp-6);min-height:100vh;transition:margin-left .2s ease}.sidebar-collapsed .main-content{margin-left:52px}@media(max-width:768px){.sidebar{width:52px;min-width:52px}.nav-label,.nav-group-label,.sidebar-version{display:none}.nav-item{justify-content:center;padding:var(--sp-3) var(--sp-2)}.nav-icon{font-size:var(--text-xl)}.sidebar-header{justify-content:center}.main-content{margin-left:52px;padding:var(--sp-4)}}.sidebar-user{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);margin-top:auto}.sidebar-user-info{display:flex;flex-direction:column;flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-site{margin-top:1px}.sidebar-logout{flex-shrink:0;font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2);min-height:unset;color:var(--text-tertiary)}.sidebar-logout:hover{color:var(--status-failed)}.sidebar.collapsed .sidebar-user{padding:var(--sp-3) var(--sp-2);justify-content:center}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:var(--sp-4)}.login-card{width:100%;max-width:400px;padding:var(--sp-8);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:var(--sp-8)}.login-header .brand-logo{color:var(--accent);margin-bottom:var(--sp-3)}.login-logo{display:block;font-size:2rem;font-weight:700;color:var(--accent);font-family:var(--font-mono);letter-spacing:.12em;margin-bottom:var(--sp-2)}.login-subtitle{display:block;font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:.04em}.login-form{display:flex;flex-direction:column;gap:var(--sp-5)}.login-field{display:flex;flex-direction:column;gap:var(--sp-2)}.login-field label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.login-field input{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);padding:var(--sp-3) var(--sp-4);min-height:var(--touch-primary);font-size:var(--text-base);transition:border-color .15s,box-shadow .15s}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.login-field input:-webkit-autofill,.login-field input:-webkit-autofill:hover,.login-field input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--bg-tertiary) inset;-webkit-text-fill-color:var(--text-primary);border-color:var(--border-default);transition:background-color 5000s ease-in-out 0s}.login-submit{width:100%;margin-top:var(--sp-2)}.login-error{background:var(--status-failed-bg);color:var(--status-failed);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);font-weight:500;text-align:center}.login-session-expired{background:#fbbf241a;color:#fbbf24;border:1px solid rgba(251,191,36,.3);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);font-weight:500;text-align:center}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.auth-loading-spinner{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.auth-forbidden{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--sp-8)}.auth-forbidden h2{font-size:var(--text-2xl);font-weight:600;color:var(--status-failed);margin-bottom:var(--sp-3)}.auth-forbidden code{font-family:var(--font-mono);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.page-header{margin-bottom:var(--sp-6)}.breadcrumbs{margin-bottom:var(--sp-2)}.breadcrumb-sep{margin:0 var(--sp-1);color:var(--text-tertiary)}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.page-title{font-size:var(--text-2xl);font-weight:700;line-height:1.2}.page-subtitle{font-size:var(--text-sm);margin-top:var(--sp-1)}.page-header-actions{display:flex;gap:var(--sp-2);flex-shrink:0}.summary-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);min-width:160px}.summary-card.clickable{cursor:pointer;transition:border-color .15s,background .15s}.summary-card.clickable:hover{border-color:var(--border-default);background:var(--bg-tertiary)}.summary-label{margin-bottom:var(--sp-1);text-transform:uppercase;font-weight:600;letter-spacing:.04em}.summary-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono);line-height:1.1}.summary-sublabel{margin-top:var(--sp-1)}.summary-card-accent .summary-value{color:var(--accent)}.summary-card-warning .summary-value{color:var(--status-warning)}.summary-card-danger .summary-value{color:var(--status-failed)}.summary-card-success .summary-value{color:var(--status-passed)}.badge-sm{font-size:.625rem;padding:1px 6px}.dashboard-page{max-width:1200px}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-6)}.dashboard-section{margin-bottom:var(--sp-6)}.section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--sp-3);color:var(--text-primary)}.quicklinks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3)}.dashboard-editor{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary, #f5f5f5)}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-color, #e0e0e0);background:var(--bg-primary, #fff);gap:var(--sp-3);flex-shrink:0;position:relative;z-index:10}.editor-toolbar-left{display:flex;align-items:center;gap:var(--sp-3);flex:1;min-width:0}.editor-toolbar-right{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.editor-name-input{font-size:var(--text-lg, 18px);font-weight:600;border:1px solid transparent;background:transparent;padding:var(--sp-1) var(--sp-2);border-radius:6px;color:var(--text-primary, #111);flex:1;min-width:200px}.editor-name-input:hover{border-color:var(--border-color, #ddd)}.editor-name-input:focus{border-color:var(--accent, #5b6abf);outline:none;background:var(--bg-primary, #fff)}.editor-body{display:flex;flex:1;overflow:hidden;min-height:0}.editor-sidebar{width:320px;flex-shrink:0;border-right:1px solid var(--border-color, #e0e0e0);background:var(--bg-primary, #fff);display:flex;flex-direction:column;overflow:hidden;min-height:0}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border-color, #e0e0e0);flex-shrink:0}.sidebar-tab{flex:1;padding:var(--sp-2) var(--sp-3);border:none;background:transparent;cursor:pointer;font-size:var(--text-sm, 13px);font-weight:500;color:var(--text-secondary, #888);border-bottom:2px solid transparent;transition:all .15s}.sidebar-tab:hover{color:var(--text-primary, #111)}.sidebar-tab.active{color:var(--accent, #5b6abf);border-bottom-color:var(--accent, #5b6abf)}.sidebar-content{flex:1;overflow-y:auto;padding:var(--sp-3)}.widget-palette-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.widget-palette-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-3);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--bg-primary, #fff);cursor:pointer;transition:all .15s;gap:var(--sp-2);text-align:center;min-height:72px}.widget-palette-item:hover{border-color:var(--accent, #5b6abf);background:#5b6abf0d;transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.widget-palette-icon{display:flex;align-items:center;justify-content:center;color:var(--accent, #5b6abf)}.widget-palette-icon svg{width:28px;height:28px}.widget-palette-label{font-size:var(--text-xs, 11px);font-weight:500;color:var(--text-primary, #111)}.config-panel{display:flex;flex-direction:column;gap:var(--sp-3)}.config-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-color, #e0e0e0)}.config-panel-title{font-size:var(--text-sm, 13px);font-weight:600;color:var(--text-primary, #111)}.config-field{display:flex;flex-direction:column;gap:var(--sp-1)}.config-field label{font-size:var(--text-xs, 11px);font-weight:500;color:var(--text-secondary, #888);text-transform:uppercase;letter-spacing:.05em}.config-field input,.config-field select,.config-field textarea{font-size:var(--text-sm, 13px);padding:var(--sp-1) var(--sp-2);border-radius:6px;background:var(--bg-secondary, #1e293b);color:var(--text-primary, #e2e8f0);border:1px solid var(--border-color, #334155)}.config-field input:focus,.config-field select:focus,.config-field textarea:focus{border-color:var(--accent, #5b6abf);outline:none;box-shadow:0 0 0 2px #5b6abf26}.config-field input::placeholder{color:var(--text-secondary, #64748b)}.config-field textarea{resize:vertical;min-height:60px}.editor-canvas-area{flex:1;overflow:auto;padding:var(--sp-4);position:relative}.image-overlay-editor{display:flex;flex-direction:column;gap:var(--sp-3)}.image-overlay-preview{position:relative;border:2px dashed var(--border-color, #ddd);border-radius:8px;overflow:hidden;cursor:crosshair;background:#1a1a2e;min-height:200px}.image-overlay-preview img{width:100%;display:block}.image-overlay-preview.empty{display:flex;align-items:center;justify-content:center;min-height:200px;cursor:default}.overlay-marker{position:absolute;transform:translate(-50%,-50%);cursor:move;transition:transform .1s;z-index:10}.overlay-marker:hover{transform:translate(-50%,-50%) scale(1.1);z-index:20}.overlay-marker-badge{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #0003;border:2px solid rgba(255,255,255,.9)}.overlay-marker-badge.style-badge{background:var(--accent, #5b6abf);color:#fff}.overlay-marker-badge.style-count{background:#000000bf;color:#fff;border-radius:50%;width:32px;height:32px;padding:0;justify-content:center}.overlay-marker-badge.style-label{background:#fffffff2;color:var(--text-primary, #111)}.overlay-marker-badge.style-status-pill{border-radius:6px}.overlay-marker-badge.status-ok{background:#10b981;color:#fff}.overlay-marker-badge.status-warning{background:#f59e0b;color:#fff}.overlay-marker-badge.status-error{background:#ef4444;color:#fff}.overlay-marker.selected .overlay-marker-badge{outline:2px solid var(--accent, #5b6abf);outline-offset:2px}.overlay-marker-delete{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;background:var(--status-failed, #ef4444);color:#fff;border:2px solid #fff;font-size:10px;line-height:14px;text-align:center;cursor:pointer;display:none;z-index:30}.overlay-marker:hover .overlay-marker-delete,.overlay-marker.selected .overlay-marker-delete{display:block}.overlay-markers-list{display:flex;flex-direction:column;gap:var(--sp-2)}.overlay-marker-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;cursor:pointer;transition:all .1s;font-size:var(--text-sm, 13px)}.overlay-marker-item:hover,.overlay-marker-item.selected{border-color:var(--accent, #5b6abf);background:#5b6abf0d}.overlay-marker-item .marker-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.overlay-marker-item .marker-label{flex:1;font-weight:500}.overlay-marker-item .marker-value{color:var(--text-secondary, #888);font-size:var(--text-xs, 11px)}.image-overlay-viewer{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-overlay-viewer img{max-width:100%;max-height:100%;object-fit:contain}.overlay-tooltip{position:absolute;background:#000000d9;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none;z-index:100;transform:translate(-50%,-100%) translateY(-8px)}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.entity-combobox{position:relative;width:100%}.entity-combobox-input-wrap{display:flex;align-items:center;border:1px solid var(--border-default, #e0e0e0);border-radius:var(--radius-md, 6px);overflow:hidden;background:var(--bg-tertiary, #fff);cursor:text;min-height:var(--touch-min, 44px)}.entity-combobox-input-wrap:focus-within{border-color:var(--accent, #5b6abf);box-shadow:0 0 0 2px var(--accent-muted, rgba(91, 106, 191, .15))}.entity-combobox-input{flex:1;border:none!important;outline:none!important;padding:var(--sp-2) var(--sp-3)!important;font-size:var(--text-base, 14px)!important;background:transparent!important;min-width:0;min-height:unset!important;box-shadow:none!important;color:var(--text-primary)!important}.entity-combobox-input::placeholder{color:var(--text-tertiary)!important}.entity-combobox-clear{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;cursor:pointer;color:var(--text-secondary, #888);font-size:16px;line-height:1;padding:0;flex-shrink:0}.entity-combobox-clear:hover{color:var(--status-failed, #ef4444)}.entity-combobox-arrow{display:flex;align-items:center;padding:0 var(--sp-1);color:var(--text-secondary, #888);font-size:10px;flex-shrink:0;pointer-events:none}.entity-combobox-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:2px;max-height:200px;overflow-y:auto;background:var(--bg-secondary, #fff);border:1px solid var(--border-default, #e0e0e0);border-radius:var(--radius-md, 6px);box-shadow:0 4px 16px #00000040;z-index:100}.entity-combobox-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--sp-2) var(--sp-2);border:none;background:none;cursor:pointer;text-align:left;font-size:var(--text-sm, 13px);transition:background .1s}.entity-combobox-item:hover{background:#5b6abf14}.entity-combobox-item.selected{background:#5b6abf1f;font-weight:500}.entity-combobox-item-name{color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-combobox-item-code{color:var(--text-secondary);font-size:var(--text-xs, 11px);font-family:var(--font-mono, monospace);flex-shrink:0;margin-left:var(--sp-2)}.entity-combobox-empty{color:var(--text-tertiary);cursor:default;font-style:italic}.entity-combobox-empty:hover{background:none}.search-bar{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--sp-3);color:var(--text-tertiary);font-size:var(--text-lg);pointer-events:none}.search-input{padding-left:var(--sp-8)!important;padding-right:var(--sp-8)!important}.search-clear{position:absolute;right:var(--sp-1);min-height:32px;min-width:32px;font-size:var(--text-sm)}.data-table-container{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-secondary)}.data-table-empty{padding:var(--sp-8);text-align:center}.data-table-row-selected{background:var(--surface-1, rgba(255, 255, 255, .04))!important;box-shadow:inset 3px 0 0 var(--text-secondary, #888)}.data-table tbody tr[style*=cursor]:hover{background:var(--surface-1, rgba(255, 255, 255, .02))}.data-table th[style*=cursor]{transition:color .1s}.data-table th[style*=cursor]:hover{color:var(--text-primary)}.data-table-th-sorted{color:var(--accent-text, var(--accent))!important}.data-table-sort-icon{font-size:.6em;opacity:.3;transition:opacity .1s}.data-table-sort-icon.active{opacity:.9}.data-table th:hover .data-table-sort-icon{opacity:.6}.data-table th:hover .data-table-sort-icon.active{opacity:1}.cap-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.cap-badge--draft{background:#1e293b;color:#94a3b8}.cap-badge--submitted{background:#1e3a5f;color:#60a5fa}.cap-badge--active,.cap-badge--approved{background:#064e3b;color:#34d399}.cap-badge--pending{background:#78350f;color:#fbbf24}.cap-badge--not_started{background:#1e293b;color:#64748b}.cap-badge--rejected{background:#450a0a;color:#f87171}.cap-badge--revoked{background:#3b0764;color:#c084fc}.cap-badge--superseded{background:#1e293b;color:#94a3b8}.cap-badge--expired{background:#1e293b;color:#64748b}.cap-page{padding:32px 40px;max-width:1400px}.cap-page h1{font-size:1.5rem;font-weight:700;color:#f1f5f9;margin-bottom:4px}.cap-page .page-subtitle{color:#64748b;margin-bottom:20px;font-size:.9rem;line-height:1.5}.cap-help-box{background:#3b82f60f;border:1px solid rgba(59,130,246,.15);border-radius:8px;padding:14px 18px;margin-bottom:20px;font-size:.82rem;color:#94a3b8;line-height:1.5}.cap-help-box strong{color:#cbd5e1}.cap-filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.cap-filters select,.cap-filters input[type=text]{background:#0f172a;border:1px solid #1e293b;color:#e2e8f0;padding:8px 12px;border-radius:6px;font-size:.85rem;min-width:160px}.cap-filters select:focus,.cap-filters input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.cap-table{width:100%;border-collapse:collapse}.cap-table th{text-align:left;padding:10px 14px;border-bottom:1px solid #1e293b;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.cap-table td{padding:12px 14px;border-bottom:1px solid #0f172a;font-size:.85rem;color:#cbd5e1}.cap-table tbody tr{transition:background .15s;cursor:pointer}.cap-table tbody tr:hover{background:#3b82f60d}.cap-scope-summary{font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;color:#94a3b8;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cap-kind-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500;background:#1e293b;color:#94a3b8}.cap-kind-badge--work_order_release{color:#60a5fa;border:1px solid #1e3a5f}.cap-kind-badge--station_execution{color:#34d399;border:1px solid #064e3b}.cap-kind-badge--line_run{color:#a78bfa;border:1px solid #3b0764}.cap-kind-badge--doe{color:#fbbf24;border:1px solid #78350f}.cap-kind-badge--pilot_build{color:#fb923c;border:1px solid #7c2d12}.cap-kind-badge--production_release{color:#2dd4bf;border:1px solid #134e4a}.cap-kind-badge--operation_execution{color:#818cf8;border:1px solid #312e81}.cap-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}.cap-detail-header h1{margin-bottom:8px}.cap-header-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.cap-header-actions{display:flex;gap:8px;flex-shrink:0}.cap-section{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:20px 24px;margin-bottom:20px}.cap-section h2{font-size:1rem;font-weight:600;color:#e2e8f0;margin-bottom:16px;display:flex;align-items:center;gap:8px}.cap-section h2 .section-icon{font-size:1.1rem}.cap-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cap-detail-field{display:flex;flex-direction:column;gap:2px}.cap-detail-field .field-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:500}.cap-detail-field .field-value{font-size:.85rem;color:#e2e8f0}.cap-detail-field .field-value--empty{color:#475569;font-style:italic}.approval-stepper{display:flex;flex-direction:column;gap:0}.approval-step{display:flex;align-items:flex-start;gap:14px;padding:12px 0;position:relative}.approval-step:not(:last-child):before{content:"";position:absolute;left:14px;top:38px;bottom:0;width:2px;background:#1e293b}.step-indicator{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;z-index:1}.step-indicator--pending{background:#1e293b;color:#64748b;border:2px solid #334155}.step-indicator--approved{background:#064e3b;color:#34d399;border:2px solid #065f46}.step-indicator--rejected{background:#450a0a;color:#f87171;border:2px solid #7f1d1d}.step-content{flex:1}.step-name{font-weight:600;font-size:.9rem;color:#e2e8f0}.step-meta{font-size:.78rem;color:#64748b;margin-top:2px}.step-actions{display:flex;gap:8px;margin-top:8px}.decision-log-list{display:flex;flex-direction:column;gap:8px}.decision-log-entry{display:flex;gap:12px;padding:8px 12px;border-radius:6px;background:#1e293b66;font-size:.82rem}.decision-log-entry .log-time{color:#64748b;font-family:JetBrains Mono,monospace;font-size:.75rem;flex-shrink:0;min-width:110px}.decision-log-entry .log-event{color:#94a3b8;font-weight:500}.decision-log-entry .log-comment{color:#64748b;font-style:italic}.btn-cap{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-size:.82rem;font-weight:600;border:none;cursor:pointer;transition:all .15s}.btn-cap:disabled{opacity:.5;cursor:not-allowed}.btn-cap--primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-cap--primary:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6)}.btn-cap--approve{background:linear-gradient(135deg,#059669,#047857);color:#fff}.btn-cap--approve:hover:not(:disabled){background:linear-gradient(135deg,#10b981,#059669)}.btn-cap--reject{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.btn-cap--reject:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-cap--secondary{background:#1e293b;color:#94a3b8;border:1px solid #334155}.btn-cap--secondary:hover:not(:disabled){background:#334155;color:#e2e8f0}.btn-cap--danger{background:transparent;color:#f87171;border:1px solid #7f1d1d}.btn-cap--danger:hover:not(:disabled){background:#450a0a}.template-steps-editor{display:flex;flex-direction:column;gap:8px}.template-step-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0f172a;border:1px solid #1e293b;border-radius:6px}.template-step-row .step-order{font-weight:700;color:#3b82f6;font-size:.85rem;min-width:24px}.template-step-row input{background:#1e293b;border:1px solid #334155;color:#e2e8f0;padding:6px 10px;border-radius:4px;font-size:.82rem;flex:1}.cap-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.cap-modal{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:28px 32px;width:100%;max-width:560px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0006}.cap-modal h2{font-size:1.15rem;font-weight:700;color:#f1f5f9;margin-bottom:20px}.cap-form{display:flex;flex-direction:column;gap:14px}.cap-form .form-field{display:flex;flex-direction:column;gap:4px}.cap-form .form-field label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;font-weight:500}.cap-form .form-field select,.cap-form .form-field input,.cap-form .form-field textarea{background:#1e293b;border:1px solid #334155;color:#e2e8f0;padding:8px 12px;border-radius:6px;font-size:.85rem}.cap-form .form-field select:focus,.cap-form .form-field input:focus,.cap-form .form-field textarea:focus{outline:none;border-color:#3b82f6}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.approval-queue-card{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:18px 22px;margin-bottom:12px;transition:border-color .15s}.approval-queue-card:hover{border-color:#334155}.approval-queue-card .queue-cap-title{font-size:.9rem;font-weight:600;color:#e2e8f0;margin-bottom:6px}.approval-queue-card .queue-step-name{font-size:.82rem;color:#94a3b8;margin-bottom:10px}.approval-queue-card .queue-actions{display:flex;gap:8px;align-items:center}.approval-queue-card .queue-actions textarea{background:#1e293b;border:1px solid #334155;color:#e2e8f0;padding:6px 10px;border-radius:4px;font-size:.8rem;flex:1;resize:none;height:34px}.cap-loading{text-align:center;padding:60px 20px;color:#64748b;font-size:.9rem}.cap-empty{text-align:center;padding:60px 20px;color:#475569}.cap-empty .empty-icon{font-size:2.5rem;margin-bottom:12px}.cap-empty p{font-size:.9rem}.approval-instance-card{background:#1e293b4d;border:1px solid #1e293b;border-radius:8px;padding:16px 20px;margin-bottom:12px}.approval-instance-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.approval-meta{font-size:.78rem;color:#64748b}.approval-steps-stepper{display:flex;flex-direction:column;gap:0}.approval-step{display:flex;gap:14px;padding:0}.approval-step-indicator{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0;z-index:1}.step-circle--pending{background:#1e293b;color:#94a3b8;border:2px solid #334155}.step-circle--approved{background:#064e3b;color:#34d399;border:2px solid #065f46}.step-circle--rejected{background:#450a0a;color:#f87171;border:2px solid #7f1d1d}.step-circle--skipped{background:#1e293b;color:#64748b;border:2px dashed #334155}.step-line{width:2px;height:24px;flex-shrink:0}.step-line--pending{background:#334155}.step-line--approved{background:#065f46}.step-line--rejected{background:#7f1d1d}.step-line--skipped{background:#334155}.approval-step-content{flex:1;padding-bottom:16px}.approval-step-content .step-name{font-weight:600;font-size:.9rem;color:#e2e8f0;display:flex;align-items:center;gap:8px}.step-required{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:#fbbf24;font-weight:500;background:#fbbf241a;padding:1px 6px;border-radius:3px}.step-status-label{font-size:.78rem;color:#64748b;margin-top:2px}.step-comment{font-size:.78rem;color:#94a3b8;font-style:italic;margin-top:4px}.step-decide-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.step-comment-input{background:#1e293b;border:1px solid #334155;color:#e2e8f0;padding:6px 10px;border-radius:6px;font-size:.82rem;width:100%}.step-comment-input:focus{outline:none;border-color:#3b82f6}.step-decide-buttons{display:flex;gap:8px}.btn-cap--small{padding:4px 12px;font-size:.78rem}.process-revision-page{max-width:800px}.operations-list{display:flex;flex-direction:column;gap:var(--sp-2)}.operation-card{display:flex;gap:var(--sp-4);align-items:flex-start;padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:border-color .15s}.operation-card:hover{border-color:var(--border-default)}.op-sequence{font-size:var(--text-lg);font-weight:700;color:var(--accent);min-width:32px;text-align:center;padding-top:2px}.op-details{flex:1}.op-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1)}.op-meta{display:flex;gap:var(--sp-2)}.search-select{position:relative;width:100%}.search-select.disabled{opacity:.5;pointer-events:none}.search-select-input-wrap{position:relative;display:flex;align-items:center}.search-select-input{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);padding:var(--sp-2) var(--sp-3);padding-right:28px;min-height:var(--touch-min);outline:none;transition:border-color .15s;width:100%;font-family:var(--font-sans);font-size:var(--text-base)}.search-select-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}.search-select-input::placeholder{color:var(--text-tertiary)}.search-select-input:not(:focus):not([value=""]){color:var(--text-primary)}.search-select-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:2px 4px;line-height:1;border-radius:var(--radius-sm);transition:color .1s,background .1s}.search-select-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.search-select-dropdown{position:absolute;z-index:100;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.search-select-option{padding:8px 12px;cursor:pointer;font-size:var(--text-sm);transition:background .05s;display:flex;align-items:baseline;gap:4px}.search-select-option:hover,.search-select-option.highlighted{background:var(--bg-hover)}.search-select-option.selected,.search-select-option.selected.highlighted{background:var(--accent-muted)}.search-select-option-label{color:var(--text-primary);font-weight:500}.search-select-option-secondary{color:var(--text-secondary);font-weight:400}.search-select-empty{padding:12px;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.unit-lookup-page{max-width:600px;margin:0 auto;padding-top:var(--sp-4)}.lookup-input-area{margin-bottom:var(--sp-6)}.lookup-search input{font-size:var(--text-xl)!important;min-height:56px!important;font-family:var(--font-mono);letter-spacing:.02em}.lookup-status{display:flex;align-items:center;gap:var(--sp-3);justify-content:center;padding:var(--sp-6)}.lookup-error{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6);text-align:center;margin-bottom:var(--sp-6)}.lookup-history{margin-bottom:var(--sp-6)}.lookup-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.lookup-history-list{display:flex;flex-direction:column;gap:var(--sp-1)}.lookup-history-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);transition:all .15s ease}.lookup-history-item:hover{border-color:var(--accent);background:var(--bg-hover)}.lookup-history-item .mono{color:var(--accent)}.lookup-hints{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4)}.lookup-hints ul{list-style:none;margin-top:var(--sp-2)}.lookup-hints li{padding:var(--sp-1) 0}.lookup-hints code{font-family:var(--font-mono);background:var(--bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm);font-size:var(--text-xs)}.timeline{position:relative;padding-left:var(--sp-6)}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--border-default)}.timeline-item{position:relative;padding-bottom:var(--sp-4)}.timeline-dot{position:absolute;left:calc(-1 * var(--sp-6) + 3px);top:6px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-primary);z-index:1}.timeline-content{padding-left:var(--sp-2)}.timeline-header{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.timeline-label{font-size:var(--text-sm)}.timeline-detail{margin-top:var(--sp-1)}.timeline-item--clickable{cursor:pointer;border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-2) var(--sp-2) 0;transition:background .12s}.timeline-item--clickable:hover{background:var(--bg-tertiary)}.timeline-item--clickable:hover .timeline-dot{transform:scale(1.2);transition:transform .12s,background .12s}.timeline-rev-lane{position:absolute;left:calc(-1 * var(--sp-6) - 6px);top:0;bottom:0;width:3px;border-radius:2px;opacity:.6}.timeline-revision-change{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;margin-left:calc(-1 * var(--sp-6) - 6px);margin-bottom:var(--sp-1)}.timeline-revision-change__line{flex:1;height:1px;background:#f48c25;opacity:.5}.timeline-revision-change__label{color:#f48c25;font-weight:700;letter-spacing:.06em;white-space:nowrap;font-size:10px;padding:2px 8px;background:#f48c251a;border-radius:var(--radius-full, 9999px);border:1px solid hsla(30,90%,55%,.3)}.timeline-item--deviated{border-left:2px solid hsla(30,90%,55%,.4);margin-left:-2px;padding-left:2px}.timeline-deviation-badge{font-size:9px;font-weight:700;letter-spacing:.06em;padding:1px 6px;background:#f48c2526;color:#f48c25;border-radius:var(--radius-full, 9999px);border:1px solid hsla(30,90%,55%,.3);white-space:nowrap}.timeline-rev-tag{margin-top:2px;font-size:11px;opacity:.8}.hds-overlay{position:fixed;inset:0;background:#00000073;z-index:100;display:flex;justify-content:flex-end;animation:hds-overlay-in .15s ease-out}@keyframes hds-overlay-in{0%{opacity:0}to{opacity:1}}.hds-panel{width:440px;max-width:90vw;height:100vh;background:var(--bg-primary);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow-y:auto;animation:hds-slide-in .2s ease-out;box-shadow:-8px 0 32px #0000004d}@keyframes hds-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.hds-header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:var(--sp-4)}.hds-title{font-size:var(--text-lg);font-weight:600;margin:0;text-transform:capitalize}.hds-time{display:block;margin-top:var(--sp-1)}.hds-close{background:none;border:none;color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background .1s,color .1s;flex-shrink:0}.hds-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.hds-body{padding:var(--sp-4) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5);flex:1}.hds-section{display:flex;flex-direction:column;gap:var(--sp-3)}.hds-section__title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--text-tertiary);margin:0}.hds-grid{margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}.hds-row{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-secondary);border-radius:var(--radius-md);min-height:36px}.hds-row__label{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500;min-width:110px;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.hds-row__value{font-size:var(--text-sm);color:var(--text-primary);word-break:break-all;margin:0}.hds-status{display:inline-block;padding:2px 10px;border-radius:var(--radius-full, 9999px);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-tertiary);color:var(--text-secondary)}.hds-status--passed{background:#21c45d26;color:#3bde77}.hds-status--failed{background:#ef434326;color:#f15b5b}.hds-status--active{background:#3c83f626;color:#5593f7}.hds-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;padding:var(--sp-2) var(--sp-3);background:var(--bg-secondary);border-radius:var(--radius-md)}.hds-detail-link{display:block;text-align:center;padding:var(--sp-3) var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--accent);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:background .12s,border-color .12s}.hds-detail-link:hover{background:var(--bg-tertiary);border-color:var(--accent)}.hds-footer{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--border-subtle)}.ppv{display:flex;flex-direction:column;gap:var(--sp-3)}.ppv--compact .ppv-op{padding:var(--sp-2)}.ppv-plan-header{margin-bottom:var(--sp-1)}.ppv-plan-title{font-weight:700;font-size:var(--text-md)}.ppv-plan-desc{font-size:var(--text-xs);color:var(--text-secondary);margin-top:4px}.ppv-op{background:var(--bg-elevated, var(--bg-tertiary));border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-3)}.ppv-op--highlighted{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.ppv-op-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.ppv-op-seq{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--accent);min-width:32px}.ppv-op-name{font-weight:600;font-size:var(--text-sm)}.ppv-op-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);margin-left:auto}.ppv-op-desc{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:4px}.ppv-dwi-link{font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:#19a1e626;color:#47b4eb;border:1px solid hsla(200,80%,50%,.3);text-decoration:none;text-transform:uppercase;transition:background .12s;flex-shrink:0;cursor:pointer;font-family:var(--font-mono)}.ppv-dwi-link:hover{background:#19a1e640}.ppv-dwi-overlay{position:fixed;inset:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center;animation:ppv-fade-in .15s ease-out}@keyframes ppv-fade-in{0%{opacity:0}to{opacity:1}}.ppv-dwi-modal{width:90vw;max-width:900px;height:85vh;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 16px 64px #0006;animation:ppv-scale-in .2s ease-out}@keyframes ppv-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.ppv-dwi-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ppv-dwi-modal-title{font-weight:600;font-size:var(--text-md)}.ppv-dwi-open-tab{font-size:var(--text-xs);color:var(--accent);text-decoration:none}.ppv-dwi-open-tab:hover{text-decoration:underline}.ppv-dwi-iframe{flex:1;border:none;width:100%;background:var(--bg-secondary)}.ppv-detail-row{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-1) 0;display:flex;gap:var(--sp-3);flex-wrap:wrap}.ppv-label{text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--text-tertiary);font-size:10px;margin-right:4px}.ppv-route-pass{color:#3bde77}.ppv-route-fail{color:#f4af25}.ppv-route-terminal{color:#ef4343}.ppv-route-output{color:#5593f7}.ppv-section{margin-top:var(--sp-2)}.ppv-sub-item{font-size:var(--text-xs);color:var(--text-secondary);padding-left:8px}.ppv-sub-code{font-weight:500;color:var(--text-primary)}.ppv-accent-tag{color:var(--accent);margin-left:4px}.ppv-limits{color:var(--text-tertiary);margin-left:4px}.quality-sidebar-overlay{position:fixed;inset:0;background:#00000073;z-index:100;display:flex;justify-content:flex-end;animation:qs-overlay-in .15s ease-out}@keyframes qs-overlay-in{0%{opacity:0}to{opacity:1}}.quality-sidebar{width:420px;max-width:90vw;height:100vh;background:var(--bg-primary);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow-y:auto;animation:qs-slide-in .2s ease-out;box-shadow:-8px 0 32px #0000004d}@keyframes qs-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.quality-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.quality-sidebar__title{font-size:var(--text-lg);font-weight:600;margin:0}.quality-sidebar__close{background:none;border:none;color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background .1s,color .1s}.quality-sidebar__close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.quality-sidebar__form{padding:var(--sp-5) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5)}.quality-sidebar__success{margin:var(--sp-3) var(--sp-6) 0;padding:var(--sp-3) var(--sp-4);background:hsla(var(--status-passed-hsl, 142 71% 45%),.12);color:var(--status-passed);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.quality-sidebar__error{margin:var(--sp-3) var(--sp-6) 0;padding:var(--sp-3) var(--sp-4);background:hsla(var(--status-failed-hsl, 0 84% 60%),.12);color:var(--status-failed);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.quality-sidebar__submit{margin-top:var(--sp-2);width:100%;padding:var(--sp-3) var(--sp-4);font-weight:600}.chip-group{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-full, 9999px);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .15s;text-transform:capitalize;font-weight:500}.chip:hover{border-color:var(--accent);color:var(--text-primary)}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.chip-severity-minor.chip-active{background:var(--status-warning, hsl(45, 93%, 47%));border-color:var(--status-warning, hsl(45, 93%, 47%));color:#000}.chip-severity-major.chip-active{background:#f97415;border-color:#f97415;color:#000}.chip-severity-critical.chip-active{background:var(--status-failed, hsl(0, 84%, 60%));border-color:var(--status-failed, hsl(0, 84%, 60%));color:#fff}.quality-sidebar .form-group{display:flex;flex-direction:column;gap:var(--sp-2)}.quality-sidebar .form-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--text-secondary)}.quality-sidebar .form-input{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);color:var(--text-primary);font-size:var(--text-sm);transition:border-color .15s}.quality-sidebar .form-input:focus{outline:none;border-color:var(--accent)}.quality-sidebar .form-input::placeholder{color:var(--text-tertiary)}.quality-sidebar .form-textarea{resize:vertical;min-height:60px;font-family:inherit}.unit-detail-page{max-width:1000px}.unit-status-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}.unit-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6)}.unit-card-link{text-decoration:none;color:inherit}.unit-card-link:hover .summary-card{border-color:var(--accent)}.unit-layout{display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-4);align-items:start}@media(max-width:768px){.unit-layout{grid-template-columns:1fr}}.unit-tab-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5)}.tab-section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--sp-3)}.tree-view{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.8}.tree-line{display:flex;align-items:baseline;white-space:pre}.tree-line__prefix{color:var(--text-tertiary);-webkit-user-select:none;user-select:none;flex-shrink:0}.tree-line__root{color:var(--text-primary)}.tree-line__link{text-decoration:none;color:var(--accent);border-radius:var(--radius-sm);padding:0 4px;margin:0 -4px;transition:background .1s}.tree-line__link:hover{background:var(--accent-muted);color:var(--accent-hover)}.tree-line__serial{color:var(--text-tertiary);font-size:var(--text-xs);margin-left:var(--sp-2)}.tree-line__link .text-secondary{color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-xs)}.unit-plan-links{display:flex;flex-direction:column;gap:var(--sp-2)}.unit-plan-link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:background .12s,border-color .12s;text-align:left;width:100%;color:inherit;font:inherit}.unit-plan-link:hover{background:var(--bg-secondary);border-color:var(--accent)}.unit-plan-link__name{font-weight:600;font-size:var(--text-sm)}.unit-plan-link__rev{font-size:var(--text-xs);color:var(--accent)}.unit-plan-link__arrow{margin-left:auto;color:var(--text-tertiary);font-size:var(--text-sm);transition:transform .12s}.unit-plan-link:hover .unit-plan-link__arrow{transform:translate(3px);color:var(--accent)}.quality-summary{display:flex;flex-direction:column;gap:var(--sp-2)}.quality-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-md)}.quality-item--link{cursor:pointer;transition:background .15s,border-color .15s;border:1px solid transparent}.quality-item--link:hover{background:var(--bg-secondary);border-color:var(--accent)}.document-viewer{display:flex;flex-direction:column;height:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-secondary)}.document-viewer-title{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.document-viewer-frame{flex:1;min-height:400px;border:none;background:#fff}.pdf-fallback{display:flex;flex-direction:column;align-items:center;padding:var(--sp-8);text-align:center}.document-panel{width:450px;min-width:320px;display:flex;flex-direction:column;border-left:1px solid var(--border-subtle);background:var(--bg-secondary);transition:width .2s}.document-panel.collapsed{width:auto;min-width:auto}.document-panel-toggle{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);text-align:left;min-height:var(--touch-min);border-bottom:1px solid var(--border-subtle)}@media(max-width:1024px){.document-panel{width:100%;min-width:100%;border-left:none;border-top:1px solid var(--border-subtle)}}.tool-session-panel{margin-bottom:var(--sp-3);overflow:hidden;transition:box-shadow .2s,border-color .2s}.tool-session-panel.session-complete{border-color:var(--success);box-shadow:inset 3px 0 0 var(--success)}.tool-session-panel.session-failed{border-color:var(--danger);box-shadow:inset 3px 0 0 var(--danger)}.tool-session-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--sp-3) var(--sp-4);background:none;border:none;cursor:pointer;color:var(--text-primary);font:inherit;text-align:left;gap:var(--sp-3);min-height:var(--touch-min)}.tool-session-header:hover{background:var(--bg-hover)}.tool-session-header-left{display:flex;align-items:center;gap:var(--sp-3)}.tool-session-icon{font-size:.7rem;font-weight:700;letter-spacing:.04em;line-height:1;padding:4px 6px;border-radius:var(--radius-sm, 4px);background:var(--bg-tertiary, #1e293b);color:var(--text-secondary, #94a3b8)}.tool-session-title{font-weight:600;font-size:var(--text-sm)}.tool-session-subtitle{font-size:var(--text-xs);color:var(--text-tertiary)}.tool-session-header-right{display:flex;align-items:center;gap:var(--sp-2)}.tool-session-chevron{font-size:var(--text-xs);color:var(--text-tertiary)}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}.tool-session-body{padding:0 var(--sp-4) var(--sp-4)}.tool-session-progress{margin-bottom:var(--sp-3)}.progress-label{display:flex;justify-content:space-between;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);margin-bottom:var(--sp-1)}.progress-count{font-variant-numeric:tabular-nums}.nok-count{color:var(--danger);font-weight:600}.progress-bar-track{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width .4s ease}.progress-bar-fill.fill-complete{background:var(--success)}.progress-bar-fill.fill-failed{background:var(--danger)}.tool-session-results{display:flex;flex-direction:column;gap:1px;margin-bottom:var(--sp-3);border-radius:var(--radius-md);overflow:hidden}.tool-result-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-secondary);font-size:var(--text-sm)}.result-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);font-size:11px;font-weight:700;flex-shrink:0}.result-ok{background:#d6f5e0;color:#17823b}.result-nok{background:#f9dcdc;color:#ad1f1f}.result-rejected{background:var(--bg-tertiary);color:var(--text-tertiary)}.result-undetermined{background:#fceec5;color:#aa7409}.result-seq{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-tertiary);min-width:32px}.result-value{flex:1;font-variant-numeric:tabular-nums}.result-image-link{font-size:var(--text-xs);color:var(--accent);text-decoration:none}.result-image-link:hover{text-decoration:underline}.tool-session-actions{display:flex;gap:var(--sp-2)}.capture-image-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600;font-size:var(--text-sm);cursor:pointer;min-height:var(--touch-min);transition:all .15s}.capture-image-btn:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 2px 8px hsla(var(--accent-hsl, 220, 80%, 55%),.3)}.capture-image-btn:disabled{opacity:.6;cursor:not-allowed}.tool-session-waiting{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--sp-2) 0}.waiting-pulse{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);background:var(--accent);animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.5}}.station-header{display:flex;align-items:center;justify-content:space-between;position:relative;padding:var(--sp-3) var(--sp-5);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);min-height:60px;gap:var(--sp-4);flex-wrap:wrap}.station-header-left{display:flex;align-items:center;gap:var(--sp-4)}.station-header-identity{display:flex;flex-direction:column}.station-header-code{font-size:var(--text-xl);color:var(--text-primary);letter-spacing:.02em}.station-header-name{font-size:var(--text-xs);color:var(--text-secondary)}.station-header-right{display:flex;align-items:center;gap:var(--sp-5)}.station-header-operator,.station-header-time{display:flex;flex-direction:column;align-items:flex-end}.station-header-status-group{display:flex;align-items:center;gap:var(--sp-3);padding-left:var(--sp-3);border-left:1px solid var(--border-subtle)}.connection-indicator{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md)}.connection-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.conn-connected .connection-dot{background:var(--status-connected);box-shadow:0 0 6px var(--status-connected)}.conn-reconnecting .connection-dot{background:var(--status-reconnecting);animation:pulse-dot 1s ease-in-out infinite}.conn-offline .connection-dot{background:var(--status-offline)}.conn-connected .connection-label{color:var(--status-connected)}.conn-reconnecting .connection-label{color:var(--status-reconnecting)}.conn-offline .connection-label{color:var(--status-offline)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.barcode-input-wrapper{margin-bottom:var(--sp-4)}.barcode-input-container{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-tertiary);border:2px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--sp-2);transition:border-color .15s}.barcode-input-container:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.barcode-input-container.has-error{border-color:var(--status-failed);box-shadow:0 0 0 3px var(--status-failed-bg)}.barcode-icon{font-size:var(--text-xl);color:var(--text-tertiary);padding:0 var(--sp-2);flex-shrink:0}.barcode-input{flex:1;background:transparent!important;border:none!important;box-shadow:none!important;font-family:var(--font-mono);font-size:var(--text-xl)!important;min-height:var(--touch-hmi)!important;padding:var(--sp-2)!important;color:var(--text-primary)}.barcode-input:focus{outline:none;box-shadow:none!important}.barcode-clear{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-lg);padding:var(--sp-2);min-width:var(--touch-min);min-height:var(--touch-min);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all .15s}.barcode-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.barcode-submit{min-height:var(--touch-hmi)!important;min-width:100px;font-size:var(--text-lg)!important;font-weight:700!important;letter-spacing:.06em;border-radius:var(--radius-md)!important;background:linear-gradient(135deg,var(--accent),#3d7ce0)!important;border-color:transparent!important;box-shadow:0 0 12px #4f8ff733;transition:all .2s ease!important}.barcode-submit:hover:not(:disabled){box-shadow:0 0 20px #4f8ff759!important;transform:translateY(-1px)}.barcode-submit:disabled{opacity:.4;box-shadow:none}.barcode-spinner{width:20px;height:20px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.barcode-error{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);margin-top:var(--sp-2);background:var(--status-failed-bg);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-md);color:var(--status-failed);font-size:var(--text-sm)}.barcode-error-icon{font-size:var(--text-lg);flex-shrink:0}.active-unit-card{margin-bottom:var(--sp-4);border-left:3px solid var(--accent);position:relative}.unit-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--sp-3)}.unit-card-header .mono.font-bold{font-size:var(--text-xl);letter-spacing:.02em}.unit-card-trace{display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-1) 0;margin-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.unit-card-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-3)}.unit-card-field{display:flex;flex-direction:column;gap:2px}.unit-card-quality{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid var(--border-subtle)}.quality-indicator{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);min-height:40px;font-weight:600;transition:box-shadow .2s}.nc-indicator{background:var(--status-nc-bg);color:var(--status-nc);box-shadow:0 0 8px #f59e0b26}.hold-indicator{background:var(--status-hold-bg);color:var(--status-hold);box-shadow:0 0 8px #c084fc26}.clear-indicator{background:var(--status-passed-bg);color:var(--status-passed)}.quality-count{font-size:var(--text-xl);font-weight:700;font-family:var(--font-mono)}.text-passed{color:var(--status-passed)}.unit-card-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.btn-sm{min-height:36px;padding:var(--sp-1) var(--sp-3);font-size:var(--text-sm)}.blocked-panel{background:#f8717114;border:2px solid var(--status-failed);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-4);animation:blocked-pulse 2s ease-in-out infinite}@keyframes blocked-pulse{0%,to{border-color:var(--status-failed)}50%{border-color:var(--status-blocked)}}.blocked-panel-header{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.blocked-panel-icon{font-size:var(--text-sm);font-family:var(--font-mono);font-weight:700;color:var(--status-failed);letter-spacing:.06em}.blocked-panel-title{font-size:var(--text-xl);font-weight:700;color:var(--status-failed)}.blocked-panel-reasons{display:flex;flex-direction:column;gap:var(--sp-3)}.blocked-reason-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4)}.blocked-reason-title{color:var(--text-primary);margin-bottom:var(--sp-1)}.blocked-reason-detail{margin-bottom:var(--sp-2)}.blocked-reason-suggestion{color:var(--status-info)}.operation-panel{margin-bottom:var(--sp-4)}.operation-panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--sp-4);gap:var(--sp-3)}.operation-panel-meta{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.operation-panel-info{display:flex;gap:var(--sp-5);flex-wrap:wrap}.operation-info-item{display:flex;flex-direction:column;gap:2px}.progress-display{display:flex;flex-direction:column;gap:4px}.progress-bar-track{width:80px;height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.large-action-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3);margin-top:auto;padding-top:var(--sp-4)}.large-action-bar:has(.large-action-wrapper:only-child){grid-template-columns:1fr}.large-action-wrapper{display:flex;flex-direction:column;gap:var(--sp-1)}.large-action-btn{min-height:72px!important;font-size:var(--text-xl)!important;font-weight:700!important;letter-spacing:.03em;text-transform:uppercase;border-radius:var(--radius-lg)!important;transition:all .2s ease;position:relative;overflow:hidden}.large-action-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.large-action-btn:active:not(:disabled){transform:translateY(0)}.large-action-btn.btn-primary{background:linear-gradient(135deg,var(--accent),#3d7ce0);border-color:transparent;box-shadow:0 0 20px #4f8ff740}.large-action-btn.btn-primary:hover:not(:disabled){box-shadow:0 0 30px #4f8ff766}.large-action-btn.btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border-color:transparent;box-shadow:0 0 16px #22c55e33}.large-action-btn.btn-success:hover:not(:disabled){box-shadow:0 0 24px #22c55e59}.large-action-btn.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent;box-shadow:0 0 16px #ef444433}.large-action-btn.btn-danger:hover:not(:disabled){box-shadow:0 0 24px #ef444459}.large-action-reason{text-align:center;padding:0 var(--sp-2);line-height:1.3}.observation-form{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4)}.observation-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.observation-entries{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-4)}.observation-entry{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.observation-entry:last-child{border-bottom:none}.observation-entry-label{display:flex;gap:var(--sp-2);align-items:baseline;min-width:140px;flex-shrink:0}.observation-entry-input{display:flex;align-items:center;gap:var(--sp-2);flex:1}.observation-numeric-input{max-width:160px;font-family:var(--font-mono)!important;font-size:var(--text-lg)!important;text-align:right}.observation-range{white-space:nowrap}.observation-entry-toggle{display:flex;gap:var(--sp-2)}.obs-toggle-btn{min-width:80px;min-height:var(--touch-min);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);cursor:pointer;border:2px solid transparent;transition:all .15s;background:var(--bg-tertiary);color:var(--text-secondary)}.obs-pass:hover,.obs-pass.active{background:var(--status-passed-bg);color:var(--status-passed);border-color:var(--status-passed)}.obs-fail:hover,.obs-fail.active{background:var(--status-failed-bg);color:var(--status-failed);border-color:var(--status-failed)}.observation-text-input{flex:1}.observation-submit{width:100%}.consumption-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4)}.consumption-panel-header{margin-bottom:var(--sp-3)}.consumption-requirements{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.consumption-req-item{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all .15s;min-height:var(--touch-min)}.consumption-req-item.selected{border-color:var(--accent);background:var(--accent-muted)}.consumption-req-item.fulfilled{opacity:.6;cursor:default}.consumption-req-info{display:flex;flex-direction:column;gap:2px}.consumption-req-progress{display:flex;align-items:center;gap:var(--sp-2)}.consumption-check{color:var(--status-passed);font-size:var(--text-lg);font-weight:700}.consumption-scan{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}.consumption-scan-input{flex:1;font-family:var(--font-mono)!important}.consumption-error{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--status-failed-bg);border:1px solid var(--status-failed);border-radius:var(--radius-md);color:var(--status-failed);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-2);animation:consumeErrorShake .4s ease-out}@keyframes consumeErrorShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.consumption-list{border-top:1px solid var(--border-subtle);padding-top:var(--sp-2)}.consumption-list-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) 0}.mini-timeline{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4)}.mini-timeline-header{margin-bottom:var(--sp-3)}.mini-timeline-empty{text-align:center;padding:var(--sp-4)}.mini-timeline-list{display:flex;flex-direction:column;gap:var(--sp-2)}.mini-timeline-item{display:flex;gap:var(--sp-2);align-items:flex-start}.mini-timeline-icon{flex-shrink:0;width:20px;text-align:center}.mini-timeline-content{display:flex;flex-direction:column;gap:1px;min-width:0}.quick-quality-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);transition:border-color .2s}.quick-quality-panel.has-issues{border-color:#fbbf244d}.quick-quality-header{margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.quick-quality-rows{display:flex;flex-direction:column;gap:var(--sp-2)}.quick-quality-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);background:var(--bg-tertiary);min-height:40px;transition:background .15s}.quick-quality-row.issue-active{background:#fbbf240f}.quick-quality-info{display:flex;align-items:center;gap:var(--sp-3)}.quick-quality-count{font-size:var(--text-lg);min-width:24px;text-align:center}.text-warning{color:var(--status-warning)}.text-hold{color:var(--status-hold)}.op-progress-bar{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4)}.op-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.op-progress-steps{display:flex;align-items:flex-start;gap:0;overflow-x:auto}.op-step{display:flex;flex-direction:column;align-items:center;flex:1;min-width:48px;position:relative}.op-step-indicator{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;font-family:var(--font-mono);flex-shrink:0;position:relative;z-index:1;transition:all .2s}.op-step.pending .op-step-indicator{background:var(--bg-tertiary);color:var(--text-tertiary);border:2px solid var(--border-default)}.op-step.current .op-step-indicator{background:var(--accent);color:#fff;border:2px solid var(--accent);box-shadow:0 0 12px #4f8ff74d}.op-step.completed .op-step-indicator{background:var(--status-passed);color:#fff;border:2px solid var(--status-passed)}.op-step.failed .op-step-indicator{background:var(--status-failed);color:#fff;border:2px solid var(--status-failed)}.op-step-number{font-size:.65rem}.op-step-connector{position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--border-default);z-index:0}.op-step-connector.completed{background:var(--status-passed)}.op-step-label{font-size:.6rem;font-family:var(--font-mono);color:var(--text-tertiary);margin-top:var(--sp-1);text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-step.current .op-step-label{color:var(--accent);font-weight:600}.op-step.completed .op-step-label{color:var(--status-passed)}.op-current-info{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-3);margin-top:var(--sp-3);border-top:1px solid var(--border-subtle);gap:var(--sp-3)}.op-current-meta{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;flex-shrink:0}.station-timer{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--sp-4)}.station-timer-value{font-size:var(--text-2xl);color:var(--text-primary);letter-spacing:.04em}.station-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-16) var(--sp-8);min-height:300px}.station-empty-icon{font-size:2rem;font-family:var(--font-mono);font-weight:700;color:var(--text-tertiary);margin-bottom:var(--sp-4);letter-spacing:.1em}.station-empty-title{margin-bottom:var(--sp-2)}.station-empty-desc{max-width:400px;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:24px;height:24px;border:3px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}.work-queue-panel{margin-top:auto;margin-left:calc(-1 * var(--sp-4));margin-right:calc(-1 * var(--sp-4));margin-bottom:calc(-1 * var(--sp-4));padding:var(--sp-3) var(--sp-4) var(--sp-4);max-height:33vh;display:flex;flex-direction:column;border-top:1px solid var(--border-subtle);background:var(--bg-secondary);border-radius:0}.work-queue-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.work-queue-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.work-queue-count{font-size:12px;color:var(--text-tertiary);font-weight:500}.work-queue-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;min-height:0;padding-bottom:var(--sp-2)}.work-queue-item{padding:12px 14px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-elevated);cursor:default;transition:border-color .15s,box-shadow .15s}.work-queue-item:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-alpha-15)}.work-queue-item--ready{border-left:3px solid var(--success)}.work-queue-item--waiting_on_material,.work-queue-item--waiting_on_child_wo{border-left:3px solid var(--warning)}.work-queue-item--waiting_on_approval{border-left:3px solid var(--info, #3b82f6)}.work-queue-item--on_hold{border-left:3px solid var(--error);opacity:.75}.work-queue-item--completed_at_station{border-left:3px solid var(--text-tertiary);opacity:.5}.work-queue-item-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}.work-queue-item-order{font-size:14px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono, monospace)}.work-queue-item-type-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:4px;line-height:1.4}.work-queue-item-type-badge--standard{background:#3b82f61f;color:#3b82f6}.work-queue-item-type-badge--rework{background:#f59e0b26;color:#f59e0b}.work-queue-item-type-badge--repair{background:#ef44441f;color:#ef4444}.work-queue-item-type-badge--scrap{background:#6b728026;color:#6b7280}.work-queue-item-priority{font-size:11px;font-weight:600;color:var(--text-tertiary);margin-left:auto}.work-queue-item-details{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.work-queue-item-part{font-size:13px;color:var(--text-primary);font-weight:500}.work-queue-item-qty{font-size:12px;color:var(--text-secondary);font-family:var(--font-mono, monospace)}.work-queue-item-op{font-size:12px;color:var(--text-secondary)}.work-queue-item-blocked{font-size:11px;color:var(--warning);margin-top:4px;font-style:italic}.work-queue-item-target{font-size:12px;color:var(--text-secondary);margin-top:4px}.work-queue-ready-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.work-queue-ready-dot--ready{background:var(--success)}.work-queue-ready-dot--waiting_on_material,.work-queue-ready-dot--waiting_on_child_wo{background:var(--warning)}.work-queue-ready-dot--waiting_on_approval{background:var(--info, #3b82f6)}.work-queue-ready-dot--on_hold{background:var(--error)}.work-queue-ready-dot--completed_at_station{background:var(--text-tertiary)}.work-queue-empty{text-align:center;padding:24px 16px;color:var(--text-tertiary);font-size:13px}.work-queue-item.selectable{cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.work-queue-item.selectable:hover{border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.work-queue-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background-color:#2563eb05}.station-page-layout{display:flex;flex-direction:column;height:100vh;margin:calc(-1 * var(--sp-6));overflow:hidden}.station-body{display:grid;grid-template-columns:320px 1fr 300px;gap:0;flex:1;overflow:hidden;min-height:0}.station-left-rail{padding:var(--sp-4);border-right:1px solid var(--border-subtle);overflow-y:auto;background:var(--bg-primary);display:flex;flex-direction:column}.station-center-rail{padding:0;overflow:hidden;display:flex;flex-direction:column;gap:0}.station-center-content{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);min-height:0}.station-center-footer{flex-shrink:0;background:var(--bg-primary);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:0 -4px 15px #0003;z-index:10}.station-dwi-area{margin-bottom:var(--sp-4);flex:1;display:flex;flex-direction:column;min-height:400px}.station-dwi-area .document-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;flex:1;display:flex;flex-direction:column}.station-dwi-area .document-viewer-frame{min-height:auto;flex:1;height:100%}.station-ready-prompt{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-8) var(--sp-6)!important;margin-bottom:var(--sp-4);border:1px solid var(--border-default);background:linear-gradient(135deg,var(--bg-secondary),var(--bg-elevated))!important}.station-ready-icon{font-size:2.5rem;color:var(--accent);text-shadow:0 0 20px rgba(79,143,247,.4);animation:ready-pulse 2s ease-in-out infinite}@keyframes ready-pulse{0%,to{text-shadow:0 0 20px rgba(79,143,247,.3)}50%{text-shadow:0 0 30px rgba(79,143,247,.6)}}.station-ready-text .text-lg{font-size:var(--text-xl)}.station-complete-banner{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-6);background:linear-gradient(135deg,#22c55e14,#22c55e08);border:1px solid rgba(34,197,94,.25);border-radius:var(--radius-xl);margin-bottom:var(--sp-4)}.station-complete-icon{font-size:2.5rem;color:var(--status-passed);text-shadow:0 0 16px rgba(52,211,153,.4)}.station-complete-text{flex:1}.station-complete-actions{display:flex;gap:var(--sp-3)}.btn-unload{min-height:var(--touch-hmi);min-width:140px;font-size:var(--text-lg);font-weight:700;letter-spacing:.03em;background:linear-gradient(135deg,var(--accent),#3d7ce0);color:#fff;border:none;border-radius:var(--radius-lg);box-shadow:0 0 16px #4f8ff733;transition:all .2s}.btn-unload:hover{box-shadow:0 0 24px #4f8ff759;transform:translateY(-1px)}.station-right-rail{border-left:1px solid var(--border-subtle);background:var(--bg-secondary);display:flex;flex-direction:column;overflow:hidden}.station-right-tabs{display:flex;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.station-tab{flex:1;padding:var(--sp-3);text-align:center;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;min-height:var(--touch-min);transition:all .15s}.station-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.station-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.station-right-content{flex:1;overflow-y:auto;padding:var(--sp-3)}.station-right-empty{text-align:center;padding:var(--sp-8) var(--sp-4)}.station-doc-list{display:flex;flex-direction:column;gap:var(--sp-2)}.station-doc-link{display:block;padding:var(--sp-3)!important;text-decoration:none;color:var(--text-primary);transition:background .15s}.station-doc-link:hover{background:var(--bg-hover);color:var(--text-primary)}@media(max-width:1200px){.station-body{grid-template-columns:280px 1fr}.station-right-rail{display:none}}@media(max-width:768px){.station-body{grid-template-columns:1fr}.station-left-rail{border-right:none;border-bottom:1px solid var(--border-subtle)}.station-center-rail{padding:var(--sp-3)}}@media(min-width:1600px){.station-body{grid-template-columns:360px 1fr 380px}.station-center-rail{padding:var(--sp-5) var(--sp-8)}}.nc-dialog-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.nc-dialog{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg, 12px);width:440px;max-width:90vw;box-shadow:0 24px 48px #0006;animation:slideUp .2s ease}.nc-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.nc-dialog-close{background:none;border:none;color:var(--text-secondary);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm, 4px)}.nc-dialog-close:hover{color:var(--text-primary);background:var(--bg-hover)}.nc-dialog-body{padding:20px;display:flex;flex-direction:column;gap:16px}.nc-dialog-field{display:flex;flex-direction:column;gap:6px}.nc-dialog-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.nc-severity-picker{display:flex;gap:8px}.nc-severity-btn{flex:1;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.nc-severity-btn:hover{border-color:var(--severity-color);background:color-mix(in srgb,var(--severity-color) 10%,transparent)}.nc-severity-btn.active{border-color:var(--severity-color);background:color-mix(in srgb,var(--severity-color) 18%,transparent);color:var(--severity-color);font-weight:600}.nc-dialog-select{padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;appearance:auto}.nc-dialog-select:focus{outline:none;border-color:var(--accent)}.nc-dialog-textarea{padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:inherit;resize:vertical;min-height:72px}.nc-dialog-textarea:focus{outline:none;border-color:var(--accent)}.nc-dialog-textarea::placeholder{color:var(--text-tertiary)}.nc-dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border-subtle)}.nc-dialog-cancel-btn{padding:10px 20px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer}.nc-dialog-cancel-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.nc-dialog-submit-btn{padding:10px 20px;border:none;border-radius:var(--radius-md, 8px);background:var(--danger, #ef4444);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.nc-dialog-submit-btn:hover{opacity:.9}.nc-dialog-submit-btn:disabled{opacity:.5;cursor:not-allowed}.measurements-panel{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.measurements-header{display:flex;align-items:center;justify-content:center;padding:var(--sp-2) var(--sp-4);background:var(--bg-elevated);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s;border-bottom:1px solid transparent}.measurements-header:hover{background:var(--bg-hover)}.measurements-header.expanded{border-bottom-color:var(--border-default)}.measurements-header-title{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--sp-2)}.measurements-header-icon{color:var(--text-tertiary);transition:transform .2s;font-size:10px}.measurements-header-icon.collapsed{transform:rotate(-180deg)}.measurements-content{padding:var(--sp-4);background:var(--bg-primary)}.batch-page-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg-primary)}.batch-body{flex:1;display:grid;grid-template-columns:340px 1fr 320px;gap:var(--sp-4);padding:var(--sp-4);overflow:hidden;min-height:0}.batch-left-rail{display:flex;flex-direction:column;gap:var(--sp-3);overflow-y:auto;min-height:0}.batch-info-card{padding:var(--sp-4);border-radius:12px;background:var(--bg-elevated);border:1px solid var(--border-default)}.batch-info-card h3{margin:0 0 var(--sp-2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.batch-state-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:6px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.batch-state-badge.open{background:#3b82f61f;color:#3b82f6}.batch-state-badge.loading{background:#f59e0b1f;color:#f59e0b}.batch-state-badge.ready{background:#22c55e1f;color:#22c55e}.batch-state-badge.running{background:#22c55e26;color:#16a34a}.batch-state-badge.completed{background:#22c55e1a;color:#22c55e}.batch-state-badge.expired{background:#ef44441f;color:#ef4444}.batch-state-badge.aborted{background:#ef44441a;color:#ef4444}.batch-state-badge.paused{background:#a855f71f;color:#a855f7}.batch-center-rail{display:flex;flex-direction:column;gap:var(--sp-4);overflow-y:auto;min-height:0}.batch-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px}.batch-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;border-radius:10px;border:2px dashed var(--border-default);background:var(--bg-tertiary);min-height:90px;cursor:pointer;transition:all .2s ease}.batch-slot:hover{border-color:var(--accent);background:#3b82f60a}.batch-slot.occupied{border-style:solid;border-color:var(--accent);background:#3b82f60f}.batch-slot.running{border-color:var(--success);background:#22c55e0f;animation:slot-pulse 2s ease-in-out infinite}.batch-slot.completed{border-color:var(--success);background:#22c55e1a}.batch-slot.failed,.batch-slot.aborted{border-color:var(--error);background:#ef44440f}@keyframes slot-pulse{0%,to{box-shadow:0 0 #22c55e33}50%{box-shadow:0 0 0 6px #22c55e00}}.batch-slot-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.batch-slot-serial{font-size:13px;font-weight:600;font-family:var(--font-mono, "SF Mono", monospace);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-align:center}.batch-slot-empty-icon{font-size:24px;color:var(--text-tertiary);opacity:.5}.batch-slot-state-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%}.batch-slot-state-dot.added{background:var(--accent)}.batch-slot-state-dot.running,.batch-slot-state-dot.completed{background:var(--success)}.batch-slot-state-dot.failed{background:var(--error)}.batch-timer-display{padding:24px;border-radius:12px;background:var(--bg-elevated);border:1px solid var(--border-default);text-align:center}.batch-timer-display.running{border-color:var(--success);background:#22c55e0a}.batch-timer-display.expired{border-color:var(--error);background:#ef44440f;animation:timer-flash 1s ease-in-out infinite}@keyframes timer-flash{0%,to{border-color:var(--error)}50%{border-color:transparent}}.batch-timer-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.batch-timer-value{font-size:48px;font-weight:800;font-family:var(--font-mono, "SF Mono", monospace);color:var(--text-primary);letter-spacing:-1px;line-height:1}.batch-timer-value.warning{color:var(--warning)}.batch-timer-value.critical{color:var(--error)}.batch-timer-progress{margin-top:12px;height:4px;border-radius:2px;background:var(--bg-tertiary);overflow:hidden}.batch-timer-progress-fill{height:100%;border-radius:2px;background:var(--success);transition:width 1s linear}.batch-timer-progress-fill.warning{background:var(--warning)}.batch-timer-progress-fill.critical{background:var(--error)}.batch-actions{display:flex;gap:var(--sp-2);padding:var(--sp-3);border-radius:12px;background:var(--bg-elevated);border:1px solid var(--border-default)}.batch-actions .btn{flex:1;padding:14px 20px;font-size:15px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.04em}.batch-actions .btn:disabled{opacity:.4;cursor:not-allowed}.batch-actions .btn-start{background:var(--success);color:#fff}.batch-actions .btn-start:hover:not(:disabled){filter:brightness(1.1)}.batch-actions .btn-complete{background:var(--accent);color:#fff}.batch-actions .btn-complete:hover:not(:disabled){filter:brightness(1.1)}.batch-actions .btn-abort{background:#ef44441a;color:var(--error)}.batch-actions .btn-abort:hover:not(:disabled){background:#ef444433}.batch-right-rail{display:flex;flex-direction:column;gap:var(--sp-3);overflow-y:auto;min-height:0}.batch-unit-list{display:flex;flex-direction:column;gap:6px}.batch-unit-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border-default)}.batch-unit-row .serial{flex:1;font-size:14px;font-weight:600;font-family:var(--font-mono, "SF Mono", monospace);color:var(--text-primary)}.batch-unit-row .slot{font-size:12px;color:var(--text-secondary);font-weight:600}.batch-unit-row .state-badge{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:700;text-transform:uppercase}.batch-unit-row .state-badge.added{background:#3b82f61f;color:#3b82f6}.batch-unit-row .state-badge.running{background:#22c55e1f;color:#22c55e}.batch-unit-row .state-badge.completed{background:#22c55e1a;color:#22c55e}.batch-unit-row .state-badge.failed{background:#ef44441a;color:#ef4444}.batch-unit-row .state-badge.removed{background:#9ca3af1a;color:#9ca3af}.batch-unit-row .remove-btn{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:all .15s}.batch-unit-row .remove-btn:hover{color:var(--error);background:#ef44441a}.batch-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;border-radius:12px;background:var(--bg-elevated);border:2px dashed var(--border-default)}.batch-empty-state .icon{font-size:48px;margin-bottom:16px;opacity:.3}.batch-empty-state .title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.batch-empty-state .description{font-size:14px;color:var(--text-secondary);max-width:320px;line-height:1.5}.batch-create-btn{margin-top:20px;padding:12px 32px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:filter .15s}.batch-create-btn:hover{filter:brightness(1.1)}.batch-capacity-meter{margin-top:8px}.batch-capacity-bar{height:6px;border-radius:3px;background:var(--bg-tertiary);overflow:hidden}.batch-capacity-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .3s ease}.batch-capacity-text{font-size:12px;color:var(--text-secondary);margin-top:4px}.stations-list-page{max-width:1200px;margin:0 auto;padding:var(--sp-5)}.stations-list-header{margin-bottom:var(--sp-6)}.stations-list-header h1{margin:0 0 var(--sp-1) 0}.stations-loading{display:flex;align-items:center;gap:var(--sp-3);justify-content:center;padding:var(--sp-16)}.stations-error{padding:var(--sp-5);text-align:center}.stations-empty{padding:var(--sp-10);text-align:center}.stations-group{margin-bottom:var(--sp-6)}.stations-group-header{display:flex;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.stations-group-area{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.stations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3)}.station-card{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4)!important;cursor:pointer;border:1px solid var(--border-subtle);text-align:left;transition:all .15s ease;background:var(--bg-secondary);position:relative}.station-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-muted),0 4px 12px #00000026;transform:translateY(-1px)}.station-card.station-inactive{opacity:.5}.station-card-code{font-size:var(--text-lg);color:var(--accent);letter-spacing:.02em}.station-card-name{color:var(--text-secondary)}.station-card-meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1)}.station-card-inactive{position:absolute;top:var(--sp-2);right:var(--sp-2)}.station-create-panel{margin-bottom:var(--sp-5);padding:var(--sp-5)!important;border:1px solid var(--accent-muted);border-radius:12px;background:var(--bg-secondary);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.station-create-title{margin:0 0 var(--sp-4);font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.station-create-form{display:flex;flex-direction:column;gap:var(--sp-4)}.station-create-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3)}.station-create-field{display:flex;flex-direction:column;gap:4px}.station-create-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.station-create-field input,.station-create-field select{padding:8px 12px;border:1px solid var(--border-default);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:border-color .15s}.station-create-field input:focus,.station-create-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.station-create-field input::placeholder{color:var(--text-tertiary)}.station-create-error{padding:8px 12px;border-radius:6px;background:#ef44441a;color:#ef4444;font-size:13px;font-weight:600;margin-bottom:var(--sp-2)}.station-create-success{padding:8px 12px;border-radius:6px;background:#22c55e1a;color:#22c55e;font-size:13px;font-weight:600;margin-bottom:var(--sp-2)}.inline-create-trigger{margin-left:6px;padding:0;font-size:11px;font-weight:600;color:var(--text-tertiary);background:none;border:none;cursor:pointer;transition:color .15s;text-transform:none;letter-spacing:0;text-decoration:none}.inline-create-trigger:hover{color:var(--accent);text-decoration:underline}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.modal-dialog{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;width:100%;max-width:420px;box-shadow:0 20px 60px #0006;animation:scaleIn .15s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.modal-header h3{margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:22px;color:var(--text-tertiary);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:20px;display:flex;flex-direction:column;gap:14px}.modal-field{display:flex;flex-direction:column;gap:4px}.modal-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.modal-field input,.modal-field select{padding:9px 12px;border:1px solid var(--border-default);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:border-color .15s}.modal-field input:focus,.modal-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.modal-field input::placeholder{color:var(--text-tertiary)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-subtle)}.btn-ghost{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.admin-page{padding:32px 40px;max-width:1400px;margin:0 auto}.admin-page h1{font-size:1.75rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.admin-page .page-subtitle{color:var(--text-secondary);font-size:.9rem;margin-bottom:24px}.admin-actions{display:flex;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.admin-actions .search-input{flex:1;min-width:200px;max-width:360px;padding:8px 14px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem;transition:border-color .15s}.admin-actions .search-input::placeholder{color:var(--text-tertiary)}.admin-actions .search-input:focus{outline:none;border-color:var(--accent)}.admin-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.admin-table thead th{text-align:left;padding:10px 16px;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);border-bottom:1px solid var(--border-default);position:sticky;top:0;background:inherit;z-index:1}.admin-table tbody tr{transition:background .12s}.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-table td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.admin-table td.mono{font-family:var(--font-mono);font-size:.8rem;letter-spacing:-.02em}.admin-table td a{color:var(--accent);text-decoration:none;font-weight:500}.admin-table td a:hover{text-decoration:underline}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.admin-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;padding:24px;margin-bottom:20px}.admin-card h2{font-size:1.1rem;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.admin-card h3{font-size:.95rem;font-weight:600;margin-bottom:12px;color:var(--text-secondary)}.admin-form{display:flex;flex-direction:column;gap:16px}.admin-form .form-row{display:flex;gap:16px;flex-wrap:wrap}.admin-form .form-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:200px}.admin-form .form-field label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.admin-form input,.admin-form select,.admin-form textarea{padding:8px 12px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;transition:border-color .15s}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:none;border-color:var(--accent)}.btn-admin{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-danger{background:var(--status-failed-bg);color:var(--status-failed);border:1px solid rgba(248,113,113,.3)}.btn-danger:hover{background:#f8717140}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:4px 12px;font-size:.78rem}.admin-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:flex-end}.admin-filters .filter-field{display:flex;flex-direction:column;gap:4px}.admin-filters label{font-size:.72rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.admin-filters input,.admin-filters select{padding:6px 10px;border:1px solid var(--border-default);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:.8rem}.permission-grid{display:grid;gap:24px}.permission-category{border:1px solid var(--border-default);border-radius:10px;padding:16px 20px;background:var(--bg-primary)}.permission-category h4{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:12px}.permission-list{display:flex;flex-direction:column;gap:6px}.permission-item{display:flex;align-items:center;gap:10px;padding:4px 0}.permission-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.permission-item .perm-code{font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary);min-width:180px}.permission-item .perm-desc{font-size:.8rem;color:var(--text-tertiary)}.admin-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.admin-modal{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;padding:28px 32px;width:90%;max-width:520px;box-shadow:0 24px 48px #0006}.admin-modal h2{font-size:1.2rem;font-weight:700;margin-bottom:20px;color:var(--text-primary)}.admin-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.json-payload{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:8px;padding:12px 16px;font-family:var(--font-mono);font-size:.78rem;color:var(--accent-text);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.admin-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.admin-pagination .page-info{font-size:.8rem;color:var(--text-tertiary)}.admin-pagination .page-buttons{display:flex;gap:8px}.admin-empty{text-align:center;padding:48px 24px;color:var(--text-tertiary)}.admin-empty .empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.5}.admin-empty p{font-size:.9rem}.admin-loading{display:flex;align-items:center;justify-content:center;padding:64px 24px;color:var(--text-tertiary)}.admin-loading:after{content:"";width:24px;height:24px;border:3px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:admin-spin .6s linear infinite;margin-left:12px}@keyframes admin-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.admin-page{padding:20px 16px}.admin-form .form-row,.admin-filters{flex-direction:column}}.editable-name{cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s}.editable-name:hover{background:var(--accent-muted)}.editable-icon{font-size:.7rem;color:var(--text-tertiary);margin-left:4px;opacity:0;transition:opacity .15s}.editable-name:hover .editable-icon{opacity:1}.editable-input-wrap{display:inline-flex;align-items:center;gap:4px}.editable-input-wrap input{padding:3px 8px;border:1px solid var(--accent);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;min-width:140px}.pp-editor-layout{display:grid;grid-template-columns:280px 1fr 300px;gap:var(--sp-4);height:calc(100vh - 160px);min-height:500px}.pp-editor-layout.raw-mode{grid-template-columns:1fr}.pp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--sp-4);flex-wrap:wrap}.pp-header-left{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.pp-header-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-header-meta{display:flex;align-items:center;gap:var(--sp-2)}.pp-header-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.pp-save-indicator{font-size:var(--text-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--sp-1)}.pp-save-indicator.unsaved{color:var(--status-warning)}.pp-save-indicator .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pp-conflict-banner{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:#eab30826;border:1px solid rgba(234,179,8,.4);border-radius:var(--radius-md);color:var(--status-warning);font-size:var(--text-sm);animation:fadeIn .2s ease}.pp-conflict-banner .btn-sm{font-size:var(--text-xs);min-height:28px;padding:var(--sp-1) var(--sp-3);white-space:nowrap}.pp-release-error-banner{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:#f871711f;border:1px solid rgba(248,113,113,.4);border-radius:var(--radius-md);color:var(--status-failed);font-size:var(--text-sm);animation:fadeIn .2s ease}.pp-release-error-banner .btn-sm{font-size:var(--text-xs);min-height:28px;padding:var(--sp-1) var(--sp-3);white-space:nowrap}.pp-mode-tabs{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:2px;margin-bottom:var(--sp-4)}.pp-mode-tab{flex:1;padding:var(--sp-2) var(--sp-4);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s;font-family:var(--font-sans);text-align:center}.pp-mode-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.pp-mode-tab.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm)}.pp-op-list-panel{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.pp-op-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.pp-op-list-header h3{font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.pp-op-list-scroll{flex:1;overflow-y:auto;padding:var(--sp-2)}.pp-op-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;transition:all .12s;margin-bottom:2px;border:1px solid transparent}.pp-op-item:hover{background:var(--bg-hover)}.pp-op-item.selected{background:var(--accent-muted);border-color:var(--accent)}.pp-op-item.has-error{border-color:#f8717166}.pp-op-item .op-seq{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);min-width:32px;text-align:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:2px 4px}.pp-op-item .op-info{flex:1;min-width:0}.pp-op-item .op-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-op-item .op-code{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.pp-op-reorder-btns{display:flex;flex-direction:column;gap:1px;opacity:0;transition:opacity .1s}.pp-op-item:hover .pp-op-reorder-btns{opacity:1}.pp-op-reorder-btns button{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:10px;padding:0 2px;line-height:1}.pp-op-reorder-btns button:hover{color:var(--accent)}.pp-op-list-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2)}.pp-op-list-footer .btn{font-size:var(--text-xs);min-height:32px;padding:var(--sp-1) var(--sp-3)}.pp-op-editor{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow-y:auto;padding:var(--sp-5)}.pp-op-editor-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:var(--text-sm)}.pp-field-group{margin-bottom:var(--sp-5)}.pp-field-group h4{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.pp-field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-3)}.pp-field-row.full{grid-template-columns:1fr}.pp-field-row.triple{grid-template-columns:1fr 1fr 1fr}.pp-field{display:flex;flex-direction:column;gap:var(--sp-1)}.pp-field label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.pp-field input,.pp-field select,.pp-field textarea{min-height:36px;font-size:var(--text-sm)}.pp-field textarea{min-height:80px;resize:vertical}.pp-field .field-error{font-size:var(--text-xs);color:var(--status-failed)}.pp-toggle-row{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-3)}.pp-toggle{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.pp-toggle input[type=checkbox],.pp-op-editor input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-height:unset;border:2px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all .15s ease;position:relative;flex-shrink:0}.pp-toggle input[type=checkbox]:hover,.pp-op-editor input[type=checkbox]:hover{border-color:var(--accent)}.pp-toggle input[type=checkbox]:checked,.pp-op-editor input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.pp-toggle input[type=checkbox]:checked:after,.pp-op-editor input[type=checkbox]:checked:after{content:"";position:absolute;top:1px;left:4px;width:4px;height:8px;border:solid var(--bg-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.pp-radio-group{display:flex;flex-direction:column;gap:var(--sp-2)}.pp-radio-option{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.pp-radio-option:hover{border-color:var(--border-default);background:var(--bg-hover)}.pp-radio-option.active{border-color:var(--accent);background:var(--accent-muted)}.pp-radio-option input[type=radio]{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-height:unset;border:2px solid var(--border-subtle);border-radius:50%;background:transparent;margin-top:2px;flex-shrink:0;cursor:pointer;transition:all .15s ease;position:relative}.pp-radio-option input[type=radio]:checked{border-color:var(--accent)}.pp-radio-option input[type=radio]:checked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--accent)}.pp-radio-label{flex:1;min-width:0}.pp-radio-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.pp-radio-desc{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px}.pp-radio-subfields{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.pp-radio-subfields select,.pp-radio-subfields input[type=text]{min-height:32px;font-size:var(--text-sm)}.pp-radio-subfields-row{display:flex;gap:var(--sp-3);align-items:center}.pp-sub-list{margin-top:var(--sp-2)}.pp-sub-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--sp-2);border:1px solid var(--border-subtle)}.pp-sub-item .sub-info{flex:1;min-width:0}.pp-sub-item .sub-name{font-size:var(--text-sm);font-weight:500}.pp-sub-item .sub-meta{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.pp-sub-item .sub-actions{display:flex;gap:var(--sp-1)}.pp-sub-item .sub-actions button{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-sm);padding:var(--sp-1);border-radius:var(--radius-sm);transition:all .1s}.pp-sub-item .sub-actions button:hover{background:var(--bg-hover);color:var(--status-failed)}.pp-add-sub-btn{margin-top:var(--sp-2)}.pp-obs-editor{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-3);margin-bottom:var(--sp-2)}.pp-obs-editor .pp-field-row{margin-bottom:var(--sp-2)}.pp-validation-panel{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.pp-validation-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.pp-validation-header h3{font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.pp-validation-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;font-size:var(--text-xs);font-weight:700;padding:0 6px}.pp-validation-count.error{background:var(--status-failed-bg);color:var(--status-failed)}.pp-validation-count.warning{background:var(--status-warning-bg);color:var(--status-warning)}.pp-validation-count.clean{background:var(--status-passed-bg);color:var(--status-passed)}.pp-validation-scroll{flex:1;overflow-y:auto;padding:var(--sp-2)}.pp-validation-item{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;transition:background .1s;margin-bottom:2px;font-size:var(--text-sm);align-items:flex-start}.pp-validation-item:hover{background:var(--bg-hover)}.pp-validation-icon{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border-radius:50%;margin-top:2px}.pp-validation-icon.error{background:var(--status-failed-bg);color:var(--status-failed)}.pp-validation-icon.warning{background:var(--status-warning-bg);color:var(--status-warning)}.pp-validation-msg{flex:1;min-width:0}.pp-validation-msg .msg-text{color:var(--text-primary)}.pp-validation-msg .msg-path{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono);margin-top:1px}.pp-validation-empty{text-align:center;padding:var(--sp-6);color:var(--text-tertiary);font-size:var(--text-sm)}.pp-summary{padding:var(--sp-4);border-top:1px solid var(--border-subtle)}.pp-summary h4{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:var(--sp-2)}.pp-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.pp-summary-stat{text-align:center;padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--radius-md)}.pp-summary-stat .stat-value{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.pp-summary-stat .stat-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.pp-import-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.pp-import-dialog{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:90vw;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.pp-import-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.pp-import-header h2{font-size:var(--text-lg);font-weight:700}.pp-import-body{flex:1;overflow-y:auto;padding:var(--sp-5)}.pp-import-tabs{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:2px;margin-bottom:var(--sp-4)}.pp-import-tab{flex:1;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.pp-import-tab.active{background:var(--bg-elevated);color:var(--text-primary)}.pp-import-dropzone{border:2px dashed var(--border-default);border-radius:var(--radius-lg);padding:var(--sp-8);text-align:center;cursor:pointer;transition:all .15s}.pp-import-dropzone:hover,.pp-import-dropzone.dragover{border-color:var(--accent);background:var(--accent-muted)}.pp-import-dropzone .drop-icon{font-size:2rem;margin-bottom:var(--sp-2)}.pp-import-dropzone .drop-text{font-size:var(--text-sm);color:var(--text-secondary)}.pp-import-paste textarea{width:100%;min-height:200px;font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.pp-import-preview{margin-top:var(--sp-4);padding:var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.pp-import-preview h4{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:var(--sp-2)}.pp-import-preview-stats{display:flex;gap:var(--sp-4);font-size:var(--text-sm)}.pp-import-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle)}.pp-import-error{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--status-failed-bg);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-md);color:var(--status-failed);font-size:var(--text-sm);font-family:var(--font-mono)}.pp-raw-editor-wrapper{height:calc(100vh - 220px);min-height:400px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.pp-raw-editor-wrapper .cm-editor{height:100%;font-size:var(--text-sm)}.pp-raw-editor-wrapper .cm-editor .cm-content{font-family:var(--font-mono)}.pp-raw-editor-wrapper .cm-editor .cm-gutters{background:var(--bg-tertiary);border-right:1px solid var(--border-subtle)}.pp-raw-editor-parse-error{padding:var(--sp-2) var(--sp-4);background:var(--status-failed-bg);color:var(--status-failed);font-size:var(--text-xs);font-family:var(--font-mono);border-top:1px solid rgba(248,113,113,.3)}.pp-meta-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}.pp-meta-section.pp-readonly{opacity:.7}.pp-meta-section input:disabled,.pp-meta-section select:disabled,.pp-meta-section textarea:disabled{cursor:default;opacity:.8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pp-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4);flex-wrap:wrap;gap:var(--sp-3)}.pp-lifecycle-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--sp-1)}.pp-lifecycle-dot.draft{background:var(--status-draft)}.pp-lifecycle-dot.released{background:var(--status-passed)}.pp-lifecycle-dot.obsolete{background:var(--status-failed)}.pp-confirm-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1001}.pp-confirm-dialog{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--sp-6);max-width:440px;width:90vw;box-shadow:var(--shadow-lg)}.pp-confirm-dialog h3{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--sp-3)}.pp-confirm-dialog p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-5)}.pp-confirm-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.pp-revisions-panel{margin-bottom:var(--sp-4)}.pp-revisions-toggle{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);transition:all .15s;text-align:left}.pp-revisions-toggle:hover{background:var(--bg-hover);border-color:var(--border-default)}.pp-revisions-toggle-icon{font-size:10px;color:var(--text-tertiary);width:14px;text-align:center}.pp-revisions-current-rev{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);margin-left:auto}.pp-revisions-body{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:var(--sp-2);animation:fadeIn .15s ease}.pp-revisions-table th{text-align:left;padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.pp-revisions-table td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.pp-revisions-table tr:last-child td{border-bottom:none}.pp-rev-row-current{background:var(--accent-muted)}.pp-rev-code-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 8px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;background:var(--bg-tertiary);color:var(--text-secondary)}.pp-rev-code-badge.current{background:var(--accent);color:#fff}.pp-rev-date-cell{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.pp-rev-hash-cell{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);cursor:default}.pp-rev-diff-btn{font-size:var(--text-xs)!important;min-height:24px!important;padding:2px 8px!important}.pp-rev-diff-btn.active{background:var(--accent-muted);color:var(--accent-text)}.pp-revisions-actions{padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--border-subtle)}.pp-revise-form{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.pp-revise-form input{min-height:32px;font-size:var(--text-sm)}.pp-rev-viewer-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.pp-rev-compare-dialog{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:95vw;max-width:1200px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.pp-rev-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.pp-rev-viewer-header h3{font-size:var(--text-md);font-weight:700}.pp-diff-split-wrap{flex:1;overflow:auto}.pp-diff-split-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6}.pp-diff-split-table thead th{position:sticky;top:0;padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);text-align:left;z-index:1}.pp-diff-split-table thead th:first-child{border-right:1px solid var(--border-subtle)}.pp-diff-ln-cell{width:36px;text-align:right;padding:0 4px;color:var(--text-tertiary);opacity:.5;-webkit-user-select:none;user-select:none;vertical-align:top}.pp-diff-cell{padding:0 var(--sp-2);white-space:pre-wrap;word-break:break-word;vertical-align:top}.pp-diff-cell:nth-child(2){border-right:1px solid var(--border-subtle)}.pp-diff-cell.removed{background:#ef444414;color:var(--status-failed)}.pp-diff-cell.added{background:#4ade8014;color:var(--green-400, #4ade80)}.pp-diff-cell.blank{opacity:.3}.pp-pset-section{margin-top:var(--sp-2);padding:var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.pp-pset-header{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.pp-view-toggle{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:2px}.pp-view-toggle-btn{background:none;border:none;padding:3px 8px;font-size:14px;cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all .15s;line-height:1}.pp-view-toggle-btn.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 2px #00000026}.pp-view-toggle-btn:hover:not(.active){color:var(--text-secondary)}.pp-diff-container{flex:1;overflow:auto;padding:var(--sp-3);background:var(--bg-tertiary)}.pp-diff-line{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.8;white-space:pre-wrap;word-break:break-word}.pp-diff-line.added{background:#4ade801a;color:var(--green-400, #4ade80)}.pp-diff-line.removed{background:#f8717114;color:var(--red-400, #f87171)}.pp-diff-line.context{color:var(--text-tertiary)}.pp-diff-line.header{color:var(--accent);font-weight:600}.pp-diff-line.blank{opacity:.3;min-height:1.8em}.pp-diff-ln{display:inline-block;width:32px;text-align:right;margin-right:8px;color:var(--text-tertiary);opacity:.5;-webkit-user-select:none;user-select:none}.pp-rev-rendered-viewer{flex:1;overflow:auto;padding:var(--sp-4)}.pp-rev-rendered-op{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-3);margin-bottom:var(--sp-3)}.pp-rev-rendered-op-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.pp-rev-rendered-op-seq{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--accent);min-width:32px}.pp-rev-rendered-op-name{font-weight:600;font-size:var(--text-sm)}.pp-rev-rendered-op-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);margin-left:auto}.pp-rev-rendered-detail{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-1) 0;display:flex;gap:var(--sp-3);flex-wrap:wrap}.pp-rev-rendered-label{text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--text-tertiary);font-size:10px;margin-right:4px}.pp-list-row td:first-child{width:28px;padding:0}.pp-list-row{cursor:pointer}.pp-list-row:hover td{background:var(--bg-tertiary)}.pp-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);padding:0}.pp-expand-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.pp-released-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green-400, #4ade80);margin-left:6px;vertical-align:middle}.pp-released-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);background:#4ade801f;color:var(--green-400, #4ade80);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em}.pp-revisions-row>td{background:transparent;border-top:none!important}.pp-revisions-dropdown{padding:0 var(--sp-3) var(--sp-3) 36px}.pp-revisions-loading{padding:var(--sp-3);font-size:var(--text-sm);color:var(--text-tertiary)}.pp-revisions-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.pp-revisions-table thead th{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-subtle);text-align:left;opacity:.7}.pp-revisions-table tbody tr.pp-revision-item{cursor:pointer;transition:background .1s ease;background:transparent}.pp-revisions-table tbody tr.pp-revision-item:hover{background:var(--bg-hover)!important}.pp-revisions-table tbody tr.pp-revision-item:hover td{color:var(--text-primary)}.data-table tbody tr.pp-revisions-row:hover{background:transparent!important}.pp-revisions-table td{padding:var(--sp-1) var(--sp-2);border-bottom:none}.pp-validation-badge{font-size:var(--text-xs);font-weight:500;padding:1px 6px;border-radius:var(--radius-sm)}.pp-validation-badge.valid{color:var(--green-400, #4ade80);background:#4ade801a}.pp-validation-badge.invalid{color:var(--status-failed);background:#ef44441a}.pp-validation-badge.not_validated{color:var(--text-tertiary);background:var(--bg-secondary)}.pp-rev-page{max-width:1100px}.pp-rev-table{width:100%;border-collapse:separate;border-spacing:0}.pp-rev-table thead th{text-align:left;padding:var(--sp-3) var(--sp-4);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-default);white-space:nowrap}.pp-rev-table tbody tr{transition:background .15s ease}.pp-rev-table tbody tr:hover{background:var(--bg-elevated)}.pp-rev-table tbody td{padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.pp-rev-table tbody tr:last-child td{border-bottom:none}.pp-rev-code{font-family:var(--font-mono);font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.pp-rev-hash{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-rev-date{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.pp-rev-actions{display:flex;gap:var(--sp-2);align-items:center}.pp-rev-compare-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-bottom:var(--sp-4)}.pp-rev-compare-bar .compare-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.pp-rev-compare-bar .compare-tags{display:flex;gap:var(--sp-2);flex:1}.pp-rev-compare-tag{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);background:var(--accent-subtle);border:1px solid var(--accent);border-radius:var(--radius-full);font-size:var(--text-xs);font-family:var(--font-mono);font-weight:600;color:var(--accent)}.pp-rev-compare-tag .remove-btn{background:none;border:none;cursor:pointer;font-size:var(--text-xs);color:var(--text-secondary);padding:0;line-height:1;margin-left:var(--sp-1)}.pp-rev-compare-tag .remove-btn:hover{color:var(--danger)}.pp-rev-checkbox{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.pp-rev-viewer-overlay{position:fixed;inset:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);animation:pp-rev-fade-in .15s ease}@keyframes pp-rev-fade-in{0%{opacity:0}to{opacity:1}}.pp-rev-viewer-dialog{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.pp-rev-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-default)}.pp-rev-viewer-header h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0}.pp-rev-viewer-body{flex:1;overflow:auto;padding:var(--sp-4)}.pp-rev-viewer-body pre{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.pp-rev-compare-dialog{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:1200px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.pp-rev-compare-panels{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;overflow:hidden}.pp-rev-compare-panel{display:flex;flex-direction:column;overflow:hidden}.pp-rev-compare-panel:first-child{border-right:1px solid var(--border-default)}.pp-rev-compare-panel-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:var(--sp-2)}.pp-rev-compare-panel-body{flex:1;overflow:auto;padding:var(--sp-4)}.pp-rev-compare-panel-body pre{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.pp-rev-validation-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1}.pp-rev-validation-badge.valid{background:#15c15d1f;color:#12a550}.pp-rev-validation-badge.invalid{background:#e619191f;color:#c32222}.pp-rev-validation-badge.not_validated{background:#737b8c1f;color:var(--text-tertiary)}.pp-rev-empty{text-align:center;padding:var(--sp-10) var(--sp-6);color:var(--text-secondary)}.pp-rev-empty .empty-icon{font-size:2.5rem;margin-bottom:var(--sp-3);opacity:.4}.pp-rev-empty .empty-text{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-2)}.pp-rev-empty .empty-sub{font-size:var(--text-sm)}:root{color-scheme:dark;--bg-primary: #0f1117;--bg-secondary: #161921;--bg-tertiary: #1c1f2b;--bg-elevated: #232736;--bg-hover: #2a2f42;--bg-active: #323850;--border-subtle: #2a2f42;--border-default: #363c52;--border-strong: #4a5170;--text-primary: #e8eaed;--text-secondary: #9ca3b4;--text-tertiary: #6b7280;--text-inverse: #0f1117;--accent: #4f8ff7;--accent-hover: #6ba3fb;--accent-muted: rgba(79, 143, 247, .15);--accent-text: #4f8ff7;--status-passed: #34d399;--status-passed-bg: rgba(52, 211, 153, .12);--status-failed: #f87171;--status-failed-bg: rgba(248, 113, 113, .12);--status-warning: #fbbf24;--status-warning-bg: rgba(251, 191, 36, .12);--status-info: #60a5fa;--status-info-bg: rgba(96, 165, 250, .12);--status-blocked: #fb923c;--status-blocked-bg: rgba(251, 146, 60, .12);--status-draft: #9ca3b4;--status-draft-bg: rgba(156, 163, 180, .1);--status-hold: #c084fc;--status-hold-bg: rgba(192, 132, 252, .12);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.375rem;--text-3xl: 1.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--touch-min: 44px;--touch-primary: 48px;--touch-hmi: 56px;--status-running: #60a5fa;--status-running-bg: rgba(96, 165, 250, .12);--status-idle: #6b7280;--status-idle-bg: rgba(107, 114, 128, .1);--status-offline: #ef4444;--status-offline-bg: rgba(239, 68, 68, .12);--status-nc: #f59e0b;--status-nc-bg: rgba(245, 158, 11, .12);--status-connected: #34d399;--status-reconnecting: #fbbf24;--sidebar-width: 240px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh}a{color:var(--accent-text);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent-text)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input,select,textarea,button{font-family:var(--font-sans);font-size:var(--text-base)}input[type=text],input[type=search],input[type=number],input[type=email],input[type=date],input[type=datetime-local],select,textarea{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);padding:var(--sp-2) var(--sp-3);min-height:var(--touch-min);outline:none;transition:border-color .15s;width:100%;color-scheme:dark}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}input::placeholder{color:var(--text-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-weight:500;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all .15s;min-height:var(--touch-min);padding:var(--sp-2) var(--sp-4);white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-danger{background:var(--status-failed-bg);color:var(--status-failed);border-color:#f871714d}.btn-danger:hover{background:#f8717133}.btn-success{background:var(--status-passed-bg);color:var(--status-passed);border-color:#34d3994d}.btn-success:hover{background:#34d39933}.btn-warning{background:var(--status-warning-bg);color:var(--status-warning);border-color:#fbbf244d}.btn-warning:hover{background:#fbbf2433}.btn-lg{min-height:var(--touch-primary);padding:var(--sp-3) var(--sp-6);font-size:var(--text-lg);font-weight:600;border-radius:var(--radius-lg)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-hover)}.card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5)}.card-elevated{background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th{text-align:left;padding:var(--sp-2) var(--sp-3);color:var(--text-secondary);font-weight:500;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-default);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.data-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table tbody tr{cursor:pointer;transition:background .1s}.data-table tbody tr:hover{background:var(--bg-hover)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;color:var(--text-secondary);background:var(--bg-tertiary)}.badge-passed,.badge-complete{background:var(--status-passed-bg);color:var(--status-passed)}.badge-released{background:var(--status-info-bg);color:var(--status-info)}.badge-approved{background:var(--status-passed-bg);color:var(--status-passed)}.badge-failed,.badge-scrapped{background:var(--status-failed-bg);color:var(--status-failed)}.badge-started,.badge-in_progress,.badge-in_process{background:var(--status-info-bg);color:var(--status-info)}.badge-blocked,.badge-aborted{background:var(--status-blocked-bg);color:var(--status-blocked)}.badge-draft,.badge-created,.badge-skipped{background:var(--status-draft-bg);color:var(--status-draft)}.badge-on_hold,.badge-hold,.badge-pending_disposition{background:var(--status-hold-bg);color:var(--status-hold)}.badge-warning,.badge-open{background:var(--status-warning-bg);color:var(--status-warning)}.badge-queued,.badge-between_operations{background:var(--status-info-bg);color:var(--status-info)}.badge-in_station{background:var(--accent-muted);color:var(--accent)}.badge-offline{background:var(--status-failed-bg);color:var(--status-failed)}.badge-idle,.badge-awaiting_input{background:var(--status-warning-bg);color:var(--status-warning)}.badge-running{background:var(--status-passed-bg);color:var(--status-passed)}.badge-loaded,.badge-ready{background:var(--status-info-bg);color:var(--status-info)}.badge-void,.badge-dispositioned,.badge-cancelled{background:var(--bg-tertiary);color:var(--text-tertiary)}.badge-minor{background:var(--status-info-bg);color:var(--status-info)}.badge-major{background:var(--status-warning-bg);color:var(--status-warning)}.badge-critical{background:var(--status-failed-bg);color:var(--status-failed)}.badge-active,.badge-connected{background:var(--status-passed-bg);color:var(--status-passed)}.badge-inactive,.badge-disabled{background:var(--status-failed-bg);color:var(--status-failed)}.badge-revoked{background:var(--status-blocked-bg);color:var(--status-blocked)}.badge-system{background:var(--status-hold-bg);color:var(--status-hold)}.badge-category{background:var(--accent-muted);color:var(--accent-text)}.badge-armed{background:var(--status-info-bg);color:var(--status-info)}.badge-idle{background:var(--status-idle-bg, var(--status-warning-bg));color:var(--status-idle, var(--status-warning))}.badge-running{background:var(--status-running-bg, var(--status-passed-bg));color:var(--status-running, var(--status-passed))}.badge-offline{background:var(--status-offline-bg, var(--status-failed-bg));color:var(--status-offline, var(--status-failed))}.badge-reconnecting{background:var(--status-warning-bg);color:var(--status-warning)}@keyframes toastSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}[data-theme=colorblind]{--status-passed: #22a7f0;--status-passed-bg: rgba(34, 167, 240, .14);--status-failed: #e25822;--status-failed-bg: rgba(226, 88, 34, .14);--status-warning: #cc8800;--status-warning-bg: rgba(204, 136, 0, .14);--status-info: #60a5fa;--status-info-bg: rgba(96, 165, 250, .14);--status-blocked: #e67e22;--status-blocked-bg: rgba(230, 126, 34, .14);--status-hold: #c084fc;--status-hold-bg: rgba(192, 132, 252, .14);--status-draft: #9ca3b4;--status-draft-bg: rgba(156, 163, 180, .1);--status-running: #22a7f0;--status-running-bg: rgba(34, 167, 240, .14);--status-offline: #e25822;--status-offline-bg: rgba(226, 88, 34, .14);--status-connected: #22a7f0;--status-nc: #e67e22;--status-nc-bg: rgba(230, 126, 34, .14);--status-reconnecting: #cc8800}[data-theme=colorblind] .badge{border:1.5px solid currentColor}.badge-icon{font-size:.65em;line-height:1;font-style:normal;margin-right:1px}[data-theme=default]{--status-passed: #34d399;--status-passed-bg: rgba(52, 211, 153, .12);--status-failed: #f87171;--status-failed-bg: rgba(248, 113, 113, .12);--status-warning: #fbbf24;--status-warning-bg: rgba(251, 191, 36, .12);--status-info: #60a5fa;--status-info-bg: rgba(96, 165, 250, .12);--status-blocked: #fb923c;--status-blocked-bg: rgba(251, 146, 60, .12);--status-draft: #9ca3b4;--status-draft-bg: rgba(156, 163, 180, .1);--status-hold: #c084fc;--status-hold-bg: rgba(192, 132, 252, .12);--status-running: #60a5fa;--status-running-bg: rgba(96, 165, 250, .12);--status-offline: #ef4444;--status-offline-bg: rgba(239, 68, 68, .12);--status-connected: #34d399;--status-nc: #f59e0b;--status-nc-bg: rgba(245, 158, 11, .12);--status-reconnecting: #fbbf24}[data-theme=default] .badge{border:none}
