@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #f8fafc;--surface-strong: #eef2f6;--sidebar: #151923;--sidebar-soft: #202636;--text: #161a22;--muted: #667085;--line: #d9e0e8;--line-soft: #e8edf3;--primary: #2563eb;--primary-soft: #dbeafe;--primary-ink: #ffffff;--teal: #0f766e;--teal-soft: #ccfbf1;--amber: #b45309;--amber-soft: #fef3c7;--danger: #b42318;--danger-soft: #fee4e2;--off: #697586;--shadow: 0 16px 36px rgba(15, 23, 42, .08)}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100vh;color:var(--text);font-family:IBM Plex Sans,sans-serif;background:var(--bg)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}#root{min-height:100vh}.ops-brand,.ops-topbar-actions,.ops-stat-head,.section-head,.ops-modal-head,.ops-input-row,.ops-loader,.ops-inline-alert,.ops-inline-warning,.ops-alert,.ops-message-strip,.metric-card-head,.project-card-head,.project-card-actions,.audit-card-head,.hero-actions,.storage-meta,.docker-row,.codex-project-row,.portal-sidebar-brand,.portal-nav-item,.portal-sidebar-foot,.portal-topbar,.toggle-row,.empty-state,.project-alert-row,.audit-row{display:flex;align-items:center}.ops-shell{position:relative;z-index:1;width:min(1180px,calc(100% - 32px));margin:0 auto;padding:32px 0}.login-shell{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.7fr);gap:18px;min-height:100vh;align-items:center}.login-panel,.login-status-panel,.portal-section,.metric-card,.project-card,.audit-card,.doc-card,.settings-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.login-panel,.login-status-panel,.portal-section{padding:22px}.ops-logo{width:44px;height:44px;-o-object-fit:contain;object-fit:contain}.ops-brand{gap:12px}.ops-brand h1,.portal-topbar h1,.hero-section h2,.section-head h2,.section-head h3,.ops-modal-head h2{margin:0;font-family:Space Grotesk,sans-serif;letter-spacing:0}.ops-eyebrow{margin:0 0 6px;font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase;color:var(--muted)}.ops-copy,.muted-copy,.hero-section p,.project-card p,.doc-card p,.settings-card p,.audit-card p,.metric-card p,.check-list,.ops-progress-step p,.ops-result-card p{color:var(--muted);line-height:1.55}.ops-login-form{display:grid;gap:12px;margin-top:22px}.ops-login-form label,.form-grid label{display:grid;gap:7px;font-size:.86rem;font-weight:700;color:var(--muted)}.ops-input-row{gap:10px;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.ops-input-row input,.form-grid input,.form-grid select,.credential-form textarea,.pricing-result textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);outline:none}.ops-input-row input{height:100%;min-height:0;border:0;background:transparent}.ops-login-form .login-remember{display:inline-flex;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;color:var(--text)}.ops-login-form .login-remember input{width:16px;height:16px}.form-grid input,.form-grid select,.credential-form textarea{padding:0 10px}.credential-form textarea{min-height:82px;padding:10px;resize:vertical;line-height:1.45}.ops-primary-button,.ops-ghost-button,.ops-action-button,.ops-icon-button,.portal-nav-item,.project-alert-row{border:0;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease,opacity .14s ease}.ops-primary-button:disabled,.ops-ghost-button:disabled,.ops-action-button:disabled,.ops-icon-button:disabled{opacity:.55;cursor:not-allowed}.ops-primary-button,.ops-ghost-button,.ops-action-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 13px;border-radius:8px;font-weight:800;white-space:nowrap}.ops-primary-button{background:var(--primary);color:var(--primary-ink)}.ops-ghost-button,.ops-action-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.ops-ghost-button:hover,.ops-action-button:hover{background:var(--surface-strong)}.ops-ghost-button.slim{min-height:34px;padding:7px 10px}.ops-action-button.danger{background:var(--danger-soft);border-color:#fecaca;color:var(--danger)}.ops-icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;background:var(--surface-soft);color:var(--text)}.portal-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.portal-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:16px;background:var(--sidebar);color:#f8fafc}.portal-sidebar-brand{gap:10px;padding:8px 6px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.portal-sidebar-brand strong,.portal-sidebar-brand span,.portal-sidebar-foot span{display:block}.portal-sidebar-brand strong{font-family:Space Grotesk,sans-serif;font-size:1rem}.portal-sidebar-brand span,.portal-sidebar-foot span{color:#aeb8c7;font-size:.78rem}.portal-nav{display:grid;gap:4px;margin-top:16px}.portal-nav-item{gap:10px;width:100%;min-height:40px;padding:9px 10px;border-radius:8px;background:transparent;color:#cdd5df;font-weight:700;text-align:left}.portal-nav-item:hover,.portal-nav-item.active{background:var(--sidebar-soft);color:#fff}.portal-nav-item.logout{justify-content:flex-start;color:#fecaca}.portal-sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);flex-direction:column;align-items:stretch;gap:10px}.portal-main{min-width:0;padding:24px}.portal-topbar{justify-content:space-between;gap:16px;margin-bottom:18px}.portal-topbar h1{font-size:clamp(1.7rem,3vw,2.4rem)}.ops-topbar-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.view-stack{display:grid;gap:16px}.hero-section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.hero-section.compact h2,.hero-section h2{font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.05}.hero-section p{max-width:760px;margin:10px 0 0}.hero-actions{gap:8px;justify-content:flex-end;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{min-height:132px;padding:16px}.metric-card-head,.section-head,.project-card-head,.audit-card-head,.storage-meta,.docker-row,.codex-project-row{justify-content:space-between;gap:12px}.metric-card-head{color:var(--muted);font-weight:800}.metric-card strong{display:block;margin-top:18px;font-size:1.35rem}.metric-card p{margin:8px 0 0;font-size:.88rem}.dashboard-grid,.pricing-layout,.credentials-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:16px;align-items:start}.section-head{align-items:flex-start;margin-bottom:16px}.section-head h2,.section-head h3{font-size:1.28rem}.compact-list,.project-list,.storage-list,.docker-breakdown,.doc-grid,.audit-list,.settings-grid{display:grid;gap:10px}.project-alert-row,.audit-row,.codex-project-row,.docker-row{width:100%;padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft);color:var(--text)}.project-alert-row{grid-template-columns:auto minmax(0,1fr) auto;text-align:left}.project-alert-row div,.audit-row div,.codex-project-row div{display:grid;gap:3px;min-width:0}.project-alert-row span,.audit-row span,.codex-project-row span,.docker-row span,.ops-table span{color:var(--muted);font-size:.84rem}.empty-state{gap:10px;min-height:64px;padding:14px;border:1px dashed var(--line);border-radius:8px;color:var(--teal);background:var(--teal-soft);font-weight:800}.ops-message-strip{display:grid;gap:8px}.ops-alert,.ops-inline-alert,.ops-inline-warning{gap:8px;padding:10px 12px;border-radius:8px;font-weight:800}.ops-alert.warning,.ops-inline-alert,.ops-inline-warning{background:var(--amber-soft);color:var(--amber)}.ops-alert.ok{background:var(--teal-soft);color:var(--teal)}.ops-inline-note,.ops-chip,.ops-status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);font-size:.78rem;font-weight:800;padding:6px 9px;white-space:nowrap}.ops-status-dot{width:7px;height:7px;border-radius:999px;background:currentColor}.ops-status-healthy{color:var(--teal);background:var(--teal-soft);border-color:#99f6e4}.ops-status-degraded{color:var(--amber);background:var(--amber-soft);border-color:#fde68a}.ops-status-offline{color:var(--off);background:#eef2f6}.project-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px}.project-card h3,.audit-card h4,.doc-card h4{margin:10px 0 0;font-family:Space Grotesk,sans-serif;letter-spacing:0}.project-card p,.audit-card p,.doc-card p{margin:8px 0 0}.project-card-actions{flex-direction:column;align-items:stretch;justify-content:center;gap:8px}.project-meta-grid,.ops-result-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 0}.project-meta-grid div,.ops-result-meta div,.pricing-result dl div{padding-top:10px;border-top:1px solid var(--line-soft)}.project-meta-grid dt,.ops-result-meta dt,.pricing-result dt{color:var(--muted);font-size:.76rem;font-weight:800}.project-meta-grid dd,.ops-result-meta dd,.pricing-result dd{margin:5px 0 0;font-weight:800;word-break:break-word}.project-meta-grid a,.codex-project-row a{display:inline-flex;align-items:center;gap:5px;color:var(--primary)}.ops-runtime-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ops-runtime-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);font-size:.8rem}.ops-runtime-chip strong{color:var(--text)}.storage-item{display:grid;gap:7px}.storage-track,.ops-progress-track{position:relative;height:9px;border-radius:999px;overflow:hidden;background:var(--surface-strong)}.storage-fill,.ops-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--teal))}.docker-row>div:last-child{text-align:right}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}.ops-table{width:100%;border-collapse:collapse;min-width:760px;background:var(--surface)}.ops-table th,.ops-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line-soft)}.ops-table th{color:var(--muted);font-size:.78rem;text-transform:uppercase}.ops-table td:first-child{display:grid;gap:3px}.doc-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.credential-form{display:grid;gap:14px}.credential-secret-input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.credential-form-actions{display:flex;justify-content:flex-end}.credential-list{display:grid;gap:10px}.credential-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.credential-card-head,.credential-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.credential-card-head>div{display:grid;gap:3px;min-width:0}.credential-card-head strong{font-family:Space Grotesk,sans-serif}.credential-card-head span,.credential-card p{color:var(--muted)}.credential-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.credential-card dt{color:var(--muted);font-size:.76rem;font-weight:800}.credential-card dd{margin:4px 0 0;font-weight:800;overflow-wrap:anywhere}.credential-tags{display:flex;flex-wrap:wrap;gap:7px}.tag{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.76rem;font-weight:800}.credential-secret-box{max-width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#111827;color:#e5e7eb;overflow:auto}.credential-secret-box code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;white-space:pre-wrap;overflow-wrap:anywhere}.credential-actions{justify-content:flex-end;flex-wrap:wrap}.access-scope-grid{display:flex;flex-wrap:wrap;gap:10px}.access-scope-option{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text);font-size:.84rem;font-weight:800}.access-scope-option input{width:16px;height:16px}.danger-chip{border-color:#b91c1c40;background:#fee2e2b3;color:#991b1b}.doc-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px}.doc-card code{display:inline-block;max-width:100%;margin-top:10px;padding:6px 8px;border-radius:8px;background:var(--surface-strong);color:#334155;overflow-wrap:anywhere}.check-list{display:grid;gap:10px;margin:0;padding-left:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.toggle-row{flex-wrap:wrap;gap:14px;margin-top:16px}.toggle-row label{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--text)}.pricing-result{position:sticky;top:24px}.pricing-result>strong{display:block;font-family:Space Grotesk,sans-serif;font-size:clamp(2rem,4vw,3rem);line-height:1}.pricing-result>span{display:block;margin-top:6px;color:var(--muted);font-weight:800}.pricing-workspace,.pricing-module-list{display:grid;gap:16px}.pricing-module-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.pricing-module-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.pricing-module-head input{width:100%;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-weight:800;outline:none}.pricing-notes-field{display:grid;gap:7px;margin-top:14px;color:var(--muted);font-size:.86rem;font-weight:700}.pricing-notes-field textarea{min-height:82px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);resize:vertical;line-height:1.45}.pricing-result dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.pricing-result dt{color:var(--muted);font-size:.76rem;font-weight:800}.pricing-result dd{margin:4px 0 0;font-weight:900;overflow-wrap:anywhere}.pricing-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.pricing-option-card{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.pricing-option-card strong{font-family:Space Grotesk,sans-serif}.pricing-option-card span{color:var(--muted);font-size:.82rem;font-weight:800}.pricing-formula-box{display:grid;gap:5px;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.pricing-formula-box span,.pricing-formula-box small{color:var(--muted);line-height:1.45}.pricing-result textarea{min-height:230px;padding:12px;resize:vertical;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.audit-list{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-card,.settings-card{padding:14px}.audit-card>span{display:block;margin-top:10px;color:var(--muted);font-size:.84rem}.ops-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;background:#0f172a7a}.ops-modal{width:min(760px,100%);padding:20px;margin:auto;display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden;border-radius:8px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.ops-modal-head,.ops-modal-actions{flex-shrink:0}.ops-modal-head{justify-content:space-between;gap:14px}.ops-modal-body{min-height:0;overflow:auto;padding-right:4px}.ops-command-preview{margin:14px 0 0;padding:14px;overflow:auto;border-radius:8px;background:#111827;color:#e5e7eb;font-size:.88rem}.ops-log-preview{margin-top:10px;max-height:min(38vh,360px)}.ops-log-preview.danger{background:#2f1113;color:#fecaca}.ops-progress-card,.ops-result-card{margin-top:14px;padding:14px;border-radius:8px;border:1px solid var(--line);background:var(--surface-soft)}.ops-result-banner{margin-top:14px}.ops-progress-header,.ops-result-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ops-progress-header h3,.ops-result-card h3{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.08rem}.ops-progress-track{margin-top:14px}.ops-progress-fill{transition:width .36s ease}.ops-progress-steps{display:grid;gap:10px;margin-top:14px}.ops-progress-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--surface)}.ops-progress-step.done{background:var(--teal-soft)}.ops-progress-step-bullet{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--surface-strong);color:var(--muted)}.ops-progress-step.active .ops-progress-step-bullet{color:var(--primary);background:var(--primary-soft)}.ops-progress-step.done .ops-progress-step-bullet{color:var(--teal)}.ops-progress-step-bullet span{width:9px;height:9px;border-radius:999px;background:currentColor}.ops-result-meta{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-log-disclosure{margin-top:14px}.ops-log-disclosure summary{cursor:pointer;font-weight:800}.ops-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft)}.ops-loader{justify-content:center;gap:12px;min-height:80vh;color:var(--muted);font-weight:800}.spin{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.pricing-layout,.credentials-layout,.login-shell{grid-template-columns:1fr}.pricing-result{position:static}}@media (max-width: 920px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{position:static;height:auto}.portal-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-sidebar-foot{flex-direction:row;align-items:center}.portal-topbar,.hero-section,.project-card,.ops-progress-header,.ops-result-header{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}.hero-actions,.ops-topbar-actions,.project-card-actions{width:100%;justify-content:stretch}.hero-actions>*,.ops-topbar-actions>*,.project-card-actions>*{flex:1}.project-card-actions{flex-direction:row}.project-meta-grid,.ops-result-meta,.form-grid,.credential-card dl,.pricing-options,.doc-grid,.audit-list,.settings-grid{grid-template-columns:1fr}}@media (max-width: 620px){.portal-main,.portal-sidebar,.ops-shell{padding:14px}.portal-nav{grid-template-columns:1fr 1fr}.metric-grid,.pricing-result dl{grid-template-columns:1fr}.portal-section,.login-panel,.login-status-panel{padding:16px}.project-card-actions,.ops-modal-actions{flex-direction:column}.pricing-module-head{grid-template-columns:1fr}.ops-modal-backdrop{padding:12px}}
