  :root {
    --shell-frame-max: 1280px;
    --shell-sidebar-width: 260px;
    --shell-inline-pad: 1.5rem;
    --shell-inline-pad-tablet: 1.25rem;
    --shell-inline-pad-mobile: 1rem;
    --shell-main-pad-block: 2.25rem;
    --shell-main-pad-block-compact: 1.5rem;
    --shell-main-pad-block-mobile: 1.25rem;
  }

  /* ========================================================================== 
     Layout (sidebar, main) — the two-column application shell 
     ========================================================================== */
  .app {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    min-height: 100vh;
    width: min(var(--shell-frame-max), 100%);
    margin: 0 auto;
  }

  /* Sidebar */
  .sidebar { width: var(--shell-sidebar-width); min-width: var(--shell-sidebar-width); background: var(--panel-bg); border-right: 1px solid var(--border); padding: 2rem 0 1.25rem; position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; }
  .sidebar-logo { padding: 0 1.5rem 2rem; font-family: var(--serif); font-size: 1.1rem; color: var(--accent); border-bottom: 1px solid var(--border); margin-bottom: 1.5rem; line-height: 1.3; }
  .sidebar-logo span { display: block; font-family: var(--font); font-size: 11px; color: var(--muted); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 4px; }
  .nav-group-header { padding: 1.25rem 1.5rem 0.4rem; font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: #909090; font-weight: 500; }
  .nav-item { position: relative; display: flex; align-items: center; gap: 10px; padding: 0.6rem 1.5rem; cursor: pointer; transition: color var(--anim-fast), background var(--anim-fast), border-color var(--anim-fast); border-left: 3px solid transparent; font-size: 13px; color: var(--muted); overflow: hidden; }
  .nav-item:hover { color: var(--text); background: rgba(255,255,255,0.03); }
  .nav-item.active { color: var(--text); border-left-color: var(--accent); background: linear-gradient(90deg, rgba(255,192,0,0.14), rgba(255,192,0,0.04)); }
  .nav-item.partial { color: #bfa96f; border-left-color: transparent; background: transparent; }
  .nav-item.done { color: #c8d0d4; background: transparent; border-left-color: transparent; }
  .nav-item.gated { opacity: 1; cursor: default; pointer-events: none; color: #8a8f94; }
  .nav-item.gated:hover { color: #8a8f94; background: transparent; }
  .nav-item.locked { color: #8a8f94; }
  .nav-item.locked.active { border-left-color: transparent; background: transparent; }
  .nav-item.enabled { color: var(--muted); }
  .nav-item.publish-lane-gated { opacity: 1; color: #8a8f94; }
  .nav-item.publish-lane-gated .nav-label { color: inherit; }
  .nav-item.publish-lane-gated .nav-check { opacity: 1; }
  .nav-item.publish-lane-gated:hover { color: #8f9aa1; background: transparent; }
  .nav-item.publish-lane-blocked { opacity: 1; color: var(--text); }
  .nav-item.publish-lane-blocked .nav-check { opacity: 1; }
  .nav-dot { display:none !important; }
  .nav-item.active .nav-dot { display:none !important; }
  .nav-item.partial .nav-dot { display:none !important; }
  .nav-item.done .nav-dot { display:none !important; }
  .nav-label { position: relative; z-index: 1; flex: 1; line-height: 1.3; transform-origin: left center; }
  .nav-check { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: flex-end; min-width: 36px; transition: opacity var(--anim-medium); color: var(--accent2); font-weight: 700; }
  .nav-progress { gap: 6px; opacity: 1; }
  .nav-progress-dot { width: 7px; height: 7px; border-radius: 999px; background: rgba(255,255,255,0.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06); }
  .nav-progress-dot.is-empty { background: rgba(255,255,255,0.18); }
  .nav-progress-dot.is-progress { background: #ffc000; box-shadow: 0 0 0 1px rgba(255,192,0,0.18); }
  .nav-progress-dot.is-complete { background: #00a388; box-shadow: 0 0 0 1px rgba(0,163,136,0.18); }
  .nav-check.locked { opacity: 1; display: inline-flex; align-items: center; color: var(--accent2); font-weight: 700; }
  .nav-check.locked svg { display: block; }
  .nav-check.blocked { opacity: 1; display: inline-flex; align-items: center; color: #e24b4a; }
  .nav-check.blocked svg { display: block; }
  .nav-check.publish-lane-affordance { min-width: 16px; justify-content: center; }
  .nav-item.gated .nav-check { opacity: 1; }
  .nav-item.gated .nav-check.locked { color: #8a8f94; }
  .nav-item.publish-lane-gated .nav-check.locked { color: #8a8f94; }
  .nav-check svg { display:block; transform:scale(1.08); }
  .nav-status { gap: 6px; color: var(--accent2); }
  .nav-status .nav-lock-state,
  .nav-status .nav-dots-state { display: inline-flex; align-items: center; justify-content: flex-end; transition: opacity var(--anim-medium), transform var(--anim-medium); }
  .nav-status .nav-lock-state { min-width: 16px; }
  .nav-status .nav-dots-state { gap: 6px; }
  .nav-status[data-nav-status-mode="locked"] .nav-lock-state { opacity: 1; transform: scale(1); }
  .nav-status[data-nav-status-mode="locked"] .nav-dots-state { opacity: 0; transform: translateX(4px); pointer-events: none; width: 0; overflow: hidden; }
  .nav-status[data-nav-status-mode="enabled"] .nav-lock-state { opacity: 0; transform: scale(0.86); pointer-events: none; width: 0; overflow: hidden; }
  .nav-status[data-nav-status-mode="enabled"] .nav-dots-state { opacity: 1; transform: translateX(0); }
  .nav-item.locked .nav-status { color: #8a8f94; }
  .nav-item-unlocking::before,
  .nav-item-unlocking-reduced::before { content: ''; position: absolute; inset: 0; pointer-events: none; }
  .nav-item-unlocking::before { background: linear-gradient(90deg, rgba(111,122,132,0), rgba(111,122,132,0.18), rgba(0,163,136,0.12), rgba(111,122,132,0)); transform: translateX(-112%); animation: navUnlockWash 620ms ease forwards; animation-delay: var(--nav-unlock-delay, 0ms); }
  .nav-item-unlocking .nav-label { animation: navUnlockLabelPulse 420ms ease; animation-delay: calc(var(--nav-unlock-delay, 0ms) + 120ms); }
  .nav-item-unlocking .nav-status[data-nav-status-mode="enabled"] .nav-dots-state { animation: navUnlockDotsReveal 360ms ease; animation-delay: calc(var(--nav-unlock-delay, 0ms) + 210ms); }
  .nav-item-unlocking-reduced .nav-label { color: var(--text); transition: color var(--anim-fast); }
  .nav-item-unlocking-reduced { background: linear-gradient(90deg, rgba(111,122,132,0.12), rgba(111,122,132,0.03)); }
  .sidebar-footer { display: none; }
  .sidebar-progress { padding: 1.5rem 1.5rem 0; border-top: 1px solid var(--border); }
  .sidebar-progress--publish-lane { margin: 0 0 0.65rem; padding: 0 1.5rem 0.95rem; border-top: none; border-bottom: 1px solid rgba(255,255,255,0.07); }
  .progress-label { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 8px; display: flex; justify-content: space-between; }
  .progress-bar { height: 3px; background: var(--border2); border-radius: 2px; overflow: hidden; }
  .progress-fill { height: 100%; width: 0%; background: linear-gradient(90deg, var(--accent), var(--accent2)); border-radius: 2px; transition: width 0.4s ease; }
  .progress-meta { margin-top: 9px; font-size: 11px; color: #92a2ad; }

  @keyframes navUnlockWash {
    0% { transform: translateX(-112%); opacity: 0; }
    15% { opacity: 1; }
    100% { transform: translateX(112%); opacity: 0; }
  }
  @keyframes navUnlockLabelPulse {
    0%, 100% { color: inherit; transform: scale(1); }
    40% { color: #d6e1e6; transform: scale(1.02); }
  }
  @keyframes navUnlockDotsReveal {
    0% { opacity: 0; transform: translateX(4px) scale(0.94); }
    100% { opacity: 1; transform: translateX(0) scale(1); }
  }

  /* Main */
  .main {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    max-width: none;
    padding: var(--shell-main-pad-block) var(--shell-inline-pad) 3rem;
    box-sizing: border-box;
  }

  .section-time { font-size: 12px; color: #606060; font-style: italic; margin-top: 6px; }
  .review-readiness, .export-blocked, .summary-card { max-width: 100%; }
  .summary-help { display:block; max-width: 840px; }

  /* ========================================================================== 
     Form Elements — labels, inputs, selects, textareas, and form grids 
     ========================================================================== */
  /* Form */
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.35rem 1.25rem; }
  .form-grid.single { grid-template-columns: 1fr; gap: 1rem; }
  .form-group { display: flex; flex-direction: column; gap: 8px; }
  .form-group.span2 { grid-column: span 2; }
  label.field-label { font-size: 14px; font-weight: 400; color: #bcc7cf; line-height: 1.4; }
  label.field-label .hint { display: inline-block; font-weight: 500; color: #93a1a9; margin-left: 8px; font-size: var(--fs-xs); }
  input[type=text], select, textarea, .ds-form-input { background: rgba(255,255,255,0.028); border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; color: #f7fafc; font-family: var(--font); font-size: var(--fs-sm); font-weight: 500; padding: 12px 14px; transition: border-color var(--anim-fast), box-shadow var(--anim-fast), background var(--anim-fast), transform var(--anim-fast); outline: none; width: 100%; box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); }
  input::placeholder, textarea::placeholder, .ds-form-input::placeholder { color: #5f6b73; }
  input:hover, select:hover, textarea:hover, .ds-form-input:hover { border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.032); }
  input:focus, select:focus, textarea:focus, .ds-form-input:focus { border-color: rgba(216,178,74,0.38); box-shadow: 0 0 0 3px rgba(216,178,74,0.08), inset 0 0 0 1px rgba(216,178,74,0.12); background: rgba(255,255,255,0.038); }
  input.has-value, select.has-value, textarea.has-value { border-color: rgba(255,255,255,0.26); background: rgba(255,255,255,0.036); }
  select { background-color: rgba(255,255,255,0.028); border-color: rgba(255,255,255,0.14); }
  select:hover { border-color: rgba(255,255,255,0.24); }
  textarea { resize: vertical; min-height: 110px; line-height: 1.7; padding: 14px 16px 40px; }

  select { appearance: none; background-image: linear-gradient(to left, rgba(255,255,255,0.05), rgba(255,255,255,0.05)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d7d7d7' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat, no-repeat; background-position: right 0 top 0, right 14px center; background-size: 40px 100%, 12px 8px; padding-right: 48px; }
  select:focus { background-color: #262626; background-image: linear-gradient(to left, rgba(255,192,0,0.1), rgba(255,192,0,0.1)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f0f0f0' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat, no-repeat; background-position: right 0 top 0, right 14px center; background-size: 40px 100%, 12px 8px; }
  select option { background: var(--control-bg); }

  /* ========================================================================== 
     Radio & Checkbox Cards — card-based single and multi-select controls 
     ========================================================================== */
  /* Radio cards */
  .radio-group { display: flex; flex-direction: column; gap: 8px; }
  .radio-group.inline { flex-direction: row; flex-wrap: wrap; gap: 10px; }
  .radio-inline { display: flex; align-items: center; gap: var(--space-3); background: var(--control-bg); border: 1.5px solid var(--border2); border-radius: var(--radius-md); padding: var(--space-3) 14px; cursor: pointer; transition: border-color var(--anim-fast), background var(--anim-fast); user-select: none; min-height: 56px; }
  .radio-inline:hover { border-color: rgba(255,255,255,0.3); }
  .radio-inline.selected { border-color: var(--accent); background: var(--selected-bg); }
  .radio-dot { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--border2); flex-shrink: 0; display: flex; align-items: center; justify-content: center; margin-top: 0; transition: all var(--anim-fast); }
  .radio-inline.selected .radio-dot { border-color: var(--accent); background: var(--accent); }
  .radio-dot-inner { width: 6px; height: 6px; border-radius: 50%; background: #000; opacity: 0; transition: opacity var(--anim-fast); }
  .radio-inline.selected .radio-dot-inner { opacity: 1; }
  .rc-content { flex: 1; min-width: 0; }
  .rc-label { font-size: var(--fs-sm); font-weight: 400; color: #d1dbe0; line-height: 1.3; white-space: normal; overflow-wrap: break-word; }
  .rc-desc { font-size: var(--fs-xs); color: var(--muted); margin-top: 3px; line-height: 1.4; }

  /* Checkbox cards */
  .check-group { display: flex; flex-direction: column; gap: 8px; }
  .check-group--2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .check-card { display: flex; align-items: center; gap: var(--space-3); background: var(--control-bg); border: 1.5px solid var(--border2); border-radius: var(--radius-md); padding: var(--space-3) 14px; cursor: pointer; transition: border-color var(--anim-fast), background var(--anim-fast); user-select: none; min-height: 56px; }
  .check-card:hover { border-color: rgba(255,255,255,0.3); }
  .check-card.selected { border-color: var(--accent); background: var(--selected-bg); }
  .check-box { width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid var(--border2); flex-shrink: 0; display: flex; align-items: center; justify-content: center; margin-top: 0; transition: all var(--anim-fast); }
  .check-card.selected .check-box { border-color: var(--accent); background: var(--accent); }
  .check-tick { font-size: 11px; color: #000; opacity: 0; transition: opacity var(--anim-fast); line-height: 1; }
  .check-card.selected .check-tick { opacity: 1; }

  /* ========================================================================== 
     Tag Chips — compact selectable chip controls 
     ========================================================================== */
  /* Tag chips */
  .chips-wrap { display: flex; flex-wrap: wrap; gap: 8px; }

  /* ========================================================================== 
     Summary Page — criteria rows, summary cards, and review controls 
     ========================================================================== */
  /* Criteria */
  .criteria-row { display: grid; grid-template-columns: 1fr 140px; align-items: center; gap: 1rem; padding: 12px 0; border-bottom: 0.5px solid var(--border); }
  .criteria-row:last-child { border-bottom: none; }
  .criteria-name { font-size: 14px; color: var(--text); }

  /* ========================================================================== 
     Navigation Buttons — previous/next/export controls and related states 
     ========================================================================== */
  /* Nav buttons */
  .export-blocked { background: var(--danger-bg); border: 1px solid rgba(226,75,74,0.35); border-radius: 10px; padding: 1.25rem 1.5rem; margin-bottom: 2rem; }
  .export-blocked-title { font-size: 14px; font-weight: 500; color: var(--accent-error); margin-bottom: 0.75rem; display: flex; align-items: center; gap: 8px; }
  .export-blocked-list { list-style: none; display: flex; flex-direction: column; gap: 6px; }
  .export-blocked-list li { font-size: 13px; }
  .export-blocked-list a { color: var(--muted); text-decoration: none; display: flex; align-items: center; gap: 8px; transition: color 0.15s; }
  .export-blocked-list a:hover { color: var(--text); }
  .export-blocked-list a::before { content: ''; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--accent-error); opacity: 0.6; flex-shrink: 0; }
  .export-blocked-status { font-size: 11px; color: #666; margin-left: 4px; }
  .review-guidance-note { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; padding: 0.85rem 1rem; margin-bottom: 1rem; color: #b7c3ca; font-size: 12px; line-height: 1.6; }
  /* Sanity Check */
  .review-readiness { background: var(--panel-bg); border: 1px solid var(--border2); border-radius: 14px; padding: 1.2rem 1.35rem; margin-bottom: 1.5rem; }
  .review-readiness.ready { border-color: var(--positive-border); background: var(--positive-bg); }
  .review-readiness-title { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color: var(--text); margin-bottom: 0.45rem; }
  .review-readiness.ready .review-readiness-title { color: var(--accent2); }
  .review-readiness-copy { font-size:13px; color: var(--muted); line-height:1.6; }
  .form-nav { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-top: 2.75rem; padding: 1rem 1.15rem; border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; background: rgba(255,255,255,0.024); }
  .btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--btn-m-pad-y) var(--btn-m-pad-x); border-radius: var(--radius-md); font-family: var(--font); font-size: var(--btn-m-font); font-weight: 500; cursor: pointer; transition: all var(--anim-fast); border: none; outline: none; }
  .btn-primary { background: var(--accent); color: #000; }
  .btn-primary:hover { background: #ffd333; transform: translateY(-1px); }
  .btn-secondary { background: var(--control-bg); color: var(--muted); border: 1px solid var(--border2); }
  .btn-secondary:hover:not(:disabled) { color: var(--text); border-color: rgba(255,255,255,0.3); }
  .btn-sm { font-size: var(--btn-s-font); padding: var(--btn-s-pad-y) var(--btn-s-pad-x); border-radius: var(--radius-sm); }
  .btn-success { background: var(--accent2); color: #000; }
  .btn-success:hover { background: #00a389; transform: translateY(-1px); }
  .btn:disabled { opacity: 0.3; cursor: default; transform: none; }
  .btn-compact { min-height: 32px; padding: var(--btn-s-pad-y) var(--btn-s-pad-x); font-size: var(--btn-s-font); border-radius: var(--radius-sm); }
  .btn.btn-utility { min-height: 32px; padding: var(--btn-s-pad-y) var(--btn-s-pad-x); font-size: var(--btn-s-font); border-radius: var(--radius-sm); background: rgba(255,255,255,0.035); color: #c0c9cf; border: 1px solid rgba(255,255,255,0.18); }
  .btn.btn-utility:hover, .btn.btn-utility:focus-visible { background: rgba(255,255,255,0.055); border-color: rgba(255,255,255,0.26); color: #e6ecef; outline: none; }
  .btn.btn-text, .btn.btn-text-danger { min-height: auto; padding: 0; border: none; border-radius: 0; background: none; box-shadow: none; font-size: 12px; line-height: 1.5; text-decoration: underline; text-underline-offset: 2px; }
  .btn.btn-text { color: #c7d0d6; }
  .btn.btn-text:hover, .btn.btn-text:focus-visible { color: var(--text); outline: none; }
  .btn.btn-text-danger { color: #d09a9a; }
  .btn.btn-text-danger:hover, .btn.btn-text-danger:focus-visible { color: #f0b3b3; outline: none; }
  .step-indicator { font-size: 12px; color: #a6b1b8; line-height: 1.55; text-align: left; max-width: 420px; margin: 0 auto; }
  .form-nav .btn { min-width: 172px; }

  /* Summary */
  .summary-card { background: var(--panel-bg); border: 1px solid var(--border2); border-radius: 12px; padding: 1.5rem; margin-bottom: 1rem; }
  .summary-section-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent); margin-bottom: 1rem; font-weight: 500; }
  .summary-row { display: flex; gap: 1rem; margin-bottom: 8px; font-size: 13px; }
  .summary-key { color: var(--muted); width: 180px; min-width: 180px; max-width: 180px; flex-shrink: 0; text-transform: capitalize; white-space: normal; overflow-wrap: break-word; word-break: break-word; line-height: 1.4; }
  .summary-val { color: var(--text); flex: 1; min-width: 0; }
  .summary-edit { font-size:var(--fs-xs);font-family:var(--font);color:var(--muted);background:none;border:1px solid var(--border2);border-radius:var(--radius-sm);padding:var(--btn-s-pad-y) var(--btn-s-pad-x);cursor:pointer;transition:all 0.15s; }
  .summary-edit:hover { color:var(--text);border-color:rgba(255,255,255,0.3); }
  .req-summary-card { padding:1.4rem 1.5rem 1.2rem; }
  .req-section-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
  .req-section-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .req-count { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); color:#c5cbd0; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; }
  .summary-section-warning { margin:1rem 0 1.15rem; padding:0; background:none; border:none; font-size:12px; color:#d69292; line-height:1.65; }
  .summary-section-warning strong { color:#e8abab; font-weight:600; }
  .req-list { display:flex; flex-direction:column; gap:14px; }
.req-subsection { margin-top: 1.1rem; }
  .req-subsection:first-of-type { margin-top: 0; }
  .req-subsection-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:0.75rem; padding-top:0.15rem; }
  .req-subsection-title { font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); }
  .req-subsection-count { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); color:#c5cbd0; font-size:10px; text-transform:uppercase; letter-spacing:0.06em; }
  .req-subsection + .req-subsection { padding-top:1rem; border-top:1px solid rgba(255,255,255,0.06); }
  .req-row { position:relative; display:grid; grid-template-columns:146px minmax(0,1fr) auto; gap:14px; align-items:start; padding:14px 0; border-top:1px solid rgba(255,255,255,0.06); }
  .req-row:first-child { border-top:none; padding-top:0; }
  .req-row.is-disabled-source .req-id-code, .req-row.is-disabled-source .req-text-display, .req-row.is-disabled-source .req-meta-line { opacity:0.56; }
  .req-row.is-disabled-source .req-text-display { text-decoration:none; }
  .req-row.is-disabled-source .req-priority-chip, .req-row.is-disabled-source .req-priority-spacer { display:none; }
  .req-disabled-note { margin-top:8px; font-size:11px; color:#9aa7b0; line-height:1.5; }
  .req-row.is-stale-refined { background: rgba(226,75,74,0.08); box-shadow: inset 0 0 0 1px rgba(226,75,74,0.16); border-radius: 10px; padding-left: 10px; padding-right: 10px; }
  .req-id { width:160px; min-width:160px; max-width:160px; flex-shrink:0; padding-top:1px; }
  .req-id-code { color:var(--req-id); font-weight:600; letter-spacing:0.04em; white-space:nowrap; font-size:11px; line-height:1.4; text-transform:uppercase; }
  .req-id-code.derived-id { text-transform:none; }
  .req-id-code.derived-id { text-transform:none; }
  .req-id-code.context-note { color:#b7ab93; }
  .req-id-code.objective-item { color:#c495e8; }
  .req-main { min-width:0; }
  .req-text-head { display:grid; grid-template-columns:minmax(0,1fr) 92px; align-items:start; gap:10px; }
  .req-text-wrap { min-width:0; }
  .req-text-display { color:var(--text); line-height:1.72; font-size:14px; }
  .req-priority-chip, .req-priority-spacer { justify-self:end; width:92px; }
  .req-priority-chip { flex-shrink:0; display:inline-flex; align-items:center; justify-content:flex-end; padding:2px 0; margin-top:5px; border-radius:999px; border:none; background:none; font-size:10px; line-height:1.2; letter-spacing:0.08em; text-transform:uppercase; color:#aeb8c2; white-space:nowrap; }
  .req-priority-spacer { display:block; height:18px; margin-top:5px; }
  .req-priority-chip.priority-high { color:#d9a7b6; }
  .req-priority-chip.priority-medium { color:#9aa7d8; }
  .req-priority-chip.priority-low { color:#8ea3b1; }
  .req-meta-line { margin-top:8px; font-size:11px; color:#9aa7b0; line-height:1.5; }
  .req-source-action { margin-top:10px; display:flex; justify-content:flex-start; }
  .req-source-action .summary-edit { padding:6px 10px; }
  .objective-refined-badge { display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px; background:rgba(196,149,232,0.12); border:1px solid rgba(196,149,232,0.28); color:#d8bcf0; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; margin-top:8px; }
  .objective-refinement-hint { margin-top:8px; font-size:11px; color:#bba8c9; line-height:1.5; }
  .objective-refinement-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .objective-bundle-display { display:grid; gap:8px; }
  .objective-bundle-line { display:grid; gap:3px; }
  .objective-bundle-label { font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#9fb0ba; }
  .objective-bundle-value { color:var(--text); line-height:1.72; font-size:14px; }
  .objective-refinement-link { background:none; border:none; color:#b8c2cb; padding:0; font-family:var(--font); font-size:12px; cursor:pointer; }
  .objective-refinement-link:hover, .objective-refinement-link:focus-visible { color:var(--text); text-decoration:underline; outline:none; }
  .objective-refine-btn { align-self:start; background:none; border:1px solid transparent; color:#b8c2cb; border-radius:var(--radius-sm); padding:var(--btn-s-pad-y) var(--btn-s-pad-x); font-family:var(--font); font-size:var(--btn-s-font); cursor:pointer; transition:all var(--anim-fast); }
  .objective-refine-btn:hover, .objective-refine-btn:focus-visible { color:var(--text); border-color:rgba(196,149,232,0.26); background:rgba(196,149,232,0.08); outline:none; }
  .objective-refine-btn.is-refined { color:#d8bcf0; border-color:rgba(196,149,232,0.22); }
  .req-manage { align-self:start; background:none; border:1px solid transparent; color:#9aa7b0; border-radius:var(--radius-sm); padding:var(--btn-s-pad-y) var(--btn-s-pad-x); font-family:var(--font); font-size:var(--btn-s-font); cursor:pointer; transition:all var(--anim-fast); }
  .req-manage:hover, .req-manage:focus-visible { color:var(--text); border-color:rgba(255,255,255,0.14); background:rgba(255,255,255,0.04); outline:none; }
  .req-manage.active { color:var(--text); border-color:rgba(255,255,255,0.16); background:rgba(255,255,255,0.05); }
  .req-actions { display:flex; flex-direction:column; align-items:flex-end; gap:8px; justify-self:end; }
  .req-actions .summary-edit, .req-actions .req-manage { min-width: 118px; width: 118px; display:inline-flex; align-items:center; justify-content:center; text-align:center; }
  .req-editor-backdrop { z-index:650; }
  .req-editor-modal-ref { margin-top:4px; font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--req-id); font-weight:600; }
  .req-editor { padding:1.1rem 1.2rem 1.2rem; }
  .req-editor textarea { min-height:150px; padding-bottom:12px; }
  .req-editor-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; align-items:start; }
  .req-editor-side { display:flex; flex-direction:column; gap:12px; }
  .req-editor-stack { display:flex; flex-direction:column; gap:12px; }
  .req-editor-section { background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.06); border-radius:12px; padding:12px; }
  .req-editor-section-title { font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:#a6b2b9; margin-bottom:8px; }
  .req-type-group { display:flex; flex-direction:column; gap:8px; }
  .req-type-card { display:flex; gap:10px; align-items:flex-start; padding:10px 11px; border:1px solid rgba(255,255,255,0.08); border-radius:10px; background:rgba(255,255,255,0.028); cursor:pointer; transition:all var(--anim-fast); }
  .req-type-card:hover { border-color:rgba(255,255,255,0.18); background:rgba(255,255,255,0.04); }
  .req-type-card.selected { border-color:rgba(216,178,74,0.26); background:rgba(216,178,74,0.08); }
  .req-type-card input { margin-top:2px; accent-color:var(--accent); }
  .field-label.disabled { opacity:0.55; }
  .req-editor-help.is-disabled { color:#8e8e8e; }
  .req-editor select:disabled { opacity:0.55; cursor:not-allowed; }
  .req-type-copy { flex:1; min-width:0; }
  .req-type-title { font-size:13px; color:var(--text); font-weight:500; line-height:1.35; }
  .req-type-desc { font-size:12px; color:#aeb8be; line-height:1.45; margin-top:3px; max-width:34ch; }
  .req-editor-help { font-size:12px; color:#9eaab1; line-height:1.6; margin-top:10px; max-width:none; }
  .req-editor-meta-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; flex-wrap:wrap; }
  .req-editor-objective-shell .req-editor-meta-row { justify-content:space-between; }
  .req-editor-meta-row .req-editor-help { margin-top:0; flex:1 1 auto; min-width:0; max-width:none; }
  .req-editor-meta-row .req-editor-reset { flex:0 0 auto; }
  .req-editor-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,0.08); flex-wrap:wrap; }
  .req-editor-actions-right { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-left:auto; }
  .req-editor-reset { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:6px 12px; color:#d2dbe0; background:rgba(255,255,255,0.045); border:1px solid rgba(255,255,255,0.22); border-radius:8px; font-family:var(--font); font-size:12px; font-weight:500; cursor:pointer; transition:all var(--anim-fast); }
  .req-editor-reset:hover, .req-editor-reset:focus-visible { color:var(--text); background:rgba(255,255,255,0.065); border-color:rgba(255,255,255,0.3); outline:none; text-decoration:none; }
  .req-editor-objective-shell { display:grid; gap:12px; }
  .req-editor-objective-tabs { display:flex; flex-wrap:wrap; gap:var(--space-2); align-items:center; width:100%; }
  .req-editor-objective-tab { background:transparent!important; border:none!important; border-radius:var(--radius-sm)!important; color:var(--muted)!important; padding:0 var(--space-3)!important; min-height:38px!important; line-height:1.2!important; font-weight:500!important; box-shadow:none!important; }
.req-editor-objective-tab:hover:not(.active), .req-editor-objective-tab:focus-visible:not(.active) { background:rgba(255,255,255,0.04)!important; color:var(--text)!important; outline:none!important; }
  .req-editor-objective-tab.active { background:rgba(255,255,255,0.06)!important; color:var(--text)!important; border-bottom:2px solid var(--text)!important; border-radius:6px 6px 0 0!important; }
  .req-editor-objective-panels { display:grid; }
  .req-editor-objective-panel { display:none; gap:10px; }
  .req-editor-objective-panel.active { display:grid; }
  .req-editor-objective-panel .field-label { margin-bottom:0; }
  .req-editor-objective-textarea { min-height:240px; }
  .req-editor-objective-help { margin-top:2px; max-width:none; width:100%; }
  .req-delete-btn { background:none; border:none; color:#c48d8d; padding:0; font-family:var(--font); font-size:12px; cursor:pointer; }
  .req-delete-btn:hover, .req-delete-btn:focus-visible { color:#f0b3b3; text-decoration:underline; outline:none; }

  .req-confirm-backdrop { display:none; position:fixed; inset:0; z-index:700; background:rgba(0,0,0,0.72); align-items:center; justify-content:center; padding:1.5rem; }
  .req-confirm-backdrop.visible { display:flex; animation:fadeIn 0.18s ease; }
  .req-confirm-modal { width:min(460px, 100%); background: var(--overlay-bg); border:1px solid var(--border2); border-radius:18px; box-shadow:0 24px 80px rgba(0,0,0,0.56); padding:1.1rem 1.2rem 1.2rem; }
  .req-confirm-tag { font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:#d69292; font-weight:600; margin-bottom:0.55rem; }
  .req-confirm-title { font-size:15px; line-height:1.4; color:var(--text); font-weight:600; }
  .req-confirm-copy { font-size:12px; color:var(--muted); line-height:1.65; margin-top:0.5rem; }
  .req-confirm-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:1rem; flex-wrap:wrap; }
  .req-confirm-delete { background:#a94f4f; color:#fff; }
  .req-confirm-delete:hover { background:#bc5c5c; transform:translateY(-1px); }
  .req-remove-btn { align-self:start; background:none; border:1px solid transparent; color:#c48d8d; border-radius:var(--radius-sm); padding:var(--btn-s-pad-y) var(--btn-s-pad-x); font-family:var(--font); font-size:var(--btn-s-font); cursor:pointer; transition:all var(--anim-fast); }
  .req-remove-btn:hover, .req-remove-btn:focus-visible { color:#f0b3b3; border-color:rgba(196,141,141,0.24); background:rgba(196,141,141,0.06); outline:none; }

  .req-deleted-shell { margin-top:14px; border-top:1px solid rgba(255,255,255,0.06); padding-top:14px; }
  .req-deleted-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
  .req-deleted-title { font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); }
  .req-deleted-list { display:flex; flex-direction:column; gap:14px; }
  .req-deleted-item { position:relative; display:grid; grid-template-columns:132px minmax(0,1fr) auto; gap:14px; align-items:start; padding:14px 0; border-top:1px solid rgba(255,255,255,0.06); }
  .req-deleted-item:first-child { border-top:none; padding-top:0; }
  .req-deleted-text { color:var(--text); line-height:1.72; font-size:14px; opacity:0.82; }
  .req-restore-btn { align-self:start; background:none; border:1px solid transparent; color:#9aa7b0; border-radius:var(--radius-sm); padding:var(--btn-s-pad-y) var(--btn-s-pad-x); font-family:var(--font); font-size:var(--btn-s-font); cursor:pointer; transition:all var(--anim-fast); }
  .req-restore-btn:hover, .req-restore-btn:focus-visible { color:var(--text); border-color:rgba(255,255,255,0.14); background:rgba(255,255,255,0.04); outline:none; }
  .req-inline-add { margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,0.06); }
  .req-inline-add.hidden { display:none; }
  .req-inline-add-title { font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); margin-bottom:8px; }
  .req-empty-note { font-size:12px; color:var(--muted); margin-top:8px; }
  body.req-editor-open { overflow:hidden; }
  @media (max-width: 900px) {
    .req-type-desc, .req-editor-help, .ds-modal-subtitle { max-width:none; }
    .req-editor-actions { align-items:flex-start; }
  }
  @media (max-width: 720px) {
    .req-row { grid-template-columns:104px minmax(0,1fr); }
    .req-text-head { grid-template-columns:1fr; }
    .req-priority-chip, .req-priority-spacer { justify-self:start; width:auto; }
    .req-priority-chip { margin-top:2px; }
    .req-manage { grid-column:2; justify-self:start; margin-top:8px; }
    .req-editor-grid { grid-template-columns:1fr; }
    .req-editor-meta-row { flex-direction:row; align-items:center; justify-content:space-between; }
    .req-editor-actions { flex-direction:column; align-items:stretch; }
    .req-editor-actions-right { width:100%; justify-content:stretch; }
    .req-editor-actions-right .btn { flex:1; justify-content:center; }
  }

