*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:system-ui,-apple-system,sans-serif}.app-layout{flex-direction:column;height:100%;display:flex}.page-content{flex:1;overflow:hidden}.navbar{z-index:2100;background:#1a1a2e;border-bottom:1px solid #2a2a4a;flex-shrink:0;align-items:center;height:68px;padding:0 24px;display:flex;position:relative}.navbar-brand{color:#fff;align-items:center;gap:8px;margin-right:32px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.navbar-brand-icon{object-fit:cover;border-radius:50%;width:32px;height:32px;transform:scale(1.08)}.navbar-links{gap:4px;display:flex}.navbar-link{color:#888;border-radius:6px;padding:8px 16px;font-size:16px;text-decoration:none;transition:color .15s,background .15s}.navbar-link:hover{color:#e0e0e0;background:#16213e}.navbar-link.active{color:#fff;background:#1e2d4a}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;margin-left:auto;padding:4px;display:none}.hamburger-bar{background:#e0e0e0;border-radius:2px;width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.hamburger-bar.open:first-child{transform:translateY(7px)rotate(45deg)}.hamburger-bar.open:nth-child(2){opacity:0}.hamburger-bar.open:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu{z-index:2100;background:#1a1a2e;border-bottom:1px solid #2a2a4a;flex-direction:column;display:flex;position:fixed;top:56px;left:0;right:0}.mobile-menu-link{color:#aaa;border-bottom:1px solid #2a2a4a;padding:14px 20px;font-size:15px;text-decoration:none;transition:background .15s,color .15s}.mobile-menu-link:hover,.mobile-menu-link.active{color:#fff;background:#16213e}.navbar-user{margin-left:auto}.navbar-avatar-wrap{cursor:pointer;align-items:center;display:flex;position:relative}.navbar-avatar{border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:border-color .15s}.navbar-avatar:hover{border-color:#7c7cff}.navbar-dropdown-backdrop{z-index:2999;position:fixed;inset:0}.navbar-dropdown{z-index:3000;background:#1e1e3a;border:1px solid #2a2a4a;border-radius:10px;min-width:210px;padding:14px 16px 10px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #00000080}.navbar-dropdown-close{color:#555;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1;position:absolute;top:8px;right:10px}.navbar-dropdown-close:hover{color:#aaa}.navbar-dropdown-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.navbar-dropdown-email{color:#888;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.navbar-dropdown-divider{border:none;border-top:1px solid #2a2a4a;margin:10px 0}.navbar-dropdown-logout{color:#ff6b6b;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0;font-size:13px}.navbar-dropdown-logout:hover{color:#f44}@media (width<=640px){.navbar-links,.navbar-user{display:none}.hamburger{display:flex}}.realtime-map-page{height:100%;display:flex;position:relative}.sidebar{color:#e0e0e0;background:#1a1a2e;flex-shrink:0;width:320px;padding:20px;overflow-y:auto}.sidebar-toggle{z-index:1000;color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;display:none;position:absolute;top:12px;left:12px;box-shadow:0 2px 8px #00000080}@media (width<=640px){.sidebar-toggle{display:block}}.sidebar h2{color:#fff;margin-bottom:4px;font-size:20px}.device-count{color:#888;margin-bottom:16px;font-size:13px}.device-list{list-style:none}.device-item{cursor:pointer;background:#16213e;border:1px solid #0000;border-radius:8px;margin-bottom:8px;padding:12px;transition:border-color .15s}.device-item:hover{border-color:#3b82f6}.device-item.selected{background:#1e2d4a;border-color:#3b82f6}.device-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-dot.flying{background:#22c55e}.status-dot.online{background:#3b82f6}.status-dot.hovering{background:#f59e0b}.status-dot.landing{background:#f97316}.status-dot.offline{background:#6b7280}.device-meta{color:#888;justify-content:space-between;font-size:12px;display:flex}.device-detail{color:#aaa;border-top:1px solid #2a2a4a;margin-top:8px;padding-top:8px;font-size:12px;line-height:1.8}.map-container{flex:1;height:100%}.classroom-map{background:#08111f;width:100%;height:100%;min-height:280px;position:relative;overflow:hidden}.classroom-map svg{cursor:default;width:100%;height:100%;display:block}.classroom-map svg[aria-label="MD402 classroom map"]{touch-action:manipulation}.room-shell{fill:#111827;stroke:#475569;stroke-width:8px}.room-grid line{stroke:#1f3347;stroke-width:1.5px}.fingerprint-cell{fill:#1e293b;stroke:#334155;stroke-width:2px;opacity:.68}.fingerprint-cell.pending{fill:#92400e;stroke:#d97706}.fingerprint-cell.done{fill:#166534;stroke:#22c55e}.room-fixtures rect{fill:#263247;stroke:#52627a;stroke-width:3px;opacity:.8}.room-fixtures .window-wall{fill:#164e63;stroke:#38bdf8;opacity:.45}.uav-track{fill:none;stroke:#38bdf8;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;opacity:.35}.uav-track.selected{stroke:#f59e0b;opacity:.85}.mission-route,.planning-route{fill:none;stroke:#a78bfa;stroke-width:5px;stroke-dasharray:12 10;stroke-linecap:round;stroke-linejoin:round}.planning-route{stroke:#f59e0b}.waypoint circle,.planning-waypoint circle{fill:#312e81;stroke:#c4b5fd;stroke-width:5px}.waypoint.reached circle{fill:#14532d;stroke:#4ade80}.planning-waypoint circle{fill:#78350f;stroke:#fbbf24}.waypoint text,.planning-waypoint text{fill:#fff;text-anchor:middle;pointer-events:none;font-size:24px;font-weight:800}.uav-marker{cursor:pointer;filter:drop-shadow(0 4px 8px #00000073)}.uav-marker circle:first-child{stroke:#f8fafc;stroke-width:4px}.uav-marker.selected circle:first-child{stroke:#fbbf24;stroke-width:6px}.uav-heading{fill:#f8fafc;stroke:#0f172a;stroke-width:2px}.uav-core{fill:#0f172a;stroke:#fff;stroke-width:2px}.uav-marker text{fill:#e2e8f0;text-anchor:middle;paint-order:stroke;stroke:#08111f;stroke-width:5px;stroke-linejoin:round;font-size:26px;font-weight:700}.classroom-scale{color:#cbd5e1;background:#08111fe0;border:1px solid #334155;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:12px;left:12px}.classroom-map.compact .classroom-scale{display:none}.analytics-page,.fleet-page,.security-page,.logs-page{color:#e0e0e0;background:#0f0f23;height:100%;padding:24px;overflow-y:auto}.page-subtitle{color:#888;margin-bottom:20px;font-size:13px}.analytics-page{padding:0;display:flex}.analytics-sidebar{background:#1a1a2e;border-right:1px solid #2a2a4a;flex-shrink:0;width:280px;padding:20px;overflow-y:auto}.analytics-sidebar h3{color:#fff;margin-bottom:16px;font-size:16px}.analytics-charts{flex:1;padding:24px;overflow-y:auto}.analytics-placeholder{color:#888;justify-content:center;align-items:center;height:100%;font-size:16px;display:flex}.chart-card{background:#16213e;border:1px solid #2a2a4a;border-radius:8px;margin-bottom:20px;padding:20px}.chart-card h3{color:#fff;margin-bottom:16px;font-size:15px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;margin-top:20px;display:grid}.card{background:#16213e;border:1px solid #2a2a4a;border-radius:8px;padding:20px}.card h3{color:#fff;margin-bottom:12px;font-size:15px}.card-desc{color:#aaa;margin-bottom:12px;font-size:13px;line-height:1.6}.card-desc code{color:#e0e0e0;background:#1e2d4a;border-radius:4px;padding:2px 6px;font-size:12px}.input-group{flex-direction:column;gap:12px;display:flex}.form-input{color:#e0e0e0;background:#1e2d4a;border:1px solid #2a2a4a;border-radius:6px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.form-input:focus{border-color:#3b82f6}.table-input{color:#e0e0e0;background:#1e2d4a;border:1px solid #3b82f6;border-radius:4px;outline:none;width:100%;padding:4px 8px;font-size:13px}.btn{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;transition:opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{color:#e0e0e0;background:#2a2a4a}.btn-secondary:hover:not(:disabled){background:#3a3a5a}.action-buttons{gap:8px;display:flex}.table-wrapper{margin-top:16px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #2a2a4a;padding:10px 12px}.data-table th{color:#aaa;text-transform:uppercase;letter-spacing:.5px;background:#1a1a2e;font-size:12px;font-weight:600}.data-table tbody tr{background:#16213e;transition:background .1s}.data-table tbody tr:hover{background:#1e2d4a}.uuid-cell{color:#888;text-overflow:ellipsis;max-width:180px;font-family:monospace;font-size:12px;overflow:hidden}.path-cell{font-family:monospace;font-size:12px}.status-badge{border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.status-badge.flying{color:#22c55e;background:#22c55e20}.status-badge.online{color:#3b82f6;background:#3b82f620}.status-badge.hovering{color:#f59e0b;background:#f59e0b20}.status-badge.landing{color:#f97316;background:#f9731620}.status-badge.offline{color:#6b7280;background:#6b728020}.status-code{font-family:monospace;font-weight:600}.status-2xx{color:#22c55e}.status-4xx{color:#f59e0b}.status-5xx{color:#ef4444}.method-badge{border-radius:4px;padding:2px 8px;font-family:monospace;font-size:11px;font-weight:700;display:inline-block}.method-get{color:#3b82f6;background:#3b82f620}.method-post{color:#22c55e;background:#22c55e20}.method-put{color:#f59e0b;background:#f59e0b20}.method-delete{color:#ef4444;background:#ef444420}.verify-result{margin-top:8px;font-size:13px;font-weight:500}.verify-result.success{color:#22c55e}.verify-result.error{color:#ef4444}.health-status{align-items:center;gap:10px;font-size:14px;display:flex}.health-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.health-dot.ok{background:#22c55e}.health-dot.error{background:#ef4444}.health-dot.unknown{background:#6b7280}.info-badge{color:#22c55e;background:#22c55e20;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-block}.code-block{color:#e0e0e0;background:#0f0f23;border:1px solid #2a2a4a;border-radius:6px;padding:12px;font-family:monospace;font-size:13px;overflow-x:auto}.logs-controls{align-items:center;gap:16px;margin-bottom:16px;display:flex}.toggle-label{color:#aaa;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.toggle-label input[type=checkbox]{accent-color:#3b82f6}.log-count{color:#888;margin-left:auto;font-size:13px}.error-banner{color:#ef4444;background:#ef444420;border-radius:6px;margin-bottom:16px;padding:10px 16px;font-size:13px}.fleet-page{padding-top:18px}.fleet-tab-bar{border-bottom:1px solid #2a2a4a;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.fleet-tabs{gap:4px;display:flex}.fleet-tab{color:#888;cursor:pointer;text-transform:capitalize;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 20px;font-size:16px;font-weight:400}.fleet-tab.active{color:#7c7cff;border-bottom-color:#7c7cff;font-weight:600}.create-form{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.create-form .input-group{flex-direction:column;gap:4px;display:flex}.create-form label{color:#888;font-size:12px}.create-form .action-buttons{grid-column:1/-1}.api-key-banner{color:#10b981;background:#10b98120;border:1px solid #10b98140;border-radius:8px;margin-bottom:20px;padding:16px}.api-key-display{background:#0a0a1a;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.api-key-display code{color:#e2e8f0;word-break:break-all;flex:1;font-size:13px}.btn-sm{padding:4px 10px;font-size:12px}.btn-danger{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:6px 12px;font-size:13px}.btn-danger:hover{background:#dc2626}.fleet-page .page-subtitle,.fleet-page .api-key-display code{font-size:15px}.fleet-page .form-input{font-size:16px}.fleet-page .btn{font-size:15px}.fleet-page .btn-sm{font-size:14px}.fleet-page .btn-danger{font-size:15px}.fleet-page .create-form label,.fleet-page .data-table th,.fleet-page .uuid-cell,.fleet-page .path-cell{font-size:14px}.fleet-page .data-table{font-size:15px}.fleet-page .status-badge{padding:3px 9px;font-size:14px}.mission-workspace{flex-direction:column;gap:12px;min-height:0;display:flex}.mission-control-field{flex-direction:column;gap:5px;min-width:0;display:flex}.mission-control-field label{color:#94a3b8;font-size:14px;font-weight:600}.mission-command-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mission-refresh-btn{min-width:0}.mission-layout{grid-template-columns:minmax(560px,1fr) 440px;align-items:start;gap:12px;min-height:0;display:grid;position:relative}.mission-error{width:100%;margin-bottom:0}.mission-panel{background:#13132b;border:1px solid #2a2a4a;border-radius:8px;min-width:0;padding:12px;overflow:hidden}.mission-sidebar{grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:12px;max-height:none;display:grid;overflow:visible}.mission-sidebar-section{flex-direction:column;gap:10px;min-width:0;display:flex}.mission-panel h3,.mission-sidebar h3,.mission-panel h4{color:#fff;margin:0;font-size:16px}.mission-planner-card{background:#0f172a;border:1px solid #23314f;border-radius:8px;flex-direction:column;gap:10px;padding:11px;display:flex}.mission-device-card{color:#94a3b8;background:#0f172a;border-radius:8px;flex-direction:column;gap:5px;padding:11px;font-size:14px;line-height:1.45;display:flex}.mission-device-card b{color:#cbd5e1;font-weight:700}.mission-device-card strong{color:#e2e8f0;font-size:16px}.mission-list,.mission-small-list,.mission-event-list{flex-direction:column;gap:7px;display:flex}.mission-list-item{color:#e2e8f0;text-align:left;cursor:pointer;background:#16213e;border:1px solid #2a2a4a;border-radius:7px;flex-direction:column;gap:4px;width:100%;padding:10px 11px;font-size:15px;display:flex}.mission-list-item.selected{background:#1e2d4a;border-color:#7c7cff}.mission-list-item strong{font-size:16px}.mission-list-item span,.mission-muted,.mission-small-list,.mission-event-list{color:#94a3b8;font-size:14px}.mission-map-panel{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:calc(100vh - 175px);padding:8px;display:flex}.mission-map-shell{justify-content:center;width:100%;display:flex;position:relative}.mission-map-expand-btn{z-index:2;color:#e2e8f0;cursor:pointer;background:#0f172ae6;border:1px solid #475569;border-radius:6px;min-width:72px;padding:6px 10px;font-size:14px;font-weight:700;position:absolute;top:10px;right:10px}.mission-map-expand-btn:hover{background:#1e2d4a;border-color:#7c7cff}.mission-map{border:1px solid #334155;border-radius:8px;place-self:center;width:min(100%,410px);height:clamp(520px,100vh - 205px,700px);overflow:hidden}.mission-map .classroom-map{min-height:0}.mission-map-modal{z-index:3200;background:#090f1d;border:1px solid #475569;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:10px;padding:12px;display:grid;position:fixed;inset:14px;box-shadow:0 18px 50px #000000a6}.mission-map-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.mission-map-modal-title{flex-direction:column;gap:2px;min-width:0;display:flex}.mission-map-modal-title strong{color:#fff;font-size:18px}.mission-map-modal-title span{color:#94a3b8;font-size:14px}.mission-map-modal-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.mission-map-close-btn{color:#e2e8f0;cursor:pointer;background:#111827;border:1px solid #475569;border-radius:6px;width:36px;height:36px;font-size:16px;font-weight:800}.mission-map-close-btn:hover{color:#fff;background:#7f1d1d;border-color:#ef4444}.mission-map-modal-body{justify-content:center;align-items:center;min-height:0;display:flex}.mission-map-modal-body .classroom-map{border:1px solid #334155;border-radius:8px;width:min(78vw,760px);height:min(82vh,920px);min-height:0}.draft-waypoints{color:#cbd5e1;flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;font-size:14px;display:flex}.draft-waypoint-row{color:#fbbf24;cursor:pointer;background:#78350f;border:1px solid #92400e;border-radius:999px;padding:5px 9px;font-size:13px}.draft-waypoint-row.none{color:#cbd5e1;background:#1e293b;border-color:#475569}.planning-waypoint.no-photo circle{fill:#1e293b;stroke:#94a3b8}.mission-detail-header{justify-content:space-between;align-items:center;gap:8px;font-size:16px;display:flex}.mission-detail-panel{flex-direction:column;gap:10px;max-height:none;display:flex;overflow-y:visible}.mission-actions{flex-wrap:wrap}.mission-photo-section,.mission-log-block{flex-direction:column;gap:8px;min-height:0;display:flex}.mission-photo-title,.mission-photo-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.mission-photo-title h4{margin:0}.mission-photo-title span,.mission-photo-nav span{color:#94a3b8;font-size:12px}.mission-photo-frame{background:#0f172a;border:1px solid #334155;border-radius:8px;justify-content:center;align-items:center;width:100%;height:170px;min-height:170px;display:flex;overflow:hidden}.mission-photo{object-fit:contain;background:0 0;width:100%;height:100%}.mission-photo-placeholder{color:#94a3b8;text-align:center;padding:14px;font-size:14px}.mission-log-block{background:#0f172a;border:1px solid #23314f;border-radius:8px;margin-top:auto;padding:10px}.mission-log-toggle{color:#fff;cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:0;font-size:16px;font-weight:700;display:flex}.mission-log-toggle span:last-child{color:#93c5fd;background:#1e2d4a;border-radius:999px;flex:none;padding:3px 8px;font-size:14px;font-weight:700}.mission-log-toggle:hover span:first-child{color:#93c5fd}.mission-event-list{scrollbar-width:thin;scrollbar-color:#475569 transparent;max-height:150px;padding-right:4px;overflow-y:auto}.mission-event-list::-webkit-scrollbar{width:7px}.mission-event-list::-webkit-scrollbar-thumb{background:#475569;border-radius:999px}.mission-event-list div{border-bottom:1px solid #2a2a4a;justify-content:space-between;gap:8px;padding:6px 0;display:flex}.status-badge.draft{color:#93c5fd;background:#3b82f620}.status-badge.active{color:#22c55e;background:#22c55e20}.status-badge.paused{color:#f59e0b;background:#f59e0b20}.status-badge.complete{color:#2dd4bf;background:#14b8a620}.status-badge.cancelled{color:#9ca3af;background:#6b728020}.status-dot.active{background-color:#22c55e}@media (width<=1100px){.mission-command-actions{grid-template-columns:1fr 1fr}.mission-layout,.mission-sidebar{grid-template-columns:1fr}.mission-sidebar,.mission-detail-panel{max-height:none}.mission-map{width:min(100%,390px);height:580px}.mission-map-modal{inset:8px}.mission-map-modal-header{flex-direction:column;align-items:stretch}.mission-map-modal-actions{justify-content:flex-start}.mission-map-modal-body .classroom-map{width:min(100%,390px);height:min(74vh,680px)}}.security-list{margin-top:8px;padding:0;list-style:none}.security-list li{color:#aaa;padding:4px 0;font-size:13px}.security-list code{color:#60a5fa}.config-page-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.config-page-header h2{margin-bottom:4px}.config-layout{gap:20px;height:calc(100vh - 140px);display:flex}.config-fleet-panel{background:#13132b;border:1px solid #2a2a4a;border-radius:10px;flex-shrink:0;width:320px;padding:14px;overflow-y:auto}.config-fleet-panel h3{color:#fff;margin:0;font-size:15px}.config-fleet-toolbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.config-selected-count{color:#3b82f6;margin-bottom:10px;font-size:12px}.config-device-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;margin-bottom:4px;padding:8px 10px;transition:background .15s;display:flex}.config-device-item:hover{background:#1e1e3e}.config-device-item.selected{background:#1e2d4a}.config-device-item.detail-active{background:#1e2d4a;border:1px solid #3b82f6}.config-device-name{color:#e0e0e0;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.config-device-uuid{color:#666;font-size:11px}.config-content{flex-direction:column;flex:1;min-width:0;display:flex}.config-tabs{border-bottom:1px solid #2a2a4a;flex-shrink:0;margin-bottom:12px;display:flex}.config-tab{color:#888;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 20px;font-size:14px;font-weight:400;transition:color .15s,border-color .15s}.config-tab.active{color:#fff;background:#1e2d4a;border-bottom:2px solid #3b82f6;font-weight:600}.config-tab-body{flex:1;overflow-y:auto}.badge-active{color:#6ee7b7;text-transform:uppercase;background:#065f46;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.badge-factory{color:#fcd34d;text-transform:uppercase;background:#92400e;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.badge-action{color:#93c5fd;background:#1e3a5f;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-action.danger{color:#fca5a5;background:#7f1d1d}.batch-msg{color:#93c5fd;background:#1e3a5f;border-radius:6px;margin-bottom:10px;padding:6px 12px;font-size:13px}.fw-status-grid{flex-wrap:wrap;gap:24px;margin-top:8px;display:flex}.fw-status-item .label{color:#888;font-size:12px}.fw-status-item .value{color:#fff;font-size:16px;font-weight:600}.fw-status-item .value.pending{color:#fbbf24}.fw-status-item .value.ok{color:#6ee7b7}.fw-form-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.fw-form-grid .full{grid-column:1/-1}.fw-form-grid label{color:#aaa;margin-bottom:4px;font-size:12px;display:block}.config-json-preview{color:#a5b4fc;background:#0d0d1a;border-radius:8px;max-height:160px;margin-top:8px;padding:12px;font-family:monospace;font-size:12px;overflow:auto}.config-json-expand{color:#a5b4fc;background:#0d0d1a;max-height:180px;margin:0;padding:12px;font-family:monospace;font-size:12px;overflow:auto}.btn-outline{color:#3b82f6;cursor:pointer;background:0 0;border:1px solid #3b82f6;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s}.btn-outline:hover:not(:disabled){background:#3b82f620}.btn-outline:disabled{opacity:.5;cursor:not-allowed}
