/* ========================================== */
        /* INTEGRA HUB 科幻工業風基礎變數             */
        /* ========================================== */
        :root {
            --bg-base: #050505; --bg-panel: #111111; --bg-panel-hover: #1a1a1a;
            --text-main: #ffffff; --text-muted: #999999;
            --primary: #3b82f6; --success: #00ff55; --warning: #ffb800; --danger: #fc3d21; --critical: #dc2626;
            --border-color: #333333; --sidebar-width: 260px;
            --control-bg:#000000; --track-bg:#000000; --surface-soft:rgba(255,255,255,0.02);
            --surface-elev:#111111; --surface-deep:#050505; --chip-bg:#222222;
            --terminal-bg:#000000; --terminal-text:#00ff55;
            --font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
            --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Courier, monospace;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; font-family: var(--font-sans); }
        body { background-color: var(--bg-base); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; border-top: 4px solid var(--primary); }
        
        ::-webkit-scrollbar { width: 6px; height: 6px; }
        ::-webkit-scrollbar-track { background: transparent; }
        ::-webkit-scrollbar-thumb { background: #444; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: var(--primary); }

        /* ====== 基礎 UI 元件 ====== */
        .btn { padding: 10px 18px; cursor: pointer; border: none; font-size: 12px; font-family: var(--font-mono); font-weight: bold; text-transform: uppercase; transition: 0.2s; border-radius: 2px; }
        .btn-outline { background: transparent; border: 1px solid var(--border-color); color: var(--text-main); }
        .btn-outline:hover { background: rgba(255,255,255,0.05); border-color: var(--text-main); }
        .btn-primary { background: var(--text-main); color: #000; border: 1px solid var(--text-main); }
        .btn-primary:hover { background: transparent; color: var(--text-main); }
        .btn-danger { background: transparent; border: 1px solid var(--danger); color: var(--danger); }
        .btn-danger:hover { background: var(--danger); color: white; }
        .btn-small { padding: 6px 12px; font-size: 11px; }
        
        input, select, textarea { background-color: var(--control-bg); color: var(--primary); border: 1px solid var(--border-color); padding: 12px; font-family: var(--font-mono); width: 100%; outline: none; font-size: 13px; border-radius: 2px; transition: border-color 0.2s; }
        textarea { resize: vertical; min-height: 80px; }
        input:focus, select:focus, textarea:focus { border-color: var(--text-main); box-shadow: 0 0 5px rgba(255,255,255,0.1); }
        input:disabled, select:disabled { opacity: 0.5; cursor: not-allowed; border-style: dashed; color: var(--text-muted); }
        input[type="file"] { padding: 8px; color: var(--text-main); font-size: 12px; }
        select option { background-color: var(--control-bg); color: var(--text-main); }
        
        .form-group { margin-bottom: 20px; }
        .form-label { display: block; color: var(--text-muted); font-size: 11px; margin-bottom: 8px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.5px; }
        .form-row { display: flex; gap: 15px; margin-bottom: 20px; align-items: flex-end; flex-wrap: wrap; }
        .form-col { flex: 1; min-width: 150px; }
        .section-title { font-size: 12px; color: var(--text-muted); border-bottom: 1px solid var(--border-color); padding-bottom: 8px; margin-bottom: 15px; margin-top: 25px; font-family: var(--font-mono); text-transform: uppercase; }

        /* ====== 版面佈局 ====== */
        .sidebar { width: var(--sidebar-width); background-color: var(--bg-panel); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; z-index: 10; }
        .logo-area { padding: 20px; font-size: 16px; color: var(--primary); font-family: var(--font-mono); font-weight: bold; border-bottom: 1px solid var(--border-color); letter-spacing: 1px; }
        .nav-menu { list-style: none; flex-grow: 1; overflow-y: auto; padding: 10px 0; }
        .nav-item { padding: 16px 20px; cursor: pointer; color: var(--text-muted); font-size: 12px; font-family: var(--font-mono); text-transform: uppercase; transition: 0.2s; display: flex; align-items: center; gap: 10px; font-weight: bold; }
        .nav-item:hover, .nav-item.active { background-color: var(--bg-panel-hover); color: var(--text-main); border-left: 3px solid var(--primary); }
        .user-profile { padding: 20px; border-top: 1px solid var(--border-color); font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }

        .main-content { flex-grow: 1; display: flex; flex-direction: column; overflow: hidden; position: relative; background-image: linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px); background-size: 20px 20px; }
        .topbar { height: 60px; background-color: rgba(17, 17, 17, 0.9); backdrop-filter: blur(5px); border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; padding: 0 25px; z-index: 5; font-family: var(--font-mono); font-size: 12px; }
        
        .view-container { display: none; height: calc(100vh - 60px); overflow-y: auto; padding: 25px; }
        .view-container.active { display: block; }
        #view-dashboard.active, #view-datalink.active { display: grid; }

        /* ====== 專案與卡片面板 ====== */
        .panel { background: var(--bg-panel); border: 1px solid var(--border-color); padding: 25px; margin-bottom: 25px; display: flex; flex-direction: column; border-radius: 2px; }
        .panel-header { font-size: 14px; font-family: var(--font-mono); margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid var(--border-color); color: var(--text-main); display: flex; justify-content: space-between; align-items: center; text-transform: uppercase; font-weight: bold;}
        .dashboard-layout { grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; gap: 25px; }
        
        /* OVERLAY 與 MODAL */
        .overlay { display: none; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(5px); z-index: 1000; justify-content: center; align-items: center; padding: 20px; }
        .overlay.active { display: flex; }
        #modal-view-details, #modal-edit-icd { z-index: 1100; } 
        
        .modal-box { background: var(--bg-panel); border: 1px solid var(--border-color); border-top: 3px solid var(--primary); padding: 30px; width: 100%; max-width: 650px; max-height: 90vh; overflow-y: auto; font-family: var(--font-mono); box-shadow: 0 10px 40px rgba(0,0,0,0.8); }
        .modal-box.danger-modal { border-top-color: var(--danger); }
        
        /* GATEWAY 卡片狀態控制 */
        .project-card-gw { border: 1px solid var(--border-color); padding: 20px; margin-bottom: 15px; background: rgba(255,255,255,0.02); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px; border-radius: 2px; transition: 0.2s; cursor: pointer; }
        .mode-enter .project-card-gw { border-left: 3px solid var(--primary); }
        .mode-enter .project-card-gw:hover { border-color: var(--primary); background: rgba(59, 130, 246, 0.05); }
        .mode-members .project-card-gw { border-left: 3px solid var(--warning); }
        .mode-members .project-card-gw:hover { border-color: var(--warning); background: rgba(255, 184, 0, 0.05); }
        .mode-delete .project-card-gw { border-left: 3px solid var(--danger); }
        .mode-delete .project-card-gw:hover { border-color: var(--danger); background: rgba(252, 61, 33, 0.05); }
        
        /* Admin Mode Toggles */
        .admin-mode-toggles { display: flex; gap: 8px; margin-top: 5px; }
        .mode-toggle-btn { padding: 4px 10px; font-size: 10px; font-family: var(--font-mono); cursor: pointer; border: 1px solid var(--border-color); background: transparent; color: var(--text-muted); transition: 0.2s; }
        .mode-toggle-btn:hover { background: rgba(255,255,255,0.1); color: var(--text-main); }
        .mode-toggle-btn.active-enter { background: var(--primary); color: #000; border-color: var(--primary); }
        .mode-toggle-btn.active-members { background: var(--warning); color: #000; border-color: var(--warning); }
        .mode-toggle-btn.active-delete { background: var(--danger); color: #fff; border-color: var(--danger); }

        /* ====== VIEW 詳細資料的專屬區塊排版 ====== */
        .detail-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
        .detail-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 15px; margin-bottom: 15px; }
        .detail-box { border: 1px solid var(--border-color); padding: 15px; background: rgba(255,255,255,0.02); border-radius: 2px; }
        .detail-label { font-size: 10px; color: var(--text-muted); font-family: var(--font-mono); text-transform: uppercase; margin-bottom: 8px; letter-spacing: 1px; }
        .detail-val { font-size: 14px; font-weight: bold; color: var(--text-main); font-family: var(--font-sans); }
        .detail-val.mono { font-family: var(--font-mono); font-size: 13px; }
        .detail-text { font-size: 13px; line-height: 1.6; white-space: pre-wrap; color: var(--text-main); font-family: var(--font-sans); }

        /* ====== 預算長條圖 (SWaP-C+) ====== */
        .budget-item { margin-bottom: 25px; }
        .budget-meta { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 12px; font-family: var(--font-mono); color: var(--text-muted); }
        .budget-bar-wrapper { background-color: var(--track-bg); height: 12px; border: 1px solid var(--border-color); position: relative; overflow: hidden; border-radius: 4px;}
        .budget-fill { height: 100%; transition: width 0.8s ease-out, background-color 0.5s; }
        .margin-line { position: absolute; top: 0; bottom: 0; width: 2px; background-color: white; z-index: 10; box-shadow: 0 0 5px white; }

        /* ====== N-Squared 矩陣 ====== */
        .matrix-container { display: grid; gap: 1px; background: var(--border-color); border: 1px solid var(--border-color); border-radius: 6px; overflow: hidden;}
        .matrix-cell { padding: 12px; text-align: center; font-size: 12px; background: var(--bg-panel); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 80px; font-family: var(--font-mono); }
        .matrix-header { background: var(--surface-deep); color: var(--text-muted); font-weight: bold; }
        .matrix-self { background: var(--surface-soft); color: var(--text-muted); font-style: italic; }
        .matrix-interact { background: var(--surface-elev); cursor: pointer; transition: 0.2s; border: 1px solid transparent; }
        .matrix-interact:hover { background: var(--chip-bg); border-color: var(--primary); box-shadow: inset 0 0 15px rgba(59,130,246,0.1); }
        .matrix-icd-tag { background: var(--control-bg); color: var(--primary); font-size: 11px; padding: 4px 6px; border: 1px solid var(--border-color); margin-top: 4px; border-left: 3px solid var(--primary); word-break: break-word; max-width: 100%; border-radius: 4px;}
        .matrix-empty { color: var(--text-muted); opacity: 0.6; font-size: 11px; }
        .matrix-empty:hover { color: var(--primary); opacity: 1; }
        
        .hover-highlight:hover { background: rgba(59, 130, 246, 0.05) !important; border-color: var(--primary) !important; box-shadow: 0 4px 10px rgba(0,0,0,0.3); transform: translateY(-1px); }

        /* ====== 表格與 Kanban ====== */
        table { width: 100%; border-collapse: collapse; text-align: left; font-family: var(--font-mono); font-size: 13px; }
        th, td { padding: 15px; border-bottom: 1px solid var(--border-color); }
        th { color: var(--text-muted); text-transform: uppercase; font-weight: bold;}
        
        .badge { padding: 4px 8px; font-size: 11px; border: 1px solid var(--border-color); display: inline-block; border-radius: 4px; font-weight: bold; }
        .badge-draft { color: var(--text-muted); }
        .badge-review { color: var(--warning); border-color: var(--warning); }
        .badge-baselined { color: var(--success); border-color: var(--success); }

        .checkbox-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-bottom: 25px; }
        .checkbox-item { display: flex; align-items: center; gap: 10px; font-size: 13px; font-family: var(--font-mono); color: var(--text-main); background: var(--control-bg); padding: 12px; border: 1px solid var(--border-color); cursor: pointer; border-radius: 4px; }

        .kanban-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; height: 100%; }
        .kanban-col { background: var(--surface-soft); padding: 15px; border: 1px dashed var(--border-color); display: flex; flex-direction: column; border-radius: 6px; }
        .card-item { padding: 18px; border: 1px solid var(--border-color); margin-bottom: 15px; background: var(--bg-panel); font-family: var(--font-sans); border-radius: 6px; box-shadow: 0 2px 5px rgba(0,0,0,0.5);}
        .urgency-low { border-left: 4px solid var(--text-muted); }
        .urgency-normal { border-left: 4px solid var(--primary); }
        .urgency-high { border-left: 4px solid var(--warning); }
        .urgency-critical { border-left: 4px solid var(--critical); background: rgba(220, 38, 38, 0.1); animation: pulse 2s infinite; }
        @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(220,38,38,0.4); } 70% { box-shadow: 0 0 0 4px rgba(220,38,38,0); } 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); } }

        .tag-dept { background: var(--chip-bg); color: var(--text-main); padding: 4px 8px; font-size: 11px; border-radius: 12px; font-family: var(--font-mono); margin-right: 5px; margin-bottom: 5px; display: inline-block; border: 1px solid var(--border-color); }
        .override-log { background: rgba(220, 38, 38, 0.1); border-left: 3px solid var(--danger); padding: 10px 12px; margin-top: 10px; font-size: 11px; color: var(--danger); font-family: var(--font-mono); font-weight: bold; text-transform: uppercase; line-height: 1.4; border-radius: 0 4px 4px 0;}

        /* ====== 手機版 RWD ====== */
        @media (max-width: 768px) {
            body { flex-direction: column; border-top: none; }
            .sidebar { width: 100%; height: 65px; flex-direction: row; border-right: none; border-bottom: 1px solid var(--border-color); border-top: 1px solid var(--border-color); order: 3; z-index: 100; position: fixed; bottom: 0; background: var(--control-bg); }
            .logo-area, .user-profile { display: none; }
            .nav-menu { display: flex; flex-direction: row; width: 100%; padding: 0; overflow-x: auto; white-space: nowrap; margin: 0; }
            .nav-item { flex: 1; justify-content: center; padding: 12px; font-size: 12px; border-left: none; border-bottom: 3px solid transparent; }
            .nav-item.active { border-left: none; border-bottom: 3px solid var(--primary); }
            .main-content { order: 2; height: calc(100vh - 130px); }
            .view-container { height: 100%; padding: 15px; }
            .dashboard-layout { display: flex !important; flex-direction: column; }
            .matrix-container { overflow-x: auto; }
            table { display: block; overflow-x: auto; white-space: nowrap; }
            .kanban-board { display: flex; flex-direction: column; }
            .modal-box { padding: 20px; }
            .detail-grid-2, .detail-grid-3 { grid-template-columns: 1fr; }
        }
    

