:root {
  /* Forge identity "Deep Atlantic": petrol ink, perla page, deep teal action, ocean grey, ice green. */
  --forge-primary-50:#eef6f6; --forge-primary-100:#dce7e5; --forge-primary-200:#b9d7d6;
  --forge-primary-500:#2a959a; --forge-primary-600:#177e83; --forge-primary-700:#0f5f63;
  --forge-neutral-0:#fff; --forge-neutral-50:#fbfcfc; --forge-neutral-100:#f1f5f4;
  --forge-neutral-200:#dce7e5; --forge-neutral-300:#c6d6d3; --forge-neutral-400:#7f9b9b;
  --forge-neutral-500:#5b7577; --forge-neutral-600:#4f6a6c; --forge-neutral-700:#33494f;
  --forge-neutral-800:#22373f; --forge-neutral-900:#172c35; --forge-neutral-950:#0e1b21;
  --forge-success-50:#e2f1ea; --forge-success-600:#1d7a52;
  --forge-warning-50:#fdf3dc; --forge-warning-600:#a15c07;
  --forge-danger-50:#fbe7e5; --forge-danger-600:#b3261e;
  --forge-radius-sm:6px; --forge-radius-md:8px; --forge-radius-lg:10px; --forge-radius-xl:14px;
  --forge-shadow-sm:none;
  --forge-shadow-md:0 8px 24px rgb(23 44 53 / .08);
  --forge-sidebar-width:0px; --forge-topbar-height:56px;
  --forge-font:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* Aliases used by older templates. */
  --forge-danger:var(--forge-danger-600); --forge-warning:var(--forge-warning-600); --forge-error:var(--forge-danger-600); --forge-text-muted:var(--forge-neutral-500);
  --forge-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box} html{background:var(--forge-neutral-50)} body{margin:0;color:var(--forge-neutral-900);font-family:var(--forge-font);font-size:14px;line-height:1.5}
