/* DemoForge — additions on top of style.css / market.css (from IaC-dashboard). */

/* Two-row header: brand + context + language, then the 7 tabs */
header.site.dl-header{flex-direction:column;align-items:stretch;gap:10px;padding:14px 0 0}
.dl-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.dl-top .brand-sub{max-width:none}
.context-bar{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.ctx{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;background:var(--card);border:1px solid var(--line);padding:6px 11px;border-radius:20px}
.ctx b,.tenant b{color:var(--ink);font-weight:600}
.ctx-k{color:var(--faint)}
.dl-tabs{margin-left:0;gap:4px;border-top:1px solid var(--line);padding:6px 0 8px}
header.site .dl-tabs .tab{padding:7px 12px}

/* Dashboard */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.tile .t-val{font-size:26px;font-weight:700;line-height:1.1}
.tile .t-lbl{color:var(--muted);font-size:12px;margin-top:4px}
.tile.warn .t-val{color:var(--warn)}
.tile.risk .t-val{color:var(--risk)}
.dash-grid{margin-bottom:0}
.tool-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tool{display:flex;align-items:center;gap:8px;background:#0f1729;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px}
.tool i{width:8px;height:8px;border-radius:50%;background:var(--risk);flex:none}
.tool.ok i{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.tool .v{margin-left:auto;font:11px ui-monospace,Menlo,monospace;color:var(--faint)}
.audit-list{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.audit-row{display:grid;grid-template-columns:150px 200px 1fr;gap:10px;padding:6px 8px;border-bottom:1px dashed var(--line)}
.audit-row .ts{font:11.5px ui-monospace,Menlo,monospace;color:var(--faint)}
.btn-sm{padding:4px 10px;font-size:12px;margin-left:auto}

/* Placeholder of an area not built yet */
.soon{background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);padding:40px;text-align:center;color:var(--muted)}

/* Settings form */
.card select{width:100%;background:#0e1526;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px 11px;font:13px/1.4 inherit}
.settings-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px}
.fld.invalid input,.fld.invalid select{border-color:var(--risk)}
.fld .ferr{color:var(--risk);font-size:11.5px;margin-top:4px}

/* Signed-in user in the header */
.user-chip{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.user-chip .me{color:var(--ink);font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chip .btn-sm{margin-left:0}
.role-badge{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--line);background:#0f1729}
.role-badge.role-admin{color:#f04e23;border-color:#f04e2355}
.role-badge.role-operator{color:var(--ok);border-color:#2ecc7155}

/* Login / invitation pages */
body.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}
.auth-box{width:min(400px,92vw);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px}
.auth-brand{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.auth-brand .brand-name{font-size:18px}
.auth-about{color:var(--muted);font-size:12.5px;line-height:1.5;margin:-8px 0 18px}
.auth-box h1{font-size:20px;margin:0 0 16px}
.auth-box form{display:flex;flex-direction:column;gap:4px}
.auth-box .btn-primary{margin-top:10px}
.auth-box input{width:100%;box-sizing:border-box;background:#0e1526;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px 11px;font:13px/1.4 inherit}
.auth-who{color:var(--muted);margin:-6px 0 14px}
.auth-error{color:var(--risk);font-size:13px;min-height:18px;margin-top:10px}
.auth-foot{color:var(--faint);font-size:11px;margin-top:14px;text-align:right}
.auth-box a{color:var(--ink)}

/* Users tab */
.table-wrap{overflow-x:auto}
.users-table{width:100%;border-collapse:collapse;font-size:13px}
.users-table th{text-align:left;color:var(--faint);font-weight:500;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}
.users-table td{padding:8px;border-bottom:1px dashed var(--line);vertical-align:middle}
.users-table td .sub{color:var(--faint);font-size:11.5px}
.users-table select{background:#0e1526;border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:4px 6px}
.users-table .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.users-table .acts .btn-sm{margin-left:0}
.users-table tr.st-disabled td{opacity:.55}
.users-table .mono{font:11.5px ui-monospace,Menlo,monospace;color:var(--faint)}
.you{font-size:11px;color:var(--faint)}
.status-pill{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--line)}
.status-pill.active{color:var(--ok)}
.status-pill.invited{color:var(--warn)}
.status-pill.disabled,.status-pill.locked{color:var(--risk)}
.link-box{margin-top:12px;display:flex;flex-direction:column;gap:6px}
.link-row{display:flex;gap:6px}
.link-row input{flex:1;font:12px ui-monospace,Menlo,monospace}
.link-row .btn-sm{margin-left:0}
.howto{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.6}
.audit-row.wide{grid-template-columns:150px 200px 1fr 200px 110px}
.audit-row .who{color:var(--muted)}

/* Header: active environment selector */
.ctx select{background:transparent;border:none;color:var(--ink);font:600 12.5px inherit;max-width:180px;cursor:pointer}
.ctx select:focus{outline:none}
.ctx select option{background:var(--card);color:var(--ink)}

/* Connections (Cloud Providers, Cortex Cloud) */
.panel-head{position:relative}
.panel-head > .btn{position:absolute;right:0;top:4px}
.add-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.add-bar .btn-sm{margin-left:0}
.conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.conn-card .kv{margin-top:10px}
.conn-card .probe-msg{font-size:12px;color:var(--muted);min-height:16px;word-break:break-word}
.conn-card .probe-msg .ts{color:var(--faint)}
.conn-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:14px}
.conn-actions .btn-sm{margin-left:0}
.grant-count{font-size:11.5px;color:var(--faint);margin-left:auto}
.c-tag.github{background:#e8eefc;color:#0b1220}

/* Drawer forms */
.check-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.check{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px}
.check input{width:auto}
.check .sub{color:var(--faint);font-size:11.5px}
.share-row{justify-content:space-between}
.share-row select{width:auto;background:#0e1526;border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:4px 6px}
.cidr-row{display:flex;gap:6px;margin-bottom:6px}
.cidr-row input{flex:1;font-family:ui-monospace,Menlo,monospace}
.cidr-add{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.cidr-add .btn-sm{margin-left:0}
.fld-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ferr-global{color:var(--risk);font-size:12.5px;margin-top:10px;min-height:16px}
.fld.invalid textarea{border-color:var(--risk)}

/* Cortex onboarded accounts */
.cx-inst{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.cx-inst-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cx-inst-head .sub{color:var(--faint);font-size:12px}
table.mini{width:100%;border-collapse:collapse;font-size:12.5px}
table.mini th{text-align:left;color:var(--faint);font-weight:500;padding:4px 6px;border-bottom:1px solid var(--line)}
table.mini td{padding:4px 6px;border-bottom:1px dashed var(--line)}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}

/* Environments table */
.env-table tr.active-row td{background:rgba(46,168,224,.06)}
.card h2 .btn-sm{margin-left:auto}

/* Status pills (instances, jobs) */
.st-pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.st-pill.deployed,.st-pill.succeeded,.st-pill.planned{color:var(--ok);border-color:#35c28a55}
.st-pill.deploying,.st-pill.planning,.st-pill.destroying,.st-pill.running,.st-pill.queued{color:var(--accent);border-color:#2ea8e055}
.st-pill.failed,.st-pill.destroy_failed{color:var(--risk);border-color:#ef5a6b55}
.st-pill.interrupted,.st-pill.cancelled{color:var(--warn);border-color:#f0b42955}
.st-pill.destroyed,.st-pill.skipped,.st-pill.pending,.st-pill.new{color:var(--faint)}

/* Job console */
.jc-head{margin-bottom:10px;font-size:13px}
.jc-head .sub{color:var(--faint);font-size:12px;margin-top:4px}
.jc-error{color:var(--risk);font-size:12.5px;margin-top:6px}
.jc-steps{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.jc-step{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:6px 9px;text-align:left;cursor:pointer;font-size:12.5px}
.jc-step.active{border-color:var(--accent);background:rgba(46,168,224,.07)}
.jc-step .sub{color:var(--faint)}
.jc-log{max-height:52vh;min-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:11.5px}
.drawer{width:min(680px,96vw)}

/* Marketplace bits */
.warn-text{color:var(--warn)}
.check.dry{margin:6px 0 10px;border-style:dashed}
.p-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.job-row{cursor:pointer}
.job-row:hover{background:rgba(46,168,224,.06)}
.secret-box textarea{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;background:#0e1526;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:8px}
.inst-table td .sub{color:var(--faint);font-size:11.5px}

/* Demo Motions */
.motion-card .p-desc{min-height:66px}
.motion-actions{display:flex;gap:8px;justify-content:flex-end}
.lab-badge{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.3px;color:#fff;background:var(--risk);border-radius:6px;padding:1px 7px;margin-top:4px}
.ok-text{color:var(--ok)}
ul.plain{margin:4px 0 8px;padding-left:18px;font-size:13.5px}
ul.plain li{margin:3px 0}
.dag{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:4px 0 10px}
.dag-col{display:flex;flex-direction:column;gap:8px;min-width:190px;flex:0 0 auto}
.dag-arrow{align-self:center;color:var(--faint);font-size:18px}
.dag-node{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--card2);font-size:13px}
.dag-node .sub{color:var(--faint);font-size:11.5px}
.dag-node details{margin-top:5px;font-size:11.5px}
.dag-node .pair{display:flex;gap:6px;justify-content:space-between}
.dag-node .pair span{word-break:break-all;text-align:right}
.dag-node.reusable{border-left-color:var(--ok)}
.dag-node.st-deployed{border-left-color:var(--ok)}
.dag-node.st-running,.dag-node.st-deploying,.dag-node.st-destroying{border-left-color:var(--accent);box-shadow:0 0 0 1px #2ea8e055}
.dag-node.st-failed,.dag-node.st-destroy_failed{border-left-color:var(--risk)}
.dag-node.st-skipped{opacity:.55}
.dag-node.st-interrupted{border-left-color:var(--warn)}
.run-view{margin-top:18px}
.run-head{display:flex;align-items:flex-start;gap:12px}
.run-head h2{margin:0}
.run-head>div:first-child{flex:1}
.run-head .sub{color:var(--faint);font-size:12.5px}
.run-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.row-active td{background:rgba(46,168,224,.07)}
.plan-total{font-size:13px;margin:8px 0}
.plan-table tr.muted td{opacity:.55}
.check.risk span{color:var(--risk)}
.checks-table td{vertical-align:top;font-size:13px}
.st-pill.run-provisioned,.st-pill.run-cleaned,.st-pill.rd-ready,.st-pill.ck-ok,.st-pill.act-create{color:var(--ok);border-color:#35c28a55}
.st-pill.run-provisioning,.st-pill.run-cleaning,.st-pill.run-resetting,.st-pill.run-operating,.st-pill.rd-in_progress,.st-pill.ck-in_progress,.st-pill.act-reuse{color:var(--accent);border-color:#2ea8e055}
.st-pill.run-failed,.st-pill.run-cleanup_failed,.st-pill.rd-failed,.st-pill.ck-failed{color:var(--risk);border-color:#ef5a6b55}
.st-pill.run-interrupted,.st-pill.run-cancelled,.st-pill.rd-warning,.st-pill.ck-warning{color:var(--warn);border-color:#f0b42955}
.st-pill.ck-skipped,.st-pill.act-skip{color:var(--faint)}
.md{font-size:13.5px;line-height:1.55}
.md h3,.md h4,.md h5{margin:14px 0 6px}
.md blockquote{border-left:3px solid var(--accent);margin:8px 0;padding:4px 10px;color:var(--muted)}
.run-script{margin-top:14px}
.run-script summary{cursor:pointer;color:var(--accent2)}

/* Agent prompt panel */
.chat-panel{margin-top:14px}
.chat-scens{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.chat-scen{display:flex;flex-direction:column;gap:4px;max-width:330px}
.chat-scen .sub{color:var(--faint);font-size:11.5px}
.chat-pick{text-align:left;white-space:normal}
.chat-log{max-height:46vh;min-height:120px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#0e1526;font-size:13px}
.chat-msg{margin:8px 0}
.chat-who{display:inline-block;font-size:11px;font-weight:600;color:var(--faint);margin-bottom:2px}
.chat-msg.user .chat-who{color:var(--accent2)}
.chat-text{white-space:pre-wrap;word-break:break-word}
.chat-trace{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 4px}
.chat-ev{font-size:11px}
.chat-ev.gr{color:var(--warn);border-color:#f0b42988}
.chat-input{display:flex;gap:8px;margin-top:8px}
.chat-input textarea{flex:1;resize:vertical}

/* Connection form: credentials procedure + JSON loader */
.drawer .help code{font-size:11px}
.fld.json-load{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fld.json-load .btn-sm{margin-left:0}