/* ==========================================================
   INTEGRA HUB V4 — NSASRC Engineering Control Interface
   Evolution layer: preserve core tools, replace application shell
   ========================================================== */
:root{
  --ih-top-h:62px;
  --ih-bottom-h:70px;
  --ih-worktabs-h:58px;
  --ih-grid:rgba(255,255,255,.025);
  --ih-panel:#0e1012;
  --ih-panel-2:#13161a;
  --ih-accent:#71d7ff;
}
html,body{width:100%;height:100%;}
body{display:block;height:100vh;overflow:hidden;border-top:0;background:var(--bg-base);padding:0 0 var(--ih-bottom-h) 0;}
body.theme-black{--bg-base:#000;--bg-panel:#070707;--ih-panel:#050505;--ih-panel-2:#090909;--border-color:#242424;}
body.theme-light{--bg-base:#eef1f3;--bg-panel:#f8fafb;--ih-panel:#fff;--ih-panel-2:#f3f5f7;--text-main:#111820;--text-muted:#607080;--border-color:#cfd6dc;--primary:#006da8;--success:#0a7d43;--warning:#9a6500;--danger:#b62e22;--ih-grid:rgba(0,0,0,.035);}
.ih-topbar{position:fixed;top:0;left:0;right:0;height:var(--ih-top-h);z-index:850;background:rgba(8,10,12,.96);border-bottom:1px solid var(--border-color);padding:0 18px;display:flex;align-items:center;justify-content:space-between;backdrop-filter:blur(12px);}
body.theme-light .ih-topbar{background:rgba(248,250,251,.96);}
.ih-brand-block{min-width:0}.ih-brand{font-family:var(--font-mono);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--text-main)}
.ih-context{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);letter-spacing:.08em;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.ih-context-sep{margin:0 7px;color:var(--border-color)}
.ih-top-actions{display:flex;align-items:center;gap:12px}.ih-identity{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--font-mono);font-size:9px;color:var(--text-muted);line-height:1.5}.ih-identity #auth-user-name{color:var(--text-main)}
.ih-main{position:fixed;inset:var(--ih-top-h) 0 var(--ih-bottom-h) 0;display:block;overflow:hidden;background-color:var(--bg-base);background-image:linear-gradient(var(--ih-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ih-grid) 1px,transparent 1px);background-size:20px 20px;}
.ih-shell-page{height:100%;display:flex;flex-direction:column;overflow:hidden}.workspace-head{padding:18px 22px 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-color);background:rgba(0,0,0,.13)}
.workspace-kicker{font:9px var(--font-mono);letter-spacing:.16em;color:var(--primary)}.workspace-title{font:700 18px var(--font-sans);letter-spacing:.02em;margin-top:5px}.workspace-meta{font:10px var(--font-mono);color:var(--text-muted);margin-top:4px}.workspace-status{font:10px var(--font-mono);color:var(--text-muted);white-space:nowrap}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:7px;box-shadow:0 0 8px rgba(0,255,85,.35)}
.workspace-tabs{height:var(--ih-worktabs-h);display:flex;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--border-color);background:rgba(8,8,8,.86);flex:0 0 auto;scrollbar-width:none}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tab{appearance:none;border:0;border-right:1px solid rgba(255,255,255,.055);background:transparent;color:var(--text-muted);min-width:126px;padding:9px 14px;cursor:pointer;font:700 10px var(--font-mono);letter-spacing:.08em;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.workspace-tab span{font-size:9px;font-weight:400;letter-spacing:.04em;opacity:.65}.workspace-tab:hover{color:var(--text-main);background:rgba(255,255,255,.025)}.workspace-tab.active{color:var(--text-main);box-shadow:inset 0 -2px 0 var(--primary);background:rgba(255,255,255,.04)}
.workspace-stage{flex:1;min-height:0;position:relative}.workspace-stage .view-container{height:100%;padding:18px 22px 34px;overflow-y:auto}.workspace-stage #view-dashboard.active,.workspace-stage #view-datalink.active{display:grid}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:var(--ih-bottom-h);background:rgba(8,8,8,.97);border-top:1px solid var(--border-color);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));z-index:900;backdrop-filter:blur(14px);font-family:var(--font-mono);padding-bottom:env(safe-area-inset-bottom)}body.theme-light .bottom-nav{background:rgba(248,250,251,.97)}
.bottom-nav button{appearance:none;border:0;border-right:1px solid rgba(255,255,255,.055);background:transparent;color:var(--text-muted);min-width:0;cursor:pointer;font:inherit;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;transition:.16s}.bottom-nav button:last-child{border-right:0}.bottom-nav button:hover{color:var(--text-main);background:rgba(255,255,255,.03)}.bottom-nav button.active{color:var(--text-main);background:rgba(255,255,255,.045);box-shadow:inset 0 2px 0 var(--primary)}.bottom-nav .nav-icon{font-size:15px;line-height:1}.bottom-nav .nav-label{font-size:9px;letter-spacing:.1em}.bottom-nav .nav-sub{font-size:8px;opacity:.55}
.gateway-page{position:fixed;inset:var(--ih-top-h) 0 var(--ih-bottom-h) 0;z-index:820;background-color:var(--bg-base);background-image:linear-gradient(var(--ih-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ih-grid) 1px,transparent 1px);background-size:20px 20px;display:none;overflow-y:auto;padding:28px 20px 50px}.gateway-page.active{display:block}.gateway-shell{max-width:1120px;margin:0 auto}.gateway-page .modal-box{max-width:none!important;width:100%;min-height:calc(100vh - var(--ih-top-h) - var(--ih-bottom-h) - 78px);background:transparent;border:0;border-top:0;box-shadow:none;padding:0}.gateway-page .project-card-gw{border-radius:0;background:rgba(255,255,255,.015)}
.auth-guard{z-index:2000}.auth-guard-box{text-align:center;font-family:var(--font-mono)}.auth-brand{font-size:10px;letter-spacing:.18em;color:var(--text-muted);margin-bottom:14px}.auth-guard h2{color:var(--primary);letter-spacing:.12em;margin-bottom:10px;font-size:14px}.auth-guard #auth-guard-status{color:var(--text-muted);font-size:10px}
.ih-system-page{position:fixed;inset:var(--ih-top-h) 0 var(--ih-bottom-h) 0;z-index:810;background-color:var(--bg-base);background-image:linear-gradient(var(--ih-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ih-grid) 1px,transparent 1px);background-size:20px 20px;overflow-y:auto;padding:26px 22px 50px}.ih-system-page.hidden{display:none!important}.ih-system-inner{max-width:1220px;margin:0 auto}.ih-system-title{font:10px var(--font-mono);color:var(--text-muted);letter-spacing:.16em;border-bottom:1px solid var(--border-color);padding-bottom:10px;margin-bottom:20px}
.ih-page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.ih-span-4{grid-column:span 4}.ih-span-5{grid-column:span 5}.ih-span-7{grid-column:span 7}.ih-span-8{grid-column:span 8}.ih-span-12{grid-column:span 12}.ih-page-grid .panel{margin-bottom:0}.panel-note,.ih-code{font:9px var(--font-mono);color:var(--text-muted);font-weight:400;letter-spacing:.08em}.ih-full{width:100%}.ih-top-gap{margin-top:14px}
.architecture-tree,.relation-list{font-family:var(--font-mono)}.arch-node{border-left:1px solid var(--border-color);padding:9px 0 9px 14px;margin-left:6px}.arch-node.root{border-left:2px solid var(--primary);background:rgba(255,255,255,.018);padding:14px}.arch-node .node-id{font-size:9px;color:var(--text-muted);margin-left:8px}.arch-node .node-name{font-size:12px;color:var(--text-main)}.arch-children{padding-left:18px;margin-top:8px}.relation-row,.activity-row,.baseline-row,.requirement-row,.verification-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--border-color);padding:12px 4px}.relation-row:last-child,.activity-row:last-child,.baseline-row:last-child,.requirement-row:last-child,.verification-row:last-child{border-bottom:0}.row-id{font:10px var(--font-mono);color:var(--primary)}.row-main{font-size:12px;color:var(--text-main)}.row-meta{font:9px var(--font-mono);color:var(--text-muted);margin-top:3px}.row-status{font:9px var(--font-mono);padding:3px 6px;border:1px solid var(--border-color);color:var(--text-muted);white-space:nowrap}.row-status.good{border-color:var(--success);color:var(--success)}.row-status.warn{border-color:var(--warning);color:var(--warning)}
.integration-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.integration-card{border:1px solid var(--border-color);padding:14px;background:rgba(255,255,255,.018);min-height:92px}.integration-card .name{font:10px var(--font-mono);color:var(--text-main);letter-spacing:.08em}.integration-card .role{font:9px var(--font-mono);color:var(--text-muted);margin-top:6px}.integration-card .ref{font:9px var(--font-mono);color:var(--primary);margin-top:12px;word-break:break-all}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.metric-cell{border:1px solid var(--border-color);padding:12px;background:rgba(255,255,255,.016)}.metric-cell .value{font:20px var(--font-mono);color:var(--text-main)}.metric-cell .label{font:8px var(--font-mono);color:var(--text-muted);letter-spacing:.08em;margin-top:5px}.empty-state{border:1px dashed var(--border-color);padding:18px;font:10px var(--font-mono);color:var(--text-muted);line-height:1.7}.appearance-row{display:flex;gap:8px;flex-wrap:wrap}.account-readout{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border-color);font:10px var(--font-mono);color:var(--text-muted)}.account-readout strong{color:var(--text-main)}
#settings-shell #view-settings{display:block!important;height:auto;padding:0;overflow:visible}#settings-shell #view-settings>.panel{max-width:none!important;margin:0;border:0;padding:0;background:transparent}#settings-shell #view-settings>.panel>.panel-header{display:none}
.hidden-admin-marker{display:none!important}
.sidebar{display:none!important}
.main-content{width:100%}
body.theme-light input,body.theme-light select,body.theme-light textarea{background:#fff;color:#124a68}body.theme-light select option{background:#fff;color:#111}.panel,.card-item,.kanban-col{border-radius:0}.panel{background:var(--ih-panel)}
@media(max-width:900px){.ih-page-grid{grid-template-columns:1fr}.ih-span-4,.ih-span-5,.ih-span-7,.ih-span-8,.ih-span-12{grid-column:1}.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-head{padding:14px 15px 12px}.workspace-stage .view-container{padding:14px 15px 28px}.ih-system-page{padding:18px 15px 40px}.ih-identity{display:none}}
@media(max-width:640px){:root{--ih-top-h:58px;--ih-bottom-h:68px;--ih-worktabs-h:54px}.ih-topbar{padding:0 12px}.ih-brand{font-size:10px}.ih-context{max-width:66vw;font-size:9px}.ih-top-actions .btn{padding:5px 7px;font-size:9px}.workspace-title{font-size:16px}.workspace-status{display:none}.workspace-tab{min-width:112px;padding:8px 10px}.gateway-page{padding:18px 14px 38px}.bottom-nav .nav-sub{display:none}.bottom-nav .nav-label{font-size:9px}.integration-grid,.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.relation-row,.activity-row,.baseline-row,.requirement-row,.verification-row{grid-template-columns:1fr auto}.row-id{grid-column:1/-1}.kanban-board{display:flex;flex-direction:column}.dashboard-layout{display:flex!important;flex-direction:column}.detail-grid-2,.detail-grid-3{grid-template-columns:1fr}}

#settings-shell #view-settings,#settings-shell #view-admin{display:block!important;height:auto;padding:0;overflow:visible;background:transparent;}
#settings-shell #view-settings>.panel,#settings-shell #view-admin>.panel{max-width:none!important;margin:0;}
#admin-settings-slot{display:none;}

/* Shared UI corrections learned from MISSION LOG 2.0 */
:root{
  --ih-bottom-h:46px;
  --ih-worktabs-h:48px;
}

/* Thin, icon-first persistent navigation; no oversized pills/symbol glyphs. */
.bottom-nav{
  height:var(--ih-bottom-h);
  padding-bottom:0;
  background:rgba(12,12,12,.96);
  backdrop-filter:blur(12px);
}
.bottom-nav button{
  flex-direction:row;
  gap:7px;
  padding:0 10px;
  letter-spacing:.07em;
}
.bottom-nav .nav-icon{display:flex;width:16px;height:16px;flex:0 0 16px;}
.bottom-nav .nav-icon svg{
  width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}
.bottom-nav .nav-label{font-size:9px;white-space:nowrap;}
.bottom-nav .nav-sub{display:none!important;}
.bottom-nav button.active{
  background:rgba(255,255,255,.045);
  box-shadow:inset 0 2px 0 var(--primary);
}

/* Gateway is a true full-page context selector, not a modal-looking sheet. */
.gateway-page{
  padding:0;
}
.gateway-shell{
  max-width:1220px;
  margin:0 auto;
  padding:30px 24px 42px;
  min-height:100%;
}
.gateway-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding:22px 0 18px;
  border-bottom:1px solid var(--border-color);
}
.gateway-path{
  font:10px var(--font-mono);
  letter-spacing:.18em;
  color:var(--primary);
  margin-bottom:9px;
}
.gateway-title-row{display:flex;align-items:center;gap:15px;flex-wrap:wrap;}
.gateway-title-row h1{
  font:600 30px var(--font-mono);
  letter-spacing:.12em;
  color:var(--text-main);
}
.gateway-state{
  font:9px var(--font-mono);
  letter-spacing:.12em;
  color:var(--text-muted);
  border-left:1px solid var(--border-color);
  padding-left:14px;
}
.gateway-subtitle{
  font:10px var(--font-mono);
  letter-spacing:.11em;
  color:var(--text-muted);
  margin-top:7px;
}
.gateway-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.gateway-status-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--border-color);
  border-top:0;
  background:rgba(255,255,255,.012);
}
.gateway-status-cell{
  min-height:58px;
  padding:11px 14px;
  border-right:1px solid var(--border-color);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}
