* { box-sizing: border-box; }

:root {
  --navy:#06152f;
  --blue:#2563eb;
  --blue-soft:#eff6ff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;
  --bg:#f7f9fc;
  --card:#ffffff;
}

body {
  margin:0;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
  display:flex;
  min-height:100vh;
}

.sidebar {
  width:245px;
  min-height:100vh;
  background:linear-gradient(180deg,#061a3a 0%,#031029 100%);
  color:white;
  padding:24px 18px;
  display:flex;
  flex-direction:column;
}

.brand { display:flex; align-items:center; gap:12px; margin-bottom:34px; }
.brand-mark {
  width:42px; height:42px; background:#1d4ed8; border-radius:13px;
  display:grid; place-items:center; font-weight:900; font-size:22px;
}
.brand-name { font-size:25px; font-weight:850; letter-spacing:-.04em; }

.nav { display:grid; gap:8px; }
.nav a {
  color:#dbeafe; text-decoration:none; padding:13px 14px;
  border-radius:12px; font-weight:700;
}
.nav a:hover { background:#2563eb; color:white; }

.user-card { margin-top:auto; display:flex; align-items:center; gap:12px; padding-top:24px; }
.avatar {
  width:44px; height:44px; background:#2563eb; border-radius:999px;
  display:grid; place-items:center; font-weight:800;
}
.user-card span { display:block; color:#bfdbfe; font-size:13px; }

.app-main { flex:1; padding:28px 34px; max-width:1780px; }

.flash {
  background:white; border:1px solid var(--line); border-radius:14px;
  padding:14px 18px; margin-bottom:18px;
}

.case-header, .page-top {
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:24px; margin-bottom:24px;
}

h1 { font-size:34px; letter-spacing:-.04em; margin:6px 0 4px; }
h2 { font-size:19px; margin:0 0 12px; }
h3 { font-size:16px; margin:22px 0 12px; }
p { color:var(--muted); }
a { color:var(--blue); }

.button, button {
  background:var(--blue); color:white; border:0; border-radius:12px;
  padding:13px 18px; text-decoration:none; font-weight:800; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}

.button-secondary { background:#e8eef8; color:#17315f; }
.page-actions, .review-actions { display:flex; gap:10px; align-items:center; }

.import-layout {
  display:grid; grid-template-columns:minmax(0, 1fr) 360px;
  gap:24px; max-width:1050px; align-items:start;
}

.simple-steps { margin:0; padding:0; list-style:none; display:grid; gap:18px; }
.simple-steps li { display:grid; grid-template-columns:70px 1fr; gap:12px; }
.simple-steps span { color:var(--muted); }

.import-warning {
  max-width:1200px; margin-bottom:18px; padding:16px 20px;
  border:1px solid #f59e0b; border-radius:16px; background:#fffbeb;
}
.import-warning ul { margin-bottom:0; }

.import-detected-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;
  max-width:1200px; margin-bottom:18px;
}
.import-detected-grid > div {
  display:grid; gap:6px; background:white; border:1px solid var(--line);
  border-radius:16px; padding:16px;
}
.import-detected-grid span, .import-detected-grid small { color:var(--muted); }
.review-case-form { max-width:1200px; display:grid; gap:18px; }
.review-actions { justify-content:flex-end; }
.cancel-import-form { max-width:1200px; margin-top:10px; display:flex; justify-content:flex-end; }
.table-scroll { overflow-x:auto; }

@media (max-width:900px) {
  .import-layout, .import-detected-grid { grid-template-columns:1fr; }
}

.delete-button { background:#fee2e2; color:#b91c1c; }

.case-workspace { max-width:1500px; }

.tabs {
  display:grid; grid-template-columns:repeat(6,minmax(120px,1fr));
  background:white; border:1px solid var(--line); border-radius:18px;
  padding:8px; gap:8px; margin-bottom:18px;
}
.tab {
  background:white; color:var(--text); border:1px solid transparent;
  border-radius:14px; padding:16px 14px; font-weight:850;
}
.tab.active {
  color:var(--blue); background:var(--blue-soft); border-color:var(--blue);
  box-shadow:0 8px 22px rgba(37,99,235,.12);
}

.case-layout {
  display:grid; grid-template-columns:minmax(0,1fr) 365px;
  gap:24px; align-items:start;
}
.case-main { display:grid; gap:18px; min-width:0; }
.case-side { display:grid; gap:18px; align-content:start; }

.panel-card, .side-card {
  background:var(--card); border:1px solid var(--line); border-radius:20px;
  padding:24px; box-shadow:0 14px 35px rgba(15,23,42,.055);
}

.tab-panel { display:none; }
.tab-panel.active { display:block; }

.form-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

label {
  display:grid; gap:8px; color:#14213d; font-weight:750; margin-bottom:16px;
}

input, select, textarea {
  width:100%; padding:13px 14px; border:1px solid #cbd5e1;
  border-radius:12px; font-size:15px; background:white; color:var(--text);
}
textarea { min-height:96px; resize:vertical; }

input:focus, select:focus, textarea:focus {
  outline:none; border-color:var(--blue); box-shadow:0 0 0 4px rgba(37,99,235,.10);
}

.summary-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px;
}

.summary-grid div, .mini-card, .stakeholder-card {
  background:#f8fafc; border:1px solid var(--line); border-radius:16px; padding:16px;
}
.summary-grid span { display:block; color:var(--muted); font-size:13px; margin-bottom:8px; }
.summary-grid strong, .side-card strong { font-size:22px; color:var(--text); }
.side-card strong.value { display:block; font-size:31px; color:var(--blue); margin:8px 0; }

.badge {
  display:inline-flex; padding:7px 10px; border-radius:999px;
  background:#dcfce7; color:#166534; font-weight:800; font-size:13px;
  margin:4px;
}
.badge.blue { background:#dbeafe; color:#1d4ed8; }
.badge.orange { background:#ffedd5; color:#c2410c; }

.mini-card { margin-bottom:10px; }
.stakeholder-card { margin-bottom:14px; }
.stakeholder-actions { display:flex; gap:8px; margin-top:12px; }

table {
  width:100%; border-collapse:collapse; background:white;
  border:1px solid var(--line); border-radius:18px; overflow:hidden;
}
th { background:#f8fafc; color:#334155; font-size:13px; }
th, td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; }
td a { color:var(--blue); font-weight:800; }

@media (max-width:1150px) {
  .case-layout { grid-template-columns:1fr; }
  .form-grid, .summary-grid { grid-template-columns:1fr; }
  .tabs { grid-template-columns:repeat(2,1fr); }
}

.forecast-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:22px;
}

.forecast-controls {
  display:flex;
  gap:12px;
}

.forecast-controls select {
  width:180px;
}

.forecast-layout {
  display:grid;
  grid-template-columns:180px minmax(0,1fr) 360px;
  gap:18px;
}

.forecast-left,
.forecast-right {
  display:grid;
  gap:14px;
  align-content:start;
}

.forecast-main {
  display:grid;
  gap:18px;
}

.wheel-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.year-card {
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  text-align:center;
  box-shadow:0 14px 35px rgba(15,23,42,.055);
}

.year-card h2 {
  font-size:30px;
}

.quarter-wheel {
  position:relative;
  width:330px;
  height:330px;
  margin:18px auto;
  border-radius:50%;
  overflow:hidden;
  border:6px solid #e5e7eb;
}

.quarter-slice {
  position:absolute;
  width:50%;
  height:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.quarter-slice h3 {
  margin:0;
  font-size:22px;
}

.quarter-slice strong {
  font-size:22px;
}

.q1 {
  left:0;
  top:0;
  background:#eef5ff;
  border-right:2px solid white;
  border-bottom:2px solid white;
}

.q2 {
  right:0;
  top:0;
  background:#fff4e8;
  border-left:2px solid white;
  border-bottom:2px solid white;
}

.q3 {
  right:0;
  bottom:0;
  background:#eaf8f0;
  border-left:2px solid white;
  border-top:2px solid white;
}

.q4 {
  left:0;
  bottom:0;
  background:#f6edff;
  border-right:2px solid white;
  border-top:2px solid white;
}

.wheel-center {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:112px;
  height:112px;
  background:white;
  border-radius:50%;
  display:grid;
  place-items:center;
  z-index:5;
  box-shadow:0 8px 30px rgba(15,23,42,.12);
  padding:14px;
}

.wheel-center strong {
  font-size:25px;
}

.wheel-center span,
.wheel-center small {
  display:block;
  color:var(--muted);
}

.stage-bars {
  display:flex;
  gap:5px;
  margin-top:8px;
}

.stage-bars span {
  width:18px;
  height:6px;
  border-radius:999px;
}

.stage-blue { background:#2563eb; }
.stage-purple { background:#8b5cf6; }
.stage-orange { background:#fb923c; }
.stage-yellow { background:#facc15; }
.stage-green { background:#22c55e; }

.dot {
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:50%;
  margin-right:8px;
}

.dot.blue { background:#2563eb; }
.dot.purple { background:#8b5cf6; }
.dot.orange { background:#fb923c; }
.dot.yellow { background:#facc15; }
.dot.green { background:#22c55e; }
.dot.darkgreen { background:#15803d; }

.legend-row {
  margin:12px 0;
  color:#334155;
  font-weight:700;
}

.selected-stats {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:16px;
}

.selected-stats span {
  color:var(--muted);
}

.forecast-deal {
  border-left:4px solid var(--blue);
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  margin-bottom:12px;
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.deal-badge {
  background:#ffedd5;
  color:#c2410c;
  padding:6px 9px;
  border-radius:8px;
  font-weight:800;
  height:max-content;
}

.pipeline-card {
  min-height:250px;
}

.bar-chart {
  height:210px;
  display:flex;
  align-items:end;
  gap:18px;
  padding-top:20px;
}

.bar-item {
  display:grid;
  justify-items:center;
  gap:8px;
  flex:1;
}

.bar {
  width:32px;
  background:linear-gradient(180deg,#2563eb,#8b5cf6,#fb923c,#22c55e);
  border-radius:8px 8px 0 0;
}

.bar-value {
  font-weight:800;
}

@media (max-width:1400px) {
  .forecast-layout {
    grid-template-columns:1fr;
  }

  .wheel-grid {
    grid-template-columns:1fr;
  }
}

.sales-dashboard {
  display: grid;
  grid-template-columns: 115px minmax(0, 1fr) 240px;
  gap: 18px;
  align-items: start;
}

.stage-rail,
.kpi-rail {
  display: grid;
  gap: 10px;
  align-content: start;
}

.stage-rail h3,
.kpi-rail h3 {
  color: #64748b;
  font-size: 13px;
  letter-spacing: .08em;
  margin: 0 0 4px;
}

.stage-pill {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  min-height: 64px;
  box-shadow: 0 8px 22px rgba(15,23,42,.04);
}

.stage-pill strong {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  background: #0f172a;
  color: white;
  border-radius: 8px;
  font-size: 16px;
  margin-bottom: 6px;
}

.stage-pill span {
  display: block;
  color: #334155;
  font-size: 13px;
}

.sales-board {
  min-width: 0;
}

.board-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.board-header h1 {
  margin-top: 0;
}

.board-actions {
  display: flex;
  gap: 10px;
  align-items: start;
}

.filter-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.filter-row span {
  background: white;
  border: 1px solid var(--line);
  padding: 8px 13px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 13px;
}

.filter-row .filter-active {
  background: #0f172a;
  color: white;
}

.status-groups {
  display: grid;
  gap: 14px;
}

.status-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(15,23,42,.05);
}

.status-head {
  display: flex;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #fbfdff;
}

.status-head span {
  color: #64748b;
}

.empty-state {
  padding: 16px;
  margin: 0;
}

.deal-row {
  display: grid;
  grid-template-columns:
    minmax(220px,1.4fr)
    150px
    180px
    minmax(350px,2fr);
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--text);
  align-items: center;
}

.deal-row:hover {
  background: #f8fafc;
}

.deal-name small,
.deal-value small {
  display: block;
  color: #64748b;
  margin-top: 4px;
}

.deal-stage span {
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 800;
  font-size: 12px;
}

.deal-next {
  color: #334155;
}

.kpi-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 8px 22px rgba(15,23,42,.04);
}

.kpi-card strong {
  display: block;
  font-size: 22px;
  margin-bottom: 4px;
}

.kpi-card span {
  color: #64748b;
  font-size: 13px;
}

@media (max-width: 1300px) {
  .sales-dashboard {
    grid-template-columns: 1fr;
  }

  .deal-row {
    grid-template-columns: 1fr;
  }
}

.timeline-list {
  display: grid;
  gap: 10px;
}

.timeline-list div {
  display: grid;
  grid-template-columns: 42px 1fr 150px;
  align-items: center;
  gap: 12px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
}

.timeline-list strong {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--blue);
  color: white;
  display: grid;
  place-items: center;
}

.timeline-list span {
  font-weight: 800;
}

.timeline-list b {
  text-align: right;
  color: #334155;
}

.timeline-board {
  display: grid;
  gap: 12px;
}

.timeline-header {
  display: grid;
  grid-template-columns: 230px 150px 150px minmax(520px, 1fr) 240px;
  gap: 14px;
  background: #0f172a;
  color: white;
  border-radius: 16px;
  padding: 14px 18px;
  font-weight: 850;
}

.timeline-row {
  display: grid;
  grid-template-columns: 230px 150px 150px minmax(520px, 1fr) 240px;
  gap: 14px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15,23,42,.045);
  min-height: 150px;
}

.timeline-case {
  display: grid;
  gap: 4px;
  align-content: start;
}

.timeline-case a {
  text-decoration: none;
}

.timeline-case strong {
  font-size: 17px;
}

.timeline-case span,
.timeline-value span,
.timeline-stage small {
  color: var(--muted);
  font-size: 13px;
}

.timeline-value strong {
  display: block;
  font-size: 18px;
  color: var(--blue);
  margin-bottom: 6px;
}

.timeline-stage span {
  display: inline-flex;
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 999px;
  padding: 7px 10px;
  font-weight: 850;
  margin-bottom: 6px;
}

.timeline-journey {
  position: relative;
  padding-top: 44px;
}

.timeline-line {
  position: relative;
  height: 4px;
  background: #dbeafe;
  border-radius: 999px;
}

.timeline-progress {
  position: absolute;
  left: 0;
  top: 0;
  height: 4px;
  background: #2563eb;
  border-radius: 999px;
}

.milestone {
  position: absolute;
  top: -18px;
  transform: translateX(-50%);
  width: 92px;
  text-align: center;
}

.milestone-dot {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: white;
  border: 3px solid #bfdbfe;
  color: #1e3a8a;
  display: grid;
  place-items: center;
  margin: 0 auto 8px;
  font-weight: 900;
}

.milestone.done .milestone-dot {
  background: #2563eb;
  border-color: #2563eb;
  color: white;
}

.milestone-label strong {
  display: block;
  font-size: 11px;
  color: #334155;
}

.milestone-label span {
  display: block;
  font-size: 11px;
  color: #64748b;
  margin-top: 3px;
}

.timeline-next {
  color: #334155;
  font-size: 14px;
}

@media (max-width: 1400px) {
  .timeline-header,
  .timeline-row {
    grid-template-columns: 1fr;
  }

  .timeline-journey {
    min-height: 140px;
  }
}

.order-display-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

@media (max-width: 1200px) {
  .order-display-grid {
    grid-template-columns: 1fr;
  }
}

.quality-summary {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 14px;
}

.quality-summary strong {
  font-size: 30px;
  color: var(--blue);
}

.quality-group {
  border-top: 1px solid var(--line);
  padding: 10px 0;
}

.quality-group summary {
  cursor: pointer;
  font-weight: 900;
  color: #0f172a;
}

.quality-row {
  display: grid;
  grid-template-columns: 16px 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 7px 0;
  font-size: 13px;
}

.quality-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.quality-dot.filled {
  background: #16a34a;
}

.quality-dot.skipped {
  background: #2563eb;
}

.quality-dot.missing {
  background: #ef4444;
}

.quality-action {
  font-size: 11px;
  padding: 5px 8px;
  border-radius: 8px;
  background: #f1f5f9;
  color: #334155;
}

.gantt-order-value {
  position: absolute;
  top: 86px;
  height: 22px;
  border-radius: 999px;
  background: #0f172a;
  color: white;
  font-size: 11px;
  font-weight: 900;
  display: flex;
  align-items: center;
  padding: 0 10px;
  min-width: 170px;
  opacity: .92;
}

.activity-timeline {
  display: grid;
  gap: 12px;
}

.activity-timeline-item {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 14px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
}

.activity-date {
  font-weight: 900;
  color: var(--blue);
}

.activity-body strong {
  display: block;
  color: #0f172a;
  margin-bottom: 6px;
}

.activity-body p {
  margin: 4px 0;
}

.inline-field-status {
  display: inline-flex;
  width: max-content;
  margin-left: 8px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  vertical-align: middle;
}

.inline-field-status.filled {
  background: #dcfce7;
  color: #166534;
}

.inline-field-status.skipped {
  background: #dbeafe;
  color: #1d4ed8;
}

.inline-field-status.missing {
  background: #fee2e2;
  color: #b91c1c;
}

.quality-cell {
  min-width: 130px;
}

.quality-percent {
  font-weight: 900;
  font-size: 15px;
  margin-bottom: 6px;
}

.quality-breakdown {
  display: grid;
  gap: 2px;
  font-size: 12px;
  color: #475569;
}

.quality-breakdown div {
  white-space: nowrap;
}

.quality-cell {
  min-width: 150px;
}

.quality-pie {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 3px solid white;
  box-shadow: 0 2px 8px rgba(15,23,42,.18);
  margin-bottom: 6px;
}

.quality-pie-center {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: white;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 900;
  color: #0f172a;
}

.quality-legend {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 11px;
  white-space: nowrap;
}

.quality-pie-center {
  width: 22px !important;
  height: 22px !important;
  background: white;
  border-radius: 50%;
}

/* Dashboard row spacing override */
.sales-board .deal-row {
  display: grid !important;
  grid-template-columns: minmax(210px, 1.2fr) 150px 220px minmax(420px, 2fr) !important;
  gap: 28px !important;
  align-items: start !important;
}

.sales-board .deal-stage {
  min-width: 220px !important;
}

.sales-board .deal-stage span {
  display: inline-flex !important;
  max-width: 200px !important;
  white-space: normal !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere !important;
}

.sales-board .deal-next {
  min-width: 420px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.35 !important;
}

/* Quality column horizontal layout */

.quality-cell {
  min-width: 220px !important;
  width: 220px !important;
}

.quality-cell {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.quality-pie {
  flex: 0 0 52px !important;
  width: 52px !important;
  height: 52px !important;
  margin: 0 !important;
}

.quality-legend {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  font-size: 13px !important;
}

.quality-legend span {
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
  font-weight: 700 !important;
}

table th:nth-child(11),
table td:nth-child(11) {
  width: 220px !important;
  min-width: 220px !important;
}


/* Case detail priority layout */

.case-main .panel-card h2 {
  font-size: 18px;
}

.case-main .panel-card:has(h2) {
  scroll-margin-top: 20px;
}

.case-main .panel-card h2 {
  margin-bottom: 14px;
}

.case-main .panel-card:has(h2)::before {
  content: "";
}

.activity-timeline-item {
  background: #f8fafc;
}

.timeline-list div {
  min-height: 46px;
}


.case-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 310px !important;
  gap: 18px !important;
  align-items: start !important;
}

.case-main {
  display: grid !important;
  gap: 16px !important;
  min-width: 0 !important;
}

.case-side {
  display: grid !important;
  gap: 14px !important;
  align-content: start !important;
}

.priority-card {
  border: 2px solid #bfdbfe !important;
}

@media (max-width: 1100px) {
  .case-layout {
    grid-template-columns: 1fr !important;
  }
}

.activity-red {
  color: #dc2626 !important;
  font-weight: 900;
}

.activity-orange {
  color: #ea580c !important;
  font-weight: 900;
}

.deal-priority-high strong {
  font-weight: 950 !important;
}

.priority-label {
  display: inline-flex;
  margin-top: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-weight: 900;
  font-size: 11px;
}

.deal-priority-high .priority-label {
  background: #dbeafe;
  color: #1d4ed8;
}


.partner-revenue-box small {
  display: block;
  line-height: 1.35;
}

.partner-revenue-box strong {
  color: #0f172a;
}


.partner-revenue-box small {
  display: block;
  line-height: 1.35;
}

.partner-revenue-box strong {
  color: #0f172a;
}


.partner-percent-form {
  display: flex;
  gap: 10px;
  align-items: end;
  background: #f8fafc;
  border: 1px solid var(--line);
  padding: 10px;
  border-radius: 14px;
}

.partner-percent-form label {
  font-size: 12px;
  font-weight: 900;
  color: #334155;
}

.partner-percent-form input {
  width: 76px;
  margin-top: 4px;
}

.partner-percent-form button {
  height: 38px;
}


.revenue-mix-card span {
  display: block;
  line-height: 1.4;
}

.revenue-mix-card strong {
  margin-bottom: 6px;
}


.print-body {
  background: white;
  color: #0f172a;
}

.print-report {
  max-width: 1400px;
  margin: 0 auto;
  padding: 32px;
}

.print-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}

.print-header h1 {
  font-size: 34px;
  margin-bottom: 6px;
}

.print-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 28px;
}

.print-section {
  margin-top: 28px;
  page-break-inside: avoid;
}

.print-section h2 {
  margin-bottom: 12px;
}

.print-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.print-table th,
.print-table td {
  border: 1px solid #cbd5e1;
  padding: 8px;
  vertical-align: top;
}

.print-table th {
  background: #f1f5f9;
}

@media print {
  .no-print {
    display: none !important;
  }

  body {
    background: white !important;
  }

  .print-report {
    padding: 0;
  }

  .kpi-card {
    box-shadow: none !important;
  }
}

/* Commit IT Pricing ------------------------------------------------------ */
.pricing-kicker {
  display:inline-block;
  color:#1d4ed8;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}

.pricing-page-top p { margin:7px 0 0; }

.pricing-tabs {
  display:flex;
  gap:8px;
  margin:-4px 0 20px;
  padding:6px;
  width:max-content;
  max-width:100%;
  background:#e8eef8;
  border-radius:14px;
}

.pricing-tabs a {
  padding:10px 16px;
  color:#334155;
  border-radius:10px;
  text-decoration:none;
  font-weight:850;
}

.pricing-tabs a.active {
  color:#1d4ed8;
  background:white;
  box-shadow:0 4px 14px rgba(15,23,42,.08);
}

.pricing-future-badge,
.manager-badge {
  display:grid;
  gap:3px;
  max-width:320px;
  padding:13px 16px;
  border:1px solid #bfdbfe;
  border-radius:14px;
  background:#eff6ff;
  color:#1e3a8a;
}

.pricing-future-badge span { color:#4b638c; font-size:13px; }
.manager-badge { display:inline-flex; font-weight:850; }

.pricing-panel { min-width:0; }
.pricing-panel .section-heading p { margin:0; }
.pricing-wide-section { margin-top:20px; }

.catalogue-count,
.pricing-badge,
.tg-chip {
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  font-size:12px;
  font-weight:850;
  white-space:nowrap;
}

.pricing-product-table { margin-top:18px; }
.pricing-product-table table { min-width:1100px; }
.product-description { min-width:430px; color:#475569; line-height:1.45; }
.number-cell { text-align:right; white-space:nowrap; }
.money-value { font-weight:850; color:#0f3f93; }
.status-dot { display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:#22c55e; }

.pricing-assumptions {
  display:grid;
  grid-template-columns:repeat(5,minmax(135px,1fr));
  gap:10px;
  margin-bottom:16px;
}

.pricing-assumptions > div {
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:white;
}

.pricing-assumptions span,
.pricing-assumptions strong { display:block; }
.pricing-assumptions span { color:var(--muted); font-size:12px; margin-bottom:5px; }
.pricing-assumptions strong { font-size:18px; }

.pricing-customer-bar {
  display:grid;
  grid-template-columns:minmax(260px,430px) minmax(230px,1fr) auto;
  gap:20px;
  align-items:end;
  margin-bottom:16px;
  padding:18px 20px;
}

.pricing-customer-bar label { margin:0; }
.customer-rule-summary { display:grid; gap:3px; align-self:center; }
.customer-rule-summary span,
.customer-rule-summary small { color:var(--muted); }
.customer-rule-summary strong { font-size:22px; }

.calculator-panel { padding:20px 0 0; overflow:hidden; }
.calculator-panel > .section-heading { padding:0 22px; }
.calculation-legend { color:var(--muted); font-size:13px; white-space:nowrap; }
.editable-key,
.calculated-key { display:inline-block; width:10px; height:10px; margin:0 5px 0 12px; border-radius:3px; }
.editable-key { background:#dcfce7; border:1px solid #86efac; }
.calculated-key { background:#f1f5f9; border:1px solid #cbd5e1; }

.pricing-calculator-table {
  width:100%;
  border-top:1px solid var(--line);
  margin-top:16px;
}

.pricing-calculator-table table {
  min-width:2250px;
  border:0;
  border-radius:0;
  font-variant-numeric:tabular-nums;
}

.pricing-calculator-table th,
.pricing-calculator-table td {
  padding:11px 12px;
  white-space:nowrap;
  text-align:right;
}

.pricing-calculator-table th:first-child,
.pricing-calculator-table td:first-child { text-align:left; }
.pricing-calculator-table thead th { position:sticky; top:0; z-index:2; }
.pricing-calculator-table .sticky-sku { position:sticky; left:0; z-index:1; min-width:175px; background:white; box-shadow:5px 0 10px rgba(15,23,42,.035); }
.pricing-calculator-table thead .sticky-sku,
.pricing-calculator-table thead th:first-child { z-index:3; background:#f8fafc; }
.sticky-sku small { display:block; margin-top:3px; color:var(--muted); }

.pricing-calculator-table input {
  min-width:98px;
  margin:0;
  padding:9px 10px;
  text-align:right;
  border-color:#86efac;
  background:#f0fdf4;
  font-variant-numeric:tabular-nums;
}

.pricing-calculator-table .quantity-input { min-width:68px; width:68px; }
.editable-cell { background:#f7fff9; }
.reseller-price-cell { min-width:185px; }
.reseller-price-cell input { width:145px; margin-left:auto; }
.reseller-price-cell small { display:block; margin-top:4px; color:#166534; }
.discount-note { display:block; margin-top:4px; color:#166534; font-weight:800; }
.positive-margin { color:#166534; font-weight:850; }
.negative-margin { color:#b91c1c; font-weight:850; }
.tg-chip { background:#dcfce7; color:#166534; }
.tg-chip.tg-warning { background:#fee2e2; color:#b91c1c; }

.calculator-save-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:16px 22px;
  border-top:1px solid var(--line);
  background:#f8fafc;
}
.calculator-save-bar span { color:var(--muted); }

.pricing-settings-layout {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);
  gap:20px;
}

.customer-class-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.customer-class-grid label { padding:12px; border:1px solid var(--line); border-radius:12px; background:#f8fafc; }
.customer-class-grid small,
.pricing-panel label small { color:var(--muted); font-weight:500; }

.settings-table { min-width:1120px; }
.settings-table input,
.settings-table select { min-width:130px; margin:0; padding:9px 10px; }
.settings-table td { padding:10px; }
.row-actions { display:flex; gap:7px; }
.row-actions form { margin:0; }
.row-actions button,
.quantity-rule-row button { padding:10px 12px; }

.pricing-add-panel { margin-top:18px; }
.empty-state { padding:18px; text-align:center; border:1px dashed #cbd5e1; border-radius:12px; }

.quantity-rules { display:grid; gap:9px; max-width:850px; }
.quantity-rule-row {
  display:grid;
  grid-template-columns:120px 120px 120px 100px auto auto;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
}
.quantity-rule-row input { padding:9px 10px; margin:0; }
.quantity-rule-row form { margin:0; }

.inline-rule-form {
  display:grid;
  grid-template-columns:180px 180px auto;
  gap:14px;
  align-items:end;
  max-width:650px;
}
.inline-rule-form label { margin:0; }

@media (max-width:1250px) {
  .pricing-settings-layout { grid-template-columns:1fr; }
  .pricing-assumptions { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:800px) {
  .pricing-page-top,
  .pricing-customer-bar,
  .pricing-assumptions,
  .customer-class-grid,
  .inline-rule-form,
  .quantity-rule-row { grid-template-columns:1fr; }
  .pricing-page-top { display:grid; }
  .pricing-tabs { width:100%; }
  .pricing-tabs a { flex:1; text-align:center; }
  .calculator-save-bar { align-items:stretch; flex-direction:column; }
}

.rank-flow-top {
  align-items: center;
}

.rank-direction {
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(15,23,42,.04);
}

.rank-direction a {
  padding: 10px 14px;
  border-radius: 10px;
  color: #334155;
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}

.rank-direction a.active {
  color: white;
  background: var(--navy);
}

.rank-flow-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  gap: 14px;
  align-items: start;
  overflow-x: auto;
  padding: 2px 2px 20px;
}

.rank-column {
  --rank-accent: var(--blue);
  min-width: 220px;
  overflow: hidden;
  background: #eef5ff;
  border: 1px solid #dbeafe;
  border-top: 5px solid var(--rank-accent);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(15,23,42,.05);
}

.rank-column-1 { --rank-accent: #64748b; background: #f8fafc; border-color: #e2e8f0; }
.rank-column-2 { --rank-accent: #60a5fa; background: #f5f9ff; }
.rank-column-3 { --rank-accent: #2563eb; background: #eff6ff; }
.rank-column-4 { --rank-accent: #1d4ed8; background: #eaf2ff; }
.rank-column-5 { --rank-accent: #06152f; background: #e7eef9; border-color: #cbd5e1; }

.rank-column > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 74px;
  padding: 14px 15px;
  background: rgba(255,255,255,.72);
  border-bottom: 1px solid rgba(148,163,184,.28);
}

.rank-column > header > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rank-column > header span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
}

.rank-column > header strong {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: white;
  background: var(--rank-accent);
  border-radius: 10px;
  font-size: 18px;
}

.rank-column > header .rank-count {
  letter-spacing: 0;
  font-size: 12px;
}

.rank-partner-list {
  display: grid;
  gap: 9px;
  padding: 11px;
}

.rank-partner-card {
  display: block;
  padding: 13px;
  color: var(--text);
  background: white;
  border: 1px solid rgba(203,213,225,.9);
  border-radius: 13px;
  text-decoration: none;
  box-shadow: 0 5px 14px rgba(15,23,42,.035);
}

.rank-partner-card:hover {
  border-color: var(--rank-accent);
  transform: translateY(-1px);
  box-shadow: 0 9px 20px rgba(37,99,235,.10);
}

.rank-partner-name,
.rank-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.rank-partner-name strong {
  line-height: 1.3;
}

.rank-partner-card > small {
  display: block;
  min-height: 30px;
  margin: 7px 0 10px;
  color: var(--muted);
  line-height: 1.4;
}

.rank-card-footer {
  padding-top: 9px;
  border-top: 1px solid #eef2f7;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.rank-empty {
  padding: 22px 12px;
  color: var(--muted);
  text-align: center;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
}

@media (max-width: 1000px) {
  .rank-flow-top { align-items: flex-start; }
  .rank-direction { width: 100%; }
  .rank-direction a { flex: 1; text-align: center; }
  .rank-flow-board { grid-template-columns: repeat(5, 260px); }
}

.document-upload-form {
  display: grid;
  grid-template-columns: 160px 180px minmax(240px, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin-top: 18px;
}

.document-upload-form label {
  margin: 0;
}

.document-upload-form button {
  min-height: 47px;
}

.document-help {
  display: block;
  margin: 9px 0 18px;
  color: var(--muted);
}

.document-list {
  display: grid;
  gap: 10px;
}

.document-row {
  display: grid;
  grid-template-columns: 48px minmax(220px, 1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 13px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.document-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  color: #b91c1c;
  background: #fee2e2;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 900;
}

.document-row small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}

.document-actions {
  display: flex;
  gap: 7px;
  align-items: center;
}

.document-actions .button,
.document-actions button {
  padding: 9px 11px;
  border-radius: 9px;
  font-size: 12px;
}

.document-actions form {
  margin: 0;
}

@media (max-width: 1100px) {
  .document-upload-form,
  .document-row {
    grid-template-columns: 1fr;
  }

  .document-actions {
    flex-wrap: wrap;
  }
}

/* Start page and personal sales dashboard */

.user-card {
  flex-wrap: wrap;
}

.logout-form {
  width: 100%;
  margin: 8px 0 0;
}

.logout-form button {
  width: 100%;
  height: auto;
  padding: 10px 12px;
  border: 1px solid rgba(191, 219, 254, .22);
  border-radius: 10px;
  background: rgba(255, 255, 255, .1);
  color: white;
  font-size: 13px;
}

.logout-form button:hover {
  background: rgba(255, 255, 255, .18);
}

.start-hero {
  min-height: 245px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin-bottom: 20px;
  padding: 38px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 85% 30%, rgba(96, 165, 250, .45), transparent 28%),
    linear-gradient(130deg, #06152f 0%, #123b78 100%);
  box-shadow: 0 18px 45px rgba(6, 21, 47, .18);
}

.start-hero h1 {
  margin: 7px 0;
  color: white;
  font-size: 44px;
}

.start-hero p {
  max-width: 680px;
  margin: 0 0 22px;
  color: #dbeafe;
  font-size: 17px;
}

.start-kicker {
  color: #60a5fa;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .13em;
}

.start-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 16px;
}

.start-card {
  min-height: 170px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: white;
  color: var(--text);
  text-decoration: none;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.start-card:hover {
  transform: translateY(-2px);
  border-color: #93c5fd;
  box-shadow: 0 16px 36px rgba(37, 99, 235, .11);
}

.start-card.primary {
  border-color: #93c5fd;
  background: var(--blue-soft);
}

.start-card > span {
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
}

.start-card > strong {
  margin-top: auto;
  font-size: 21px;
}

.start-card p {
  margin: 7px 0 0;
  line-height: 1.45;
}

.rep-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 13px;
  margin-bottom: 18px;
}

.rep-kpis > div {
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: white;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .04);
}

.rep-kpis span {
  display: block;
  min-height: 31px;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.rep-kpis strong {
  font-size: 24px;
}

.rep-kpis .kpi-alert {
  border-color: #fecaca;
  background: #fff7f7;
}

.rep-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(600px, 1.45fr) minmax(340px, .8fr);
  gap: 18px;
  align-items: start;
}

.rep-list,
.rep-action-list {
  display: grid;
}

.rep-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) 130px 150px minmax(210px, 1.3fr);
  gap: 14px;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}

.rep-row:last-child,
.rep-action:last-child {
  border-bottom: 0;
}

.rep-row a,
.rep-action a {
  color: var(--blue);
  font-weight: 850;
  text-decoration: none;
}

.rep-row small,
.rep-action small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
}

.rep-stage {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 8px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 850;
}

.rep-action {
  display: grid;
  grid-template-columns: 95px 1fr;
  gap: 13px;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}

.rep-action > div:last-child > strong {
  display: block;
  margin-top: 4px;
}

.rep-action-date {
  color: #334155;
  font-size: 13px;
  font-weight: 850;
}

.rep-action.overdue .rep-action-date {
  color: #b91c1c;
}

.dashboard-empty {
  padding: 30px 18px;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  background: #f8fafc;
  text-align: center;
}

.dashboard-empty p {
  margin-bottom: 0;
}

@media (max-width: 1400px) {
  .rep-kpis { grid-template-columns: repeat(3, 1fr); }
  .rep-dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .start-grid,
  .rep-kpis,
  .rep-row {
    grid-template-columns: 1fr;
  }
  .start-hero { padding: 28px 22px; }
  .start-hero h1 { font-size: 36px; }
}

/* Authentication and administration */

.auth-body {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 20% 20%, rgba(37, 99, 235, .22), transparent 34%),
    linear-gradient(145deg, #031029 0%, #08204a 100%);
}

.auth-shell {
  width: 100%;
  max-width: 460px;
}

.auth-card {
  background: white;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 24px;
  padding: 34px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .28);
}

.auth-card h1 {
  margin-top: 28px;
}

.auth-card button {
  width: 100%;
}

.auth-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #06152f;
  font-size: 22px;
}

.auth-brand span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--blue);
  color: white;
  font-weight: 900;
}

.flash.error {
  border-color: #fecaca;
  background: #fff7f7;
  color: #991b1b;
}

.flash.success {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.admin-nav-link {
  margin-top: 10px;
  border-top: 1px solid rgba(191, 219, 254, .18);
  padding-top: 18px !important;
}

.admin-section {
  margin-bottom: 18px;
}

.add-user-panel > summary {
  cursor: pointer;
  color: var(--blue);
  font-size: 17px;
  font-weight: 850;
  list-style: none;
}

.add-user-panel > summary::-webkit-details-marker {
  display: none;
}

.add-user-panel[open] > summary {
  margin-bottom: 22px;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}

.user-status {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 850;
}

.user-status.active {
  background: #dcfce7;
  color: #166534;
}

.user-status.inactive {
  background: #f1f5f9;
  color: #64748b;
}

.admin-notice {
  padding: 14px 16px;
  margin: 14px 0 20px;
  border: 1px solid #bfdbfe;
  border-radius: 13px;
  background: var(--blue-soft);
  color: #1e3a8a;
  font-weight: 750;
}

.access-denied {
  margin: 80px auto;
  text-align: center;
}

@media (max-width: 1000px) {
  .permission-grid {
    grid-template-columns: 1fr;
  }
}

/* Partner development */

.button-secondary {
  background: white;
  color: var(--blue);
  border: 1px solid #bfdbfe;
}

.button-secondary:hover {
  background: var(--blue-soft);
}

.partner-filter {
  display: grid;
  grid-template-columns: minmax(280px, 2fr) repeat(4, minmax(120px, .7fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  margin-bottom: 18px;
}

.partner-filter label,
.inline-filter label {
  margin: 0;
}

.filter-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
}

.filter-actions a {
  font-weight: 800;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: 18px;
}

.partner-table {
  min-width: 1050px;
}

.partner-table td {
  vertical-align: middle;
}

.partner-table td small,
.contact-row small,
.work-main small,
.challenger-card small,
.activity-description small {
  display: block;
  color: var(--muted);
  margin-top: 5px;
}

.empty-table {
  text-align: center;
  color: var(--muted);
  padding: 40px;
}

.stage-badge {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  color: white;
  font-weight: 900;
}

.stage-badge.stage-a { background: #2563eb; }
.stage-badge.stage-b { background: #d97706; }
.stage-badge.stage-c { background: #15803d; }
.stage-badge.stage-large { width: 48px; height: 48px; font-size: 20px; border-radius: 14px; }

.signal-line {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.signal-line span {
  min-width: 34px;
  text-align: center;
  padding: 5px 7px;
  border-radius: 8px;
  background: #f1f5f9;
  color: #334155;
  font-size: 12px;
  font-weight: 850;
}

.narrow-form {
  max-width: 920px;
}

.partner-page-top {
  margin-bottom: 16px;
}

.partner-score-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, .55fr)) minmax(260px, 1.8fr);
  gap: 12px;
  margin-bottom: 18px;
}

.partner-score-grid > div,
.partner-kpis > div {
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 15px;
  box-shadow: 0 8px 22px rgba(15,23,42,.04);
}

.partner-score-grid span,
.partner-kpis span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 5px;
}

.partner-score-grid strong,
.partner-kpis strong {
  font-size: 25px;
}

.partner-score-grid small {
  color: var(--muted);
  margin-left: 3px;
}

.partner-score-grid .next-action-card strong {
  display: block;
  font-size: 16px;
  margin-bottom: 5px;
}

.partner-card-form {
  display: grid;
  gap: 12px;
}

.abc-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(15,23,42,.045);
  overflow: hidden;
}

.abc-card summary {
  min-height: 64px;
  display: grid;
  grid-template-columns: 28px 220px 1fr;
  gap: 12px;
  align-items: center;
  padding: 15px 20px;
  cursor: pointer;
  list-style: none;
  border-left: 5px solid var(--blue);
}

.abc-card.stage-b summary { border-left-color: #d97706; }
.abc-card.stage-c summary { border-left-color: #15803d; }
.abc-card summary::-webkit-details-marker { display: none; }

.abc-card summary strong {
  font-size: 17px;
}

.abc-card summary small {
  color: var(--muted);
}

.abc-plus {
  position: relative;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: #eff6ff;
}

.abc-plus::before,
.abc-plus::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 11px;
  width: 12px;
  height: 2px;
  background: var(--blue);
}

.abc-plus::after {
  transform: rotate(90deg);
  transition: transform .15s ease;
}

.abc-card[open] .abc-plus::after {
  transform: rotate(0deg);
}

.abc-body {
  border-top: 1px solid var(--line);
  padding: 8px 24px 24px;
}

.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.span-2 { grid-column: span 2; }

.training-checks {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: 18px 0;
}

.check-label {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px 15px;
  margin: 0;
  background: #f8fafc;
}

.check-label input {
  width: 18px;
  height: 18px;
}

.sticky-save {
  position: sticky;
  bottom: 14px;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  background: rgba(6, 21, 47, .96);
  color: white;
  border-radius: 16px;
  padding: 12px 14px 12px 20px;
  box-shadow: 0 14px 38px rgba(6,21,47,.24);
}

.sticky-save span {
  color: #bfdbfe;
  font-weight: 750;
}

.partner-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 22px;
}

.partner-section {
  margin-top: 18px;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.section-heading p {
  margin: -5px 0 14px;
}

.contact-row,
.activity-row,
.work-row {
  display: grid;
  gap: 14px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}

.contact-row {
  grid-template-columns: 1fr 1fr;
}

.contact-row > div:last-child {
  text-align: right;
}

.note-card {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 13px;
  margin-bottom: 10px;
}

.note-card small {
  color: var(--muted);
}

.note-card p,
.activity-description p {
  white-space: pre-wrap;
  color: #334155;
  margin-bottom: 0;
}

.add-panel {
  margin-top: 15px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.add-panel > summary {
  color: var(--blue);
  font-weight: 850;
  cursor: pointer;
  margin-bottom: 15px;
}

.activity-row {
  grid-template-columns: 100px minmax(250px, 1fr) minmax(420px, 1.2fr);
}

.activity-type {
  display: inline-flex;
  justify-content: center;
  background: #eef2ff;
  color: #3730a3;
  padding: 7px 10px;
  border-radius: 9px;
  font-weight: 850;
  font-size: 12px;
}

.activity-status-form,
.activity-quick-form {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 8px;
}

.activity-status-form button,
.activity-quick-form button {
  padding: 10px 13px;
}

.partner-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}

.partner-kpis .kpi-alert {
  border-color: #fecaca;
  background: #fff7f7;
}

.challenger-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 12px;
}

.challenger-card {
  position: relative;
  display: block;
  color: var(--text);
  text-decoration: none;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
}

.challenger-card:hover {
  border-color: #93c5fd;
  background: #eff6ff;
}

.challenger-card > div:first-child {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-right: 45px;
}

.challenger-card .stage-badge {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  flex: 0 0 auto;
}

.challenger-score {
  position: absolute;
  right: 13px;
  top: 14px;
  font-weight: 900;
  color: var(--blue);
}

.challenger-score small {
  display: inline;
  margin: 0;
  font-weight: 700;
}

.partner-work-list {
  margin-top: 18px;
}

.inline-filter select {
  min-width: 180px;
}

.work-row {
  grid-template-columns: 115px minmax(280px, 1fr) minmax(260px, 430px);
  align-items: center;
}

.work-date {
  font-weight: 850;
  color: #334155;
}

.work-date.overdue {
  color: #b91c1c;
}

.work-main a,
.work-main strong {
  display: block;
}

.text-action {
  justify-self: end;
  font-weight: 850;
}

@media (max-width: 1450px) {
  .partner-filter { grid-template-columns: repeat(3, 1fr); }
  .partner-filter .search-field { grid-column: span 2; }
  .partner-score-grid { grid-template-columns: repeat(4, 1fr); }
  .partner-score-grid .next-action-card { grid-column: span 4; }
  .challenger-grid { grid-template-columns: repeat(3, 1fr); }
  .form-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  body { display: block; }
  .sidebar { width: 100%; min-height: auto; }
  .app-main { padding: 22px 16px; }
  .partner-filter,
  .partner-content-grid,
  .partner-kpis,
  .challenger-grid,
  .form-grid-3,
  .form-grid-4,
  .work-row,
  .activity-row {
    grid-template-columns: 1fr;
  }
  .partner-filter .search-field,
  .partner-score-grid .next-action-card,
  .span-2 { grid-column: auto; }
  .partner-score-grid { grid-template-columns: repeat(2, 1fr); }
  .abc-card summary { grid-template-columns: 28px 1fr; }
  .abc-card summary small { grid-column: 2; }
  .activity-status-form,
  .activity-quick-form { grid-template-columns: 1fr; }
  .contact-row { grid-template-columns: 1fr; }
  .contact-row > div:last-child { text-align: left; }
}


.case-filter-box {
  margin: 22px 0;
  display: grid;
  gap: 10px;
}

.case-filter-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.case-filter-line strong {
  min-width: 70px;
  color: #0f172a;
}

.filter-chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: white;
  border: 1px solid #cbd5e1;
  color: #0f172a;
  font-weight: 800;
  text-decoration: none;
}

.filter-chip:hover {
  background: #e0ecff;
}

.filter-chip.filter-active,
.filter-active {
  background: #0f172a !important;
  color: white !important;
  border-color: #0f172a !important;
}

.print-report {
  padding: 30px;
  background: white;
  color: #0f172a;
}

.print-toolbar {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 18px;
  margin-bottom: 24px;
}

.report-field-form {
  display: grid;
  gap: 14px;
}

.report-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.report-header {
  margin-bottom: 20px;
}

.report-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}

.report-kpis div {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 16px;
}

.report-kpis span {
  display: block;
  color: #64748b;
  font-size: 13px;
}

.report-kpis strong {
  font-size: 22px;
}

.report-section {
  margin-bottom: 28px;
}

@media print {
  .no-print {
    display: none !important;
  }

  body {
    background: white !important;
  }

  .print-report {
    padding: 0;
  }

  table {
    font-size: 11px;
  }

  th, td {
    padding: 8px;
  }
}

/* Result-first pricing workspace ---------------------------------------- */
.visually-hidden {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.price-workspace-header h1 { margin-bottom:5px; }

.pricing-command-center {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
  margin-bottom:22px;
}

.pricing-customer-control,
.policy-snapshot {
  border:1px solid #d9e2f1;
  border-radius:18px;
  background:white;
  box-shadow:0 12px 30px rgba(15,23,42,.045);
}

.pricing-customer-control {
  display:grid;
  grid-template-columns:44px minmax(250px,1fr) minmax(145px,auto) auto;
  gap:15px;
  align-items:center;
  padding:16px;
}

.pricing-customer-control label { margin:0; }
.pricing-customer-control select { padding:11px 13px; }

.control-icon {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:#1d4ed8;
  background:#e8f0ff;
  border-radius:13px;
  font-weight:950;
}

.customer-context-result { display:grid; gap:1px; }
.customer-context-result > span,
.customer-context-result small { color:var(--muted); font-size:11px; }
.customer-context-result strong { font-size:21px; }

.policy-snapshot {
  display:grid;
  grid-template-columns:.85fr .9fr 1.25fr;
  overflow:hidden;
}

.policy-snapshot > div {
  display:grid;
  align-content:center;
  gap:3px;
  min-width:0;
  padding:14px;
  border-right:1px solid var(--line);
}
.policy-snapshot > div:last-child { border-right:0; }
.policy-snapshot span,
.policy-snapshot small { color:var(--muted); font-size:10px; white-space:nowrap; }
.policy-snapshot strong { font-size:15px; white-space:nowrap; }
.policy-snapshot > div:last-child strong { font-size:12px; }

.price-results-section {
  overflow:hidden;
  border:1px solid #d9e2f1;
  border-radius:20px;
  background:#edf2f9;
  box-shadow:0 18px 45px rgba(15,23,42,.06);
}

.price-results-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:20px 22px;
  background:white;
  border-bottom:1px solid #d9e2f1;
}
.price-results-toolbar h2 { margin:3px 0 0; font-size:22px; }
.results-kicker {
  color:#2563eb;
  font-size:10px;
  font-weight:950;
  letter-spacing:.13em;
}

.product-finders { display:flex; gap:9px; align-items:center; }
.product-finders label { margin:0; }
.product-finders input { width:285px; }
.product-finders select { width:145px; }
.product-finders input,
.product-finders select { padding:10px 12px; background:#f8fafc; }

.price-result-labels,
.price-card-main {
  display:grid;
  grid-template-columns:42px minmax(220px,1fr) 78px minmax(210px,.7fr) 105px;
  gap:14px;
  align-items:center;
}

.price-result-labels {
  padding:10px 18px 8px;
  color:#64748b;
  font-size:10px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.price-card-list { display:grid; gap:8px; padding:0 10px 10px; }

.price-card {
  overflow:hidden;
  border:1px solid #dce4ef;
  border-radius:15px;
  background:white;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.price-card:hover {
  border-color:#b7cae8;
  box-shadow:0 8px 24px rgba(15,23,42,.065);
}
.price-card[hidden] { display:none; }

.price-card-main { min-height:88px; padding:12px 17px; }

.price-expand-button {
  position:relative;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid #c9d7ec;
  border-radius:11px;
  background:#f6f9fd;
  color:#2563eb;
}
.price-expand-button:hover { background:#eaf2ff; border-color:#93b4eb; }
.price-expand-button > span:first-child::before,
.price-expand-button > span:first-child::after {
  content:"";
  position:absolute;
  left:10px;
  top:15px;
  width:12px;
  height:2px;
  background:currentColor;
  border-radius:999px;
  transition:transform .18s ease;
}
.price-expand-button > span:first-child::after { transform:rotate(90deg); }
.price-expand-button[aria-expanded="true"] { background:#2563eb; color:white; border-color:#2563eb; }
.price-expand-button[aria-expanded="true"] > span:first-child::after { transform:rotate(0); }

.price-product-identity { min-width:0; display:grid; gap:2px; }
.price-product-identity strong { font-size:15px; letter-spacing:.01em; }
.price-product-identity > span {
  overflow:hidden;
  color:#526176;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.price-product-identity small { color:#8190a5; font-size:10px; font-weight:800; text-transform:uppercase; }

.price-quantity { gap:4px; margin:0; }
.price-quantity > span,
.price-primary-result > span,
.price-margin-result > span { color:#64748b; font-size:10px; font-weight:750; }
.price-quantity input {
  width:62px;
  padding:8px 7px;
  border-color:#8bdeae;
  background:#f0fdf5;
  text-align:center;
  font-weight:850;
}
.price-quantity small { color:#16804a; font-size:9px; }

.price-primary-result,
.price-margin-result { display:grid; gap:3px; align-content:center; }
.price-primary-result > strong { font-size:21px; letter-spacing:-.025em; color:#0b326e; }
.price-primary-result > strong small { color:#56708f; font-size:10px; letter-spacing:.04em; }
.price-primary-result em {
  width:max-content;
  padding:2px 6px;
  color:#9a3412;
  background:#ffedd5;
  border-radius:999px;
  font-size:9px;
  font-style:normal;
  font-weight:850;
}
.price-result-meta { display:flex; flex-wrap:wrap; gap:4px 9px; color:#64748b; font-size:9px; }
.price-result-meta span:first-child { color:#334155; font-weight:750; }

.price-margin-result { justify-items:start; }
.price-margin-result > strong {
  display:inline-flex;
  padding:5px 9px;
  color:#11643a;
  background:#dcfce7;
  border-radius:999px;
  font-size:15px;
}
.price-margin-result > strong.margin-warning { color:#a1261b; background:#fee2e2; }
.price-margin-result small { color:#64748b; font-size:9px; }
.ruckus-discount-result > strong { color:#8a5500; background:#fff1c7; }
.ruckus-discount-result > strong.quote-discount { color:#164a91; background:#dbeafe; }

.price-card-details {
  padding:20px;
  border-top:1px solid #dce4ef;
  background:linear-gradient(180deg,#f8fbff 0%,#fff 100%);
}
.price-card-details[hidden] { display:none; }

.calculation-detail-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.calculation-detail-heading span,
.price-decision-summary > span {
  color:#2563eb;
  font-size:9px;
  font-weight:950;
  letter-spacing:.12em;
}
.calculation-detail-heading h3 { margin:3px 0 0; font-size:16px; }
.calculation-detail-heading small { color:#7b8ba1; }

.cost-flow {
  display:grid;
  grid-template-columns:minmax(110px,1fr) 16px minmax(110px,1fr) 16px minmax(110px,1fr) 16px minmax(110px,1fr) 16px minmax(110px,1fr) 16px minmax(110px,1fr);
  gap:6px;
  align-items:center;
}
.cost-step {
  display:grid;
  gap:4px;
  min-height:88px;
  align-content:center;
  padding:12px;
  border:1px solid #dbe5f3;
  border-radius:12px;
  background:white;
}
.cost-step span,
.cost-step small { color:#718096; font-size:9px; }
.cost-step strong { font-size:14px; }
.cost-step.discount-step { background:#fffaf0; border-color:#f4dfb4; }
.cost-step.discount-step strong { color:#9a5b00; }
.cost-step.landed-step { background:#edf7ff; border-color:#bfdbfe; }
.cost-step.landed-step strong { color:#174995; }
.cost-arrow { color:#8aa0bd; text-align:center; font-weight:900; }

.price-decision-grid {
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);
  gap:14px;
  margin-top:14px;
}
.price-decision-summary,
.manual-price-control {
  padding:14px;
  border:1px solid #dce4ef;
  border-radius:13px;
  background:white;
}
.price-decision-summary dl { display:grid; grid-template-columns:repeat(3,1fr); gap:10px 0; margin:10px 0 0; }
.price-decision-summary dl > div { padding-right:12px; border-right:1px solid var(--line); }
.price-decision-summary dl > div:last-child { border:0; padding-right:0; }
.price-decision-summary dt { color:#718096; font-size:9px; }
.price-decision-summary dd { margin:4px 0 0; font-size:13px; font-weight:850; }
.price-decision-summary dd.margin-warning-text { color:#b42318; }

.quote-input-controls { display:grid; gap:10px; }

.manual-price-control { gap:7px; margin:0; }
.manual-price-control > span { font-size:11px; }
.manual-price-control > div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; }
.manual-price-control input { padding:9px 10px; background:#f0fdf5; border-color:#8bdeae; }
.manual-price-control strong { color:#56708f; font-size:11px; }
.manual-price-control small { color:#718096; font-weight:500; }
.ruckus-discount-control input { background:#fffaf0; border-color:#edc66b; }

.price-no-results { margin:10px; padding:36px; color:#64748b; text-align:center; background:white; border-radius:14px; }

.price-update-bar {
  position:sticky;
  bottom:0;
  z-index:4;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:12px 16px;
  border-top:1px solid #d5e0ef;
  background:rgba(249,251,254,.94);
  backdrop-filter:blur(10px);
}
.price-update-bar span { color:#64748b; font-size:11px; }
.price-update-bar button { padding:10px 15px; }

@media (max-width:1350px) {
  .price-result-labels,
  .price-card-main { grid-template-columns:42px minmax(190px,1fr) 72px minmax(185px,.75fr) 90px; gap:10px; }
  .cost-flow { overflow-x:auto; grid-template-columns:130px 16px 130px 16px 130px 16px 130px 16px 130px 16px 130px; padding-bottom:5px; }
}

@media (max-width:850px) {
  .pricing-customer-control { grid-template-columns:42px 1fr auto; }
  .customer-context-result { grid-column:2; }
  .price-results-toolbar { align-items:stretch; flex-direction:column; }
  .product-finders { align-items:stretch; }
  .product-finders label,
  .product-finders input,
  .product-finders select { width:100%; }
  .product-finders label:first-child { flex:1; }
  .price-result-labels { display:none; }
  .price-card-list { padding-top:10px; }
  .price-card-main {
    grid-template-columns:38px minmax(160px,1fr) 72px minmax(160px,.8fr);
    grid-template-areas:
      "expand product qty price"
      ". product margin price";
  }
  .price-expand-button { grid-area:expand; }
  .price-product-identity { grid-area:product; }
  .price-quantity { grid-area:qty; }
  .price-primary-result { grid-area:price; }
  .price-margin-result { grid-area:margin; display:flex; align-items:center; gap:7px; }
  .price-margin-result > span { display:none; }
  .price-decision-grid { grid-template-columns:1fr; }
}

@media (max-width:600px) {
  .pricing-customer-control { grid-template-columns:38px 1fr; }
  .pricing-customer-control button { grid-column:1 / -1; }
  .policy-snapshot { grid-template-columns:1fr; }
  .policy-snapshot > div { border-right:0; border-bottom:1px solid var(--line); }
  .policy-snapshot > div:last-child { border-bottom:0; }
  .product-finders { flex-direction:column; }
  .price-card-main {
    grid-template-columns:36px 1fr 70px;
    grid-template-areas:
      "expand product qty"
      ". price price"
      ". margin margin";
  }
  .price-primary-result { padding-top:7px; border-top:1px solid var(--line); }
  .price-decision-summary dl { grid-template-columns:1fr 1fr; gap:12px; }
  .price-decision-summary dl > div { border:0; }
  .price-update-bar { align-items:stretch; flex-direction:column; }
}

/* Search-first catalogue and quote builder ----------------------------- */
.catalogue-picker {
  position:relative;
  z-index:8;
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr);
  gap:28px;
  align-items:center;
  margin:0 0 18px;
  padding:23px 25px;
  color:white;
  border:1px solid #173c73;
  border-radius:20px;
  background:
    radial-gradient(circle at 12% 20%,rgba(59,130,246,.28),transparent 34%),
    linear-gradient(135deg,#06172f 0%,#0a2857 100%);
  box-shadow:0 18px 42px rgba(6,23,47,.15);
}
.catalogue-picker-copy h2 { margin:4px 0 5px; color:white; font-size:23px; }
.catalogue-picker-copy p { margin:0; color:#adc3df; font-size:12px; }
.catalogue-picker-copy button {
  padding:0;
  color:#8bc1ff;
  border:0;
  background:transparent;
  font:inherit;
  font-weight:850;
  text-decoration:underline;
  text-underline-offset:3px;
}

.catalogue-search-wrap { position:relative; min-width:0; }
.catalogue-search-field {
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  min-height:56px;
  padding:0 13px;
  color:#59708e;
  border:2px solid rgba(147,197,253,.68);
  border-radius:16px;
  background:white;
  box-shadow:0 12px 30px rgba(0,0,0,.2);
  transition:border-color .16s ease,box-shadow .16s ease;
}
.catalogue-search-field:focus-within {
  border-color:#60a5fa;
  box-shadow:0 0 0 4px rgba(96,165,250,.16),0 16px 36px rgba(0,0,0,.22);
}
.catalogue-search-field > span { font-size:25px; line-height:1; transform:rotate(-20deg); }
.catalogue-search-field input {
  width:100%;
  padding:14px 5px;
  color:#10233f;
  border:0;
  outline:0;
  background:transparent;
  font-size:16px;
  font-weight:750;
}
.catalogue-search-field input::placeholder { color:#8291a7; font-weight:650; }
.catalogue-search-field kbd {
  padding:4px 8px;
  color:#6f8096;
  border:1px solid #d6dfeb;
  border-bottom-width:2px;
  border-radius:7px;
  background:#f7f9fc;
  font:700 11px inherit;
}
.catalogue-search-status { margin:7px 3px 0; color:#9fb7d5; font-size:10px; }

.catalogue-search-results {
  position:absolute;
  top:63px;
  right:0;
  left:0;
  z-index:20;
  overflow:auto;
  max-height:430px;
  padding:7px;
  color:#17243a;
  border:1px solid #cbd8ea;
  border-radius:15px;
  background:white;
  box-shadow:0 24px 55px rgba(3,15,35,.28);
}
.catalogue-search-results[hidden] { display:none; }
.catalogue-result-option {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  width:100%;
  padding:12px;
  color:inherit;
  border:0;
  border-radius:10px;
  background:white;
  text-align:left;
}
.catalogue-result-option:hover,
.catalogue-result-option.active { background:#eef5ff; color:#104a9e; }
.catalogue-result-option:disabled { color:#8390a3; background:#f7f9fc; cursor:default; }
.catalogue-result-identity { display:grid; gap:2px; min-width:0; }
.catalogue-result-identity strong { font-size:13px; }
.catalogue-result-identity small {
  overflow:hidden;
  color:#65758a;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalogue-result-meta { color:#2b5e9f; font-size:10px; font-weight:850; white-space:nowrap; }
.catalogue-result-empty { padding:22px; color:#6f7d90; text-align:center; font-size:12px; }

.selected-products-heading { padding-top:17px; padding-bottom:17px; }
.selected-product-count {
  padding:6px 10px;
  color:#244c85;
  border:1px solid #cbdcf3;
  border-radius:999px;
  background:#eff6ff;
  font-size:11px;
  font-weight:850;
}
.price-result-labels,
.price-card-main {
  grid-template-columns:42px minmax(220px,1fr) 78px minmax(210px,.7fr) 105px 34px;
}
.price-card-main { position:relative; }
.remove-price-card {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  color:#8090a5;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  font-size:20px;
  font-weight:500;
}
.remove-price-card:hover { color:#b42318; border-color:#fecaca; background:#fff1f2; }
.price-selection-empty {
  display:grid;
  justify-items:center;
  gap:5px;
  margin:10px;
  padding:44px 24px 48px;
  color:#6b7b91;
  border:1px dashed #becde0;
  border-radius:15px;
  background:white;
  text-align:center;
}
.price-selection-empty > span {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:4px;
  color:#2563eb;
  border-radius:13px;
  background:#eaf2ff;
  font-size:26px;
}
.price-selection-empty strong { color:#26364c; font-size:15px; }
.price-selection-empty p { margin:0; font-size:11px; }

.catalogue-page-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 335px;
  gap:18px;
  align-items:start;
}
.catalogue-directory { min-height:560px; }
.catalogue-directory-search {
  display:grid;
  grid-template-columns:35px minmax(0,1fr);
  align-items:center;
  margin:20px 0 0;
  padding:0 15px;
  color:#55708f;
  border:2px solid #b7cef0;
  border-radius:15px;
  background:#f8fbff;
}
.catalogue-directory-search:focus-within { border-color:#4387e7; box-shadow:0 0 0 4px rgba(67,135,231,.1); }
.catalogue-directory-search > span { font-size:23px; transform:rotate(-20deg); }
.catalogue-directory-search input { padding:14px 3px; border:0; outline:0; background:transparent; font-size:15px; font-weight:720; }
.catalogue-directory-status { margin:7px 2px 14px; color:#73839a; font-size:10px; }
.catalogue-directory-results { display:grid; gap:8px; }
.catalogue-directory-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) 125px auto;
  gap:16px;
  align-items:center;
  padding:14px 15px;
  border:1px solid #dde5f0;
  border-radius:13px;
  background:white;
}
.catalogue-directory-row > div:first-child { min-width:0; }
.catalogue-directory-row p { overflow:hidden; margin:3px 0; color:#5a687d; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.catalogue-directory-row small { color:#718096; font-size:9px; font-weight:750; text-transform:uppercase; }
.catalogue-directory-action { margin:0; }
.catalogue-directory-action button { white-space:nowrap; }
.catalogue-directory-price { display:grid; justify-items:end; gap:2px; }
.catalogue-directory-price strong { color:#12458e; font-size:14px; }
.catalogue-directory-price span { color:#7c899c; font-size:9px; }
.catalogue-directory-empty { display:grid; place-items:center; gap:5px; min-height:330px; padding:28px; color:#75849a; border:1px dashed #cbd7e7; border-radius:14px; text-align:center; }
.catalogue-directory-empty strong { color:#2e4058; }
.catalogue-directory-empty span { font-size:11px; }
.catalogue-side-stack { display:grid; gap:18px; }
.catalogue-source-card h2,
.catalogue-import-card h2 { margin:5px 0 12px; }
.catalogue-source-card dl { display:grid; gap:0; margin:0 0 12px; }
.catalogue-source-card dl > div { display:flex; justify-content:space-between; gap:15px; padding:8px 0; border-bottom:1px solid var(--line); }
.catalogue-source-card dt { color:#718096; font-size:11px; }
.catalogue-source-card dd { margin:0; font-size:11px; font-weight:850; text-align:right; }
.catalogue-source-card > small,
.catalogue-import-card > small { display:block; color:#718096; font-size:10px; overflow-wrap:anywhere; }
.catalogue-import-card p { color:#5f7087; font-size:11px; }
.catalogue-import-card form { display:grid; gap:10px; margin:13px 0; }
.catalogue-import-card input[type="file"] { font-size:10px; }

@media (max-width:1350px) {
  .price-result-labels,
  .price-card-main { grid-template-columns:42px minmax(190px,1fr) 72px minmax(185px,.75fr) 90px 32px; gap:10px; }
}

@media (max-width:950px) {
  .catalogue-picker { grid-template-columns:1fr; gap:17px; }
  .catalogue-page-grid { grid-template-columns:1fr; }
  .catalogue-side-stack { grid-template-columns:1fr 1fr; }
}

@media (max-width:850px) {
  .price-card-main {
    grid-template-columns:38px minmax(160px,1fr) 72px minmax(160px,.8fr);
    grid-template-areas:
      "expand product qty price"
      ". product margin price";
    padding-right:46px;
  }
  .remove-price-card { position:absolute; top:10px; right:9px; }
}

@media (max-width:650px) {
  .catalogue-picker { padding:19px; }
  .catalogue-search-field kbd { display:none; }
  .catalogue-search-field { grid-template-columns:30px minmax(0,1fr); }
  .catalogue-result-option { grid-template-columns:1fr; gap:5px; }
  .catalogue-result-meta { white-space:normal; }
  .catalogue-side-stack { grid-template-columns:1fr; }
  .catalogue-directory-row { grid-template-columns:1fr auto; }
  .catalogue-directory-row > div:first-child { grid-column:1 / -1; }
  .catalogue-directory-price { justify-items:start; }
}

@media (max-width:600px) {
  .price-card-main {
    grid-template-columns:36px 1fr 70px;
    grid-template-areas:
      "expand product qty"
      ". price price"
      ". margin margin";
  }
}

/* Pricing policy control room ------------------------------------------- */
.policy-page-header .manager-badge { display:inline-flex; align-items:center; gap:8px; }
.manager-badge i,
.policy-status i {
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.12);
}

.policy-designer {
  overflow:hidden;
  padding:22px;
  border-radius:22px;
  background:linear-gradient(145deg,#071833 0%,#0d2c5e 100%);
  box-shadow:0 22px 50px rgba(6,21,47,.16);
}

.policy-designer-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:18px;
  color:white;
}
.policy-designer-heading > div:first-child > span,
.section-eyebrow {
  color:#78a7ff;
  font-size:9px;
  font-weight:950;
  letter-spacing:.14em;
}
.policy-designer-heading h2 { margin:4px 0; font-size:24px; }
.policy-designer-heading p { margin:0; color:#bbcae0; }

.policy-status {
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:2px 9px;
  min-width:145px;
  padding:11px 14px;
  border:1px solid rgba(191,219,254,.25);
  border-radius:13px;
  background:rgba(255,255,255,.08);
}
.policy-status i { grid-row:1 / 3; }
.policy-status span { color:#b8c8df; font-size:9px; }
.policy-status strong { font-size:12px; }

.policy-domain-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr;
  gap:12px;
}
.policy-domain {
  padding:16px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:white;
}
.policy-domain-title { display:flex; gap:10px; align-items:center; margin-bottom:15px; }
.policy-domain-title h3 { margin:0 0 2px; font-size:14px; }
.policy-domain-title p { margin:0; color:#7a8a9f; font-size:10px; }
.policy-domain-icon {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 auto;
  border-radius:11px;
  color:#1d4ed8;
  background:#e8f0ff;
  font-size:11px;
  font-weight:950;
}
.policy-domain-icon.amber { color:#a65b00; background:#fff1d6; }
.policy-domain-icon.green { color:#147a47; background:#dcfce7; }

.policy-input-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.policy-input-grid label,
.margin-target-grid label { gap:5px; margin:0; }
.policy-input-grid label > span,
.margin-target-grid label > span { color:#53647a; font-size:9px; }
.policy-input-grid label > div,
.margin-target-grid label > div {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:6px;
  overflow:hidden;
  border:1px solid #d7e1ed;
  border-radius:10px;
  background:#f8fafc;
}
.policy-input-grid input,
.margin-target-grid input { min-width:0; padding:9px 5px 9px 10px; border:0; background:transparent; box-shadow:none; font-weight:850; }
.policy-input-grid label > div > strong,
.margin-target-grid label > div > strong { padding-right:9px; color:#708198; font-size:9px; }
.policy-input-grid small { color:#8695a8; font-size:8px; font-weight:500; }

.margin-target-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.margin-target-grid label { padding:9px; border:1px solid #e2e8f0; border-radius:11px; background:#f8fafc; }
.margin-target-grid label.active-target { border-color:#93d9b1; background:#f0fdf5; }
.margin-target-grid label.active-target > span { color:#147a47; font-weight:850; }
.margin-target-grid small { color:#16804a; font-size:8px; font-weight:800; }

.policy-save-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-top:14px;
  color:#b8c8df;
  font-size:10px;
}
.policy-save-row button { padding:10px 16px; background:white; color:#123e80; }

.pricing-rule-layout {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);
  gap:16px;
  margin-top:18px;
}
.pricing-rule-layout .section-heading h2,
.customer-exception-panel .section-heading h2 { margin:4px 0 3px; }
.pricing-rule-layout .section-heading p,
.customer-exception-panel .section-heading p { margin:0; }
.section-eyebrow { color:#2563eb; }

.customer-tier-track { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin:16px 0; }
.customer-tier-track label {
  position:relative;
  gap:5px;
  min-width:0;
  margin:0;
  padding:12px 8px 10px;
  border:1px solid #e0e7f0;
  border-radius:12px;
  background:#f8fafc;
}
.customer-tier-track label::before {
  content:"";
  position:absolute;
  left:-9px;
  top:25px;
  width:8px;
  height:2px;
  background:#d7e1ed;
}
.customer-tier-track label:first-child::before { display:none; }
.tier-number {
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  color:#1d4ed8;
  background:#e7efff;
  border-radius:7px;
  font-size:10px;
  font-weight:950;
}
.customer-tier-track label > strong { font-size:10px; }
.customer-tier-track label > div { display:grid; grid-template-columns:1fr auto; align-items:center; overflow:hidden; border:1px solid #d7e1ed; border-radius:9px; background:white; }
.customer-tier-track input { min-width:0; padding:7px; border:0; background:transparent; box-shadow:none; }
.customer-tier-track label > div span { padding-right:7px; color:#6b7c91; font-size:9px; }

.quantity-policy-list { display:grid; gap:9px; max-width:720px; margin-top:15px; }
.quantity-policy-rule {
  display:grid;
  grid-template-columns:34px 80px 20px 90px max-content max-content;
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid #dce4ef;
  border-radius:12px;
  background:#f8fafc;
}
.quantity-rule-icon { display:grid; place-items:center; width:34px; height:34px; color:#1d4ed8; background:#e8f0ff; border-radius:10px; font-weight:950; }
.quantity-policy-rule label { gap:3px; margin:0; }
.quantity-policy-rule label > span { color:#718096; font-size:8px; }
.quantity-policy-rule input { padding:8px; }
.quantity-policy-rule label > div { display:grid; grid-template-columns:1fr auto; align-items:center; }
.quantity-policy-rule label > div strong { margin-left:-22px; margin-right:8px; color:#718096; font-size:9px; pointer-events:none; }
.quantity-policy-arrow { align-self:center; color:#93a4ba; }
.quantity-policy-rule form { margin:0; }
.quantity-policy-rule button { padding:9px 10px; }

.customer-exception-panel { margin-top:18px; }
.exception-count { padding:6px 10px; color:#52647a; background:#eef2f7; border-radius:999px; font-size:10px; font-weight:850; }
.exception-empty-state {
  display:flex;
  align-items:center;
  gap:13px;
  padding:17px;
  border:1px dashed #c9d6e6;
  border-radius:13px;
  background:#fafcff;
}
.exception-empty-state > span { display:grid; place-items:center; width:33px; height:33px; color:#2563eb; background:#e8f0ff; border-radius:10px; font-size:18px; }
.exception-empty-state strong { font-size:12px; }
.exception-empty-state p { margin:2px 0 0; font-size:10px; }

@media (max-width:1400px) {
  .policy-domain-grid { grid-template-columns:1fr 1fr; }
  .margin-domain { grid-column:1 / -1; }
  .pricing-rule-layout { grid-template-columns:1fr; }
}

@media (max-width:800px) {
  .policy-designer-heading { align-items:flex-start; flex-direction:column; }
  .policy-domain-grid { grid-template-columns:1fr; }
  .margin-domain { grid-column:auto; }
  .policy-save-row { align-items:stretch; flex-direction:column; }
  .customer-tier-track { grid-template-columns:1fr; }
  .customer-tier-track label::before { display:none; }
  .quantity-policy-rule { grid-template-columns:34px 1fr 20px 1fr; }
  .quantity-policy-rule form { grid-row:2; }
}

@media (max-width:520px) {
  .policy-input-grid,
  .margin-target-grid { grid-template-columns:1fr; }
}

/* Named pricing quotes -------------------------------------------------- */
.button-quiet {
  color:#5e6f85;
  border:1px solid #d7e0ec;
  background:white;
}
.button-quiet:hover { color:#a1261b; border-color:#fecaca; background:#fff7f7; }

.quote-identity-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:12px;
  padding:13px 15px;
  border:1px solid #d9e2f1;
  border-radius:16px;
  background:white;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.quote-name-field { display:grid; grid-template-columns:38px minmax(260px,520px); align-items:center; gap:10px; flex:1; }
.quote-name-field .control-icon { width:36px; height:36px; }
.quote-name-field label { gap:4px; margin:0; color:#53657d; font-size:10px; }
.quote-name-field input { padding:9px 11px; font-size:13px; font-weight:750; }
.quote-identity-actions { display:flex; align-items:center; gap:8px; }
.quote-identity-actions form { margin:0; }

.ruckus-reference-control input { background:#fff; border-color:#b9c8dc; }
.price-update-bar > div { display:flex; gap:8px; }

.quote-library { display:grid; gap:10px; }
.saved-quote-card {
  overflow:hidden;
  border:1px solid #dce4ef;
  border-radius:16px;
  background:white;
  box-shadow:0 8px 26px rgba(15,23,42,.045);
}
.saved-quote-main {
  display:grid;
  grid-template-columns:42px minmax(240px,1fr) 90px 170px 120px 24px;
  gap:16px;
  align-items:center;
  padding:17px 19px;
  color:inherit;
  text-decoration:none;
}
.saved-quote-main:hover { background:#f8fbff; }
.saved-quote-mark {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  color:#1d4ed8;
  border-radius:12px;
  background:#e8f0ff;
  font-weight:950;
}
.saved-quote-identity { display:grid; gap:2px; min-width:0; }
.saved-quote-identity small { color:#2563eb; font-size:9px; font-weight:900; letter-spacing:.1em; }
.saved-quote-identity strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.saved-quote-identity span { color:#6b7b90; font-size:10px; }
.saved-quote-stat { display:grid; gap:3px; }
.saved-quote-stat small { color:#7b899c; font-size:9px; }
.saved-quote-stat strong { font-size:12px; }
.saved-quote-arrow { color:#3b72bf; font-size:20px; }
.quote-library-empty { display:grid; justify-items:center; gap:7px; padding:55px; text-align:center; }
.quote-library-empty > span { display:grid; place-items:center; width:48px; height:48px; color:#2563eb; background:#e8f0ff; border-radius:15px; font-weight:950; }
.quote-library-empty h2 { margin:5px 0 0; }
.quote-library-empty p { margin:0 0 8px; color:#718096; }

.quote-detail-actions { display:flex; gap:8px; align-items:center; }
.quote-detail-actions form { margin:0; }
.quote-summary-strip {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-bottom:16px;
  overflow:hidden;
  border:1px solid #dce4ef;
  border-radius:16px;
  background:white;
}
.quote-summary-strip > div { display:grid; gap:4px; padding:16px 18px; border-right:1px solid #e1e7f0; }
.quote-summary-strip > div:last-child { border:0; }
.quote-summary-strip span { color:#718096; font-size:9px; font-weight:800; text-transform:uppercase; }
.quote-summary-strip strong { color:#163b73; font-size:15px; }
.saved-quote-lines { padding:19px; }
.saved-quote-table-wrap { overflow-x:auto; }
.saved-quote-table { width:100%; border-collapse:collapse; font-size:11px; }
.saved-quote-table th { padding:9px 10px; color:#66758a; border-bottom:1px solid #dbe3ee; background:#f6f8fb; text-align:left; font-size:8px; letter-spacing:.07em; text-transform:uppercase; }
.saved-quote-table td { padding:12px 10px; border-bottom:1px solid #e3e9f1; vertical-align:top; }
.saved-quote-table tbody tr:last-child td { border-bottom:0; }
.saved-quote-table td strong,
.saved-quote-table td small { display:block; }
.saved-quote-table td small { margin-top:3px; color:#78879a; font-size:9px; }
.saved-quote-table td:first-child { max-width:320px; }

.quote-print-body { margin:0; color:#142033; background:#eef2f7; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.quote-print-sheet { width:min(1040px,calc(100% - 40px)); min-height:calc(100vh - 40px); margin:20px auto; padding:42px 48px; background:white; box-shadow:0 18px 50px rgba(15,23,42,.1); }
.quote-print-toolbar { display:flex; align-items:center; gap:12px; margin:-18px -20px 34px; padding:12px; border:1px solid #dbe4ef; border-radius:13px; background:#f7f9fc; }
.quote-print-toolbar span { flex:1; color:#68788e; font-size:10px; }
.quote-print-header { display:flex; justify-content:space-between; align-items:flex-start; gap:40px; padding-bottom:28px; border-bottom:2px solid #173d75; }
.quote-print-header > div > span { color:#1d4ed8; font-size:12px; font-weight:950; letter-spacing:.16em; }
.quote-print-header h1 { margin:9px 0 5px; font-size:30px; letter-spacing:-.035em; }
.quote-print-header p { margin:0; color:#65758b; }
.quote-print-header dl { min-width:250px; margin:0; }
.quote-print-header dl > div { display:flex; justify-content:space-between; gap:18px; padding:6px 0; border-bottom:1px solid #e1e7ef; }
.quote-print-header dt { color:#718096; font-size:10px; }
.quote-print-header dd { margin:0; font-size:10px; font-weight:800; text-align:right; }
.quote-customer-table { width:100%; margin-top:34px; border-collapse:collapse; font-size:11px; }
.quote-customer-table th { padding:10px; color:#5f6e83; border-bottom:1px solid #cdd7e4; background:#f3f6fa; text-align:left; font-size:8px; letter-spacing:.06em; text-transform:uppercase; }
.quote-customer-table td { padding:13px 10px; border-bottom:1px solid #e0e6ee; vertical-align:top; }
.quote-customer-table th:nth-last-child(-n+2),
.quote-customer-table td:nth-last-child(-n+2) { text-align:right; }
.quote-customer-table tfoot td { padding-top:17px; color:#113b75; border:0; font-size:15px; font-weight:900; }
.quote-customer-table tfoot td:first-child { text-align:right; }
.quote-print-footer { display:flex; justify-content:space-between; margin-top:70px; padding-top:13px; color:#6d7b8f; border-top:1px solid #d7dfe9; font-size:9px; }
.quote-print-footer strong { color:#173d75; }

@media (max-width:900px) {
  .quote-identity-bar { align-items:stretch; flex-direction:column; }
  .quote-identity-actions { justify-content:flex-end; flex-wrap:wrap; }
  .saved-quote-main { grid-template-columns:42px 1fr 90px 24px; }
  .saved-quote-stat:nth-of-type(3),
  .saved-quote-stat:nth-of-type(4) { display:none; }
  .quote-summary-strip { grid-template-columns:1fr 1fr; }
  .quote-summary-strip > div:nth-child(2) { border-right:0; }
  .quote-summary-strip > div { border-bottom:1px solid #e1e7f0; }
  .quote-summary-strip > div:nth-last-child(-n+2) { border-bottom:0; }
}

@media (max-width:600px) {
  .quote-name-field { grid-template-columns:34px 1fr; }
  .quote-identity-actions { align-items:stretch; flex-direction:column; }
  .quote-identity-actions > * { width:100%; }
  .price-update-bar > div { flex-direction:column; }
  .saved-quote-main { grid-template-columns:38px 1fr 20px; }
  .saved-quote-stat { display:none; }
  .quote-detail-actions { align-items:stretch; flex-direction:column; }
}

@media print {
  @page { size:A4; margin:14mm; }
  .quote-print-body { background:white !important; }
  .quote-print-sheet { width:auto; min-height:0; margin:0; padding:0; box-shadow:none; }
  .quote-print-header { break-inside:avoid; }
  .quote-customer-table tr { break-inside:avoid; }
  .quote-print-footer { margin-top:35px; }
}

/* Pricing shortcuts ----------------------------------------------------- */
.pricing-shortcuts {
  margin:-9px 0 18px;
}
.pricing-shortcuts > summary { display:none; }
.pricing-shortcuts > nav {
  display:flex !important;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  padding:7px;
  border:1px solid #d9e2ef;
  border-radius:15px;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.pricing-shortcuts-label {
  padding:0 7px;
  color:#718096;
  font-size:8px;
  font-weight:950;
  letter-spacing:.11em;
  white-space:nowrap;
}
.pricing-shortcut {
  display:grid;
  grid-template-columns:30px auto;
  gap:8px;
  align-items:center;
  min-width:168px;
  padding:7px 11px 7px 8px;
  color:#20334f;
  border:1px solid #dce4ef;
  border-radius:11px;
  background:white;
  text-decoration:none;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.pricing-shortcut:hover {
  color:#154d9d;
  border-color:#a9c4eb;
  box-shadow:0 6px 16px rgba(28,75,138,.08);
  transform:translateY(-1px);
}
.pricing-shortcut > i {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  color:#1d4ed8;
  border-radius:9px;
  background:#e8f0ff;
  font-size:14px;
  font-style:normal;
  font-weight:950;
}
.pricing-shortcut > span { display:grid; gap:1px; }
.pricing-shortcut strong { font-size:10px; }
.pricing-shortcut small { color:#748399; font-size:8px; }
.deal-reg-shortcut > i { color:#9a4f00; background:#fff1d5; }
.deal-reg-shortcut:hover { color:#8a4600; border-color:#efc67c; }

@media (max-width:700px) {
  .pricing-shortcuts { position:relative; margin-top:-10px; }
  .pricing-shortcuts > summary {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:10px 12px;
    color:#244268;
    border:1px solid #d8e2ef;
    border-radius:12px;
    background:white;
    cursor:pointer;
    font-size:11px;
    font-weight:850;
    list-style:none;
  }
  .pricing-shortcuts > summary::-webkit-details-marker { display:none; }
  .pricing-shortcuts > summary span { display:flex; align-items:center; gap:7px; }
  .pricing-shortcuts > summary i { color:#2563eb; font-style:normal; }
  .pricing-shortcuts > summary small { color:#7a899c; font-size:9px; }
  .pricing-shortcuts:not([open]) > nav { display:none !important; }
  .pricing-shortcuts[open] > nav {
    display:grid !important;
    width:100%;
    margin-top:7px;
  }
  .pricing-shortcuts-label { display:none; }
  .pricing-shortcut { width:100%; }
}

/* Post-sale Ruckus claims ---------------------------------------------- */
.claim-nav-link {
  color:#d7f9ed !important;
  border:1px solid rgba(52,211,153,.22);
  background:rgba(16,185,129,.09);
}
.claim-nav-link:hover { background:#087f5b !important; }
.claim-start-card {
  border-color:#b9ead8 !important;
  background:linear-gradient(145deg,#ffffff 0%,#effcf7 100%) !important;
}
.claim-start-card span { color:#087f5b !important; }
.claim-page-top { align-items:flex-end; }
.claim-kicker,
.claim-step {
  display:block;
  color:#087f5b;
  font-size:10px;
  font-weight:950;
  letter-spacing:.13em;
}
.claim-back {
  display:inline-block;
  margin-bottom:10px;
  color:#5d6f83;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
.claim-page-top p { margin:5px 0 0; }
.claim-import-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  align-items:start;
  gap:20px;
  max-width:1220px;
}
.claim-import-card { min-width:0; }
.claim-import-card .section-heading,
.claim-library-panel .section-heading,
.claim-bulk-form .section-heading {
  align-items:flex-start;
}
.claim-import-card .section-heading h2,
.claim-library-panel .section-heading h2,
.claim-bulk-form .section-heading h2,
.claim-bottom-grid .section-heading h2 {
  margin:4px 0 3px;
}
.claim-import-card .section-heading p { margin:0 0 20px; }
.claim-import-card small,
.claim-context-form small,
.claim-edit-cell small { color:#748399; font-weight:600; }
.claim-import-help {
  color:#29405c;
  background:linear-gradient(155deg,#f3fbf8,#ffffff);
}
.claim-import-help ol {
  display:grid;
  gap:13px;
  margin:18px 0;
  padding-left:22px;
  color:#29405c;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.claim-import-help p {
  margin:0;
  padding-top:15px;
  border-top:1px solid #d9eee6;
  font-size:12px;
  line-height:1.5;
}
.claim-execute-context { margin-bottom:8px; }
.claim-drop-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:6px 0 18px;
}
.claim-drop-zone {
  position:relative;
  min-height:168px;
  margin:0;
  padding:18px 16px;
  border:1.5px dashed #9bb5cc;
  border-radius:15px;
  background:#f8fbff;
  cursor:pointer;
  overflow:hidden;
}
.claim-drop-zone:hover { border-color:#4c7eae; background:#f1f7fd; }
.claim-drop-zone strong { margin-top:3px; font-size:13px; }
.claim-drop-zone small { min-height:30px; font-size:10px; line-height:1.4; }
.claim-drop-zone.is-dragging { border-style:solid; border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.claim-drop-zone.has-files { border-style:solid; border-color:#0b9c70; }
.claim-drop-files {
  display:block;
  margin-top:auto;
  padding:8px 9px;
  overflow:hidden;
  color:#315f8e;
  border-radius:9px;
  background:white;
  font-size:9px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-drop-input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}
.claim-drop-deal { border-color:#7fc8ac; background:#f2fbf7; }
.claim-drop-deal:hover { border-color:#15906a; background:#eaf8f2; }
.claim-drop-number {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  color:white;
  border-radius:8px;
  background:#315f8e;
  font-size:10px;
  font-weight:950;
}
.claim-drop-deal .claim-drop-number { background:#087f5b; }
.claim-execute-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:14px 16px;
  border-radius:13px;
  background:#102f4f;
  color:white;
}
.claim-execute-bar > div { display:grid; gap:3px; }
.claim-execute-bar strong { font-size:12px; }
.claim-execute-bar small { color:#c8d9e9; font-size:9px; }
.claim-execute-bar button { background:#0b9c70; font-size:11px; white-space:nowrap; }
.claim-library-panel { margin-top:20px; }
.claim-count {
  padding:7px 10px;
  color:#087f5b;
  border-radius:999px;
  background:#e6f8f1;
  font-size:11px;
  font-weight:900;
}
.claim-library-table,
.claim-line-table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:12px;
}
.claim-library-table th,
.claim-library-table td,
.claim-line-table th,
.claim-line-table td {
  padding:11px 12px;
  border-bottom:1px solid #e7edf5;
  text-align:left;
  vertical-align:top;
}
.claim-library-table th,
.claim-line-table th {
  color:#607087;
  background:#f5f8fc;
  font-size:9px;
  font-weight:950;
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
}
.claim-library-table td small,
.claim-line-table td small {
  display:block;
  margin-top:4px;
  color:#748399;
  font-size:10px;
  line-height:1.35;
}
.claim-library-table tbody tr:last-child td,
.claim-line-table tbody tr:last-child td { border-bottom:0; }
.claim-library-table .button { padding:8px 11px; border-radius:9px; font-size:10px; }
.claim-status {
  display:inline-flex;
  padding:6px 9px;
  color:#31516f;
  border-radius:999px;
  background:#e7eef7;
  font-size:9px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.claim-status.exported,
.claim-status.submitted,
.claim-status.settled { color:#087f5b; background:#ddf7ed; }
.claim-summary-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:18px;
  overflow:hidden;
  border:1px solid #dce5ef;
  border-radius:17px;
  background:white;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
}
.claim-summary-strip > div {
  display:grid;
  gap:5px;
  padding:17px 20px;
  border-right:1px solid #e3eaf2;
}
.claim-summary-strip > div:last-child { border-right:0; }
.claim-summary-strip span { color:#718096; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.claim-summary-strip strong { color:#18324f; font-size:18px; }
.claim-summary-strip .claim-summary-warning { background:#fff8e9; }
.claim-summary-warning strong { color:#ad5b05; }
.claim-match-strip {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:-8px 0 18px;
}
.claim-match-strip > div {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:10px 13px;
  border:1px solid #dce6ef;
  border-radius:11px;
  background:#f8fbfd;
}
.claim-match-strip span { color:#6c7e91; font-size:9px; font-weight:850; }
.claim-match-strip strong { color:#087f5b; font-size:15px; }
.claim-match-strip .claim-match-warning { border-color:#eed5a7; background:#fff9ed; }
.claim-match-strip .claim-match-warning strong { color:#ad5b05; }
.claim-alert {
  margin-bottom:14px;
  padding:15px 18px;
  border:1px solid #f6c6c6;
  border-radius:14px;
  background:#fff5f5;
  color:#8a2626;
  font-size:12px;
}
.claim-alert p { margin:5px 0 0; color:#9f3b3b; }
.claim-alert ul { margin:8px 0 0; padding-left:20px; }
.claim-context-form { padding:0; overflow:hidden; }
.claim-deal-reg-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px;
  margin-bottom:18px;
}
.claim-deal-reg-card { display:grid; gap:12px; padding:17px 19px; }
.claim-deal-reg-card h2 { margin:4px 0 2px; }
.claim-deal-reg-card p { margin:0; font-size:11px; }
.claim-deal-reg-card dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0; }
.claim-deal-reg-card dl div { display:grid; gap:2px; }
.claim-deal-reg-card dt { color:#748399; font-size:8px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.claim-deal-reg-card dd { margin:0; color:#29405c; font-size:11px; font-weight:800; }
.claim-deal-reg-card > small { color:#8795a7; font-size:9px; }
.claim-context-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr 1.3fr;
  gap:14px;
  padding:20px 22px 4px;
  border-bottom:1px solid #e6edf5;
}
.claim-context-grid label { margin-bottom:14px; font-size:11px; }
.claim-context-grid input,
.claim-context-grid select { padding:10px 11px; font-size:12px; }
.claim-work-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  padding:15px 22px;
  background:#f8fafc;
}
.claim-work-toolbar > div:first-child { display:flex; align-items:flex-end; gap:15px; }
.claim-filter-label { width:min(380px,40vw); margin:0; font-size:10px; }
.claim-filter-label input { padding:10px 11px; font-size:12px; }
.claim-work-toolbar .check-label { display:flex; align-items:center; gap:7px; margin:0 0 10px; font-size:11px; white-space:nowrap; }
.claim-work-toolbar .check-label input { width:auto; }
.claim-toolbar-actions { display:flex; gap:8px; }
.claim-toolbar-actions .button,
.claim-toolbar-actions button { padding:10px 12px; border-radius:9px; font-size:10px; }
.claim-line-scroll { overflow:auto; max-height:62vh; }
.claim-line-table { min-width:2260px; }
.claim-line-table thead { position:sticky; top:0; z-index:2; }
.claim-line-table tbody tr:hover { background:#f8fbff; }
.claim-line-table tbody tr.claim-line-invalid { background:#fff9ed; }
.claim-line-table input { min-width:125px; padding:8px 9px; border-radius:8px; font-size:11px; }
.claim-line-table input[type="checkbox"] { min-width:0; width:16px; height:16px; }
.claim-line-table .number-cell { text-align:right; }
.claim-serial { max-width:190px; overflow-wrap:anywhere; }
.claim-serial-error { color:#a33a2a; font-weight:850; }
.claim-check-error,
.claim-check-ok,
.claim-check-warning,
.claim-match-status {
  display:inline-flex;
  padding:5px 7px;
  border-radius:7px;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
.claim-check-error { color:#a34a00; background:#fff0d3; }
.claim-check-ok { color:#087f5b; background:#e4f8f0; }
.claim-check-warning { color:#8a5a00; background:#fff0c9; }
.claim-match-status { color:#50667d; background:#edf2f7; }
.claim-match-status.matched { color:#087f5b; background:#e4f8f0; }
.claim-match-status.ambiguous,
.claim-match-status.currency_mismatch,
.claim-match-status.invalid_price { color:#a34a00; background:#fff0d3; }
.claim-match-status.manual { color:#285fa0; background:#e8f1fc; }
.claim-bulk-form { margin-top:18px; }
.claim-bulk-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr auto;
  align-items:end;
  gap:14px;
}
.claim-bulk-grid label { margin:0; font-size:11px; }
.claim-bulk-grid label > span { display:flex; align-items:center; gap:7px; }
.claim-bulk-grid input[type="checkbox"] { width:auto; }
.claim-bulk-grid input { padding:10px 11px; font-size:12px; }
.claim-bulk-grid button { min-height:39px; padding:10px 14px; font-size:11px; }
.claim-bottom-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:18px;
  margin-top:18px;
}
.claim-file-list { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.claim-file-list li {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:10px 12px;
  border:1px solid #e3eaf2;
  border-radius:10px;
  background:#f9fbfd;
  font-size:11px;
}
.claim-file-list span { color:#748399; text-align:right; }
button:disabled { opacity:.45; cursor:not-allowed; }

@media (max-width:1050px) {
  .claim-import-layout { grid-template-columns:1fr; }
  .claim-import-help { max-width:none; }
  .claim-context-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .claim-work-toolbar { align-items:stretch; flex-direction:column; }
  .claim-filter-label { width:min(460px,60vw); }
  .claim-bulk-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .claim-bulk-grid button { grid-column:1 / -1; }
  .claim-drop-grid { grid-template-columns:1fr; }
  .claim-drop-zone { min-height:0; }
  .claim-match-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:700px) {
  .claim-page-top { align-items:stretch; flex-direction:column; }
  .claim-page-top .page-actions { align-items:stretch; flex-direction:column; }
  .claim-page-top .page-actions button { width:100%; }
  .claim-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .claim-match-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .claim-summary-strip > div:nth-child(2) { border-right:0; }
  .claim-summary-strip > div:nth-child(-n+2) { border-bottom:1px solid #e3eaf2; }
  .claim-context-grid,
  .claim-bulk-grid,
  .claim-bottom-grid { grid-template-columns:1fr; }
  .claim-work-toolbar > div:first-child,
  .claim-toolbar-actions { align-items:stretch; flex-direction:column; }
  .claim-filter-label { width:100%; }
}

/* Case workflow: a separate dimension from the retained sales stage. */
.workflow-fields { display:grid; gap:14px; margin:18px 0; }
.workflow-statuses { border:0; padding:0; margin:0; min-width:0; }
.workflow-statuses legend { font-weight:700; margin-bottom:10px; }
.workflow-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.workflow-option { position:relative; margin:0; }
.workflow-option input { position:absolute; width:1px; height:1px; opacity:0; }
.workflow-option span { display:flex; align-items:center; min-height:48px; padding:10px; border:1px solid var(--line); border-radius:8px; background:white; color:#334155; font-size:13px; cursor:pointer; }
.workflow-option input:checked + span { border-color:#2563eb; background:#eaf1ff; color:#1748b5; box-shadow:0 0 0 1px #2563eb; }
.workflow-option input:focus-visible + span { outline:3px solid #2563eb; outline-offset:3px; }
.workflow-priority { display:flex; flex-direction:row; gap:9px; align-items:center; }
.workflow-priority input { width:18px; height:18px; margin:0; }
.workflow-history { margin-top:20px; font-size:12px; }
.workflow-history summary { cursor:pointer; font-weight:700; }
.workflow-history-entry { border-top:1px solid var(--line); padding:12px 0; display:grid; gap:5px; }
.workflow-history-entry p { margin:0; white-space:pre-wrap; }
.workflow-history-entry small { color:#64748b; }
.app-main:has(.sales-overview) { min-width:0; max-width:none; }
.sales-overview { min-width:0; }
.sales-overview .board-header { margin-bottom:20px; }
.sales-overview-filters { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin-bottom:22px; }
.sales-overview-filters label { margin:0; min-width:140px; }
.sales-overview-filters .workflow-priority { min-width:0; padding:10px 0; }
.sales-overview-filters select { width:100%; }
.sales-overview-layout { display:grid; grid-template-columns:minmax(0,1fr) 285px; gap:18px; align-items:start; }
.case-columns { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; min-width:0; }
.case-column { background:#eaf0f8; padding:10px; border-radius:12px; min-width:0; min-height:180px; }
.case-column header { display:flex; align-items:start; justify-content:space-between; gap:7px; min-height:57px; padding:5px 3px 12px; }
.case-column h2 { font-size:13px; margin:0; line-height:1.4; }
.case-column header > span { font-size:12px; color:#64748b; }
.case-column-card { display:grid; gap:9px; padding:13px 11px; margin-bottom:10px; background:white; border:1px solid var(--line); border-radius:8px; text-decoration:none; color:#142138; overflow-wrap:anywhere; }
.case-column-card:hover { border-color:#2563eb; }
.case-column-card.selected { border-color:#2563eb; box-shadow:0 0 0 1px #2563eb; background:#edf3ff; }
.case-column-card strong { font-size:14px; }
.case-column-card span { font-size:12px; color:#64748b; }
.case-column-card b { font-size:12px; font-weight:600; }
.deal-summary-rail { min-width:0; scroll-margin-top:16px; }
.deal-summary-rail .panel-card { padding:18px; overflow-wrap:anywhere; }
.deal-summary h2 { font-size:23px; margin:14px 0 6px; }
.deal-summary p { font-size:13px; color:#64748b; }
.summary-title { display:flex; justify-content:space-between; align-items:center; font-size:11px; letter-spacing:1px; color:#64748b; }
.summary-title a { font-size:24px; text-decoration:none; }
.summary-amount { display:block; font-size:23px; margin-top:20px; }
.deal-summary small { color:#64748b; }
.deal-summary dl,.summary-kpis dl { display:grid; gap:5px; font-size:13px; }
.deal-summary dt,.summary-kpis dt { color:#64748b; margin-top:9px; }
.deal-summary dd,.summary-kpis dd { margin:0; white-space:pre-wrap; }
.deal-summary .workflow-options { grid-template-columns:1fr 1fr; }
.deal-summary .workflow-option span { font-size:12px; padding:8px; height:100%; }
.deal-summary .workflow-fields label { font-size:13px; }
.deal-summary .workflow-fields textarea,.deal-summary .workflow-fields input[type=date] { width:100%; }
.summary-full-link { display:block; margin-top:16px; }
.summary-kpis summary { font-weight:700; cursor:pointer; }
.upcoming-meetings h2 { font-size:18px; margin-top:0; }
.upcoming-meetings h2 small { font-size:13px; font-weight:400; color:#64748b; }
.meeting-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.meeting-card { border-top:1px solid var(--line); padding:12px 0; display:grid; gap:5px; text-decoration:none; color:#142138; }
.meeting-card time { font-size:12px; color:#2563eb; font-weight:700; }
.meeting-card span { font-size:12px; color:#64748b; }
@media(min-width:1900px) { .sales-overview .case-columns { grid-template-columns:repeat(8,minmax(0,1fr)); } }
@media(max-width:1250px) { .case-columns { grid-template-columns:repeat(2,minmax(0,1fr)); } .sales-overview-layout { grid-template-columns:minmax(0,1fr) 260px; } }
@media(max-width:850px) { .sales-overview-layout { display:flex; flex-direction:column; } .case-columns,.deal-summary-rail { width:100%; } .workflow-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:500px) { .sales-overview-filters label { min-width:0; width:100%; } .sales-overview-filters .workflow-priority { width:auto; } .case-column { padding:7px; } .case-column-card { padding:10px 8px; } }
