:root{--odoo-purple:#714b67;--odoo-purple-dark:#583750;--odoo-purple-hover:#623f59;--odoo-teal:#00a09d;--odoo-teal-hover:#008784;--odoo-teal-light:#e6f6f6;--odoo-cyan-accent:#00d2c4;--bg-app:#f8f9fa;--bg-surface:#fff;--bg-surface-secondary:#f1f3f5;--border-subtle:#e2e8f0;--border-focus:#cbd5e1;--text-main:#0f172a;--text-sub:#334155;--text-muted:#64748b;--text-light:#94a3b8;--status-running-bg:#ecfdf5;--status-running-text:#065f46;--status-running-border:#a7f3d0;--status-downtime-bg:#fef2f2;--status-downtime-text:#991b1b;--status-downtime-border:#fecaca;--status-warning-bg:#fffbeb;--status-warning-text:#92400e;--status-warning-border:#fde68a;--status-idle-bg:#f8fafc;--status-idle-text:#475569;--status-idle-border:#e2e8f0;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background-color:var(--bg-app);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;width:100%;max-width:100vw;min-height:100vh;font-size:.875rem;line-height:1.5;overflow-x:hidden}.font-mono{font-family:var(--font-mono)}.app-container{flex-direction:column;width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.app-header{background:var(--odoo-purple);color:#fff;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-image:linear-gradient(#ffffff14 0%,#00000014 100%);border-bottom:1px solid #0003;justify-content:space-between;align-items:center;padding:.45rem 1.25rem;display:flex;position:sticky;top:0;box-shadow:0 4px 16px #0f172a2e}@keyframes strokeAction{0%{transform:translateY(0)}50%{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes coilRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes telemetryGlow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.9;transform:scale(1.15)}}@keyframes laserScan{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes floatElement{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.brand-badge{align-items:center;gap:.75rem;display:flex}.nav-tabs-bar{align-items:center;gap:.2rem;display:flex}.nav-tab-btn{color:#e2d9df;letter-spacing:.01em;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:.45rem;padding:.42rem .75rem;font-size:.8rem;font-weight:600;transition:all .15s ease-in-out;display:flex}.nav-tab-btn:hover{color:#fff;background:#ffffff1f}.nav-tab-btn.active{color:var(--odoo-purple);background:#fff;font-weight:700;box-shadow:0 1px 3px #0000002e}.nav-tab-btn.hmi-btn{color:#a7f3d0;background:#00a09d38;border:1px solid #00a09d59}.nav-tab-btn.hmi-btn.active{background:var(--odoo-teal);color:#fff;border-color:var(--odoo-teal);font-weight:700}.odoo-control-panel{border:1px solid var(--border-subtle);background:#fff;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1.25rem;display:flex;box-shadow:0 1px 2px #0f172a08}.odoo-breadcrumb{color:var(--text-main);letter-spacing:-.01em;align-items:center;gap:.4rem;font-size:1.05rem;font-weight:700;display:flex}.odoo-breadcrumb-root{color:var(--text-muted);font-weight:500}.glass-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:1.1rem;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 1px 3px #0f172a0a,0 1px 2px -1px #0f172a05}.glass-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0f172a0f}.badge-status{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge-status.running{background:var(--status-running-bg);color:var(--status-running-text);border:1px solid var(--status-running-border)}.badge-status.downtime{background:var(--status-downtime-bg);color:var(--status-downtime-text);border:1px solid var(--status-downtime-border)}.badge-status.idle{background:var(--status-idle-bg);color:var(--status-idle-text);border:1px solid var(--status-idle-border)}.badge-status.setup{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.pulse-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.pulse-dot.green{background:#10b981}.pulse-dot.red{background:#ef4444}.pulse-dot.amber{background:#f59e0b}.pulse-dot.blue{background:#0284c7}.main-view-container{flex:1;width:100%;max-width:1560px;margin:0 auto;padding:1rem 1.25rem 3.5rem}.btn-primary{background:var(--odoo-purple);color:#fff;border:1px solid var(--odoo-purple);cursor:pointer;border-radius:5px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0f172a0f}.btn-primary:hover{background:var(--odoo-purple-hover);border-color:var(--odoo-purple-hover);transform:translateY(-.5px)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-subtle);cursor:pointer;background:#fff;border-radius:5px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0f172a08}.btn-secondary:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.btn-danger{color:#b91c1c;cursor:pointer;background:#fee2e2;border:1px solid #fca5a5;border-radius:5px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-danger:hover{background:#fecdcd}.btn-success{background:var(--odoo-teal);color:#fff;border:1px solid var(--odoo-teal);cursor:pointer;border-radius:5px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0f172a0f}.btn-success:hover{background:var(--odoo-teal-hover);border-color:var(--odoo-teal-hover);transform:translateY(-.5px)}.custom-table-container{border:1px solid var(--border-subtle);background:#fff;border-radius:6px;overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%;font-size:.8rem}.custom-table th{color:var(--text-muted);border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;padding:.6rem .85rem;font-size:.72rem;font-weight:600}.custom-table td{color:var(--text-main);border-bottom:1px solid #f1f5f9;padding:.6rem .85rem}.custom-table tr:hover td{background:#f8fafc}.iot-floating-bar{border-top:1px solid var(--border-subtle);z-index:40;background:#fff;justify-content:space-between;align-items:center;padding:.5rem 1.25rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0f172a0a}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content-lockout{background:#fff;border:2px solid #ef4444;border-radius:10px;width:100%;max-width:580px;padding:1.25rem;box-shadow:0 20px 40px #0f172a33}