.gateway-status-cell:last-child{border-right:0;}
.gateway-status-cell span{
  font:8px var(--font-mono);
  letter-spacing:.12em;
  color:var(--text-muted);
}
.gateway-status-cell strong{
  font:500 11px var(--font-mono);
  color:var(--text-main);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.gateway-section{margin-top:28px;}
.gateway-section-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--border-color);
  padding-bottom:8px;margin-bottom:12px;
  font:10px var(--font-mono);letter-spacing:.11em;color:var(--text-main);
}
.gateway-index{color:var(--primary);margin-right:12px;}
.gateway-section-note{color:var(--text-muted);font-size:8px;}
.gateway-admin-controls{
  align-items:center;gap:6px;flex-wrap:wrap;
  padding:9px 0 12px;
  font:9px var(--font-mono);color:var(--text-muted);
}
.gateway-project-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:0!important;
}
.gateway-page .project-card-gw{
  margin:0;
  min-height:116px;
  padding:15px 16px;
  border-radius:0;
  border-left:2px solid var(--primary);
  background:rgba(255,255,255,.018);
}
.gateway-page .project-card-gw:hover{
  border-color:var(--border-color);
  border-left-color:var(--success);
  background:rgba(255,255,255,.035);
  transform:none;
  box-shadow:none;
}
.gateway-footer{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-top:34px;padding-top:11px;border-top:1px solid var(--border-color);
  font:8px var(--font-mono);letter-spacing:.1em;color:var(--text-muted);
}

