*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:#f5f5f5}.app{display:flex;flex-direction:column;height:100vh;max-width:800px;margin:0 auto;background:#fff;box-shadow:0 0 20px #0000001a}.app-header{padding:16px 24px;background:#1a1a2e;color:#fff;display:flex;align-items:center;justify-content:space-between}.app-header h1{font-size:1.2rem;font-weight:600}.logout-btn{padding:6px 14px;background:transparent;color:#ffffffbf;border:1px solid rgba(255,255,255,.35);border-radius:6px;cursor:pointer;font-size:.85rem}.logout-btn:hover{background:#ffffff1a;color:#fff}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5}.login-box{background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:40px 36px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:24px}.login-box h1{font-size:1.25rem;font-weight:700;color:#1a1a2e;text-align:center}.login-box form{display:flex;flex-direction:column;gap:16px}.login-box label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:#555;font-weight:500}.login-box input{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;outline:none}.login-box input:focus{border-color:#1a1a2e}.login-box input:disabled{background:#f5f5f5;color:#aaa}.login-box button[type=submit]{padding:11px;background:#1a1a2e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:4px}.login-box button[type=submit]:disabled{opacity:.45;cursor:not-allowed}.login-error{color:#c62828;font-size:.85rem;background:#fdecea;border-radius:6px;padding:8px 12px}.chat-window{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.message{display:flex;flex-direction:column;gap:4px;max-width:75%}.message--user{align-self:flex-end}.message--assistant{align-self:flex-start}.message__role{font-size:.72rem;color:#888;padding:0 4px}.message__content{padding:10px 14px;border-radius:12px;white-space:pre-wrap;word-break:break-word;line-height:1.5}.message--user .message__content{background:#1a1a2e;color:#fff;border-bottom-right-radius:4px}.message--assistant .message__content{background:#f0f0f0;color:#222;border-bottom-left-radius:4px}.message--pending .message__content{opacity:.55}.message--error .message__content{background:#fdecea;color:#c62828}.message-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #e0e0e0;align-items:flex-end}.message-input__selectors{display:flex;flex-direction:column;gap:4px}.message-input textarea{flex:1;padding:10px;border:1px solid #ddd;border-radius:8px;resize:none;font-size:.95rem;outline:none;font-family:inherit}.message-input textarea:focus{border-color:#1a1a2e}.message-input textarea:disabled{background:#f5f5f5;color:#aaa}.message-input button{padding:10px 20px;background:#1a1a2e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.95rem;white-space:nowrap}.message-input button:disabled{opacity:.45;cursor:not-allowed}.message-input__mode,.message-input__type,.message-input__oem,.message-input__lang{padding:0 8px;height:34px;border:1px solid #ddd;border-radius:8px;font-size:.85rem;font-family:inherit;background:#fff;color:#222;cursor:pointer;outline:none;width:120px}.message-input__mode{height:40px;font-size:.9rem}.message-input__lang{width:90px}.message-input__mode:focus,.message-input__type:focus,.message-input__oem:focus,.message-input__lang:focus{border-color:#1a1a2e}.message-input__mode:disabled,.message-input__type:disabled,.message-input__oem:disabled,.message-input__lang:disabled{background:#f5f5f5;color:#aaa;cursor:not-allowed}.message__content--scada{padding:0;background:transparent}.scada-result{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:#f0f0f0;border-radius:12px 12px 12px 4px;max-width:100%}.scada-result__title{font-size:.9rem;font-weight:600;color:#1a1a2e}.scada-result__canvas-wrap{overflow:auto;border:1px solid #ddd;border-radius:8px;background:#fff;max-height:480px}.scada-result__canvas{display:block;max-width:100%}.scada-result__render-error{padding:12px;color:#c62828;font-size:.85rem}.scada-result__warning{background:#fff8e1;border:1px solid #ffca28;border-radius:8px;padding:10px 12px;font-size:.82rem;color:#5d4037}.scada-result__warning strong{display:block;margin-bottom:6px}.scada-result__warning ul{padding-left:18px;margin:0}.scada-result__warning li{margin-bottom:2px}.scada-result__btns{display:flex;gap:8px;flex-wrap:wrap}.scada-result__btn{padding:7px 14px;border:1px solid #1a1a2e;border-radius:8px;background:#fff;color:#1a1a2e;font-size:.85rem;cursor:pointer;transition:background .15s}.scada-result__btn:hover{background:#1a1a2e;color:#fff}.scada-error__details{margin-top:8px;font-size:.82rem}.scada-error__details summary{cursor:pointer;color:#888}.scada-error__raw{background:#2d2d2d;color:#eee;padding:10px;border-radius:6px;font-size:.78rem;max-height:160px;overflow:auto;white-space:pre-wrap;margin-top:6px}.scada-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.scada-modal{background:#fff;border-radius:12px;width:90%;max-width:720px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000040}.scada-modal__header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0;font-size:.9rem;font-weight:600;color:#1a1a2e}.scada-modal__actions{display:flex;gap:8px}.scada-modal__copy,.scada-modal__close{padding:5px 12px;border-radius:6px;border:1px solid #ddd;background:#f5f5f5;cursor:pointer;font-size:.83rem}.scada-modal__close{font-size:1rem;line-height:1}.scada-modal__copy:hover,.scada-modal__close:hover{background:#e0e0e0}.scada-modal__body{flex:1;overflow:auto;padding:16px;font-size:.82rem;background:#1e1e1e;color:#d4d4d4;white-space:pre;font-family:Courier New,monospace;margin:0}