a{color:inherit;text-decoration:none} button,input,select,textarea{font:inherit}
.forge-app{min-height:100vh}.forge-sidebar{position:fixed;inset:0 auto 0 0;width:var(--forge-sidebar-width);background:var(--forge-neutral-950);color:var(--forge-neutral-300);padding:20px 14px;display:flex;flex-direction:column;z-index:20}
.forge-brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:17px;padding:0 10px 22px}.forge-brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,var(--forge-primary-500),var(--forge-primary-700));box-shadow:0 8px 20px rgb(23 126 131 / .3)}
.forge-nav-label{padding:16px 10px 7px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--forge-neutral-500);font-weight:700}.forge-nav{display:grid;gap:4px}.forge-nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--forge-neutral-400);font-weight:550}.forge-nav-item:hover{background:rgb(255 255 255 / .06);color:#fff}.forge-nav-item.is-active{background:rgb(23 126 131 / .18);color:#fff}.forge-sidebar-footer{margin-top:auto;border-top:1px solid rgb(255 255 255 / .08);padding-top:14px}
.forge-main{margin-left:var(--forge-sidebar-width);min-height:100vh}.forge-topbar{height:var(--forge-topbar-height);position:sticky;top:0;background:rgb(255 255 255 / .9);backdrop-filter:blur(12px);border-bottom:1px solid var(--forge-neutral-200);display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:10}.forge-content{padding:32px;max-width:1440px;margin:0 auto}.forge-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.forge-eyebrow{color:var(--forge-primary-600);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.forge-title{font-size:28px;line-height:1.15;margin:5px 0 7px;letter-spacing:-.025em}.forge-subtitle{margin:0;color:var(--forge-neutral-500);max-width:700px}
.forge-grid{display:grid;gap:20px}.forge-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.forge-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.forge-stack{display:grid;gap:14px}.forge-section{margin-top:30px}.forge-section-title{font-size:17px;margin:0 0 12px}
.forge-card{background:#fff;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);box-shadow:var(--forge-shadow-sm);padding:20px}.forge-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.forge-card-title{font-size:15px;font-weight:700;margin:0}.forge-card-description{margin:4px 0 0;color:var(--forge-neutral-500)}
.forge-metric-value{font-size:27px;font-weight:750;letter-spacing:-.03em;margin-top:8px}.forge-metric-label{color:var(--forge-neutral-500);font-size:13px}.forge-metric-trend{margin-top:8px;font-size:12px;color:var(--forge-success-600);font-weight:650}
.forge-btn{border:0;border-radius:var(--forge-radius-md);padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;cursor:pointer;transition:.16s ease;min-height:38px}.forge-btn:hover{transform:translateY(-1px)}.forge-btn-primary{background:var(--forge-primary-600);color:#fff;box-shadow:0 5px 14px rgb(23 126 131 / .2)}.forge-btn-primary:hover{background:var(--forge-primary-700)}.forge-btn-secondary{background:#fff;color:var(--forge-neutral-700);border:1px solid var(--forge-neutral-300)}.forge-btn-ghost{background:transparent;color:var(--forge-neutral-600)}.forge-btn-danger{background:var(--forge-danger-600);color:#fff}.forge-btn-sm{min-height:32px;padding:6px 10px;font-size:12px}
.forge-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:650}.forge-badge-neutral{background:var(--forge-neutral-100);color:var(--forge-neutral-600)}.forge-badge-info{background:var(--forge-primary-50);color:var(--forge-primary-700)}.forge-badge-success{background:var(--forge-success-50);color:var(--forge-success-600)}.forge-badge-warning{background:var(--forge-warning-50);color:var(--forge-warning-600)}.forge-badge-danger{background:var(--forge-danger-50);color:var(--forge-danger-600)}.forge-dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.forge-field{display:grid;gap:6px}.forge-label{font-size:13px;font-weight:650;color:var(--forge-neutral-700)}.forge-help{font-size:12px;color:var(--forge-neutral-500)}.forge-input,.forge-select,.forge-textarea{width:100%;border:1px solid var(--forge-neutral-300);border-radius:var(--forge-radius-md);background:#fff;padding:10px 12px;color:var(--forge-neutral-900);outline:none;transition:.15s}.forge-input:focus,.forge-select:focus,.forge-textarea:focus{border-color:var(--forge-primary-500);box-shadow:0 0 0 3px var(--forge-primary-100)}
.forge-table-wrap{overflow:auto;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:#fff}.forge-table{width:100%;border-collapse:collapse}.forge-table th,.forge-table td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--forge-neutral-200)}.forge-table th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--forge-neutral-500);background:var(--forge-neutral-50)}.forge-table tr:last-child td{border-bottom:0}
.forge-empty{text-align:center;padding:54px 24px;border:1px dashed var(--forge-neutral-300);border-radius:var(--forge-radius-lg);background:linear-gradient(180deg,#fff,var(--forge-neutral-50))}.forge-empty-icon{width:48px;height:48px;border-radius:15px;background:var(--forge-primary-50);color:var(--forge-primary-600);display:grid;place-items:center;margin:0 auto 16px;font-size:20px}.forge-empty h3{margin:0 0 6px;font-size:17px}.forge-empty p{margin:0 auto 18px;max-width:460px;color:var(--forge-neutral-500)}
.forge-timeline{display:grid;gap:0}.forge-timeline-item{display:grid;grid-template-columns:24px 1fr;gap:12px;min-height:62px}.forge-timeline-rail{display:flex;flex-direction:column;align-items:center}.forge-timeline-node{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;z-index:1}.forge-timeline-line{width:2px;flex:1;background:var(--forge-neutral-200)}.forge-timeline-item:last-child .forge-timeline-line{display:none}.forge-timeline-node.done{background:var(--forge-success-600);color:#fff}.forge-timeline-node.running{background:var(--forge-primary-600);color:#fff;box-shadow:0 0 0 4px var(--forge-primary-100)}.forge-timeline-node.pending{background:var(--forge-neutral-200);color:var(--forge-neutral-500)}.forge-timeline-node.failed{background:var(--forge-danger-600);color:#fff}.forge-timeline-title{font-weight:650;margin-top:0}.forge-timeline-meta{font-size:12px;color:var(--forge-neutral-500);margin-top:2px}
.forge-color-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.forge-swatch{height:72px;border-radius:10px;padding:9px;font-size:11px;font-weight:700;display:flex;align-items:flex-end;border:1px solid rgb(15 23 42 / .06)}
.forge-kbd{border:1px solid var(--forge-neutral-300);background:var(--forge-neutral-50);border-bottom-width:2px;border-radius:6px;padding:2px 6px;font-size:11px;color:var(--forge-neutral-600)}
@media(max-width:1050px){.forge-grid-4{grid-template-columns:repeat(2,1fr)}.forge-grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.forge-sidebar{display:none}.forge-main{margin-left:0}.forge-topbar{padding:0 18px}.forge-content{padding:22px 18px}.forge-grid-2,.forge-grid-3,.forge-grid-4{grid-template-columns:1fr}.forge-page-header{display:grid}.forge-color-row{grid-template-columns:repeat(3,1fr)}}
.forge-form-card{max-width:680px}.forge-field{display:grid;gap:8px;margin-bottom:20px}.forge-field label{font-weight:650}.forge-field small{color:var(--forge-neutral-500)}.forge-field-error{color:var(--forge-error);font-size:14px}.forge-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.forge-card-link{display:block;color:inherit;text-decoration:none;transition:transform .15s ease,border-color .15s ease}.forge-card-link:hover{transform:translateY(-2px);border-color:var(--forge-primary)}.forge-auth-body{min-height:100vh;display:grid;place-items:center;background:var(--forge-neutral-50);padding:24px}.forge-auth-card{width:min(400px,100%);background:var(--forge-neutral-0);border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-xl);padding:32px;box-shadow:var(--forge-shadow-md)}.forge-auth-card form p{display:grid;gap:8px}.forge-auth-card input{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--forge-neutral-300);border-radius:10px}.forge-btn-block{width:100%;justify-content:center}

.forge-log-viewer {
  margin: 0;
  min-height: 420px;
  max-height: 680px;
  overflow: auto;
  padding: 18px;
  border-radius: 12px;
  background: #0b1020;
  color: #d7e1f2;
  border: 1px solid #1e293b;
  font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* Mission Control */
.forge-header-actions{display:flex;gap:10px;flex-wrap:wrap}.forge-mission-header{align-items:center}
.forge-control-status{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid;border-radius:var(--forge-radius-lg);margin-bottom:20px}.forge-control-status h2{font-size:17px;margin:0 0 3px}.forge-control-status p{margin:0;color:var(--forge-neutral-600)}.forge-control-status-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;font-weight:800;flex:0 0 auto}
.forge-control-status-healthy{background:var(--forge-success-50);border-color:color-mix(in srgb,var(--forge-success-600) 22%,transparent)}.forge-control-status-healthy .forge-control-status-icon{background:var(--forge-neutral-0);color:var(--forge-success-600)}
.forge-control-status-attention{background:var(--forge-danger-50);border-color:color-mix(in srgb,var(--forge-danger-600) 22%,transparent)}.forge-control-status-attention .forge-control-status-icon{background:var(--forge-neutral-0);color:var(--forge-danger-600)}
.forge-control-status-active{background:var(--forge-primary-50);border-color:var(--forge-primary-200)}.forge-control-status-active .forge-control-status-icon{background:var(--forge-primary-100);color:var(--forge-primary-700)}
.forge-control-status-empty{background:var(--forge-neutral-50);border-color:var(--forge-neutral-200)}.forge-control-status-empty .forge-control-status-icon{background:#fff;color:var(--forge-neutral-600)}
.forge-metric-grid{margin-bottom:24px}.forge-metric-card{padding:18px}.forge-metric-context{margin-top:5px;color:var(--forge-neutral-500);font-size:12px}.forge-text-danger{color:var(--forge-danger-600)}
.forge-mission-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:20px;align-items:start}.forge-mission-main,.forge-mission-side{display:grid;gap:20px}.forge-panel{padding:0;overflow:hidden}.forge-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--forge-neutral-200)}.forge-panel-header h2{font-size:17px;margin:3px 0 2px}.forge-panel-header p{margin:0;color:var(--forge-neutral-500);font-size:13px}
.forge-attention-list,.forge-operation-list{display:grid}.forge-attention-item,.forge-operation-row{display:grid;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--forge-neutral-100);transition:background .15s}.forge-attention-item:last-child,.forge-operation-row:last-child{border-bottom:0}.forge-attention-item:hover,.forge-operation-row:hover{background:var(--forge-neutral-50)}
.forge-attention-item{grid-template-columns:auto minmax(0,1fr) auto}.forge-attention-mark{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-weight:800}.forge-attention-mark-danger{background:var(--forge-danger-50);color:var(--forge-danger-600)}.forge-attention-mark-warning{background:var(--forge-warning-50);color:var(--forge-warning-600)}.forge-attention-content{display:grid;min-width:0}.forge-attention-content small,.forge-operation-name small,.forge-activity-item small{color:var(--forge-neutral-500)}.forge-attention-content>span{font-size:12px;color:var(--forge-neutral-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-attention-item time,.forge-operation-row time{font-size:12px;color:var(--forge-neutral-400);white-space:nowrap}
.forge-operation-row{grid-template-columns:auto minmax(0,1fr) auto auto}.forge-operation-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--forge-primary-50);color:var(--forge-primary-700)}.forge-operation-name{display:grid}
.forge-inline-empty{display:flex;align-items:center;gap:13px;padding:24px 20px;color:var(--forge-neutral-600)}.forge-inline-empty>span{width:34px;height:34px;border-radius:10px;background:var(--forge-neutral-100);display:grid;place-items:center}.forge-inline-empty strong{color:var(--forge-neutral-800)}.forge-inline-empty p{margin:2px 0 0;font-size:12px}.forge-inline-empty-compact{padding:18px 20px}
.forge-quick-actions{display:grid;padding:8px}.forge-quick-action{display:flex;gap:12px;align-items:center;padding:12px;border-radius:10px}.forge-quick-action:hover{background:var(--forge-neutral-50)}.forge-quick-action>span{width:34px;height:34px;border-radius:10px;background:var(--forge-primary-50);color:var(--forge-primary-700);display:grid;place-items:center;font-size:16px}.forge-quick-action div{display:grid}.forge-quick-action small{color:var(--forge-neutral-500)}
.forge-activity-feed{display:grid;padding:8px 20px}.forge-activity-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--forge-neutral-100)}.forge-activity-item:last-child{border-bottom:0}.forge-activity-item span:last-child{display:grid}.forge-activity-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;background:var(--forge-neutral-400)}.forge-activity-dot-succeeded{background:var(--forge-success-600)}.forge-activity-dot-failed{background:var(--forge-danger-600)}.forge-activity-dot-running{background:var(--forge-primary-600)}
@media(max-width:1100px){.forge-mission-grid{grid-template-columns:1fr}.forge-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.forge-content{padding:20px}.forge-page-header{display:grid}.forge-metric-grid{grid-template-columns:1fr}.forge-attention-item{grid-template-columns:auto minmax(0,1fr)}.forge-attention-item time{display:none}.forge-operation-row{grid-template-columns:auto minmax(0,1fr) auto}.forge-operation-row time{display:none}}