/* Workspace is high-density; language mode shows only one language, never EN（中文） simultaneously. */
.workspace-tab{
  min-width:118px;
  padding:0 13px;
  justify-content:center;
  align-items:center;
  flex-direction:row;
  font-size:9px;
}
.workspace-tab span{display:none!important;}

/* Light mode fixes from MISSION LOG: clean contrast, solid status LEDs, no neon. */
body.theme-light{
  --bg-base:#f3f5f7;
  --bg-panel:#fff;
  --ih-panel:#fff;
  --ih-panel-2:#f7f8fa;
  --text-main:#111820;
  --text-muted:#5c6874;
  --border-color:#c9d0d7;
  --primary:#0b3d91;
  --success:#12824a;
  --warning:#8a5c00;
  --danger:#b62e22;
  --ih-grid:rgba(17,24,32,.035);
}
body.theme-light .ih-topbar,
body.theme-light .bottom-nav{background:rgba(255,255,255,.98);}
body.theme-light .workspace-head,
body.theme-light .workspace-tabs{background:rgba(255,255,255,.96);}
body.theme-light .workspace-tab,
body.theme-light .bottom-nav button{border-color:rgba(17,24,32,.09);}
body.theme-light .workspace-tab:hover,
body.theme-light .workspace-tab.active,
body.theme-light .bottom-nav button:hover,
body.theme-light .bottom-nav button.active{background:rgba(11,61,145,.06);color:#111820;}
body.theme-light input,
body.theme-light select,
body.theme-light textarea{
  background:#fff!important;
  color:#111820!important;
  border-color:#aeb8c2!important;
}
body.theme-light .tag-dept{background:#eef2f5;color:#263442;}
body.theme-light .status-dot{
  background:var(--success);
  box-shadow:none;
  animation:none;
}
body.theme-light .gateway-status-strip,
body.theme-light .gateway-page .project-card-gw,
body.theme-light .integration-card,
body.theme-light .metric-cell{background:#fff;}
body.theme-light .modal-box{box-shadow:0 8px 28px rgba(17,24,32,.12);}
body.theme-light .btn-outline{border-color:#53606c;color:#1c2630;}
body.theme-light .btn-outline:hover{background:#1c2630;color:#fff;border-color:#1c2630;}

/* Responsive corrections: prevent the same cramped/mis-tap problems fixed in MISSION LOG. */
@media(max-width:768px){
  :root{
    --ih-top-h:58px;
    --ih-bottom-h:calc(50px + env(safe-area-inset-bottom, 0px));
    --ih-worktabs-h:48px;
  }
  .gateway-shell{padding:14px 10px 24px;}
  .gateway-header{
    padding:12px 0 14px;
    gap:12px;
    flex-direction:column;
  }
  .gateway-title-row{gap:9px;}
  .gateway-title-row h1{font-size:21px;letter-spacing:.09em;}
  .gateway-state{padding-left:9px;font-size:8px;}
  .gateway-subtitle{line-height:1.45;}
  .gateway-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;}
  .gateway-actions .btn{width:100%;min-height:38px;}
  .gateway-status-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gateway-status-cell{padding:9px 10px;min-height:54px;}
  .gateway-section{margin-top:20px;}
  .gateway-section-head{align-items:flex-start;}
  .gateway-section-note{text-align:right;max-width:46%;}
  .gateway-project-list{grid-template-columns:1fr;}
  .gateway-page .project-card-gw{min-height:0;}
  .gateway-page .project-card-gw > div:first-child{
    flex-direction:column;
    align-items:stretch!important;
  }
  .gateway-footer{flex-direction:column;align-items:flex-start;margin-top:22px;gap:10px;}
  .bottom-nav button{
    min-height:50px;
    flex-direction:column;
    gap:4px;
    padding:0 4px;
  }
  .bottom-nav .nav-label{font-size:7.5px;letter-spacing:.02em;}
  .bottom-nav .nav-icon,
  .bottom-nav .nav-icon svg{width:15px;height:15px;}
  .workspace-tabs{height:var(--ih-worktabs-h);}
  .workspace-tab{min-width:104px;padding:0 8px;font-size:8px;}
  .workspace-head{padding:12px 12px 10px;}
  .workspace-stage .view-container{padding:12px 10px 24px;}
  .panel{padding:16px;}
  .ih-system-page{padding:14px 10px 28px;}
  .ih-page-grid{gap:10px;}
  .modal-box{max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:18px;}
}

@media(max-width:380px){
  .gateway-status-strip{grid-template-columns:1fr;}
  .gateway-status-cell{border-right:0!important;border-bottom:1px solid var(--border-color);}
  .gateway-status-cell:last-child{border-bottom:0;}
  .gateway-actions{grid-template-columns:1fr;}
  .bottom-nav .nav-label{font-size:7px;}
}

body.theme-light{
  --bg-base:#eef1f4;--bg-panel:#ffffff;--bg-panel-hover:#f2f5f7;
  --ih-panel:#ffffff;--ih-panel-2:#f5f7f9;
  --text-main:#111820;--text-muted:#596673;--border-color:#c7d0d8;
  --primary:#0b4f8a;--success:#0b7a43;--warning:#946200;--danger:#b62e22;--critical:#b42318;
  --ih-grid:rgba(17,24,32,.045);
  --control-bg:#ffffff;--track-bg:#e1e7ec;--surface-soft:#f6f8fa;
  --surface-elev:#ffffff;--surface-deep:#edf1f4;--chip-bg:#edf2f5;
  --terminal-bg:#ffffff;--terminal-text:#0b6f3e;
}
body.theme-light,body.theme-light .main-content,body.theme-light .workspace-stage,
body.theme-light .ih-system-page,body.theme-light .gateway-page{
  background-color:var(--bg-base)!important;color:var(--text-main);
}
body.theme-light .main-content{
  background-image:linear-gradient(var(--ih-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ih-grid) 1px,transparent 1px);
}
body.theme-light .panel,body.theme-light .modal-box,body.theme-light .card-item,
body.theme-light .matrix-cell,body.theme-light .matrix-interact,body.theme-light .matrix-icd-tag,
body.theme-light .checkbox-item,body.theme-light .detail-box,body.theme-light .integration-card,
body.theme-light .metric-cell,body.theme-light .relation-row,body.theme-light .requirement-row,
body.theme-light .verification-row,body.theme-light .baseline-row,body.theme-light .activity-row,
body.theme-light .gateway-page .project-card-gw,body.theme-light .engineering-config-box,
body.theme-light .settings-panel{background:#fff!important;color:#111820!important;}
body.theme-light .kanban-col{background:#f7f9fb!important;border-color:#c7d0d8!important;}
body.theme-light .card-item{background:#fff!important;box-shadow:0 1px 4px rgba(17,24,32,.12)!important;}
body.theme-light .urgency-critical{background:#fff5f4!important;}
body.theme-light .matrix-header,body.theme-light .matrix-self{background:#eef2f5!important;}
body.theme-light .matrix-interact:hover{background:#f1f5f8!important;box-shadow:none!important;}
body.theme-light .matrix-icd-tag,body.theme-light .checkbox-item,body.theme-light .tag-dept,
body.theme-light .configuration-chip{background:#edf2f5!important;color:#263442!important;}
body.theme-light .budget-bar-wrapper{background:#e1e7ec!important;border-color:#bdc7d0!important;}
body.theme-light .margin-line{background:#5b6670!important;box-shadow:none!important;}
body.theme-light #mqtt-terminal{background:#fff!important;color:#0b6f3e!important;}
body.theme-light input,body.theme-light select,body.theme-light textarea,body.theme-light select option{
  background:#fff!important;color:#111820!important;border-color:#aeb9c3!important;
}
body.theme-light input[type="range"]{accent-color:var(--primary);}
body.theme-light .btn-primary{background:#17212b!important;border-color:#17212b!important;color:#fff!important;}
body.theme-light .btn-primary:hover{background:#fff!important;color:#17212b!important;}
body.theme-light .mode-toggle-btn.active-enter,body.theme-light .mode-toggle-btn.active-members,
body.theme-light .mode-toggle-btn.active-delete{color:#fff!important;}
body.theme-light th{background:#f3f6f8;color:#52606c;}
body.theme-light tr:hover td{background:#f7f9fb;}
body.theme-light .status-dot{box-shadow:none!important;animation:none!important;}
body.theme-light [style*="box-shadow: 0 0"],body.theme-light [style*="box-shadow:0 0"]{box-shadow:none!important;}

.settings-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;}
.settings-panel{grid-column:span 6;border:1px solid var(--border-color);background:var(--bg-panel);padding:18px;}
.settings-panel.settings-span-12{grid-column:span 12;}
.settings-panel h3{margin:0 0 10px;font:700 11px var(--font-mono);letter-spacing:.11em;color:var(--text-main);}
.settings-row{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-color);padding:9px 0;}
.settings-row:last-child{border-bottom:0;}
.settings-label{font:9px var(--font-mono);color:var(--text-muted);letter-spacing:.08em;}
.settings-value{font:11px var(--font-mono);color:var(--text-main);text-align:right;overflow-wrap:anywhere;}
.settings-value select{width:auto;min-width:150px;padding:7px 26px 7px 9px;}
.settings-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;background:var(--text-muted);}
.settings-status-dot.online{background:var(--success);}.settings-status-dot.warn{background:var(--warning);}
.configuration-chip-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px;}
.configuration-chip{background:var(--chip-bg);border:1px solid var(--border-color);padding:8px 11px;font:700 11px var(--font-mono);display:flex;align-items:center;gap:12px;}
.engineering-config-box{background:var(--surface-soft)!important;padding:14px;border:1px dashed var(--border-color);}
.config-action-row{text-align:right;border-top:1px dashed var(--border-color);padding-top:18px;margin-top:18px;}
.panel-code{font:8px var(--font-mono);letter-spacing:.11em;color:var(--text-muted);}
@media(max-width:768px){
  .settings-panel{grid-column:span 12;}
  .settings-row{flex-direction:column;align-items:flex-start;gap:6px;}
  .settings-value{width:100%;text-align:left;}
  .settings-value select{width:100%;font-size:16px;}
}

.integration-hub-panel{margin-bottom:12px;}
.integration-summary-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--border-color);margin-bottom:14px;background:var(--surface-soft);
}
.integration-summary-strip>div{
  padding:11px 12px;border-right:1px solid var(--border-color);
  display:flex;flex-direction:column;gap:5px;min-width:0;
}
.integration-summary-strip>div:last-child{border-right:0;}
.integration-summary-strip span{font:8px var(--font-mono);letter-spacing:.1em;color:var(--text-muted);}
.integration-summary-strip strong{font:10px var(--font-mono);color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.integration-cards-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
}
.system-integration-card{
  border:1px solid var(--border-color);background:var(--surface-soft);
  padding:15px;min-width:0;
}
.system-integration-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--border-color);padding-bottom:10px;margin-bottom:11px;}
.system-integration-card h3{font:700 13px var(--font-mono);letter-spacing:.08em;margin:3px 0 0;color:var(--text-main);}
.integration-type{font:7px var(--font-mono);letter-spacing:.12em;color:var(--text-muted);}
.integration-state{
  font:700 8px var(--font-mono);letter-spacing:.1em;
  border:1px solid var(--border-color);padding:5px 7px;color:var(--text-muted);white-space:nowrap;
}
.integration-state.linked{border-color:var(--success);color:var(--success);}
.system-integration-card p{font:10px/1.5 var(--font-mono);color:var(--text-muted);min-height:30px;margin:0 0 12px;}
.system-integration-card label{display:block;font:8px var(--font-mono);letter-spacing:.09em;color:var(--text-muted);margin:9px 0 5px;}
.system-integration-card input{width:100%;font-family:var(--font-mono);font-size:10px;}
.integration-actions{display:flex;justify-content:flex-end;margin-top:12px;}
.integration-actions .btn{max-width:100%;white-space:normal;}
.integration-footer-actions{display:flex;justify-content:flex-end;border-top:1px dashed var(--border-color);padding-top:14px;margin-top:14px;}

.integration-map-panel{margin-bottom:12px;}
.digital-thread-map{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:stretch;}
.thread-core{
  border:1px solid var(--primary);padding:18px;display:flex;flex-direction:column;justify-content:center;gap:8px;
  background:var(--surface-soft);
}
.thread-core span,.thread-node span{font:700 9px var(--font-mono);letter-spacing:.11em;color:var(--text-main);}
.thread-core strong,.thread-node strong{font:11px var(--font-mono);color:var(--primary);overflow-wrap:anywhere;}
.thread-core small,.thread-node small{font:7px var(--font-mono);letter-spacing:.12em;color:var(--text-muted);}
.thread-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;position:relative;}
.thread-node{border:1px solid var(--border-color);padding:13px;display:flex;flex-direction:column;gap:6px;background:var(--surface-soft);}
.thread-node.linked{border-left:2px solid var(--success);}

.phase-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.phase-card{border:1px solid var(--border-color);padding:13px;background:var(--surface-soft);display:flex;flex-direction:column;gap:6px;}
.phase-card span{font:8px var(--font-mono);letter-spacing:.12em;color:var(--text-muted);}
.phase-card strong{font:10px var(--font-mono);color:var(--text-main);}
.phase-card small{font:8px/1.4 var(--font-mono);color:var(--text-muted);}
.phase-card.complete{border-left:2px solid var(--success);}
.phase-card.active{border-left:2px solid var(--primary);}

body.theme-light .system-integration-card,
body.theme-light .thread-core,
body.theme-light .thread-node,
body.theme-light .phase-card,
body.theme-light .integration-summary-strip{background:#fff!important;}

@media(max-width:900px){
  .integration-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
  .integration-summary-strip>div:nth-child(2){border-right:0;}
  .integration-summary-strip>div:nth-child(-n+2){border-bottom:1px solid var(--border-color);}
  .integration-cards-grid{grid-template-columns:1fr;}
  .digital-thread-map{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .integration-summary-strip{grid-template-columns:1fr;}
  .integration-summary-strip>div{border-right:0!important;border-bottom:1px solid var(--border-color)!important;}
  .integration-summary-strip>div:last-child{border-bottom:0!important;}
  .thread-branches,.phase-status-grid{grid-template-columns:1fr;}
}

.mission-log-adapter-card{grid-column:span 2;}
.ml-connection-strip{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--border-color);margin:12px 0;background:var(--surface-soft);
}
.ml-connection-strip>div{padding:10px 11px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;gap:4px;min-width:0;}
.ml-connection-strip>div:last-child{border-right:0;}
.ml-connection-strip span{font:7px var(--font-mono);letter-spacing:.1em;color:var(--text-muted);}
.ml-connection-strip strong{font:9px var(--font-mono);color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#ml-live-status.connected{color:var(--success);}
#ml-live-status.error{color:var(--danger);}

.ml-auth-panel,.ml-live-panel{
  border:1px dashed var(--border-color);padding:12px;margin:11px 0;background:var(--surface-soft);
}
.ml-auth-panel label,.ml-live-panel label{
  display:block;font:8px var(--font-mono);letter-spacing:.09em;color:var(--text-muted);margin:8px 0 5px;
}
.ml-auth-panel input,.ml-live-panel select{width:100%;}
.ml-auth-actions{margin-top:10px;}
.ml-security-note{font:7px/1.5 var(--font-mono);color:var(--text-muted);margin-top:8px;}
.ml-project-summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border-color);margin-top:10px;
}
.ml-project-summary>div{padding:9px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;gap:4px;}
.ml-project-summary>div:last-child{border-right:0;}
.ml-project-summary span{font:7px var(--font-mono);color:var(--text-muted);letter-spacing:.08em;}
.ml-project-summary strong{font:10px var(--font-mono);color:var(--text-main);}
.ml-adapter-actions{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0;}
.ml-link-section{border-top:1px solid var(--border-color);padding-top:11px;margin-top:11px;display:grid;gap:7px;}
.ml-link-section-head{display:flex;justify-content:space-between;gap:10px;align-items:center;}
.ml-link-section-head span{font:8px var(--font-mono);letter-spacing:.09em;color:var(--text-main);}
.ml-link-section-head strong{font:7px var(--font-mono);letter-spacing:.07em;color:var(--text-muted);}
.ml-live-panel.hidden,.ml-auth-panel.hidden{display:none!important;}
body.theme-light .ml-connection-strip,
body.theme-light .ml-auth-panel,
body.theme-light .ml-live-panel{background:#fff!important;}

@media(max-width:900px){
  .mission-log-adapter-card{grid-column:span 1;}
}
@media(max-width:650px){
  .ml-connection-strip,.ml-project-summary{grid-template-columns:1fr;}
  .ml-connection-strip>div,.ml-project-summary>div{border-right:0;border-bottom:1px solid var(--border-color);}
  .ml-connection-strip>div:last-child,.ml-project-summary>div:last-child{border-bottom:0;}
}

.integration-cards-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  align-items:stretch;
}
.integration-cards-grid > .system-integration-card{
  min-height:300px;
  height:100%;
  display:flex;
  flex-direction:column;
}
.integration-cards-grid > .system-integration-card .integration-actions{
  margin-top:auto;
}
.integration-actions-split{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.integration-mini-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border:1px solid var(--border-color);
  margin:0 0 12px;
  background:var(--surface-soft);
}
.integration-mini-summary > div{
  min-width:0;
  padding:9px 10px;
  border-right:1px solid var(--border-color);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.integration-mini-summary > div:last-child{border-right:0;}
.integration-mini-summary span{font:7px var(--font-mono);letter-spacing:.1em;color:var(--text-muted);}
.integration-mini-summary strong{font:9px var(--font-mono);color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mission-log-adapter-detail-panel{
  border:1px solid var(--border-color);
  background:var(--surface-soft);
  padding:16px;
  margin-top:12px;
}
.mission-log-adapter-detail-panel.hidden{display:none!important;}
body.theme-light .integration-mini-summary,
body.theme-light .mission-log-adapter-detail-panel{background:#fff!important;}
@media(max-width:900px){
  .integration-cards-grid{grid-template-columns:1fr;}
}
@media(max-width:650px){
  .integration-mini-summary{grid-template-columns:1fr;}
  .integration-mini-summary>div{border-right:0;border-bottom:1px solid var(--border-color);}
  .integration-mini-summary>div:last-child{border-bottom:0;}
}

/* Prevent focus/active browser behavior from shifting the document. */
.workspace-tabs{
  scroll-behavior:auto!important;
  overscroll-behavior-x:contain;
}
.workspace-tab{
  scroll-margin:0!important;
}
.workspace-tab:focus{
  outline:none;
}
.workspace-tab:focus-visible{
  outline:1px solid var(--primary);
  outline-offset:-2px;
}
/* Each view is an isolated scrolling surface. */
.workspace-stage{
  overflow:hidden;
}
.workspace-stage > .view-container{
  overscroll-behavior:contain;
  scroll-behavior:auto!important;
}

/* R6 — hard isolation between WORKSPACE views.
   Layout helper classes (ih-page-grid / dashboard-layout) must never make an inactive view visible. */
.workspace-stage > .view-container,
.workspace-stage > .view-container.ih-page-grid,
.workspace-stage > .view-container.dashboard-layout{
  display:none!important;
}

.workspace-stage > .view-container.active{
  display:block!important;
}

.workspace-stage > .view-container.active.ih-page-grid{
  display:grid!important;
}

.workspace-stage > .view-container.active.dashboard-layout{
  display:grid!important;
}

.workspace-stage > .view-container[hidden]{
  display:none!important;
}

@media(max-width:640px){
  .workspace-stage > .view-container.active.dashboard-layout{
    display:flex!important;
    flex-direction:column;
  }
}

.csp-s1{display:none;}
.csp-s2{grid-row: span 2;}
.csp-s3{font-size:10px; color:var(--text-muted); text-transform:none; font-weight:normal;}
.csp-s4{overflow-x: auto;}
.csp-s5{overflow-y: auto; max-height: 200px;}
.csp-s6{height: 100%;}
.csp-s7{color: var(--text-muted); margin-bottom: 15px; border-bottom: 1px solid var(--border-color); padding-bottom: 5px; font-family: var(--font-mono); font-size: 11px;}
.csp-s8{overflow-y:auto; height:100%;}
.csp-s9{color: var(--warning); margin-bottom: 15px; border-bottom: 1px solid var(--border-color); padding-bottom: 5px; font-family: var(--font-mono); font-size: 11px;}
.csp-s10{color: var(--success); margin-bottom: 15px; border-bottom: 1px solid var(--border-color); padding-bottom: 5px; font-family: var(--font-mono); font-size: 11px;}
.csp-s11{color:var(--danger);display:none;}
.csp-s12{display:flex;gap:15px;align-items:center;}
.csp-s13{flex-grow:1;}
.csp-s14{color:var(--text-main);font-family:var(--font-mono);font-size:13px;}
.csp-s15{color:var(--text-main)}
.csp-s16{height:42px;}
.csp-s17{border-color:var(--danger);}
.csp-s18{color:var(--danger);}
.csp-s19{margin-bottom:30px;}
.csp-s20{margin-bottom:15px;}
.csp-s21{display:flex;gap:10px;flex-wrap:wrap;}
.csp-s22{max-width:300px;}
.csp-s23{overflow-x:auto;}
.csp-s24{text-align:center;color:var(--text-muted);}
.csp-s25{display:none;border-color:var(--text-main);}
.csp-s26{color:var(--text-main);}
.csp-s27{width:100%; border-color:var(--primary); color:var(--primary);}
.csp-s28{font-size:10px; color:var(--danger); animation: blink 2s infinite;}
.csp-s29{background:var(--control-bg); border:1px solid var(--border-color); padding:15px; height:100%; min-height: 400px; overflow-y:auto; font-family:var(--font-mono); font-size:11px; color:var(--terminal-text); line-height:1.5;}
.csp-s30{max-width: 700px;}
.csp-s31{color:var(--text-main); border-bottom:1px dashed var(--border-color);}
.csp-s32{text-align: right; margin-top: 20px; border-top: 1px dashed var(--border-color); padding-top: 15px;}
.csp-s33{max-width: 500px;}
.csp-s34{font-size:11px; color:var(--text-muted); margin-bottom: 20px; line-height:1.5;}
.csp-s35{padding:10px; background:var(--control-bg); border:1px dashed var(--border-color);}
.csp-s36{text-align: right; margin-top: 25px;}
.csp-s37{max-width: 550px; border-top-color: var(--warning);}
.csp-s38{color:var(--warning);}
.csp-s39{margin-bottom: 15px; color: var(--text-main); font-family: var(--font-mono); font-weight:bold; font-size:14px;}
.csp-s40{max-height: 300px; overflow-y: auto; padding-right:10px; display:flex; flex-direction:column; gap:10px;}
.csp-s41{text-align: right; margin-top: 25px; border-top: 1px dashed var(--border-color); padding-top: 15px;}
.csp-s42{border-color:var(--warning); color:var(--warning);}
.csp-s43{background: rgba(255,255,255,0.02); padding: 15px; border: 1px dashed var(--border-color); border-radius: 4px;}
.csp-s44{height: 42px;}
.csp-s45{text-align: right; margin-top: 30px;}
.csp-s46{border-color:var(--text-main);}
.csp-s47{max-width: 600px;}
.csp-s48{margin-bottom: 15px; color: var(--primary); font-family: var(--font-mono); font-weight:bold; font-size:12px;}
.csp-s49{min-height: 200px;}
.csp-s50{max-width: 550px;}
.csp-s51{max-width: 650px;}
.csp-s52{color: var(--text-main);}
.csp-s53{margin-bottom: 25px;}
.csp-s54{border-top: 1px dashed var(--border-color); padding-top: 20px;}
.csp-s55{color: var(--text-muted);}
.csp-s56{display:flex; gap:10px;}
.csp-s57{white-space:nowrap; border-color:var(--text-muted); color:var(--text-muted);}
.csp-s58{flex: 2;}
.csp-s59{flex: 1;}
.csp-s60{background: var(--control-bg); padding: 15px; border: 1px dashed var(--border-color); margin-bottom: 20px; border-radius: 4px;}
.csp-s61{text-align: right; margin-top: 35px;}
.csp-s62{border-color:var(--danger); color:var(--danger);}
.csp-s63{margin-bottom:4px;}
.csp-s64{color:var(--text-muted);}
.csp-s65{font-size: 16px;}
.csp-s66{color: var(--primary);}
.csp-s67{color: var(--warning);}
.csp-s68{margin-bottom: 15px;}
.csp-s69{font-weight:bold;}
.csp-s70{background:rgba(255,255,255,0.02);}
.csp-s71{color:var(--primary); font-weight:bold; font-family:var(--font-mono);}
.csp-s72{display:flex; gap:10px; align-items:center;}
.csp-s73{padding: 6px; height: auto; max-width: 150px;}
.csp-s74{text-align:center; color:var(--text-muted);}
.csp-s75{color:var(--text-muted); font-size:13px; font-family:var(--font-mono);}
.csp-s76{display:flex; justify-content:space-between; align-items:center; width: 100%;}
.csp-s77{color:var(--text-main); font-size:16px; font-weight:bold; margin-bottom:5px; font-family:var(--font-sans); text-transform:uppercase;}
.csp-s78{font-size:11px; font-family:var(--font-mono); color:var(--text-muted);}
.csp-s79{color:var(--danger); font-size:12px;}
.csp-s80{color:var(--success); font-size:10px; margin-left:5px; border:1px solid var(--success); padding:2px 4px; border-radius:2px;}
.csp-s81{display:flex; align-items:center; gap:8px;}
.csp-s82{color:var(--text-muted); font-size:10px;}
.csp-s83{color:var(--text-muted);cursor:pointer;font-size:14px;}
.csp-s84{color:var(--text-muted); font-size:13px; font-family:var(--font-mono); padding:10px;}
.csp-s85{padding:12px; margin-bottom:10px; border:1px solid var(--border-color); background:rgba(255,255,255,0.02); border-radius:4px; cursor:pointer;}
.csp-s86{font-size:11px; color:var(--primary); font-family:var(--font-mono); margin-bottom:5px;}
.csp-s87{font-size:13px; font-weight:bold;}
.csp-s88{color:var(--warning); font-weight:bold;}
.csp-s89{border-color:var(--primary); color:var(--primary);}
.csp-s90{color:var(--warning); font-size:10px;}
.csp-s91{background:transparent; padding:0; margin-top:4px; border:none; color:var(--danger);}
.csp-s92{cursor:pointer; transition:0.2s;}
.csp-s93{color:var(--primary); font-weight:bold;}
.csp-s94{display:flex; gap:8px;}
.csp-s95{margin-top:12px; border-top:1px dashed var(--border-color); padding-top:10px;}
.csp-s96{font-size:10px; color:var(--text-muted); margin-bottom:8px;}
.csp-s97{display:flex; flex-direction:column; gap:6px;}
.csp-s98{border:none; padding:0; margin-top:4px; font-weight:normal;}
.csp-s99{background:rgba(0,255,85,0.05); border:1px solid var(--success); padding:6px; font-size:11px; border-radius:4px;}
.csp-s100{color:var(--success); font-weight:bold;}
.csp-s101{padding:6px; font-size:11px;}
.csp-s102{width:100%; margin-top:12px; border-color:var(--primary); color:var(--primary);}
.csp-s103{width:100%;}
.csp-s104{font-size:11px; font-family:var(--font-mono); color:var(--text-muted); display:flex; justify-content:space-between; margin-bottom:8px;}
.csp-s105{color:var(--critical); font-weight:bold;}
.csp-s106{font-size:15px; margin-bottom:8px; color:var(--warning); font-weight:bold;}
.csp-s107{font-size:10px; font-family:var(--font-mono); color:var(--text-muted); margin-bottom:6px; margin-top:12px;}
.csp-s108{font-size:11px; font-family:var(--font-mono); color:var(--primary); font-weight:bold;}
.csp-s109{margin-top:10px;}
.csp-s110{align-items: center; margin-bottom: 10px;}
.csp-s111{margin: 0; width: 140px; font-size:13px;}
.csp-s112{border-color:var(--danger); color:var(--danger); height:42px; padding:0 15px;}
.csp-s113{color:var(--text-muted); text-align:center; font-size:13px; font-family:var(--font-mono);}
.csp-s114{background:transparent; border:none; padding:0; margin-top:4px;}
.csp-s115{font-size:10px; color:var(--text-muted); font-weight:bold; margin-right:8px;}
.csp-s116{background:var(--bg-panel-hover); padding:15px; border:1px solid var(--border-color); margin-bottom:12px; border-radius:4px; cursor:pointer; transition:0.2s;}
.csp-s117{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:6px;}
.csp-s118{font-size:15px; color:var(--text-main); font-weight:bold;}
.csp-s119{background:var(--warning); color:#000; padding:3px 8px; font-size:10px; border-radius:2px; font-weight:bold;}
.csp-s120{font-size:12px; font-family:var(--font-mono); color:var(--primary); font-weight:bold; margin-bottom:12px;}
.csp-s121{color:var(--text-muted); font-weight:normal;}
.csp-s122{display:flex; justify-content:flex-end; align-items:center;}
.csp-s123{display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:8px; cursor:pointer;}
.csp-s124{font-size:15px}


/* CSP semantic helpers */
.access-disabled{opacity:.5;cursor:not-allowed;background:rgba(0,255,85,.05)!important;}
.detail-box-spaced{margin-bottom:15px;}
.urgency-border-critical{border-left:3px solid var(--critical)!important;}
.urgency-border-high{border-left:3px solid var(--warning)!important;}
.urgency-border-normal,.urgency-border-routine{border-left:3px solid var(--primary)!important;}
.urgency-text-critical{color:var(--critical)!important;}
.urgency-text-high{color:var(--warning)!important;}
.urgency-text-normal,.urgency-text-routine{color:var(--primary)!important;}
.status-text-baselined,.status-text-approved{color:var(--success)!important;}
.status-text-review,.status-text-pending{color:var(--warning)!important;}
.status-text-draft{color:var(--text-muted)!important;}
.gateway-mode-action{font-size:12px;font-family:var(--font-mono);font-weight:bold;}
.gateway-mode-enter{color:var(--primary);}.gateway-mode-delete{color:var(--danger);}.gateway-mode-members{color:var(--warning);}



/* Production SSO / REST adapter status */
.auth-guard-status-error{color:var(--danger)!important;}
.auth-guard-status-ok{color:var(--success)!important;}
.auth-guard-actions{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap;}
.auth-guard-actions.hidden{display:none!important;}
