:root{--bg-color: #050505;--panel-bg: rgba(20, 20, 25, .85);--panel-border: rgba(255, 255, 255, .15);--primary-color: #4f8aff;--success-color: #28a745;--danger-color: #ff4d4d;--text-main: #ffffff;--text-muted: #aaaaaa;--radius: 12px;--blur: 20px}body{margin:0;overflow:hidden;background-color:var(--bg-color);font-family:Segoe UI,Roboto,Helvetica,sans-serif;color:var(--text-main)}#canvas-container{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:1}#ui-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.app-header{position:absolute;top:20px;left:50%;transform:translate(-50%);pointer-events:auto;background:var(--panel-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));padding:10px 25px;border-radius:50px;border:1px solid var(--panel-border);display:flex;align-items:center;gap:15px;box-shadow:0 10px 30px #00000080}.app-header h1{margin:0;font-size:1.2rem;font-weight:600}.connection-status{display:flex;align-items:center;font-size:.8rem;color:var(--text-muted)}#status-indicator{width:8px;height:8px;border-radius:50%;background-color:gold;margin-right:6px;box-shadow:0 0 8px gold}#status-indicator.success{background-color:var(--success-color);box-shadow:0 0 8px var(--success-color)}#status-indicator.error{background-color:var(--danger-color);box-shadow:0 0 8px var(--danger-color)}#status-indicator.busy{background-color:var(--primary-color);animation:pulse 1s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.panel{position:absolute;pointer-events:auto;background:var(--panel-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--panel-border);padding:20px;border-radius:var(--radius);box-shadow:0 10px 40px #0009;display:flex;flex-direction:column;gap:15px;max-height:85vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#444 transparent}.left-panel{top:80px;left:20px;width:300px}.right-panel{top:80px;right:20px;width:360px}.panel-section h2,.panel-header h2{margin:0 0 10px;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--panel-border);padding-bottom:5px}.panel-header{display:flex;justify-content:space-between;align-items:center}.close-btn{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0}.input-row{display:flex;gap:5px;margin-bottom:5px;width:100%}.input-row input{flex:1;width:auto}details{margin-bottom:10px;border-bottom:1px solid var(--panel-border);padding-bottom:10px}summary{cursor:pointer;font-weight:600;color:var(--primary-color);margin-bottom:10px;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:"+";float:right;font-weight:700}details[open] summary:after{content:"-"}.button-group{display:flex;gap:8px}.btn{border:none;border-radius:6px;padding:10px;font-size:.9rem;cursor:pointer;font-weight:500;flex:1;display:flex;justify-content:center;align-items:center;gap:5px;color:#fff;transition:all .2s}.btn:hover{filter:brightness(1.2)}.btn.primary{background:linear-gradient(135deg,#4f8aff,#2b5eff)}.btn.success{background:linear-gradient(135deg,#28a745,#1e7e34)}.btn.danger{background:linear-gradient(135deg,#ff4d4d,#c00)}.btn.secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}.btn.small{padding:5px 8px;font-size:.8rem}.full-width{width:100%}input[type=text],input[type=number],input[type=datetime-local],textarea,select{background:#0006;border:1px solid var(--panel-border);color:#fff;padding:8px;border-radius:4px;width:100%;box-sizing:border-box;font-family:inherit;margin-bottom:5px}input:focus{outline:none;border-color:var(--primary-color)}.required-field{border-color:#f80}.drop-zone{border:2px dashed var(--panel-border);border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:.2s;background:#0003}.drop-zone:hover{border-color:var(--primary-color);background:#ffffff0d}.status-msg{font-size:.8rem;margin-top:5px;text-align:center;color:var(--success-color)}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.9rem}.toggle-switch{position:relative;display:inline-block;width:36px;height:18px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#333;border-radius:34px;transition:.4s}.slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.4s}input:checked+.slider{background-color:var(--primary-color)}input:checked+.slider:before{transform:translate(18px)}.list-box{background:#0000004d;border:1px solid var(--panel-border);border-radius:4px;padding:5px;max-height:150px;overflow-y:auto;font-size:.85rem;margin-bottom:10px}.list-item{padding:4px;border-bottom:1px solid rgba(255,255,255,.05);display:flex;justify-content:space-between;align-items:center}.list-item:last-child{border:none}.list-actions{display:flex;gap:5px}.btn-xs{padding:2px 5px;font-size:.7rem;background:#444;border:none;color:#fff;cursor:pointer;border-radius:3px}.btn-xs:hover{background:#666}.btn-x{background:transparent;color:var(--danger-color);border:none;cursor:pointer;font-weight:700}.connection-in{color:#f90;font-weight:700;font-size:1.1em}.connection-out{color:#28a745;font-weight:700;font-size:1.1em}.point-label{font-family:Segoe UI,sans-serif;color:#fff;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:4px 8px;border-radius:4px;font-size:11px;pointer-events:none;text-align:center;border:1px solid rgba(255,255,255,.15);box-shadow:0 2px 4px #00000080;transition:opacity .2s}.point-name{font-weight:700;display:block}.lang-group{margin-bottom:10px;border-left:2px solid var(--panel-border);padding-left:8px}.lang-group input{margin-bottom:2px}