/* Shell: petrol top bar with brand and navigation; no sidebar. */
.forge-main{margin-left:0}
.forge-shell-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:22px;min-height:var(--forge-topbar-height);padding:8px 28px;background:var(--forge-neutral-900);color:var(--forge-neutral-100)}
.forge-shell-brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px;letter-spacing:-.01em;color:#fff}
.forge-shell-brand i{width:13px;height:13px;transform:rotate(45deg);border-radius:2px;background:linear-gradient(135deg,#a9d3cf,var(--forge-primary-600) 60%,#0e1b21)}
.forge-shell-nav{display:flex;gap:4px;flex-wrap:wrap}
.forge-shell-nav a{padding:6px 10px;border-radius:6px;color:var(--forge-neutral-400);font-weight:600}
.forge-shell-nav a:hover,.forge-shell-nav a.is-active{color:#fff;background:rgb(255 255 255 / .07)}
.forge-shell-title{color:var(--forge-neutral-400);font-weight:600;padding-left:16px;border-left:1px solid rgb(255 255 255 / .12)}
.forge-shell-end{margin-left:auto;display:flex;align-items:center;gap:12px}
.forge-shell-end .forge-badge-success{background:rgb(255 255 255 / .06);color:#8fd3b0}
code,pre,kbd,.forge-kbd{font-family:var(--forge-mono)}
.forge-card{box-shadow:none}
@media(max-width:720px){.forge-shell-bar{padding:8px 16px;gap:12px}.forge-shell-title{display:none}}

/* Build progress: five teal segments, the current one lighter. */
.forge-segments{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin-top:8px}
.forge-segments span{height:7px;border-radius:2px;background:var(--forge-neutral-200)}
.forge-segments .done{background:var(--forge-primary-600)}
.forge-segments .now{background:var(--forge-primary-600);opacity:.5;animation:forge-glow 1.4s ease-in-out infinite}
@keyframes forge-glow{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.forge-segments .now{animation:none}}

/* Project workspace: environment rail (promotion order) + commit timeline. */
.fw{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.fw-rail{position:sticky;top:calc(var(--forge-topbar-height) + 20px);display:grid;gap:14px}
.fw-rail-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--forge-neutral-500)}
.fw-stops{list-style:none;margin:0;padding:0;display:grid}
.fw-stop{position:relative;padding:0 0 12px 24px}
.fw-stop::before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:var(--forge-neutral-400);opacity:.35}
.fw-stop:first-child::before{top:14px}
.fw-stop:last-child::before{bottom:auto;height:14px}
.fw-stop:only-child::before{display:none}
.fw-node{position:absolute;left:0;top:10px;width:14px;height:14px;border-radius:50%;border:3px solid var(--forge-neutral-50);background:var(--forge-neutral-400)}
.fw-stop:has(.fw-promo) .fw-node{top:36px}
.fw-node-live{background:var(--forge-success-600)}
.fw-node-working{background:var(--forge-primary-600)}
.fw-node-failed{background:var(--forge-danger-600)}
.fw-promo{font-size:12px;color:var(--forge-primary-700);margin:0 0 8px}
.fw-env{display:grid;gap:1px;padding:8px 11px;border-radius:8px;border:1px solid transparent}
.fw-env:hover{background:var(--forge-neutral-100)}
.fw-env[aria-current="page"]{background:#fff;border-color:var(--forge-neutral-200);box-shadow:inset 3px 0 0 var(--forge-primary-600)}
.fw-stage{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--forge-neutral-500)}
.fw-env-name{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--forge-neutral-900)}
.fw-ref{font-size:12px;color:var(--forge-neutral-500)}
.fw-last{font-size:12.5px;color:var(--forge-neutral-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fw-add{border:1px dashed var(--forge-neutral-300);border-radius:8px;padding:9px;text-align:center;color:var(--forge-neutral-600);font-weight:600}
.fw-add:hover{border-color:var(--forge-primary-600);color:var(--forge-primary-700)}
.fw-repo{display:grid;gap:2px;font-size:12.5px;color:var(--forge-neutral-500);padding-top:8px;border-top:1px solid var(--forge-neutral-200)}
.fw-repo code{color:var(--forge-neutral-800)}
.fw-repo a{color:var(--forge-primary-700);font-weight:600}
.fw-main{display:grid;gap:18px;min-width:0}
.fw-main>.forge-section{margin-top:0}
.fw-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px}
.fw-head h1{margin:0;font-size:30px;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
.fw-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;color:var(--forge-neutral-600);font-size:13px}
.fw-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fw-state{display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:2px 8px;font-size:12.5px;font-weight:700;white-space:nowrap;background:var(--forge-neutral-100);color:var(--forge-neutral-600)}
.fw-state::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.fw-state-live,.fw-state-current{background:var(--forge-success-50);color:var(--forge-success-600)}
.fw-state-building,.fw-state-deploying{background:var(--forge-primary-100);color:var(--forge-primary-700)}
.fw-state-failed{background:var(--forge-danger-50);color:var(--forge-danger-600)}
.fw-state-ready{background:var(--forge-primary-50);color:var(--forge-primary-700)}
.fw-promote{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;border-left:3px solid var(--forge-primary-600);background:var(--forge-primary-100);color:var(--forge-neutral-900);padding:12px 16px;border-radius:0 8px 8px 0}
.fw-tabs{display:flex;gap:2px;border-bottom:1px solid var(--forge-neutral-200);overflow-x:auto;scrollbar-width:none}
.fw-tabs a{padding:9px 12px;color:var(--forge-neutral-600);font-weight:700;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.fw-tabs a[aria-current="page"]{color:var(--forge-neutral-900);border-bottom-color:var(--forge-primary-600)}
.fw-timeline{list-style:none;margin:0;padding:0}
.fw-commit{display:grid;grid-template-columns:22px minmax(0,1fr) 210px;gap:14px;position:relative;padding-bottom:16px}
.fw-commit::before{content:"";position:absolute;left:10px;top:18px;bottom:0;width:2px;background:var(--forge-neutral-200)}
.fw-commit:last-child::before{display:none}
.fw-pip{width:12px;height:12px;margin:6px 0 0 5px;border-radius:50%;background:var(--forge-neutral-50);border:2px solid var(--forge-neutral-400);position:relative;z-index:1}
.fw-commit-current .fw-pip{background:var(--forge-success-600);border-color:var(--forge-success-600)}
.fw-commit-building .fw-pip,.fw-commit-deploying .fw-pip{background:var(--forge-primary-600);border-color:var(--forge-primary-600)}
.fw-commit-failed .fw-pip{border-color:var(--forge-danger-600)}
.fw-commit-body{background:#fff;border:1px solid var(--forge-neutral-200);border-radius:8px;padding:11px 14px;min-width:0}
.fw-commit-current .fw-commit-body{border-color:color-mix(in srgb,var(--forge-success-600) 40%,var(--forge-neutral-200))}
.fw-msg{font-weight:700;color:var(--forge-neutral-900);overflow-wrap:anywhere}
.fw-msg:hover{color:var(--forge-primary-700)}
.fw-sub{display:flex;flex-wrap:wrap;gap:3px 12px;color:var(--forge-neutral-500);font-size:12.5px;margin-top:2px}
.fw-sub a:hover code{color:var(--forge-primary-700)}
.fw-why{margin-top:6px;font-size:12.5px;color:var(--forge-neutral-600)}
.fw-side{display:grid;justify-items:end;align-content:start;gap:8px;padding-top:4px}
.fw-sm{min-height:30px;padding:5px 10px;font-size:12.5px}
.fw-hallmark{font:500 11px var(--forge-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--forge-success-600);border:1.5px solid currentColor;border-radius:3px;padding:1px 6px;transform:rotate(-2deg)}
.fw-plates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fw-plate{background:#fff;border:1px solid var(--forge-neutral-200);border-radius:10px;padding:16px;display:grid;gap:10px;align-content:start}
.fw-plate h3{margin:0;font-size:15px}
.fw-kv{display:grid;grid-template-columns:max-content 1fr;gap:5px 16px;margin:0;font-size:13px}
.fw-kv dt{color:var(--forge-neutral-500)}
.fw-kv dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fw-hint{margin:0;font-size:12.5px;color:var(--forge-neutral-600)}
.fw-link{font-weight:600;color:var(--forge-primary-700)}
@media(max-width:900px){.fw{grid-template-columns:1fr}.fw-rail{position:static}.fw-plates{grid-template-columns:1fr}.fw-commit{grid-template-columns:22px minmax(0,1fr)}.fw-side{grid-column:2;justify-items:start;grid-auto-flow:column;justify-content:start}}

/* Environment branch picker */
.fb{max-width:720px;display:grid;gap:18px}
.fb-title{margin:6px 0 6px;font-size:26px;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
.fb-error{border-left:3px solid var(--forge-danger-600);background:var(--forge-danger-50);color:var(--forge-danger-600);padding:10px 14px;border-radius:0 8px 8px 0;font-weight:600}
.fb-form{display:grid;gap:14px;background:#fff;border:1px solid var(--forge-neutral-200);border-radius:10px;padding:18px}
.fb-repo{display:flex;gap:10px;align-items:baseline;font-size:13px;color:var(--forge-neutral-500)}
.fb-repo code{color:var(--forge-neutral-900)}
.fb-branches{border:0;margin:0;padding:0;display:grid;gap:6px}
.fb-branch{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--forge-neutral-200);border-radius:8px;cursor:pointer}
.fb-branch:hover{border-color:var(--forge-primary-600)}
.fb-branch:has(input:checked){border-color:var(--forge-primary-600);background:var(--forge-primary-50)}
.fb-branch.is-taken{cursor:not-allowed;opacity:.6}
.fb-branch input{accent-color:var(--forge-primary-600)}
.fb-name{font-size:13.5px;color:var(--forge-neutral-900);overflow-wrap:anywhere}
.fb-meta{font-size:12.5px;color:var(--forge-neutral-500)}
.fb-text{font-weight:700;font-size:13px}
.fb-unbind{display:grid;gap:10px;justify-items:start;padding-top:6px;border-top:1px solid var(--forge-neutral-200)}
.fb-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--forge-neutral-200);border-radius:8px;cursor:pointer}
.fb-choice:hover{border-color:var(--forge-primary-600)}
.fb-steps{display:flex;align-items:center;gap:12px;margin:0;padding:0 0 18px;border-bottom:1px solid var(--forge-neutral-200);list-style:none;color:var(--forge-neutral-500);font-weight:650}
.fb-steps li{display:flex;align-items:center;gap:10px}
.fb-steps li+li::before{content:"";width:40px;height:2px;border-radius:2px;background:var(--forge-neutral-200)}
.fb-step-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--forge-neutral-300);font-size:13px;font-weight:700;background:var(--forge-neutral-0)}
.fb-steps [aria-current]{color:var(--forge-neutral-900)}
.fb-steps [aria-current] .fb-step-number{border-color:var(--forge-primary-600);background:var(--forge-primary-600);color:#fff}
.fb-steps [data-done]{color:var(--forge-primary-700)}
.fb-steps [data-done] .fb-step-number{border-color:var(--forge-primary-600);color:var(--forge-primary-600)}
.fb-steps [data-done]+li::before{background:var(--forge-primary-600)}
.fb-step{display:grid;gap:inherit}
.fb-step[hidden]{display:none}
.fo-detail{margin-top:8px}.fo-detail summary{cursor:pointer;font-weight:600}
.fo-detail pre{margin:8px 0 0;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px}
.fw-prep{display:grid;gap:10px;margin:0 0 20px;padding:16px 18px;border:1px solid var(--forge-primary-200);border-radius:10px;background:var(--forge-primary-50)}
.fw-prep h2{margin:0;font-size:16px}
.fw-prep-is-failed{border-color:var(--forge-danger-600);background:var(--forge-danger-50)}
.fw-prep-steps{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none;font-weight:600;color:var(--forge-neutral-500)}
.fw-prep-steps li::before{content:"○ "}
.fw-prep-done{color:var(--forge-primary-700)}.fw-prep-done::before{content:"✓ "!important}
.fw-prep-running{color:var(--forge-neutral-900)}.fw-prep-running::before{content:"● "!important;color:var(--forge-primary-600)}
.fw-prep-steps .fw-prep-failed{color:var(--forge-danger-600)}.fw-prep-steps .fw-prep-failed::before{content:"✕ "!important}
.fb-choice:has(input:checked){border-color:var(--forge-primary-600);background:var(--forge-primary-50)}
.fb-choice:has(input:disabled){cursor:not-allowed;opacity:.55}
.fb-choice:has(input:focus-visible){outline:2px solid var(--forge-primary-600);outline-offset:2px}
.fb-choice input{accent-color:var(--forge-primary-600)}
.fb-choice-body{display:grid;gap:2px;min-width:0}
.fb-choice-body strong{font-size:14px;color:var(--forge-neutral-900)}
.fb-choice-compact{grid-template-columns:auto minmax(0,1fr)}
.fb-advanced{border-top:1px solid var(--forge-neutral-200);padding-top:10px}
.fb-advanced summary{cursor:pointer;font-weight:650;font-size:13px;color:var(--forge-primary-700)}
.fb-advanced-body{display:grid;gap:16px;padding-top:12px}
.fb-inline{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.fb-inline legend{width:100%;margin-bottom:6px}
.fb-inline label{display:inline-flex;gap:6px;align-items:center;font-size:13.5px;cursor:pointer}
.fb-inline input{accent-color:var(--forge-primary-600)}
.fb-inline .fw-hint{width:100%}
@media(max-width:600px){.fb-choice{grid-template-columns:auto minmax(0,1fr)}.fb-choice>.fw-state{grid-column:2;justify-self:start}}

/* Odoo base update */
.fob-table{width:100%;border-collapse:collapse;font-size:13.5px}
.fob-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--forge-neutral-500);padding:0 10px 8px 0}
.fob-table td{padding:10px 10px 10px 0;border-top:1px solid var(--forge-neutral-200);vertical-align:top}
.fob-state{display:grid;gap:4px;justify-items:start}

/* Instance technical page */
.fi{display:grid;gap:18px}
.fi>.forge-section,.fi .forge-section{margin:0}
.fi-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px}
.fi-title{display:grid;gap:6px;min-width:0}
.fi-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.fi-title-row .fb-title{margin:0}
.fi-section{display:grid;gap:8px}
.fi-health{background:#fff;border:1px solid var(--forge-neutral-200);border-radius:10px;padding:14px 16px;display:grid;gap:8px}
.fi-health-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px}
.fi-health-parts{display:flex;flex-wrap:wrap;gap:6px 24px;margin:0}
.fi-health-parts div{display:flex;gap:8px;align-items:baseline;font-size:13.5px}
.fi-health-parts dt{color:var(--forge-neutral-500)}
.fi-health-parts dd{margin:0;font-weight:650;color:var(--forge-neutral-900);font-variant-numeric:tabular-nums}
.fi-danger{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--forge-danger-100,#f3d6d3);background:var(--forge-danger-50);border-radius:10px;padding:16px}
.fi-danger-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.fi-danger-form .forge-input{width:220px}
.fi-danger-title{margin:0 0 4px;font-size:15px;color:var(--forge-danger-600)}
.fi-more{display:grid;gap:10px;margin-top:18px;border-top:1px solid var(--forge-neutral-200);padding-top:12px}
.fi-more>summary{cursor:pointer;font-weight:700;font-size:15px;color:var(--forge-neutral-900)}
.fi-more>summary .fw-hint{font-weight:500}

/* Operation page */
.fo{display:grid;gap:14px;background:#fff;border:1px solid var(--forge-neutral-200);border-radius:10px;padding:18px;max-width:860px}
.fo-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fo-steps{list-style:none;margin:0;padding:0;display:grid}
.fo-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;padding:8px 0;position:relative}
.fo-step:not(:last-child)::before{content:"";position:absolute;left:12px;top:34px;bottom:-6px;width:2px;background:var(--forge-neutral-200)}
.fo-node{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--forge-neutral-100);color:var(--forge-neutral-600)}
.fo-step.is-succeeded .fo-node{background:var(--forge-primary-50);color:var(--forge-primary-700)}
.fo-step.is-running .fo-node{background:var(--forge-primary-600);color:#fff}
.fo-step.is-failed .fo-node{background:var(--forge-danger-50);color:var(--forge-danger-600)}
.fo-step-name{font-weight:650;font-size:14px;color:var(--forge-neutral-900)}
.fo-step.is-pending .fo-step-name{color:var(--forge-neutral-500)}
.fo-done{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--forge-neutral-200);padding-top:14px}
.fo-done p{margin:0}
.fo-events{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:12.5px;color:var(--forge-neutral-600)}
.fo-events li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px}
@media (prefers-reduced-motion:no-preference){.fo-step.is-running .fo-node{animation:fo-pulse 1.6s ease-in-out infinite}}
@keyframes fo-pulse{50%{box-shadow:0 0 0 5px var(--forge-primary-100)}}
.fb-create{border:1px dashed var(--forge-neutral-300);border-radius:10px;padding:12px 16px;background:#fff}
.fb-create[open]{border-style:solid;border-color:var(--forge-primary-600)}
.fb-create summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--forge-primary-700)}
.fb-create-form{display:grid;gap:12px;padding-top:12px}

