@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700&family=Sarabun:wght@300;400;500;600;700&family=Press+Start+2P&family=VT323&display=swap";
:root{--bg-base:#070e1b;--bg-primary:#0a1628;--bg-secondary:#0f1d35;--bg-card:#132040;--bg-card-hover:#1a2d52;--bg-input:#0b1525;--bg-sidebar:#0c1729;--bg-topbar:#0a1424;--border:#1a3055;--border-light:#243d65;--border-active:#3b82f6;--accent:#3b82f6;--accent-hover:#2563eb;--accent-glow:#3b82f640;--green:#22c55e;--green-dim:#22c55e26;--red:#ef4444;--red-dim:#ef444426;--yellow:#eab308;--yellow-dim:#eab30826;--orange:#f97316;--purple:#a855f7;--cyan:#06b6d4;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#5a6a80;--text-heading:#f1f5f9;--radius:8px;--radius-sm:4px;--radius-lg:12px;--shadow:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--font-thai:"Prompt", "Noto Sans Thai", "Sarabun", sans-serif;--font-pixel:"Press Start 2P", "VT323", monospace;--font-mono:"VT323", monospace;--sidebar-w:220px;--topbar-h:48px;--chat-w:340px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-thai);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}img{image-rendering:pixelated}.login-shell{background:radial-gradient(circle at 20% 10%,#3b82f62e,#0000 32rem),radial-gradient(circle at 80% 15%,#22c55e1f,#0000 28rem),linear-gradient(#06101d 0%,#020813 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:linear-gradient(#122f4ef2,#071423fa);border:1px solid #5fabf470;border-radius:12px;width:min(460px,100%);padding:28px;box-shadow:0 24px 80px #00000075,inset 0 1px #ffffff14}.login-badge{color:#86efac;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin-bottom:18px;font-size:11px;font-weight:800;display:inline-flex}.login-card h1{color:var(--text-heading);margin-bottom:10px;font-size:34px;line-height:1.1}.login-card p{color:var(--text-secondary);margin-bottom:22px;font-size:14px;line-height:1.65}.login-form{flex-direction:column;gap:14px;display:flex}.login-form label{flex-direction:column;gap:6px;display:flex}.login-form span{color:var(--text-secondary);font-size:12px;font-weight:700}.login-form input{width:100%;min-height:44px;color:var(--text-heading);font:inherit;background:#040d18b8;border:1px solid #5fabf45c;border-radius:8px;outline:none;padding:0 12px}.login-form input:focus{border-color:#67d8ffc7;box-shadow:0 0 0 3px #67d8ff1f}.login-form button{color:#fff;min-height:46px;font:inherit;cursor:pointer;background:linear-gradient(#4aa7ff 0%,#1d69b4 52%,#124777 100%);border:1px solid #b7e0ffb8;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}.login-form button:disabled{opacity:.58;cursor:not-allowed}.login-error{color:#fecaca;background:#ef44441f;border:1px solid #ef44446b;border-radius:8px;padding:10px 12px;font-size:12px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.app-shell{width:100vw;height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);z-index:100;flex-direction:column;display:flex}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:16px;display:flex}.sidebar-brand .brand-icon{background:var(--accent);border-radius:var(--radius);width:36px;height:36px;font-family:var(--font-pixel);color:#fff;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.sidebar-brand .brand-text h2{font-family:var(--font-thai);color:var(--text-heading);font-size:14px;font-weight:700;line-height:1.2}.sidebar-brand .brand-text span{color:var(--text-muted);font-size:11px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-card);color:var(--text-primary)}.nav-item.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px var(--accent-glow);border-color:#ffffff1a}.nav-item svg{flex:0 0 20px}.sidebar-footer{border-top:1px solid var(--border);cursor:pointer;align-items:center;gap:8px;padding:12px;display:flex}.sidebar-footer .ws-icon{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.sidebar-footer .ws-text{flex:1;min-width:0}.sidebar-footer .ws-text .ws-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px}.sidebar-footer .ws-text .ws-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:90;height:var(--topbar-h);flex:0 0 var(--topbar-h);background:var(--bg-topbar);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:0 16px;display:flex;position:relative;overflow:visible}.topbar-service{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;border-radius:20px;flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.topbar-service .svc-dot{background:var(--green);width:6px;height:6px;box-shadow:0 0 4px var(--green);border-radius:50%;flex:0 0 6px}.topbar-service .svc-dot.off{background:var(--text-muted);box-shadow:none}.topbar-spacer{flex:1}.topbar-user{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;font-weight:600;display:flex}.topbar-user .user-dot{background:var(--green);border-radius:50%;width:8px;height:8px}.notification-center{flex:none;position:relative}.notification-trigger{color:#d9ecff;cursor:pointer;background:linear-gradient(#113658db,#051222f0);border:1px solid #4989c66b;border-radius:9px;place-items:center;width:34px;height:34px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff14,0 4px 10px #0000002e}.notification-trigger:hover,.notification-trigger.active,.notification-trigger.has-unread{color:#fff6cf;border-color:#ffe08abf;box-shadow:0 0 18px #e8a3172e,inset 0 1px #ffffff1f}.notification-count{color:#fff;min-width:18px;height:18px;font-family:var(--font-mono);background:linear-gradient(#ef4444,#991b1b);border:1px solid #ffffff8c;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:900;display:inline-flex;position:absolute;top:-6px;right:-7px}.notification-dropdown{z-index:120;background:linear-gradient(#0a1f35fa,#030b16fc);border:1px solid #4989c675;border-radius:10px;flex-direction:column;width:min(380px,100vw - 28px);max-height:min(560px,100vh - 82px);display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 22px 60px #00000075,inset 0 1px #ffffff14}.notification-head{background:#103150a8;border-bottom:1px solid #4989c647;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.notification-head strong,.notification-head span{display:block}.notification-head strong{color:#f7fbff;font-size:14px}.notification-head span{color:#91aeca;margin-top:2px;font-size:11px}.notification-head button{color:#c7e7ff;font-family:var(--font-thai);cursor:pointer;background:#051222b8;border:1px solid #84d7ff57;border-radius:7px;padding:5px 9px;font-size:11px}.notification-head button:disabled{opacity:.46;cursor:not-allowed}.notification-list{padding:8px;overflow:auto}.notification-empty{color:#91aeca;place-items:center;gap:6px;min-height:118px;font-size:12px;display:grid}.notification-item{text-align:left;width:100%;color:inherit;cursor:pointer;font-family:var(--font-thai);background:#061426b8;border:1px solid #4989c647;border-radius:8px;grid-template-columns:10px 1fr;gap:9px;margin-bottom:7px;padding:10px;display:grid}.notification-item:hover{border-color:#84d7ffad;transform:translateY(-1px)}.notification-item.read{opacity:.62}.notification-dot{background:#67d8ff;border-radius:50%;width:8px;height:8px;margin-top:5px;box-shadow:0 0 10px #67d8ffa6}.notification-item.success .notification-dot{background:#4ade80;box-shadow:0 0 10px #4ade80b3}.notification-item.warning .notification-dot{background:#f6c453;box-shadow:0 0 10px #f6c453b8}.notification-item.error .notification-dot{background:#ef4444;box-shadow:0 0 10px #ef4444b8}.notification-body{min-width:0}.notification-body strong,.notification-body small,.notification-body em{display:block}.notification-body strong{color:#f7fbff;font-size:12px;line-height:1.35}.notification-body small{color:#bed4e9;margin-top:3px;font-size:11px;line-height:1.45}.notification-body em{color:#7dd3fc;font-family:var(--font-mono);text-transform:uppercase;margin-top:5px;font-size:10px;font-style:normal}.topbar-logout{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-thai);background:0 0;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;display:flex}.topbar-logout:hover{background:var(--red-dim);color:var(--red);border-color:var(--red)}.toast-stack{z-index:240;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:18px;right:18px}.toast-card{pointer-events:auto;text-align:left;color:#d9ecff;cursor:pointer;background:linear-gradient(#0a1f35fa,#030b16fa);border:1px solid #4989c66b;border-left-width:4px;border-radius:9px;width:100%;padding:11px 12px;animation:.22s ease-out toast-in;box-shadow:0 16px 34px #00000061,inset 0 1px #ffffff14}.toast-card strong,.toast-card span{display:block}.toast-card strong{color:#f7fbff;font-size:13px}.toast-card span{color:#bed4e9;margin-top:3px;font-size:12px;line-height:1.45}.toast-card.success{border-left-color:#4ade80}.toast-card.info{border-left-color:#67d8ff}.toast-card.warning{border-left-color:#f6c453}.toast-card.error{border-left-color:#ef4444}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.content-layout{flex:1;min-height:0;display:flex}.content-main{flex-direction:column;flex:1;min-width:0;padding:20px;display:flex;overflow:hidden auto}.page-header{margin-bottom:20px}.page-header .page-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:4px;font-size:11px}.page-header .page-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-header h1{font-family:var(--font-thai);color:var(--text-heading);font-size:22px;font-weight:700}.page-header .page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.badge-verified{background:var(--green-dim);color:var(--green);border:1px solid #22c55e4d;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:inline-flex}.stats-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:14px 16px;transition:all .2s;display:flex}.stat-card:hover{border-color:var(--border-light)}.stat-card.yellow{border-color:#eab30866;box-shadow:0 0 6px #eab30814}.stat-card.red{border-color:#ef444466;box-shadow:0 0 6px #ef444414}.stat-card.cyan{border-color:#06b6d466;box-shadow:0 0 6px #06b6d414}.stat-card.blue{border-color:#3b82f666;box-shadow:0 0 6px #3b82f614}.stat-card.green{border-color:#22c55e66;box-shadow:0 0 6px #22c55e14}.stat-card.purple{border-color:#a855f766;box-shadow:0 0 6px #a855f714}.btn-chat-toggle{display:none}@media (max-width:1100px){.btn-chat-toggle{display:flex}}.stat-card .stat-icon{border-radius:var(--radius-sm);flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.stat-card .stat-icon.blue{background:var(--accent-glow);color:var(--accent)}.stat-card .stat-icon.red{background:var(--red-dim);color:var(--red)}.stat-card .stat-icon.yellow{background:var(--yellow-dim);color:var(--yellow)}.stat-card .stat-icon.green{background:var(--green-dim);color:var(--green)}.stat-card .stat-icon.purple{color:var(--purple);background:#a855f726}.stat-card .stat-value{font-family:var(--font-mono);color:var(--text-heading);font-size:28px;font-weight:700;line-height:1}.stat-card .stat-label{color:var(--text-muted);margin-top:2px;font-size:11px}.section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-title h3{color:var(--text-heading);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.section-title .section-actions{gap:4px;display:flex}.icon-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;transition:all .15s;display:flex}.icon-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.icon-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.room-container{aspect-ratio:16/9;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden}.room-bg{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.room-overlay-tag{border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-pixel);white-space:nowrap;pointer-events:none;z-index:5;background:#0a1424f2;border-radius:4px;padding:3px 6px;font-size:8px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 4px #00000080}.room-overlay-bubble{color:#fff;font-family:var(--font-thai);white-space:nowrap;cursor:pointer;z-index:15;-webkit-user-select:none;user-select:none;background:#000000f2;border:1px solid #fff;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:500;transition:transform .15s;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 10px #0009}.room-overlay-bubble:hover{transform:translate(-50%,-102%)scale(1.05)}.room-overlay-bubble:after{content:"";border:5px solid #0000;border-top-color:#fff;position:absolute;top:100%;left:50%;transform:translate(-50%)}.room-overlay-bubble:before{content:"";z-index:1;border:4px solid #0000;border-top-color:#000;position:absolute;top:100%;left:50%;transform:translate(-50%)}.room-overlay-pill{color:#fff;font-family:var(--font-thai);white-space:nowrap;cursor:pointer;z-index:10;-webkit-user-select:none;user-select:none;border:1px solid #fff3;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;transition:transform .15s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #0006}.room-overlay-pill:hover{transform:translate(-50%,-50%)scale(1.08)}.room-overlay-pill.active{box-shadow:0 0 10px #fff9}.chat-panel{width:var(--chat-w);flex:0 0 var(--chat-w);background:var(--bg-secondary);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.chat-header h4{align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.chat-header .channel{color:var(--text-muted);font-size:12px;font-weight:400}.chat-header-icons{gap:4px;display:flex}.agent-info-card{border-bottom:1px solid var(--border);background:var(--bg-card);padding:12px 16px}.agent-info-card .aic-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px;font-size:9px}.agent-info-card .aic-name-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.agent-info-card .aic-avatar{background:var(--bg-secondary);border:2px solid var(--accent);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden}.agent-info-card .aic-name{color:var(--text-heading);font-size:14px;font-weight:700}.agent-info-card .aic-role{color:var(--text-secondary);font-size:11px}.agent-info-card .aic-stats{grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0;display:grid}.agent-info-card .aic-stat{background:var(--bg-secondary);border-radius:var(--radius-sm);text-align:center;padding:4px 6px}.agent-info-card .aic-stat .stat-v{font-family:var(--font-mono);color:var(--text-heading);font-size:14px}.agent-info-card .aic-stat .stat-l{color:var(--text-muted);text-transform:uppercase;font-size:9px}.agent-info-card .aic-services{gap:4px;margin:8px 0;display:flex}.svc-badge{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:10px;padding:2px 8px;font-size:10px}.agent-info-card .aic-tasks{padding:0;list-style:none}.agent-info-card .aic-tasks li{color:var(--text-secondary);align-items:flex-start;gap:6px;padding:2px 0;font-size:12px;display:flex}.agent-info-card .aic-tasks li:before{content:"";background:var(--accent);border-radius:50%;flex:0 0 4px;width:4px;height:4px;margin-top:6px}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:12px 16px;display:flex;overflow-y:auto}.chat-msg{gap:8px;animation:.25s ease-out fadeSlide;display:flex}@keyframes fadeSlide{0%{opacity:0;transform:translateY(8px)}}.chat-msg .msg-avatar{background:var(--bg-card);border:1px solid var(--border);border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:flex}.chat-msg .msg-content{flex:1;min-width:0}.chat-msg .msg-header{align-items:baseline;gap:6px;margin-bottom:2px;display:flex}.chat-msg .msg-name{color:var(--text-heading);font-size:12px;font-weight:700}.chat-msg .msg-badge{border:1px solid;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600}.chat-msg .msg-badge.approval{color:var(--green);background:var(--green-dim);border-color:#22c55e4d}.chat-msg .msg-badge.readonly{color:var(--yellow);background:var(--yellow-dim);border-color:#eab3084d}.chat-msg .msg-badge.command{color:var(--cyan);background:#06b6d41f;border-color:#06b6d44d}.chat-msg .msg-badge.daily{color:var(--purple);background:#a855f71f;border-color:#a855f74d}.chat-msg .msg-badge.working,.chat-msg .msg-badge.job{color:#67d8ff;background:#67d8ff1a;border-color:#67d8ff57}.chat-msg .msg-badge.done{color:#bbf7d0;background:#22c55e24;border-color:#22c55e5c}.chat-msg .msg-badge.blocked{color:#fecaca;background:#ef444424;border-color:#ef444461}.chat-msg .msg-text{color:var(--text-secondary);background:var(--bg-card);border-radius:0 var(--radius) var(--radius) var(--radius);border:1px solid var(--border);padding:8px 12px;font-size:13px;line-height:1.45}.chat-msg.self .msg-text{border-radius:var(--radius) 0 var(--radius) var(--radius);background:#3b82f61a;border-color:#3b82f640}.chat-footer{border-top:1px solid var(--border);padding:12px 16px}.chat-input-row{gap:6px;margin-bottom:8px;display:flex}.chat-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-thai);outline:none;flex:1;padding:8px 12px;font-size:13px}.chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.chat-input::placeholder{color:var(--text-muted)}.btn-send{background:var(--accent);border-radius:var(--radius);cursor:pointer;color:#fff;border:none;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.btn-send:hover{background:var(--accent-hover)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.quick-asks{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.quick-ask{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:11px;font-family:var(--font-thai);border-radius:12px;padding:3px 10px;transition:all .12s}.quick-ask:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.chat-actions{gap:6px;display:flex}.btn-action{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:11px;font-family:var(--font-thai);flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 10px;transition:all .12s;display:flex}.btn-action:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-action.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-action.primary:hover{background:var(--accent-hover)}.btn{border-radius:var(--radius);font-family:var(--font-thai);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-danger{background:var(--red-dim);color:var(--red);border-color:#ef44444d}.btn-danger:hover{background:var(--red);color:#fff}.btn-success{background:var(--green-dim);color:var(--green);border-color:#22c55e4d}.btn-success:hover{background:var(--green);color:#fff}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-header h4{font-size:14px;font-weight:600}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.form-input,.form-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-thai);outline:none;padding:8px 12px;font-size:14px}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.form-select{appearance:none;cursor:pointer}.form-hint{color:var(--text-muted);margin-top:4px;font-size:11px}.characters-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.agent-editor-layout{grid-template-columns:minmax(320px,.95fr) minmax(420px,1.15fr);align-items:start;gap:14px;display:grid}.characters-grid.compact{grid-template-columns:1fr}.char-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;transition:border-color .2s,transform .2s}.char-card.editable{text-align:left;width:100%;color:inherit;font-family:var(--font-thai);cursor:pointer}.char-card.editable.active{border-color:#ffe08acc;box-shadow:0 0 22px #e8a31738,inset 0 1px #ffffff1a}.char-card:hover{border-color:var(--accent);transform:translateY(-2px)}.char-card .char-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.char-card .char-avatar{width:48px;height:48px;font-size:18px;font-weight:700;font-family:var(--font-pixel);background:var(--bg-secondary);border:2px solid;border-radius:50%;justify-content:center;align-items:center;display:flex}.char-card .char-name{color:var(--text-heading);font-size:16px;font-weight:700}.char-card .char-role{color:var(--text-secondary);font-size:12px}.char-card .char-perm{border:1px solid;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.char-card .char-perm.owner{color:var(--cyan);background:#06b6d41a;border-color:#06b6d44d}.char-card .char-perm.approval{color:var(--green);background:var(--green-dim);border-color:#22c55e4d}.char-card .char-perm.readonly{color:var(--yellow);background:var(--yellow-dim);border-color:#eab3084d}.char-card .char-perm.locked{color:var(--red);background:var(--red-dim);border-color:#ef44444d}.char-card .char-desc{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:1.5}.char-card .char-services{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.char-status-online{color:var(--green);align-items:center;gap:4px;font-size:11px;display:flex}.char-status-online:before{content:"";background:var(--green);width:6px;height:6px;box-shadow:0 0 4px var(--green);border-radius:50%}.agent-edit-panel{background:linear-gradient(#143a5eeb,#061629f5);border:1px solid #4989c661;border-radius:10px;padding:16px;position:sticky;top:0;box-shadow:inset 0 1px #ffffff14,0 10px 24px #0000003d}.agent-edit-preview{grid-template-columns:120px 1fr;align-items:center;gap:16px;margin-bottom:16px;display:grid}.agent-edit-stage{background:radial-gradient(circle,#4aa7ff29,#0000 60%),linear-gradient(#04101fc7,#020812eb);border:1px solid #84d7ff4d;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:130px;display:flex}.agent-edit-preview h3{color:#f7fbff;margin-bottom:3px;font-size:20px}.agent-edit-preview p{color:#a7c0d9;font-size:13px}.agent-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sprite-picker{background:#020a147a;border:1px solid #84d7ff3d;border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px;max-height:238px;padding:8px;display:grid;overflow:auto}.sprite-option{color:#b9d8f0;min-height:70px;font-family:var(--font-mono);cursor:pointer;background:linear-gradient(#103050e0,#051222f0);border:1px solid #4989c657;border-radius:7px;place-items:center;gap:3px;padding:6px 4px;font-size:10px;font-weight:800;display:grid;box-shadow:inset 0 1px #ffffff14}.sprite-option:hover,.sprite-option.active{color:#fff6cf;border-color:#ffe08adb;box-shadow:0 0 18px #e8a31738,inset 0 1px #ffffff24}.sprite-option-stage{place-items:end center;width:34px;height:48px;display:grid;position:relative;overflow:hidden}.color-row{grid-template-columns:44px 1fr;gap:8px;display:grid}.color-row input[type=color]{background:#051222db;border:1px solid #4989c66b;border-radius:7px;width:44px;height:38px;padding:2px}.workflow-board{grid-template-columns:repeat(3,1fr);gap:14px;min-height:300px;display:grid}.wf-column{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;padding:12px;display:flex}.wf-column-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.wf-column-header h4{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.wf-column-header .wf-count{background:var(--bg-card);color:var(--text-muted);border-radius:10px;padding:1px 8px;font-size:11px}.wf-tasks{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.wf-task{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:10px 12px;transition:border-color .15s}.wf-task:hover{border-color:var(--accent)}.wf-task .wt-title{color:var(--text-heading);margin-bottom:4px;font-size:13px;font-weight:600}.wf-task .wt-agent{color:var(--text-muted);font-size:11px}.wf-task .wt-actions{gap:4px;margin-top:8px;display:flex}.wf-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:12px}.jobs-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.jobs-summary-row{grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-bottom:14px;display:grid}.jobs-summary-card{border-radius:var(--radius);background:linear-gradient(#143758e0,#08182aeb);border:1px solid #4989c66b;padding:12px 14px;box-shadow:inset 0 1px #ffffff14}.jobs-summary-card strong{font-family:var(--font-mono);color:var(--text-heading);font-size:26px;line-height:1;display:block}.jobs-summary-card span{color:var(--text-secondary);margin-top:5px;font-size:11px;display:block}.jobs-summary-card.yellow strong{color:var(--yellow)}.jobs-summary-card.green strong{color:var(--green)}.jobs-summary-card.red strong{color:var(--red)}.jobs-summary-card.purple strong{color:var(--purple)}.jobs-notice{border-radius:var(--radius);color:var(--text-secondary);background:#0f1d35e0;border:1px solid #4989c66b;margin-bottom:12px;padding:10px 12px;font-size:12px}.jobs-notice.success{color:#bbf7d0;background:#22c55e1f;border-color:#22c55e73}.jobs-notice.error{color:#fecaca;background:#ef44441f;border-color:#ef444473}.jobs-control-layout{max-width:100%;min-height:0;display:block;position:relative;overflow:hidden}.jobs-board{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;width:100%;min-width:0;max-width:100%;padding:0;display:grid;overflow:hidden}.jobs-board::-webkit-scrollbar{height:10px}.jobs-board::-webkit-scrollbar-track{background:#071220a3;border-radius:999px}.jobs-board::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#38bdf88c,#3b82f68c);border-radius:999px}.job-column{min-height:420px;max-height:calc(100dvh - var(--topbar-h) - 250px);border-radius:var(--radius-lg);background:linear-gradient(#0d2134eb,#071220f0);border:1px solid #4989c661;flex-direction:column;min-width:0;padding:10px;display:flex;overflow:hidden}.job-column .wf-tasks{white-space:normal;min-height:0;padding-right:3px;overflow-y:auto}.job-card{text-align:left;width:100%;color:var(--text-primary);border-radius:var(--radius);cursor:pointer;font-family:var(--font-thai);background:#11263ee6;border:1px solid #4989c657;flex-direction:column;gap:7px;padding:9px;transition:border-color .15s,transform .15s,background .15s;display:flex}.job-card:hover,.job-card.active{background:#153a5cf5;border-color:#67d8ffbf;transform:translateY(-1px)}.job-card.high{border-color:#ef44446b}.job-card.medium{border-color:#eab30870}.job-card-top,.job-detail-head{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.job-card strong{color:var(--text-heading);overflow-wrap:anywhere;font-size:11px;line-height:1.45}.job-card small{color:var(--text-muted);font-size:10px;line-height:1.35}.job-source{text-overflow:ellipsis;white-space:nowrap;color:#a5f3fc;text-transform:uppercase;letter-spacing:0;background:#67d8ff1a;border:1px solid #67d8ff47;border-radius:999px;max-width:100%;padding:2px 6px;font-size:8px;display:inline-flex;overflow:hidden}.job-detail-backdrop{inset:var(--topbar-h) 0 0 var(--sidebar-w);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#01081275;border:0;position:fixed}.job-detail-panel{top:calc(var(--topbar-h) + 18px);z-index:205;width:min(520px, calc(100vw - var(--sidebar-w) - 54px));border-radius:var(--radius-lg);min-height:0;max-height:calc(100dvh - var(--topbar-h) - 36px);box-shadow:var(--shadow);opacity:0;pointer-events:none;background:linear-gradient(#0e2338f5,#071220f5);border:1px solid #4989c66b;padding:16px;transition:opacity .18s,transform .18s;position:fixed;bottom:18px;right:18px;overflow:auto;transform:translate(calc(100% + 28px))}.job-detail-panel.open{opacity:1;pointer-events:auto;transform:translate(0)}.job-detail-chips{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.job-detail-panel h3{color:var(--text-heading);overflow-wrap:anywhere;margin:12px 0 8px;font-size:18px;line-height:1.35}.job-detail-panel p{color:var(--text-secondary);font-size:13px;line-height:1.6}.job-meta-grid{grid-template-columns:1fr 1fr;gap:8px;margin:14px 0;display:grid}.job-meta-grid div{border-radius:var(--radius-sm);background:#050e198f;border:1px solid #4989c63d;padding:9px}.job-meta-grid span{color:var(--text-muted);text-transform:uppercase;font-size:10px;display:block}.job-meta-grid strong{color:var(--text-primary);margin-top:3px;font-size:12px;display:block}.job-result-box{border-radius:var(--radius);background:linear-gradient(#0e342e6b,#050e199e);border:1px solid #22c55e38;gap:10px;margin:14px 0;padding:12px;display:grid}.job-result-box h4{color:var(--green);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.job-result-summary{border-radius:var(--radius-sm);background:#22c55e14;border:1px solid #22c55e47;gap:4px;padding:9px;display:grid}.job-result-summary.failed{background:#ef444414;border-color:#ef444452}.job-result-summary strong{color:var(--text-heading);text-transform:uppercase;font-size:12px}.job-result-summary span{color:var(--text-secondary);font-size:12px;line-height:1.45}.job-result-summary small{color:var(--text-muted);font-size:10px}.evidence-list,.job-log-list{gap:7px;display:grid}.evidence-row{border-radius:var(--radius-sm);background:#050e198a;border:1px solid #4989c638;grid-template-columns:auto minmax(80px,.6fr) minmax(0,1fr);align-items:center;gap:8px;padding:8px;display:grid}.evidence-row span{color:var(--cyan);font-family:var(--font-mono);text-transform:uppercase;background:#67d8ff1a;border-radius:999px;padding:2px 6px;font-size:9px}.evidence-row strong{min-width:0;color:var(--text-primary);font-size:11px}.evidence-row code{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.job-log-row{background:#08111e7a;border-left:2px solid #67d8ff6b;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:7px 8px;display:grid}.job-log-row.success{border-left-color:var(--green)}.job-log-row.warning{border-left-color:var(--yellow)}.job-log-row span{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.job-log-row strong{min-width:0;color:var(--text-secondary);font-size:11px}.job-timeline-box{border-radius:var(--radius);background:#050e1980;border:1px solid #67d8ff33;gap:8px;margin:14px 0;padding:12px;display:grid}.job-timeline-box h4{color:var(--cyan);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.job-timeline-empty{color:var(--text-muted);border-radius:var(--radius-sm);border:1px dashed #67d8ff33;padding:8px;font-size:11px}.job-timeline-row{border-left:2px solid #67d8ff6b;grid-template-columns:48px minmax(0,1fr);gap:8px;padding:8px 0 8px 8px;display:grid}.job-timeline-row.success{border-left-color:var(--green)}.job-timeline-row.warning{border-left-color:var(--yellow)}.job-timeline-row.error{border-left-color:var(--red)}.job-timeline-row>span{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.job-timeline-row strong,.job-timeline-row small{min-width:0;display:block}.job-timeline-row strong{color:var(--text-primary);font-size:11px;line-height:1.35}.job-timeline-row small{color:var(--text-muted);margin-top:2px;font-size:10px;line-height:1.4}.job-movie-list{margin-top:14px}.job-movie-list h4{color:var(--text-heading);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.job-movie-row{border-top:1px solid #4989c62e;padding:8px 0}.job-movie-row strong,.job-movie-row span{display:block}.job-movie-row strong{color:var(--text-primary);font-size:12px}.job-movie-row span{color:var(--text-muted);text-transform:uppercase;font-size:10px}.job-action-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.job-action-row .btn{justify-content:center;min-height:34px}.approval-layout{grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);gap:14px;max-width:100%;min-height:0;display:grid}.approval-queue,.approval-detail{border-radius:var(--radius-lg);background:linear-gradient(#0d2134eb,#071220f0);border:1px solid #4989c661;min-width:0;box-shadow:inset 0 1px #ffffff0f}.approval-queue{max-height:calc(100dvh - var(--topbar-h) - 235px);flex-direction:column;padding:12px;display:flex;overflow:hidden}.approval-section-head{border-bottom:1px solid #4989c642;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.approval-section-head h4{color:var(--yellow);align-items:center;gap:6px;font-size:13px;display:flex}.approval-section-head span{color:var(--text-muted);font-size:11px}.approval-list{gap:9px;min-height:0;padding-top:10px;padding-right:3px;display:grid;overflow-y:auto}.approval-card{text-align:left;border-radius:var(--radius);width:100%;color:var(--text-primary);font:inherit;cursor:pointer;background:#11263ee6;border:1px solid #4989c657;gap:8px;padding:10px;transition:border-color .15s,background .15s,transform .15s;display:grid}.approval-card:hover,.approval-card.active{background:#273341f5;border-color:#f6c453b8;transform:translateY(-1px)}.approval-card.high{border-color:#ef44446b}.approval-card strong{color:var(--text-heading);overflow-wrap:anywhere;font-size:12px;line-height:1.45}.approval-card small{color:var(--text-muted);font-size:10px}.approval-detail{max-height:calc(100dvh - var(--topbar-h) - 235px);padding:16px;overflow-y:auto}.approval-detail-head{border-bottom:1px solid #4989c63d;justify-content:space-between;align-items:start;gap:12px;padding-bottom:12px;display:flex}.approval-detail-head h2{color:var(--text-heading);overflow-wrap:anywhere;margin-top:4px;font-size:20px;line-height:1.28}.approval-detail-text{color:var(--text-secondary);margin:12px 0;font-size:13px;line-height:1.65}.approval-evidence-grid{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}.approval-evidence-list{margin:12px 0}.approval-reason{gap:7px;margin-top:14px;display:grid}.approval-reason span{color:var(--text-secondary);font-size:12px;font-weight:700}.approval-reason textarea{resize:vertical;border-radius:var(--radius);width:100%;min-height:88px;color:var(--text-primary);font:inherit;background:#050e19a8;border:1px solid #4989c661;outline:none;padding:10px 12px}.approval-reason textarea:focus{border-color:#67d8ffb8;box-shadow:0 0 0 3px #67d8ff1a}.approval-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.approval-actions .btn{justify-content:center;min-height:38px}.approval-action-plan{border-radius:var(--radius);background:linear-gradient(#091b2ce0,#040e1ae6);border:1px solid #67d8ff3d;margin-top:14px;padding:12px}.approval-action-plan-head{border-bottom:1px solid #4989c638;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.approval-action-plan-head h4{color:var(--cyan);align-items:center;gap:7px;font-size:13px;display:flex}.approval-action-plan-head span{color:var(--text-muted);margin-top:3px;font-size:11px;line-height:1.45;display:block}.action-plan-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.action-plan-summary div{border-radius:var(--radius-sm);background:#030c1794;border:1px solid #4989c638;min-width:0;padding:9px}.action-plan-summary span{color:var(--text-muted);text-transform:uppercase;font-size:9px;display:block}.action-plan-summary strong{color:var(--text-heading);overflow-wrap:anywhere;margin-top:4px;font-size:13px;display:block}.action-guardrails{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.action-guardrails span{color:#fde68a;background:#4e370a47;border:1px solid #f6c45347;border-radius:999px;max-width:100%;padding:5px 7px;font-size:10px;line-height:1.35}.action-select-toolbar{border-radius:var(--radius-sm);background:#030c177a;border:1px solid #4989c633;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;padding:7px 9px;display:flex}.action-select-toolbar span{color:var(--text-muted);font-size:11px;font-weight:700}.mini-toggle{border-radius:var(--radius-sm);min-height:28px;color:var(--text-heading);cursor:pointer;background:#0f2d4ae0;border:1px solid #6fb3ff61;padding:0 10px;font-size:11px;font-weight:800}.mini-toggle.active{color:#fde68a;background:#4e370a57;border-color:#f6c4538c}.action-list{gap:8px;max-height:min(36vh,360px);padding-right:4px;display:grid;overflow-y:auto}.action-row{border-radius:var(--radius-sm);background:#0c1f33b8;border:1px solid #4989c63d;grid-template-columns:minmax(0,1fr);gap:7px;padding:10px;display:grid}.action-row.selectable{cursor:pointer;grid-template-columns:22px minmax(0,1fr);align-items:start}.action-row.checked{background:linear-gradient(#194a75bd,#0c1f33d1);border-color:#67d8ff94}.action-row input{accent-color:#4aa8ff;width:16px;height:16px;margin:2px 0 0}.action-row.selectable code{grid-column:2}.action-row strong{color:var(--text-heading);font-size:12px;line-height:1.35;display:block}.action-row small{color:var(--text-muted);overflow-wrap:anywhere;margin-top:3px;font-size:10px;line-height:1.35;display:block}.action-row code{border-radius:var(--radius-sm);max-width:100%;color:var(--cyan);white-space:normal;overflow-wrap:anywhere;background:#030a13b3;padding:7px;font-size:10px;display:block}.action-advisories{gap:7px;margin-top:10px;display:grid}.action-advisories div{border-radius:var(--radius-sm);background:#4e370a38;border:1px solid #f6c45347;padding:8px 10px}.action-advisories strong{color:#fde68a;text-transform:uppercase;font-size:10px;display:block}.action-advisories span{color:var(--text-secondary);margin-top:3px;font-size:11px;line-height:1.45;display:block}.action-plan-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-safety-toggle{border-radius:var(--radius);color:var(--text-secondary);background:#4e370a33;border:1px solid #f6c45352;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px;font-size:12px;display:flex}.settings-safety-toggle input{margin-top:3px}.settings-safety-toggle strong,.settings-safety-toggle small{display:block}.settings-safety-toggle strong{color:#fde68a}.settings-safety-toggle small{margin-top:3px;line-height:1.45}@media (max-width:1280px){.jobs-board{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.job-column,.job-card{padding:8px}.job-card strong{font-size:10px}.job-card small{font-size:9px}.job-source,.ops-risk{padding:2px 5px;font-size:7px}}@media (max-width:1180px){.approval-layout{grid-template-columns:1fr}.approval-queue,.approval-detail{max-height:none}.approval-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:320px}}@media (max-width:1100px){.job-detail-panel{top:calc(var(--topbar-h) + 12px);width:min(500px, calc(100vw - var(--sidebar-w) - 30px));bottom:12px;right:12px}}@media (max-width:760px){.jobs-summary-row{grid-template-columns:1fr}.jobs-board{grid-template-columns:1fr;gap:8px}.wf-column-header{margin-bottom:8px;padding-bottom:6px}.wf-column-header h4{gap:4px;font-size:10px}.wf-column-header .wf-count{padding:1px 5px;font-size:9px}.job-column{border-radius:var(--radius);padding:6px}.job-detail-backdrop{inset:0}.job-detail-panel{width:auto;inset:12px}.jobs-toolbar,.job-action-row,.approval-evidence-grid,.approval-actions,.action-plan-summary,.approval-list{grid-template-columns:1fr;width:100%;display:grid}}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}.settings-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.settings-card h3{color:var(--text-heading);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.security-card{border-color:#fbbf2452;box-shadow:inset 0 1px #ffffff0d,0 0 28px #fbbf240f}.owner-session{border-radius:var(--radius);background:linear-gradient(135deg,#fbbf2421,#3b82f614);border:1px solid #fbbf243d;align-items:center;gap:12px;margin-bottom:14px;padding:12px;display:flex}.owner-session-icon{width:42px;height:42px;color:var(--yellow);border-radius:var(--radius);background:#02061761;border:1px solid #fbbf2459;flex:none;place-items:center;display:grid}.owner-session-name{color:var(--text-heading);font-size:14px;font-weight:700}.owner-session-meta{color:var(--text-muted);margin-top:3px;font-size:11px}.security-form{gap:10px;display:grid}.model-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.model-auto-note{border-radius:var(--radius);background:#0ea5e914;border:1px solid #7dd3fc38;gap:4px;margin-bottom:10px;padding:10px 12px;display:grid}.model-auto-note strong{color:var(--cyan);letter-spacing:.03em;text-transform:uppercase;font-size:12px}.model-auto-note span{color:var(--text-secondary);font-size:12px;line-height:1.45}.model-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:10px;transition:all .15s}.model-card:hover{border-color:var(--border-light)}.model-card.active{border-color:var(--accent);background:#3b82f614}.model-card.online{border-color:#22c55e61}.model-card.quota{border-color:#eab30873}.model-card.invalid,.model-card.unavailable,.model-card.error{border-color:#ef44446b}.mc-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.model-card .mc-name{color:var(--text-heading);font-size:13px;font-weight:600}.model-card .mc-info{color:var(--text-muted);margin-top:2px;font-size:11px}.mc-status-msg{color:var(--text-muted);margin-top:6px;font-size:10px;line-height:1.35}.model-state{border:1px solid var(--border);min-height:20px;color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;white-space:nowrap;background:#0f172ab8;border-radius:999px;align-items:center;padding:2px 7px;font-size:9px;font-weight:800;display:inline-flex}.model-state.online{color:var(--green);background:#22c55e1a;border-color:#22c55e59}.model-state.quota{color:var(--yellow);background:#eab3081a;border-color:#eab30861}.model-state.invalid,.model-state.unavailable,.model-state.error{color:var(--red);background:#ef44441a;border-color:#ef444461}.fallback-order{gap:7px;margin-top:12px;display:grid}.fallback-order-title{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.fallback-row{border:1px solid var(--border);border-radius:var(--radius);background:#08111e8f;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:7px;padding:8px;display:grid}.fallback-row strong{min-width:0;color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.fallback-rank{color:var(--yellow);font-family:var(--font-mono);font-size:11px;font-weight:900}.mini-btn{width:26px;height:24px;color:var(--text-heading);cursor:pointer;background:#2563eb1f;border:1px solid #7dd3fc47;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.mini-btn:disabled{opacity:.35;cursor:not-allowed}.status-msg{border-radius:var(--radius);margin-top:8px;padding:8px 12px;font-size:12px}.status-msg.success{background:var(--green-dim);color:var(--green);border:1px solid #22c55e4d}.status-msg.error{background:var(--red-dim);color:var(--red);border:1px solid #ef44444d}.sop-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.sop-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.sop-card h4{color:var(--text-heading);align-items:center;gap:6px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.sop-card ol,.sop-card ul{padding-left:18px}.sop-card li{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.skill-matrix{border-collapse:collapse;width:100%;margin-top:12px}.skill-matrix th,.skill-matrix td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px}.skill-matrix th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.skill-matrix td{color:var(--text-secondary)}.report-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.report-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.report-card h4{align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.bar-chart{flex-direction:column;gap:8px;display:flex}.bar-row{align-items:center;gap:8px;display:flex}.bar-label{width:60px;color:var(--text-secondary);text-align:right;font-size:11px}.bar-track{background:var(--bg-secondary);border-radius:3px;flex:1;height:18px;overflow:hidden}.bar-fill{border-radius:3px;height:100%;transition:width .5s ease-out}.bar-value{width:30px;color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.mobile-toggle{z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--text-primary);justify-content:center;align-items:center;display:none;position:fixed;top:10px;left:10px}@media (max-width:1100px){.chat-panel{display:none}.chat-panel.mobile-open{z-index:300;box-shadow:var(--shadow-lg);width:var(--chat-w);border:none;border-radius:0;margin:0;display:flex;position:fixed;top:0;bottom:0;right:0}}@media (max-width:768px){.mobile-toggle{display:flex}.sidebar{z-index:200;box-shadow:var(--shadow-lg);transition:left .3s;position:fixed;top:0;bottom:0;left:-260px}.sidebar.open{left:0}.content-main{padding:56px 12px 12px}.stats-row{grid-template-columns:repeat(2,1fr)}.workflow-board,.settings-grid,.characters-grid{grid-template-columns:1fr}.topbar{padding-left:52px}}@media (max-width:480px){.stats-row{grid-template-columns:1fr}}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 6px #22c55e00}}.pulse-online{animation:2s infinite pulse-green}:root{--bg-base:#020813;--bg-primary:#061222;--bg-secondary:#071424f0;--bg-card:#0d2742e0;--bg-card-hover:#16446ef0;--bg-input:#04101ff5;--bg-sidebar:linear-gradient(180deg, #071728 0%, #03101d 100%);--bg-topbar:#05111ff0;--border:#4283bc6b;--border-light:#7ec2ff9e;--border-active:#66b8ff;--accent:#2f8fe8;--accent-hover:#57b8ff;--accent-glow:#4aa1ff57;--gold:#e8a317;--gold-glow:#e8a31757;--text-primary:#dcecff;--text-secondary:#a7c0d9;--text-muted:#6f89a5;--text-heading:#f7fbff;--radius:8px;--radius-sm:5px;--radius-lg:10px;--shadow:0 10px 24px #0000006b;--shadow-lg:0 20px 48px #0000008c;--font-thai:"Sarabun", "Noto Sans Thai", system-ui, sans-serif}body{letter-spacing:.01em;background:radial-gradient(circle at 30% -10%,#327eda29,#0000 34%),radial-gradient(circle at 86% 8%,#e8a31714,#0000 28%),linear-gradient(#071423 0%,#020813 100%)}body:before{content:"";pointer-events:none;z-index:9999;opacity:.22;mix-blend-mode:screen;background-color:#0000;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0}.app-shell{background:linear-gradient(#0816279e,#020813f5)}.sidebar{border-right:1px solid #55a6ee61;box-shadow:inset -1px 0 #ffffff0d,8px 0 28px #00000047}.sidebar-brand{background:linear-gradient(#12304eeb,#071627f0);border:1px solid #5fabf46b;border-radius:9px;margin:8px;padding:12px;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 18px #2f8fe81f}.sidebar-brand .brand-icon{color:#081221;text-shadow:0 1px #ffffff8c;background:linear-gradient(135deg,#e8a317f2,#2f8fe8f2);border:2px solid #fde07acc;box-shadow:0 0 18px #e8a31742}.sidebar-brand .brand-text h2,.page-header h1,.chat-header h4,.card-header h4,.section-title h3{text-shadow:0 2px #00000059,0 0 14px #69b8ff2e}.sidebar-nav{gap:7px;padding:6px 10px}.nav-item{color:#d7eaff;background:linear-gradient(#163e65d6,#091f37e0);border:1px solid #4989c661;min-height:42px;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #00000042,0 4px 10px #0000002e}.nav-item:hover{background:linear-gradient(#225b90f0,#0c2b4cf2);border-color:#7fc7ffb8;transform:translateY(-1px)}.nav-item.active{background:linear-gradient(#4aa7ff 0%,#1d69b4 52%,#124777 100%);border-color:#b7e0ffdb;box-shadow:inset 0 1px #ffffff3d,inset 0 -2px #00000047,0 0 20px #4aa7ff47}.sidebar-footer{background:linear-gradient(#113150e0,#071627f0);border:1px solid #4989c661;border-radius:9px;margin:8px}.topbar{background:linear-gradient(#0c233df0,#04101ffa);border:1px solid #4989c659;border-radius:10px;flex-basis:54px;height:54px;margin:8px 8px 0;box-shadow:inset 0 1px #ffffff0f,0 8px 20px #0000003d}.topbar-service,.topbar-user,.topbar-logout,.btn-chat-toggle{box-shadow:inset 0 1px #ffffff14,0 4px 10px #0000002e;color:#d9ecff!important;background:linear-gradient(#18426ce0,#081d35eb)!important;border-color:#589de070!important;border-radius:7px!important}.topbar-logout{font-weight:700;color:#fff!important;background:linear-gradient(#4b9ce5,#2369a7)!important;border-color:#b4deffb3!important}.content-main{padding:16px 14px 20px}.page-header{background:linear-gradient(#0d2641e6,#061426f0);border:1px solid #4989c65c;border-radius:10px;margin-bottom:12px;padding:18px 20px;box-shadow:inset 0 1px #ffffff0f,0 10px 24px #0000003d}.page-header .page-label{color:#84d7ff;letter-spacing:.16em;font-weight:800}.page-header h1{letter-spacing:0;font-size:clamp(22px,2.1vw,34px);font-weight:800}.page-header .page-subtitle{color:#bed4e9;font-size:14px}.badge-verified{color:#b9ffd5;background:linear-gradient(#1b5b3fd1,#0b2d23e6);border-color:#55dc9370;border-radius:7px;font-weight:800}.stats-row{grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:12px}.stat-card,.card,.settings-card,.sop-card,.report-card,.char-card,.wf-column{background:linear-gradient(#163e65d9,#07192ef0);border:1px solid #4989c65c;border-radius:9px;box-shadow:inset 0 1px #ffffff0f,inset 0 -1px #00000040,0 8px 20px #0003}.stat-card{align-items:center;min-height:72px;padding:12px}.stat-card:before,.card:before,.settings-card:before,.sop-card:before,.report-card:before,.char-card:before,.wf-column:before,.room-container:before,.chat-panel:before{content:"";pointer-events:none;border-radius:inherit;opacity:.55;background:linear-gradient(#ffffff12,#0000 28%);position:absolute;inset:0}.stat-card,.card,.settings-card,.sop-card,.report-card,.char-card,.wf-column,.room-container,.chat-panel{position:relative}.stat-card .stat-icon{border:1px solid #ffffff38;box-shadow:inset 0 1px #ffffff2e,0 0 14px}.stat-card .stat-value{font-family:var(--font-mono);color:#fff6cf;text-shadow:0 0 12px #e8a31738;font-size:28px}.stat-card .stat-label{color:#bed4e9;font-size:11px}.section-title{margin:8px 0;padding:0 4px}.section-title h3{color:#f5fbff;font-size:17px}.icon-btn,.btn,.btn-action,.quick-ask,.btn-send,.model-card,.wf-task{border-color:#4e91d26b;border-radius:7px;box-shadow:inset 0 1px #ffffff14,0 4px 10px #0000002e}.btn-primary,.btn-action.primary,.btn-send,.icon-btn.active{background:linear-gradient(#4aa7ff,#1f6eb5);border-color:#b8e0ffb8}.room-container{aspect-ratio:16/9;background:radial-gradient(circle,#18395973,#010710f5 72%);border:1px solid #61aaee75;border-radius:10px;flex:none;width:100%;min-height:360px;margin:0 auto;padding:8px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0d,inset 0 0 38px #2563a02e,0 16px 34px #00000057}.room-bg{object-fit:contain;filter:saturate(1.08)contrast(1.04)brightness(.94);background:#020813;border-radius:7px;width:100%;height:100%;display:block}.ops-grid{grid-template-columns:minmax(260px,1.1fr) minmax(280px,1.2fr) minmax(220px,.9fr);gap:10px;margin-top:12px;display:grid}.ops-panel{background:linear-gradient(#163e65d1,#07192ef0);border:1px solid #4989c65c;border-radius:9px;min-height:176px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 8px 20px #0003}.ops-panel:before{content:"";pointer-events:none;background:linear-gradient(#ffffff12,#0000 30%);position:absolute;inset:0}.ops-panel-head{z-index:1;border-bottom:1px solid #4989c652;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.ops-panel-head h4{color:#f7fbff;align-items:center;gap:7px;font-size:13px;font-weight:800;display:flex}.ops-panel-head span{color:#84d7ff;white-space:nowrap;font-size:11px;font-weight:700}.ops-list{z-index:1;flex-direction:column;gap:7px;padding:10px;display:flex;position:relative}.ops-item{color:#d9ecff;width:100%;min-height:34px;font-family:var(--font-thai);text-align:left;cursor:pointer;background:#051222b8;border:1px solid #4989c657;border-radius:7px;grid-template-columns:9px 1fr auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.ops-item:hover{border-color:#84d7ffb8;transform:translateY(-1px)}.ops-item.blocked{background:#3a141e8c;border-color:#ef444466}.ops-agent-dot{border-radius:50%;width:9px;height:9px;box-shadow:0 0 9px}.ops-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:700;overflow:hidden}.ops-risk{border:1px solid #ffffff2e;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:900}.ops-risk.low{color:#b9ffd5;background:#22c55e1f;border-color:#22c55e47}.ops-risk.medium{color:#fff1a7;background:#eab30824;border-color:#eab30852}.ops-risk.high{color:#fecaca;background:#ef444424;border-color:#ef444452}.agent-state-list{grid-template-columns:1fr;display:grid}.agent-state-row{color:#d9ecff;min-height:42px;font-family:var(--font-thai);text-align:left;cursor:pointer;background:#051222ad;border:1px solid #4989c652;border-radius:7px;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.agent-state-row:hover{border-color:#84d7ffad;transform:translateY(-1px)}.agent-state-row strong,.agent-state-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.agent-state-row strong{color:#f7fbff;font-size:12px}.agent-state-row small{color:#9fbad4;font-size:10px}.agent-state-row em{color:#84d7ff;border:1px solid #84d7ff40;border-radius:999px;padding:1px 7px;font-size:9px;font-style:normal;font-weight:900}.agent-state-row.blocked{border-color:#ef44446b}.agent-state-row.approval em{color:#fff1a7;border-color:#eab3085c}.ops-rec,.ops-alert,.ops-empty{background:#051222b3;border:1px solid #4989c652;border-radius:7px;padding:8px 10px}.ops-rec-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.ops-rec-top strong{color:#fff6cf;font-size:12px}.ops-rec-top span{color:#84d7ff;font-size:10px;font-weight:800}.ops-rec p{color:#f7fbff;margin:0 0 2px;font-size:12px;font-weight:800}.ops-rec small,.ops-alert span,.ops-empty{color:#a7c0d9;font-size:11px;line-height:1.35}.ops-alert{flex-direction:column;gap:2px;display:flex}.ops-alert strong{color:#f7fbff;font-size:12px}.ops-alert.warning{border-color:#eab3085c}.ops-alert.danger{border-color:#ef44446b}.cron-engine-panel{background:linear-gradient(#2b2316e6,#07192ef5),radial-gradient(circle at 20% 10%,#f59e0b2e,#0000 34%);border-color:#f59e0b6b;grid-column:1/-1;min-height:0}.cron-engine-board{z-index:1;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.5fr);gap:10px;padding:10px;display:grid;position:relative}.cron-core{background:linear-gradient(135deg,#4b3414d1,#081322d6);border:1px solid #f59e0b5c;border-radius:8px;align-items:center;gap:12px;min-height:96px;padding:12px;display:flex}.cron-core.ready,.cron-core.running{border-color:#22c55e6b}.cron-core.attention,.cron-core.late,.cron-core.paused{border-color:#f59e0b85}.cron-core-ring{color:#fff1a7;background:radial-gradient(circle,#f59e0b3d,#051222e6);border:2px solid #ffdd84b8;border-radius:50%;flex:0 0 74px;place-items:center;width:74px;height:74px;display:grid;box-shadow:0 0 18px #f59e0b2e,inset 0 0 18px #ffffff0d}.cron-core-ring strong{font-family:var(--font-pixel);letter-spacing:0;font-size:10px}.cron-core h4{color:#fff6cf;margin:0 0 4px;font-size:14px}.cron-core p{color:#b8c8d8;margin:0;font-size:12px;line-height:1.35}.cron-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.cron-signal{background:#051222b3;border:1px solid #4989c652;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:76px;padding:10px;display:flex}.cron-signal span{color:#9fb8cf;text-transform:uppercase;font-size:10px;font-weight:800}.cron-signal strong{color:#f7fbff;word-break:break-word;font-size:13px;line-height:1.25}.cron-signal.green{border-color:#22c55e57}.cron-signal.blue{border-color:#3b82f657}.cron-signal.cyan{border-color:#06b6d457}.cron-signal.yellow{border-color:#eab30866}.cron-signal.purple{border-color:#a855f757}.cron-pipeline{z-index:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 10px 10px;display:grid;position:relative}.cron-step{background:#051222b8;border:1px solid #4989c652;border-radius:8px;min-width:0;padding:9px 10px}.cron-step strong{color:#fff6cf;font-size:12px;display:block}.cron-step span{color:#a7c0d9;white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.cron-step.server{border-color:#eab3085c}.cron-step.upload{border-color:#ef444452}.cron-step.seo{border-color:#22c55e52}.cron-step.owner{border-color:#06b6d457}.cron-latest-row{z-index:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 10px 10px;display:grid;position:relative}.cron-latest-row div{background:#0108129e;border:1px solid #ffffff14;border-radius:7px;padding:8px 10px}.cron-latest-row span{color:#91aeca;text-transform:uppercase;font-size:10px;font-weight:800;display:block}.cron-latest-row strong{color:#fff6cf;font-family:var(--font-pixel);letter-spacing:0;margin-top:3px;font-size:16px;display:block}.cron-log-strip{z-index:1;gap:8px;padding:0 10px 10px;display:flex;position:relative;overflow-x:auto}.cron-log-chip{color:#d9ecff;text-align:left;cursor:pointer;background:#051222c2;border:1px solid #4989c652;border-radius:8px;min-width:180px;max-width:260px;padding:8px 10px}.cron-log-chip:hover{border-color:#84d7ffb8;transform:translateY(-1px)}.cron-log-chip span{color:#84d7ff;text-transform:uppercase;font-size:10px;font-weight:900;display:block}.cron-log-chip strong{text-overflow:ellipsis;white-space:nowrap;color:#f7fbff;margin-top:3px;font-size:12px;display:block;overflow:hidden}.cron-log-chip.imported{border-color:#22c55e52}.cron-log-chip.refreshed{border-color:#eab30857}.cron-log-chip.error{border-color:#ef44446b}.room-overlay-tag{display:none}.room-overlay-bubble{color:#f8fcff;text-overflow:ellipsis;background:linear-gradient(#0f3650f5,#061627f7);border:1px solid #84d7ffb3;border-radius:7px;max-width:14vw;font-size:clamp(9px,.78vw,12px);overflow:hidden;box-shadow:0 8px 16px #0000006b,0 0 14px #22d3ee24}.room-overlay-bubble:after{border-top-color:#84d7ffcc}.room-overlay-pill{color:#fff;text-shadow:0 2px #00000080;border-radius:5px;font-weight:800;box-shadow:0 5px 10px #0000006b,inset 0 -2px #00000047;background:linear-gradient(#142a41f5,#07111efa)!important;border:1px solid #ffffff47!important}.room-overlay-pill.active{box-shadow:0 0 18px #e8a3176b,inset 0 1px #ffffff24;border-color:#fff6cff2!important}.agent-runner{cursor:pointer;z-index:24;width:clamp(46px,4.1vw,68px);height:clamp(68px,5.8vw,94px);image-rendering:pixelated;background:0 0;border:0;padding:0;transition:left 1.35s cubic-bezier(.22,.85,.24,1),top 1.35s cubic-bezier(.22,.85,.24,1);position:absolute;transform:translate(-50%,-76%)}.agent-runner:hover{filter:brightness(1.13)}.agent-shadow{filter:blur(1px);background:#0000006e;border-radius:50%;width:58%;height:11%;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.agent-sprite{will-change:transform;width:16px;height:32px;filter:drop-shadow(0 5px 0 #00000057) drop-shadow(0 0 8px color-mix(in srgb, var(--agent-color) 48%, transparent));position:absolute;bottom:27px;left:50%;overflow:visible;transform:translate(-50%)}.agent-runner.walking .agent-sprite{animation:.36s ease-in-out infinite agent-walk-bob}.agent-character{background-image:var(--sprite-url);background-repeat:no-repeat;background-size:112px 96px;background-position:var(--sprite-x) var(--sprite-y);width:16px;height:32px;image-rendering:pixelated;image-rendering:crisp-edges;transform-origin:bottom;transform:scaleX(var(--sprite-flip,1)) scale(var(--sprite-scale));will-change:background-position, transform;backface-visibility:hidden;contain:paint;display:block;overflow:hidden}.agent-character.portrait{transform-origin:50%}.agent-character.idle{animation:1.8s ease-in-out infinite agent-idle}.agent-character.moving{animation:.72s steps(6,end) infinite agent-sprite-walk}.agent-task-bubble{left:calc(50% + var(--bubble-shift,0px));border:1px solid color-mix(in srgb, var(--agent-color) 76%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--agent-color) 24%, #061524), #030b15 82%);color:#f8fcff;white-space:nowrap;text-overflow:ellipsis;width:max-content;max-width:clamp(96px,9vw,150px);box-shadow:0 7px 0 #0003, 0 10px 18px #0000006b, 0 0 16px color-mix(in srgb, var(--agent-color) 28%, transparent);text-shadow:0 2px #0000007a;pointer-events:none;border-radius:6px;padding:4px 8px 5px;font-size:clamp(8px,.64vw,10px);font-weight:800;line-height:1.22;position:absolute;bottom:calc(100% + 3px);overflow:hidden;transform:translate(-50%)translateY(-2px)}.agent-task-bubble:after{content:"";left:calc(50% - var(--bubble-shift,0px));border-right:1px solid color-mix(in srgb, var(--agent-color) 76%, white);border-bottom:1px solid color-mix(in srgb, var(--agent-color) 76%, white);background:#030b15;width:8px;height:8px;position:absolute;top:100%;transform:translate(-50%,-2px)rotate(45deg)}.agent-nameplate{border:1px solid color-mix(in srgb, var(--agent-color) 70%, white);color:#f7fbff;text-shadow:0 2px #00000073;white-space:nowrap;background:linear-gradient(#122d4bf5,#030a14fa);border-radius:6px;min-width:58px;padding:3px 9px 4px;font-size:clamp(9px,.72vw,12px);font-weight:900;line-height:1.1;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #ffffff29,inset 0 -2px #00000052,0 4px 10px #0000005c}.agent-nameplate.preview{justify-content:center;margin-top:8px;display:inline-flex;position:static;transform:none}.agent-runner.selected .agent-nameplate{color:#fff6cf;border-color:#ffe08a;box-shadow:0 0 18px #e8a31766}@keyframes agent-run{0%,to{transform:scaleX(var(--sprite-flip,1)) scale(var(--sprite-scale)) translateY(0)}50%{transform:scaleX(var(--sprite-flip,1)) scale(var(--sprite-scale)) translateY(-4%)}}@keyframes agent-walk-bob{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-3px)}}@keyframes agent-idle{0%,to{transform:scaleX(var(--sprite-flip,1)) scale(var(--sprite-scale)) translateY(0)}50%{transform:scaleX(var(--sprite-flip,1)) scale(var(--sprite-scale)) translateY(-1px)}}@keyframes agent-sprite-walk{0%{background-position:0 var(--sprite-y)}to{background-position:-96px var(--sprite-y)}}.chat-panel{background:linear-gradient(#071627f5,#020a14fa);border:1px solid #4989c65c;border-radius:10px;margin:8px 8px 8px 0;overflow:hidden;box-shadow:-10px 0 28px #0000003d}.chat-header,.agent-info-card,.chat-footer{background:#081a2fa8;border-color:#4989c657}.agent-info-card{border:1px solid #4989c65c;border-radius:9px;margin:10px;padding:12px}.agent-info-card .aic-avatar,.chat-msg .msg-avatar,.sidebar-footer .ws-icon{background:linear-gradient(#194166e6,#07182bf2);box-shadow:inset 0 1px #ffffff24}.agent-info-card .aic-stat,.svc-badge,.chat-msg .msg-text,.chat-input,.form-input,.form-select{background:#051222db;border-color:#4989c652}.chat-msg .msg-text{color:#d9ecff;box-shadow:0 4px 10px #0000002e}.chat-msg.self .msg-text{color:#fff;background:linear-gradient(#3586de9e,#144d87b3);border-color:#97d3ff73}.quick-ask:hover,.btn-action:hover,.wf-task:hover,.char-card:hover,.model-card:hover{border-color:#84d7ffb8;transform:translateY(-1px)}.characters-grid,.sop-grid,.report-grid,.settings-grid,.workflow-board{gap:12px}@media (max-width:1280px){.stats-row{grid-template-columns:repeat(3,minmax(140px,1fr))}.ops-grid{grid-template-columns:1fr 1fr}.ops-panel:last-child{grid-column:1/-1}.cron-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-container{min-height:320px}}@media (max-width:900px){.topbar{margin-left:52px}.room-overlay-bubble{display:none}.stats-row{grid-template-columns:repeat(2,minmax(130px,1fr))}.ops-grid{grid-template-columns:1fr}.ops-panel:last-child{grid-column:auto}.cron-engine-board{grid-template-columns:1fr}.cron-pipeline,.cron-latest-row{grid-template-columns:repeat(2,minmax(0,1fr))}.room-container{min-height:260px}.agent-editor-layout{grid-template-columns:1fr}.agent-edit-panel{position:static}.agent-form-grid{grid-template-columns:1fr}}@media (max-width:480px){.stats-row,.cron-signal-grid,.cron-pipeline,.cron-latest-row{grid-template-columns:1fr}.cron-core{align-items:flex-start}.cron-core-ring{flex-basis:62px;width:62px;height:62px}.room-overlay-pill{padding:1px 5px;font-size:9px}}.topbar-services-group{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.btn-chat-toggle{font-family:var(--font-thai);cursor:pointer;color:#d9ecff;background:linear-gradient(#18426ce0,#081d35eb);border:1px solid #589de070;border-radius:7px;align-items:center;gap:6px;margin-right:8px;padding:6px 12px;font-size:12px;transition:all .15s;display:none;box-shadow:inset 0 1px #ffffff14,0 4px 10px #0000002e}.btn-chat-toggle.active{background:linear-gradient(180deg, var(--accent), var(--accent-hover))!important;color:#fff!important;border-color:var(--border-active)!important}@media (max-width:1100px){.btn-chat-toggle{display:flex}}@media (max-width:1024px){.topbar-service .svc-name,.topbar-service .svc-status{display:none}.topbar-service{gap:4px;padding:4px 8px}}@media (max-width:768px){.topbar-user .user-status,.topbar-logout .logout-text{display:none}.topbar-logout{justify-content:center;width:32px;height:32px;padding:6px;border-radius:50%!important}.btn-chat-toggle .chat-toggle-text{display:none}.btn-chat-toggle{justify-content:center;width:32px;height:32px;margin-right:4px;padding:6px;border-radius:50%!important}.room-container{width:100%;max-height:none!important}.chat-panel.mobile-open{width:100vw!important}}@media (max-width:580px){.topbar-services-group{display:none}}.content-layout{position:relative}.dashboard-home{flex-direction:column;gap:10px;min-height:100%;display:flex;position:relative}.dashboard-home .dashboard-header{z-index:46;pointer-events:auto;background:linear-gradient(#081b30e6,#030a14d6);border:1px solid #84d7ff61;border-radius:9px;width:min(390px,100% - 320px);margin:0;padding:9px 11px;position:absolute;top:12px;left:12px;box-shadow:0 12px 28px #00000052,inset 0 1px #ffffff14}.dashboard-home .page-header h1{font-size:clamp(17px,1.45vw,22px);line-height:1.12}.dashboard-home .page-subtitle{display:none}.dashboard-home .dashboard-header .page-label{letter-spacing:.18em;margin-bottom:3px;font-size:9px}.dashboard-home .dashboard-header .page-title-row{align-items:center;gap:8px}.dashboard-home .dashboard-header .badge-verified{border-radius:7px;padding:3px 8px;font-size:11px}.dashboard-home .stats-row{grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:0}.dashboard-home .stat-card{background:linear-gradient(#163e65d6,#07192ef0);min-height:64px;padding:10px 12px}.dashboard-home .stat-card .stat-value{font-size:clamp(18px,1.8vw,28px)}.map-stage{flex-direction:column;flex:1 0 auto;min-height:560px;display:flex;position:relative}.map-title{z-index:40;pointer-events:none;justify-content:flex-end;margin:0;position:absolute;top:14px;left:14px;right:14px}.map-title h3{display:none}.map-title h3,.map-status{pointer-events:auto;background:linear-gradient(#081b30e6,#030a14e0);border:1px solid #84d7ff61;border-radius:8px;padding:8px 11px;box-shadow:0 8px 20px #00000047,inset 0 1px #ffffff1a}.map-status{color:#fff6cf;font-family:var(--font-mono);text-transform:uppercase;align-items:center;gap:8px;font-size:14px;font-weight:900;display:flex}.map-status span{background:#ffffff0f;border:1px solid #ffffff24;border-radius:999px;padding:1px 8px}.camera-rail{z-index:41;pointer-events:auto;flex-wrap:wrap;gap:6px;max-width:none;display:flex;position:absolute;top:14px;left:calc(min(390px,100% - 320px) + 26px);right:150px}.camera-chip{color:#c7e7ff;min-height:31px;font-family:var(--font-mono);cursor:pointer;background:linear-gradient(#081b30e6,#030a14e0);border:1px solid #84d7ff5c;border-radius:7px;padding:6px 10px;font-size:11px;font-weight:900;box-shadow:0 7px 16px #0000003d,inset 0 1px #ffffff14}.camera-chip:hover,.camera-chip.active{color:#fff6cf;border-color:#ffe08ad1;box-shadow:0 0 18px #e8a31733,inset 0 1px #ffffff24}.room-container.immersive-map{aspect-ratio:16/9;background:#020813;border-color:#84d7ff6b;border-radius:10px;flex:1;width:100%;min-height:clamp(560px,100vh - 245px,850px);max-height:none;box-shadow:0 18px 50px #00000061,inset 0 0 0 1px #ffffff0f,0 0 34px #4aa7ff1f}.room-container.immersive-map .room-bg{filter:saturate(1.08)contrast(1.04)brightness(1.02);transform:scale(1.002)}.room-container.immersive-map .time-wash{z-index:2;pointer-events:none;mix-blend-mode:multiply;opacity:.08;transition:opacity 1.2s,background 1.2s;position:absolute;inset:0}.room-container.immersive-map.day .time-wash{opacity:.1;mix-blend-mode:screen;background:linear-gradient(#fff4d22e,#0000 55%)}.room-container.immersive-map.evening .time-wash{opacity:.22;background:linear-gradient(135deg,#f59e0b40,#3b82f62e)}.room-container.immersive-map.night .time-wash{opacity:.52;background:linear-gradient(#091434ad,#01071257)}.snow-layer{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.snow-layer span{left:var(--snow-x);width:var(--snow-size);height:var(--snow-size);animation:snow-fall var(--snow-duration) linear infinite;animation-delay:var(--snow-delay);opacity:.72;background:#f0f8ffeb;border-radius:50%;position:absolute;top:-10px;box-shadow:0 0 7px #bcdcffa6}.map-station-layer{z-index:24;pointer-events:none;position:absolute;inset:0}.map-station-sign{color:#fff6cf;text-align:center;text-shadow:0 2px #000000b8;background:linear-gradient(#141f2beb,#050c14f0),repeating-linear-gradient(90deg,#ffffff0a 0 1px,#0000 1px 4px);border:1px solid #ffe08aad;border-radius:5px;align-content:center;gap:1px;width:clamp(100px,8.8vw,142px);min-height:38px;padding:5px 10px 6px;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px #0000006b,0 10px 16px #00000038,inset 0 1px #ffffff24}.map-station-sign:before,.map-station-sign:after{content:"";background:#ffd76b;border-radius:50%;width:4px;height:4px;position:absolute;top:5px;box-shadow:0 0 8px #ffd76b94}.map-station-sign:before{left:7px}.map-station-sign:after{right:7px}.map-station-sign strong{text-overflow:ellipsis;white-space:nowrap;color:#fff8d8;font-family:var(--font-pixel);font-size:clamp(10px,.85vw,15px);font-weight:900;line-height:1.05;display:block;overflow:hidden}.map-station-sign strong span{color:#ffd76b}.map-station-sign small{text-overflow:ellipsis;white-space:nowrap;color:#7dd3fc;font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:clamp(7px,.55vw,10px);font-weight:900;display:block;overflow:hidden}.map-station-sign.blue{border-color:#7dd3fc94}.map-station-sign.cyan{border-color:#67e8f999}.map-station-sign.green{border-color:#86efac94}.map-station-sign.purple{border-color:#c4b5fd94}.map-station-sign.orange{border-color:#fdba7494}@keyframes snow-fall{0%{transform:translateY(-12px)}to{transform:translate(38px,calc(100vh + 120px))}}.room-container.immersive-map .room-overlay-pill{z-index:30;opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s,transform .18s;transform:translateY(4px)scale(.92)}.room-container.immersive-map:hover .room-overlay-pill,.room-container.immersive-map .room-overlay-pill.active{opacity:.9;visibility:visible;transform:translateY(0)scale(1)}.room-container.immersive-map .agent-runner{z-index:34}.agent-state-pip{background:var(--agent-color);width:8px;height:8px;box-shadow:0 0 10px var(--agent-color);border:1px solid #ffffffb3;border-radius:50%;position:absolute;bottom:17px;left:50%;transform:translate(20px)}.agent-runner.resting .agent-state-pip{background:#fbbf24;box-shadow:0 0 10px #fbbf24cc}.agent-runner.gaming .agent-state-pip,.agent-runner.music .agent-state-pip{background:#a78bfa;box-shadow:0 0 10px #a78bfacc}.agent-runner.blocked .agent-state-pip{background:#ef4444;box-shadow:0 0 10px #ef4444d9}.agent-runner.approval .agent-state-pip,.agent-runner.waiting .agent-state-pip{background:#f59e0b;box-shadow:0 0 13px #f59e0be6}.agent-runner.readonly .agent-state-pip{background:#67e8f9;box-shadow:0 0 13px #67e8f9cc}.agent-runner.important:before,.agent-runner.selected:before{content:"";border:1px solid color-mix(in srgb, var(--agent-color) 72%, white);width:52px;height:19px;box-shadow:0 0 18px color-mix(in srgb, var(--agent-color) 44%, transparent);opacity:.78;pointer-events:none;border-radius:50%;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.agent-runner.resting .agent-sprite{animation:2.4s ease-in-out infinite agent-rest}.agent-runner.gaming .agent-task-bubble,.agent-runner.music .agent-task-bubble,.agent-runner.resting .agent-task-bubble{background:linear-gradient(#483218f0,#0a1423f5);border-color:#fff6cfe0}.room-container.immersive-map .agent-task-bubble{opacity:0;visibility:hidden;max-width:clamp(78px,7vw,118px);padding:3px 7px 4px;font-size:clamp(7px,.56vw,9px);transition:opacity .18s,transform .18s,visibility .18s;transform:translate(-50%)translateY(-1px)scale(.96)}.room-container.immersive-map .agent-runner:hover .agent-task-bubble,.room-container.immersive-map .agent-runner.selected .agent-task-bubble,.room-container.immersive-map .agent-runner.important .agent-task-bubble,.room-container.immersive-map .agent-runner.blocked .agent-task-bubble,.room-container.immersive-map .agent-runner.approval .agent-task-bubble{opacity:1;visibility:visible;transform:translate(-50%)translateY(-7px)scale(1.03)}.room-container.immersive-map .agent-nameplate{opacity:.82;min-width:0;padding:2px 6px 3px;font-size:clamp(8px,.58vw,10px);transition:opacity .18s,transform .18s,border-color .18s;transform:translate(-50%)translateY(2px)}.room-container.immersive-map .agent-runner:not(.selected):not(:hover) .agent-nameplate{opacity:.42}.room-container.immersive-map .agent-runner:hover .agent-nameplate,.room-container.immersive-map .agent-runner.selected .agent-nameplate{opacity:1;transform:translate(-50%)translateY(0)}.agent-control-strip{grid-template-columns:minmax(220px,.72fr) minmax(360px,1.7fr) minmax(220px,.62fr);align-items:stretch;gap:10px;margin-top:10px;display:grid}.control-safety-board,.agent-roster-strip,.action-lock-strip{background:linear-gradient(#0b233dd1,#030c17e6);border:1px solid #84d7ff47;border-radius:10px;min-width:0;box-shadow:inset 0 1px #ffffff12,0 8px 22px #0000003d}.control-safety-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;display:grid}.safety-chip{background:#020a1561;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:8px;min-width:0;padding:7px 8px;display:flex}.safety-chip strong{color:#fff6cf;font-family:var(--font-pixel);font-size:17px;line-height:1}.safety-chip span{color:#e1f1ffc7;min-width:0;font-size:10px;font-weight:800;line-height:1.15}.safety-chip.online{border-color:#22c55e57}.safety-chip.approval{border-color:#f59e0b6b}.safety-chip.readonly{border-color:#67e8f957}.safety-chip.locked{border-color:#ef444461}.agent-roster-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px;display:grid}.roster-agent{color:#f6fbff;cursor:pointer;text-align:left;background:linear-gradient(#1234569e,#04101ed6);border:1px solid #84d7ff33;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;height:44px;padding:6px 7px;display:grid;overflow:hidden}.roster-agent:hover,.roster-agent.active{border-color:#fff6cfad;transform:translateY(-1px)}.roster-dot{border:1px solid #ffffffbf;border-radius:50%;width:9px;height:9px}.roster-main{flex-direction:column;gap:2px;min-width:0;display:flex}.roster-main strong{font-size:11px;font-weight:900;line-height:1}.roster-main small{color:#d2e7ffb8;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:9px;line-height:1.15;display:block;overflow:hidden}.roster-perm{color:#dbeafe;max-width:74px;font-family:var(--font-mono);white-space:nowrap;border:1px solid #ffffff29;border-radius:999px;padding:2px 5px;font-size:8px;font-weight:900;line-height:1.1}.roster-perm.owner{color:#fff6cf;border-color:#ffe08a73}.roster-perm.approval{color:#fde68a;border-color:#f59e0b6b}.roster-perm.readonly{color:#a5f3fc;border-color:#22d3ee66}.roster-perm.locked{color:#fecaca;border-color:#f871716b}.action-lock-strip{flex-direction:column;justify-content:center;gap:6px;padding:8px 10px;display:flex}.action-lock-strip span{color:#ffedd5d1;align-items:center;gap:6px;font-size:10px;font-weight:800;line-height:1.2;display:flex}@keyframes agent-rest{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(2px)}}.chat-panel{top:calc(var(--topbar-h) + 18px);width:min(420px,100vw - 32px);max-height:calc(100vh - var(--topbar-h) - 36px);z-index:220;opacity:0;pointer-events:none;background:linear-gradient(#0d2644f5,#030a14f5);border:1px solid #84d7ff6b;border-radius:12px;flex:none;transition:transform .24s,opacity .2s;position:fixed;bottom:18px;right:18px;overflow:hidden;transform:translate(calc(100% + 32px))scale(.98);box-shadow:0 24px 70px #00000080,inset 0 1px #ffffff14}.chat-panel.open{opacity:1;pointer-events:auto;flex-direction:column;display:flex;transform:translate(0)scale(1)}.chat-panel .agent-info-card{max-height:230px;overflow:auto}.chat-panel .chat-messages{min-height:0}.floating-chat-button,.btn-chat-toggle{display:inline-flex!important}.floating-chat-button{z-index:210;color:#fff;min-height:44px;font-family:var(--font-thai);cursor:pointer;background:linear-gradient(#317fcff5,#14487ef5);border:1px solid #84d7ff75;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:800;position:fixed;bottom:20px;right:20px;box-shadow:0 16px 34px #00000061,0 0 20px #3b82f633}.floating-chat-button:hover{transform:translateY(-2px)}@media (max-width:1280px){.dashboard-home .stats-row{grid-template-columns:repeat(3,minmax(140px,1fr))}.room-container.immersive-map{min-height:clamp(460px,100vh - 280px,760px)}}@media (min-width:901px){.agent-control-strip{grid-template-columns:minmax(210px,.66fr) minmax(420px,1.7fr) minmax(190px,.58fr)}.action-lock-strip{flex-flow:column}}@media (max-width:900px){.content-main{padding:56px 12px 12px}.dashboard-home .stats-row{grid-template-columns:repeat(2,minmax(130px,1fr))}.dashboard-home .dashboard-header{width:calc(100% - 96px);padding:8px 10px;top:8px;left:8px}.map-stage,.room-container.immersive-map{min-height:360px}.map-title{top:8px;left:8px;right:8px}.camera-rail{flex-wrap:nowrap;max-width:none;padding-bottom:2px;top:8px;left:8px;right:82px;overflow-x:auto}.camera-chip{flex:none;min-height:28px;padding:5px 8px;font-size:10px}.chat-panel{width:calc(100vw - 20px);max-height:calc(100vh - 68px);top:58px;bottom:10px;right:10px}.agent-control-strip{grid-template-columns:1fr}.action-lock-strip{flex-flow:wrap}.agent-roster-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.dashboard-home .stats-row{grid-template-columns:1fr}.dashboard-home .page-subtitle,.badge-verified{display:none}.dashboard-home .dashboard-header{width:calc(100% - 72px)}.dashboard-home .page-header .page-label{letter-spacing:1px;font-size:9px}.dashboard-home .page-header h1{font-size:16px}.map-status span:last-child{display:none}.camera-rail{right:56px}.room-container.immersive-map{min-height:300px}.room-container.immersive-map .room-overlay-pill,.room-container.immersive-map .agent-runner:not(.selected) .agent-task-bubble{display:none}.room-container.immersive-map .agent-runner:not(.selected):not(:hover) .agent-nameplate{opacity:0}.room-container.immersive-map .agent-sprite{transform:translate(-50%)scale(.82)}.room-container.immersive-map .agent-state-pip{bottom:20px}.control-safety-board,.agent-roster-strip{grid-template-columns:1fr}.action-lock-strip span{font-size:9px}.floating-chat-button span{display:none}.floating-chat-button{justify-content:center;width:48px;height:48px;padding:0}}