/* Project directory: one card per project with its environments in promotion order. */
.fp-search{display:flex;gap:10px;margin:4px 0 20px;max-width:560px}
.fp-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.fp-card{display:grid;gap:10px;height:100%;background:var(--forge-neutral-0);border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);padding:18px;transition:border-color .16s ease,box-shadow .16s ease}
.fp-card:hover,.fp-card:focus-visible{border-color:var(--forge-primary-500);box-shadow:var(--forge-shadow-md);outline:none}
.fp-card-archived{opacity:.65}
.fp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fp-name{display:grid;min-width:0}.fp-name strong{font-size:16px;font-weight:700;overflow-wrap:anywhere}.fp-name small{color:var(--forge-neutral-600);font-size:12.5px}
.fp-repo{font-family:var(--forge-mono);font-size:12.5px;color:var(--forge-neutral-600);overflow-wrap:anywhere}
.fp-envs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fp-envs li{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:var(--forge-neutral-100);font-size:12.5px;font-weight:600;color:var(--forge-neutral-700)}
.fp-dot{width:8px;height:8px;border-radius:50%;background:var(--forge-neutral-400)}
.fp-dot-live{background:var(--forge-success-600)}.fp-dot-working{background:var(--forge-primary-600)}.fp-dot-failed{background:var(--forge-danger-600)}
.fp-empty-envs{margin:0;font-size:12.5px;color:var(--forge-neutral-500)}
.fp-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--forge-neutral-100);font-size:12px;color:var(--forge-neutral-500)}
.fp-link{color:var(--forge-primary-700);font-weight:650}.fp-link:hover{text-decoration:underline}
@media(max-width:600px){.fp-grid{grid-template-columns:1fr}.fp-search{max-width:none}}

/* Sign in: Perla page, the shell's diamond mark, one teal action. */
.forge-auth-body{font-family:var(--forge-font);color:var(--forge-neutral-900)}
.forge-auth-brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px;letter-spacing:-.01em;margin-bottom:26px}
.forge-auth-brand i{width:13px;height:13px;transform:rotate(45deg);border-radius:2px;background:linear-gradient(135deg,#a9d3cf,var(--forge-primary-600) 60%,#0e1b21)}
.forge-auth-card h1{font-size:24px;line-height:1.2;letter-spacing:-.02em;margin:0 0 6px}
.forge-auth-card>p{margin:0 0 24px;color:var(--forge-neutral-600)}
.forge-auth-field{display:grid;gap:6px;margin-bottom:16px}.forge-auth-field>span{font-size:13px;font-weight:650;color:var(--forge-neutral-700)}
.forge-auth-field small{color:var(--forge-danger-600);font-size:12.5px}
.forge-auth-error{margin:0 0 18px;padding:10px 12px;border-left:3px solid var(--forge-danger-600);border-radius:0 6px 6px 0;background:var(--forge-danger-50);color:var(--forge-danger-600);font-size:13px;font-weight:600}
.forge-auth-submit{width:100%;margin-top:6px}

/* Mission Control: the projects metric opens the directory; project cards sit inside a panel. */
.forge-metric-link{display:block;transition:border-color .16s ease}.forge-metric-link:hover,.forge-metric-link:focus-visible{border-color:var(--forge-primary-500);outline:none}
.fp-grid-panel{padding:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}

/* Notices and empty states used across forms, backups and logs. */
.forge-alert{padding:11px 14px;border-left:3px solid var(--forge-primary-600);border-radius:0 6px 6px 0;background:var(--forge-primary-50);color:var(--forge-neutral-800);font-size:13.5px}
.forge-alert ul{margin:0;padding-left:18px}
.forge-alert-error,.forge-alert-danger{border-left-color:var(--forge-danger-600);background:var(--forge-danger-50);color:var(--forge-danger-600)}
.forge-alert-warning{border-left-color:var(--forge-warning-600);background:var(--forge-warning-50);color:var(--forge-warning-600)}
.forge-alert strong{display:block;margin-bottom:2px}.forge-alert p{margin:0}
.forge-empty-state{padding:28px 20px;text-align:center;color:var(--forge-neutral-600)}.forge-empty-state strong{display:block;color:var(--forge-neutral-900);margin-bottom:4px}.forge-empty-state p{margin:0}

/* Logs: filters on one line, metadata above the viewer. */
.fl-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.fl-filters label{display:grid;gap:6px;min-width:160px}
.fl-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:10px;color:var(--forge-neutral-500);font-size:12.5px;font-family:var(--forge-mono)}

/* Build composer: locked Odoo base, selectable custom sources, one decision bar. */
.fc-section-head{margin-bottom:14px}.fc-section-head h2{font-size:18px;margin:0 0 4px}.fc-section-head p{margin:0;color:var(--forge-neutral-600)}
.fc-source{display:grid;gap:10px;align-content:start}.fc-source h3{margin:0;font-size:15px;font-family:var(--forge-mono);font-weight:500;overflow-wrap:anywhere}
.fc-kicker{font-size:12.5px;font-weight:650;color:var(--forge-neutral-600)}
.fc-ref{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--forge-neutral-500)}
.fc-sha{display:block;font-family:var(--forge-mono);font-size:12.5px;overflow-wrap:anywhere;color:var(--forge-neutral-700)}
.fc-decision{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.fc-decision h3{margin:0 0 4px}.fc-decision p{margin:0;color:var(--forge-neutral-600)}
.fc-note{margin:14px 0 0;color:var(--forge-neutral-600)}
.fc-step{margin-top:22px;padding-top:22px;border-top:1px solid var(--forge-neutral-200)}

/* GitHub: reuse an installation the organization already has. */
.fg-installs{list-style:none;margin:0;padding:0;display:grid}
.fg-installs li{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--forge-neutral-100)}
.fg-installs li:first-child{padding-top:0}
.fg-installs strong{display:block;font-family:var(--forge-mono);font-weight:500}.fg-installs small{color:var(--forge-neutral-600)}
.fg-other{margin:18px 0 0;color:var(--forge-neutral-600);font-size:13.5px}
/* Activity log: Odoo-style faceted search */
.fa-search{position:relative;display:grid;gap:10px;margin:4px 0 20px}
.fa-bar{display:flex;gap:10px;align-items:flex-start}
.fa-box{position:relative;flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:5px 8px;border:1px solid var(--forge-neutral-300);border-radius:var(--forge-radius-md);background:var(--forge-neutral-0);cursor:text}
.fa-box:focus-within{border-color:var(--forge-primary-500);box-shadow:0 0 0 3px var(--forge-primary-100)}
.fa-facet{display:inline-flex;align-items:stretch;border-radius:var(--forge-radius-sm);overflow:hidden;font-size:13px;border:1px solid var(--forge-neutral-200);background:var(--forge-neutral-100);max-width:100%}
.fa-facet-label{padding:3px 8px;background:var(--forge-neutral-800);color:var(--forge-neutral-0);font-weight:650}
.fa-facet-values{padding:3px 8px;color:var(--forge-neutral-900);overflow-wrap:anywhere}.fa-facet-values em{margin:0 5px;font-style:normal;color:var(--forge-neutral-500)}
.fa-facet-value{border:0;padding:0 2px;border-radius:3px;background:transparent;font:inherit;color:inherit;cursor:pointer}.fa-facet-value:hover{background:var(--forge-neutral-200)}.fa-facet-value.is-editing{background:var(--forge-primary-100);outline:1px dashed var(--forge-primary-600)}
.fa-facet-remove{display:flex;align-items:center;padding:0 8px;color:var(--forge-neutral-600);font-size:15px;text-decoration:none}.fa-facet-remove:hover{background:var(--forge-neutral-200);color:var(--forge-neutral-900)}
.fa-input{flex:1;min-width:180px;border:0;outline:0;padding:6px 4px;background:transparent;font:inherit;color:var(--forge-neutral-900)}
.fa-suggest{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:6px 0;list-style:none;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-md);background:var(--forge-neutral-0);box-shadow:var(--forge-shadow-md);max-height:360px;overflow:auto}
.fa-suggest-item{padding:7px 14px;font-size:13.5px;color:var(--forge-neutral-700);cursor:pointer}.fa-suggest-item strong{color:var(--forge-neutral-900)}
.fa-suggest-item.is-sub{padding-left:32px;color:var(--forge-neutral-600)}
.fa-suggest-item.is-active{background:var(--forge-primary-50);color:var(--forge-neutral-900)}
.fa-menu{position:absolute;z-index:15;top:52px;right:0;display:flex;flex-wrap:wrap;gap:28px;padding:16px 18px;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-0);box-shadow:var(--forge-shadow-md)}
.fa-menu[hidden]{display:none}
.fa-menu section{display:grid;align-content:start;gap:4px;min-width:170px}
.fa-menu h3{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--forge-neutral-500)}
.fa-option{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--forge-radius-sm);color:var(--forge-neutral-800);font-size:13.5px;text-decoration:none}
.fa-option::before{content:"";width:14px;height:14px;border:1.5px solid var(--forge-neutral-400);border-radius:3px}
.fa-option.is-active::before{border-color:var(--forge-primary-600);background:var(--forge-primary-600);box-shadow:inset 0 0 0 2px var(--forge-neutral-0)}
.fa-option:hover{background:var(--forge-neutral-100)}
.fa-range{display:grid;gap:8px;margin-top:8px}.fa-range label{display:grid;gap:4px;font-size:12.5px;color:var(--forge-neutral-600)}
.fa-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.fa-count{color:var(--forge-neutral-500);font-size:13px}
.fa-list{list-style:none;margin:0;padding:0;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-0)}
.fa-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 18px;border-bottom:1px solid var(--forge-neutral-100)}
.fa-row:last-child{border-bottom:0}
.fa-time{display:grid;font-size:13px;font-weight:650;color:var(--forge-neutral-700)}.fa-time small{font-family:var(--forge-mono);font-weight:400;color:var(--forge-neutral-500)}
.fa-main{display:grid;gap:4px;min-width:0}
.fa-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fa-head strong{color:var(--forge-neutral-900)}
.fa-who,.fa-where{font-size:13.5px;color:var(--forge-neutral-600);overflow-wrap:anywhere}
.fa-mono{font-family:var(--forge-mono)}
.fa-message{margin:2px 0 0;font-size:13.5px;color:var(--forge-neutral-700)}
.fa-detail{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0 0;font-size:12.5px}
.fa-detail div{display:flex;gap:6px}.fa-detail dt{color:var(--forge-neutral-500)}.fa-detail dd{margin:0;color:var(--forge-neutral-800);font-family:var(--forge-mono);overflow-wrap:anywhere}
.fa-outcome-denied{background:var(--forge-warning-50);color:var(--forge-warning-600)}
.fa-outcome-failed{background:var(--forge-danger-50);color:var(--forge-danger-600)}
.fa-pages{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0;color:var(--forge-neutral-600);font-size:13.5px}
@media(max-width:600px){.fa-bar{flex-direction:column;align-items:stretch}.fa-menu{left:0;top:auto}.fa-row{grid-template-columns:1fr;gap:6px}.fa-time{display:flex;gap:8px}}
.fa-menu hr{width:100%;margin:6px 0;border:0;border-top:1px solid var(--forge-neutral-100)}
.fa-option-radio::before{border-radius:50%}
.fa-favorites{min-width:220px}
.fa-favorite{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:var(--forge-radius-sm)}
.fa-favorite a{flex:1;padding:5px 8px;color:var(--forge-neutral-800);font-size:13.5px;text-decoration:none;border-radius:var(--forge-radius-sm)}.fa-favorite a:hover{background:var(--forge-neutral-100)}
.fa-favorite.is-active a{font-weight:700;color:var(--forge-neutral-900)}
.fa-favorite span{color:var(--forge-warning-600)}
.fa-favorite button{border:0;background:transparent;color:var(--forge-neutral-500);font-size:15px;cursor:pointer;padding:2px 6px;border-radius:var(--forge-radius-sm)}.fa-favorite button:hover{background:var(--forge-neutral-100);color:var(--forge-danger-600)}
.fa-empty{margin:0 0 4px;font-size:13px;color:var(--forge-neutral-500)}
.fa-save{display:grid;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid var(--forge-neutral-100)}
.fa-save label{display:grid;gap:4px;font-size:12.5px;color:var(--forge-neutral-600)}
.fa-save .fa-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--forge-neutral-700)}
.fa-error{margin:0;font-size:12.5px;color:var(--forge-danger-600)}
.fa-groups{display:grid;gap:10px}
.fa-group{border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-0)}
.fa-group summary{display:flex;align-items:center;gap:10px;padding:12px 18px;cursor:pointer;font-weight:700;color:var(--forge-neutral-900)}
.fa-group summary::marker{color:var(--forge-neutral-400)}
.fa-group-count{padding:1px 8px;border-radius:999px;background:var(--forge-neutral-100);color:var(--forge-neutral-600);font-size:12.5px;font-weight:650}
.fa-group .fa-list{border:0;border-top:1px solid var(--forge-neutral-100);border-radius:0}
.fa-group-more{display:inline-block;margin:10px 18px 14px}
/* External Odoo import */
.fx-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px;align-items:start}
.fx-upload{display:grid;gap:18px}
.fx-drop{padding:18px;border:1.5px dashed var(--forge-neutral-300);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-50)}
.fx-progress{display:grid;gap:8px;padding-top:18px;border-top:1px solid var(--forge-neutral-100)}
.fx-filename{margin:0;font-size:16px;font-family:var(--forge-mono);font-weight:500;overflow-wrap:anywhere}
.fx-status{margin:0;color:var(--forge-neutral-600);font-size:13.5px}
.fx-bar{height:9px;overflow:hidden;border-radius:999px;background:var(--forge-neutral-100)}
.fx-bar-fill{width:0;height:100%;border-radius:999px;background:var(--forge-primary-600);transition:width .2s ease}
.fx-bar-meta{display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--forge-neutral-600)}
.fx-bar-label{font-size:12.5px;color:var(--forge-neutral-500)}
.fx-stats,.fx-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px;margin:8px 0 0}
.fx-stats dt,.fx-facts dt{font-size:12px;font-weight:650;color:var(--forge-neutral-500)}
.fx-stats dd,.fx-facts dd{margin:2px 0 0;font-size:16px;font-weight:650;color:var(--forge-neutral-900)}
.fx-facts-compact dd{font-size:14px}
.fx-mono{font-family:var(--forge-mono);font-weight:500}.fx-wrap{overflow-wrap:anywhere;font-size:13px!important}
.fx-phase{padding:14px 16px;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-md);background:var(--forge-neutral-50)}.fx-phase p{margin:4px 0 0;color:var(--forge-neutral-600);font-size:13.5px}
.fx-steps h2{margin:0 0 10px;font-size:15px}.fx-steps ol{margin:0;padding-left:18px;display:grid;gap:10px;font-size:13.5px;color:var(--forge-neutral-700)}
.fx-section-title{margin:0 0 10px;font-size:16px}
.fx-recent{list-style:none;margin:0;padding:0;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-0)}
.fx-recent li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-bottom:1px solid var(--forge-neutral-100)}.fx-recent li:last-child{border-bottom:0}
.fx-recent a{display:grid;gap:2px;min-width:0;color:inherit;text-decoration:none}.fx-recent a:hover .fx-recent-name{text-decoration:underline}
.fx-recent-name{font-family:var(--forge-mono);font-weight:500;color:var(--forge-neutral-900);overflow-wrap:anywhere}.fx-recent time{font-size:12.5px;color:var(--forge-neutral-500)}
.fx-import-ready,.fx-import-imported{background:var(--forge-primary-50);color:var(--forge-primary-700)}
.fx-import-analyzing,.fx-import-uploading,.fx-import-creating{background:var(--forge-primary-100);color:var(--forge-primary-700)}
.fx-import-failed{background:var(--forge-danger-50);color:var(--forge-danger-600)}
.fx-title{overflow-wrap:anywhere;font-family:var(--forge-mono);font-weight:500}
.fx-found{margin-bottom:12px}
.fx-state-warning{background:var(--forge-warning-50);color:var(--forge-warning-600)}
.fx-form{display:grid;gap:14px;margin-top:16px}
.fx-subtitle{margin:20px 0 8px;font-size:14px}
.fx-blocks,.fx-targets{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fx-blocks li,.fx-targets li{padding:14px 16px;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-md)}
.fx-blocks p,.fx-targets p{margin:4px 0 0;font-size:13.5px;color:var(--forge-neutral-600)}
.fx-target-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.fx-next{margin-top:16px;padding:14px 16px;border-radius:var(--forge-radius-md);background:var(--forge-neutral-50);border:1px solid var(--forge-neutral-200)}.fx-next p{margin:4px 0 0;font-size:13.5px;color:var(--forge-neutral-700)}
.fx-note{margin:14px 0 0;font-size:13px;color:var(--forge-neutral-500)}
.fx-outcome{display:grid;gap:10px;justify-items:start}
.fx-error{margin:0;padding:12px 14px;max-width:100%;overflow:auto;white-space:pre-wrap;border-radius:var(--forge-radius-md);background:var(--forge-danger-50);color:var(--forge-danger-600);font-family:var(--forge-mono);font-size:12.5px}
.fx-processing{display:grid;gap:10px}
.forge-import-progress{width:0;height:100%;border-radius:999px;background:var(--forge-primary-600);transition:width .35s ease}
.forge-import-progress.is-indeterminate{width:35%;animation:forge-import-indeterminate 1.4s ease-in-out infinite alternate}
@keyframes forge-import-indeterminate{from{transform:translateX(-60%)}to{transform:translateX(240%)}}
.forge-import-steps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.forge-import-step{display:grid;grid-template-columns:22px 1fr;gap:2px 4px;opacity:.48;font-size:14px;transition:opacity .2s ease}
.forge-import-step small{grid-column:2;font-size:12.5px;color:var(--forge-neutral-600)}
.forge-import-step.is-current{opacity:1;font-weight:650}.forge-import-step.is-complete{opacity:1}
.forge-import-step-icon{color:var(--forge-primary-600)}
.fx-elapsed{margin-top:12px;padding-top:12px;border-top:1px solid var(--forge-neutral-100)}
@media(max-width:900px){.fx-layout{grid-template-columns:1fr}}
/* UI Kit */
.fk-section h2{margin:0 0 10px;font-size:17px}
.fk-rule{margin:10px 0 0;font-size:13.5px;color:var(--forge-neutral-600)}
.fk-swatches{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.fk-swatches li{display:grid;gap:4px;font-size:13px}.fk-swatches code{font-size:12px;color:var(--forge-neutral-500)}
.fk-swatch{height:56px;border-radius:var(--forge-radius-md);border:1px solid var(--forge-neutral-200)}
.fk-ink{background:var(--forge-neutral-900)}.fk-perla{background:var(--forge-neutral-50)}.fk-action{background:var(--forge-primary-600)}
.fk-ocean{background:var(--forge-neutral-500)}.fk-live{background:var(--forge-success-600)}.fk-warning{background:var(--forge-warning-600)}.fk-failed{background:var(--forge-danger-600)}
.fk-type{display:grid;gap:8px}.fk-type p{margin:0}.fk-type-title{font-size:22px;font-weight:800;color:var(--forge-neutral-900)}
.fk-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fk-split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.fk-static{position:static}
.fk-form,.fk-stack{display:grid;gap:12px}
@media(max-width:900px){.fk-split{grid-template-columns:1fr}}
/* Environment: what is live, and its activity feed (E6C/E6D) */
.fw-live{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;font-size:14px;color:var(--forge-neutral-600)}
.fw-live a{color:var(--forge-neutral-900);font-weight:650}.fw-live a:hover{text-decoration:underline}
.fw-live-label{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--forge-success-600)}.fw-live-label::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.fw-live-empty{font-style:normal}
.fw-delete{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--forge-neutral-100)}
.fw-delete-row{display:flex;flex-wrap:wrap;gap:8px}.fw-delete-row .forge-input{max-width:220px}
.fe-feed{display:grid;gap:18px}
.fe-day h3{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--forge-neutral-500)}
.fe-day ol{list-style:none;margin:0;padding:0;border:1px solid var(--forge-neutral-200);border-radius:var(--forge-radius-lg);background:var(--forge-neutral-0)}
.fe-event{position:relative;display:grid;grid-template-columns:48px 14px minmax(0,1fr);gap:10px;align-items:start;padding:12px 16px;border-bottom:1px solid var(--forge-neutral-100)}
.fe-event:last-child{border-bottom:0}
.fe-event time{font-family:var(--forge-mono);font-size:12.5px;color:var(--forge-neutral-500);padding-top:2px}
.fe-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;border:2px solid var(--forge-neutral-400);background:var(--forge-neutral-0)}
.fe-live .fe-dot{border-color:var(--forge-success-600);background:var(--forge-success-600)}
.fe-ready .fe-dot{border-color:var(--forge-primary-600)}
.fe-working .fe-dot{border-color:var(--forge-primary-600);background:var(--forge-primary-100)}
.fe-failed .fe-dot{border-color:var(--forge-danger-600);background:var(--forge-danger-600)}
.fe-attention .fe-dot{border-color:var(--forge-warning-600);background:var(--forge-warning-50)}
.fe-body{display:grid;gap:3px;min-width:0}
.fe-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.fe-title strong{color:var(--forge-neutral-900);font-size:14px}
.fe-title code{font-family:var(--forge-mono);font-size:12px;padding:1px 6px;border-radius:4px;background:var(--forge-neutral-100);color:var(--forge-neutral-700)}
.fe-body p{margin:0;font-size:13.5px;color:var(--forge-neutral-700);overflow-wrap:anywhere}
.fe-failed .fe-body p{color:var(--forge-danger-600)}
.fe-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--forge-neutral-500)}.fe-meta a{color:var(--forge-primary-700);font-weight:650}
@media(max-width:600px){.fe-event{grid-template-columns:40px 12px minmax(0,1fr);padding:10px 12px}}
/* Infraestructura (Runtime Nodes) */
.fn-message{margin:0 0 16px}
.fn-enroll{display:grid;gap:12px;margin:0 0 24px;border-color:var(--forge-primary-500)}.fn-enroll p{margin:0;color:var(--forge-neutral-700)}
.fn-command{margin:0;padding:14px 16px;border-radius:var(--forge-radius-md);background:var(--forge-neutral-900);color:var(--forge-neutral-50);font-family:var(--forge-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.fn-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fn-copied{font-size:12.5px;font-weight:650;color:var(--forge-primary-700)}
.fn-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.fn-node{display:grid;gap:12px;align-content:start}
.fn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fn-name{display:grid;min-width:0}.fn-name strong{font-size:16px;font-weight:700;overflow-wrap:anywhere}.fn-name small{color:var(--forge-neutral-600);font-size:12.5px}
.fn-hint{margin:0;font-size:13px;color:var(--forge-neutral-600)}
.fn-facts{display:grid;gap:6px;margin:0}.fn-facts div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.fn-facts dt{color:var(--forge-neutral-500)}.fn-facts dd{margin:0;text-align:right;color:var(--forge-neutral-800);overflow-wrap:anywhere}
.fn-state-offline{background:var(--forge-warning-50);color:var(--forge-warning-600)}
.fn-add{display:grid;gap:14px;max-width:560px}
@media (max-width:640px){.fn-list{grid-template-columns:1fr}}
.fb-database{display:grid;gap:12px}
.fb-secret{display:flex;gap:8px}.fb-secret .forge-input{flex:1;font-family:var(--forge-mono)}
