/* ============================================================
   AEGIS — Shopping App (Win98 theme)
   ============================================================ */

/* ── OUTER LAYOUT ── */
.shop-layout {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.shop-left {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  background: #c0c0c0;
}
.shop-right {
  width: 200px;
  flex-shrink: 0;
  border-left: 2px solid #808080;
  display: flex;
  flex-direction: column;
  background: #c0c0c0;
  overflow: hidden;
}

/* ── RIGHT PANEL ── */
.shop-log-header {
  background: #000080;
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  padding: 3px 6px;
  border-bottom: 1px solid #000;
  flex-shrink: 0;
}
.shop-log-body {
  flex: 1;
  overflow-y: auto;
  background: #fff;
  padding: 4px;
  min-height: 0;
}
.shop-log-line {
  font-size: 10px;
  line-height: 1.5;
  margin-bottom: 3px;
  word-break: break-word;
}
.shop-log-time { color: #808080; margin-right: 3px; }
.shop-log-msg  { color: #000; }
.shop-log-line.shop-user .shop-log-msg { color: #000080; font-weight: bold; }
.shop-log-line.shop-ai   .shop-log-msg { color: #006400; }
.shop-log-line.shop-ok   .shop-log-msg { color: #006400; }
.shop-log-line.shop-err  .shop-log-msg { color: #800000; }

.shop-agent-status {
  flex-shrink: 0;
  border-top: 1px solid #808080;
  padding: 4px 6px;
  font-size: 10px;
  background: #c0c0c0;
}
.shop-agent-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 3px;
  gap: 4px;
  flex-wrap: wrap;
}
.shop-trust-badge { background:#000080; color:#fff; padding:1px 4px; font-size:9px; }
.shop-perm-ok { color:#006400; font-weight:bold; }
.shop-perm-no { color:#800000; font-weight:bold; }

/* ── STEP BOXES ── */
.shop-step-box {
  margin: 10px;
  padding: 12px;
  background: #c0c0c0;
  border-top:  2px solid #fff;
  border-left: 2px solid #fff;
  border-right:  2px solid #808080;
  border-bottom: 2px solid #808080;
}
.shop-step-title {
  font-size: 13px;
  font-weight: bold;
  color: #000080;
  margin-bottom: 4px;
}
.shop-step-sub {
  font-size: 11px;
  color: #444;
  margin-bottom: 10px;
}

/* ── THINKING DOTS ── */
.shop-thinking-dots {
  display: flex;
  gap: 8px;
  margin: 16px 0;
  justify-content: center;
}
.shop-thinking-dots span {
  width: 12px; height: 12px;
  background: #000080;
  display: inline-block;
  animation: shopPulse 1.2s infinite;
}
.shop-thinking-dots span:nth-child(2) { animation-delay: 0.3s; }
.shop-thinking-dots span:nth-child(3) { animation-delay: 0.6s; }
@keyframes shopPulse {
  0%,80%,100% { opacity:0.2; transform:scale(0.85); }
  40%         { opacity:1;   transform:scale(1.2);  }
}

/* ── PASSPORT CARD ── */
.shop-passport-card {
  border: 2px solid #b08820;
  background: linear-gradient(135deg, #f0f8e0 0%, #e0f0d0 100%);
  padding: 10px;
  margin: 8px 0;
}
.shop-passport-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #b08820;
  padding-bottom: 6px;
  margin-bottom: 8px;
}
.shop-passport-logo { font-size:11px; font-weight:bold; color:#000080; }
.shop-passport-badge { background:#006400; color:#fff; padding:2px 8px; font-size:10px; font-weight:bold; letter-spacing:1px; }
.shop-passport-body { display:flex; gap:10px; align-items:flex-start; }
.shop-passport-avatar { font-size:40px; line-height:1; flex-shrink:0; }
.shop-passport-fields { flex:1; min-width:0; }
.shop-pf { display:flex; gap:6px; margin-bottom:3px; font-size:11px; }
.shop-pf-label { min-width:100px; color:#444; font-weight:bold; flex-shrink:0; }
.shop-pf-val   { color:#000; word-break:break-all; }
.shop-pf-val.mono      { font-family:'Lucida Console',monospace; font-size:9px; }
.shop-pf-val.trust-hi  { color:#006400; font-weight:bold; }
.shop-passport-mrz {
  margin-top:8px;
  font-family:'Lucida Console',monospace;
  font-size:9px;
  letter-spacing:1px;
  color:#333;
  background:#fff;
  padding:4px 6px;
  border:1px solid #808080;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.shop-passport-status {
  background:#f0fff0;
  border:1px solid #808080;
  padding:8px;
  margin:8px 0;
}
.shop-status-row { font-size:11px; color:#006400; margin-bottom:3px; }

/* ── BUTTONS ── */
.shop-big-btn {
  padding: 5px 18px !important;
  font-size: 12px !important;
  margin: 0 4px;
}

/* ── PRODUCTS GRID ── */
.shop-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 8px 0;
}
.shop-product-card {
  background: #fff;
  border: 2px solid #808080;
  padding: 10px;
  position: relative;
}
.shop-product-card.shop-product-best { border-color: #b08820; }
.shop-best-tag {
  position:absolute; top:0; right:0;
  background:#b08820; color:#fff;
  font-size:9px; padding:2px 6px; font-weight:bold;
}
.shop-product-emoji  { font-size:28px; text-align:center; margin-bottom:6px; }
.shop-product-name   { font-size:11px; font-weight:bold; color:#000080; margin-bottom:4px; line-height:1.3; }
.shop-product-meta   { font-size:10px; color:#666; display:flex; justify-content:space-between; margin-bottom:4px; flex-wrap:wrap; gap:4px; }
.shop-store   { color:#000080; }
.shop-rating  { color:#808000; }
.shop-product-price  { font-size:14px; font-weight:bold; color:#800000; margin-bottom:6px; }
.shop-over-limit {
  font-size:10px; color:#800000; font-weight:bold;
  padding:3px; background:#ffe0e0; border:1px solid #800000;
}

/* ── GEMMA ANALYSIS LINES ── */
.shop-gemma-lines {
  margin-top:12px;
  font-family:'Lucida Console',monospace;
  font-size:11px;
}
.shop-gemma-line {
  padding:2px 8px;
  margin-bottom:3px;
  border-left:3px solid transparent;
}
.shop-gemma-line.g-ok      { border-color:#006400; color:#006400; background:#f0fff0; }
.shop-gemma-line.g-err     { border-color:#800000; color:#800000; background:#fff0f0; }
.shop-gemma-line.g-approve { border-color:#006400; color:#fff; background:#006400; font-weight:bold; padding:4px 8px; }
.shop-gemma-line.g-deny    { border-color:#800000; color:#fff; background:#800000; font-weight:bold; padding:4px 8px; }

/* ── ORDER SUMMARY ── */
.shop-order-summary {
  border:2px solid #808080; background:#fff; padding:10px; margin:10px 0;
}
.shop-order-row { display:flex; align-items:center; gap:10px; padding-bottom:8px; }
.shop-order-item-img   { font-size:28px; flex-shrink:0; }
.shop-order-item-info  { flex:1; min-width:0; }
.shop-order-item-name  { font-size:12px; font-weight:bold; color:#000080; }
.shop-order-item-store { font-size:10px; color:#444; margin-top:2px; }
.shop-order-item-price { font-size:14px; font-weight:bold; color:#800000; flex-shrink:0; }
.shop-order-divider    { border-top:1px solid #c0c0c0; margin:6px 0; }
.shop-order-total-row  { display:flex; justify-content:space-between; font-size:11px; padding:2px 0; }
.shop-grand-total      { font-weight:bold; font-size:13px; border-top:2px solid #808080; padding-top:4px; margin-top:2px; }

/* ── PAYMENT METHOD ── */
.shop-payment-method {
  background:#e8f0fc; border:1px solid #1f4fb8; padding:8px; margin:8px 0;
}
.shop-pm-row { font-size:11px; margin-bottom:3px; }

/* ── SUCCESS ── */
.shop-success-box { border-top:2px solid #006400 !important; border-left:2px solid #006400 !important; }
.shop-success-icon { font-size:48px; text-align:center; margin-bottom:8px; }
.shop-success-details { background:#fff; border:2px solid #808080; padding:10px; margin:10px 0; }
.shop-sd-row {
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; padding:4px 0; border-bottom:1px solid #e0e0e0;
  gap: 8px;
}
.shop-sd-row:last-child { border-bottom:none; }
.shop-sd-label { color:#444; font-weight:bold; min-width:120px; flex-shrink:0; }
.mono { font-family:'Lucida Console',monospace; font-size:10px; }
.shop-delivery-row { background:#e8f8e8; padding:6px !important; margin-top:4px; }
.shop-delivery-date { color:#006400; font-weight:bold; font-size:12px; }

/* ── DENIED ── */
.shop-denied { border-top:2px solid #800000 !important; border-left:2px solid #800000 !important; }
.shop-denied-icon { font-size:48px; text-align:center; margin-bottom:8px; }
.shop-denied-details { background:#fff; border:2px solid #808080; padding:10px; margin:10px 0; }
.shop-denied-note { background:#fff8e0; border:1px solid #b08820; padding:8px; font-size:11px; margin-top:8px; }

/* ── IDLE / HOME ── */
.shop-idle { padding:14px; background: #c0c0c0; }
.shop-idle-hero {
  text-align:center; padding:14px;
  background:#000080; color:#fff; margin-bottom:12px;
  border-top:2px solid #1a1a8c;
  border-left:2px solid #1a1a8c;
  border-right:2px solid #000040;
  border-bottom:2px solid #000040;
}
.shop-idle-icon  { font-size:36px; margin-bottom:6px; }
.shop-idle-title { font-size:15px; font-weight:bold; margin-bottom:4px; }
.shop-idle-sub   { font-size:11px; color:#a0c0e0; }

.shop-input-area {
  display:flex; gap:6px; margin-bottom:10px;
}
.shop-input {
  flex:1;
  font-size:12px !important;
  padding:5px 8px !important;
}
.shop-send-btn {
  white-space:nowrap;
  padding:4px 14px !important;
  font-size:12px !important;
}
.shop-quick-suggestions {
  display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:12px;
}
.shop-qs-label { font-size:10px; color:#444; white-space:nowrap; }
.shop-qs-btn   { font-size:10px !important; padding:2px 8px !important; }

/* ── HOW IT WORKS ── */
.shop-how-it-works { border:1px solid #808080; background:#fff; padding:10px; }
.shop-hiw-title    { font-size:11px; font-weight:bold; color:#000080; margin-bottom:8px; }
.shop-hiw-steps    { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.shop-hiw-step     { display:flex; align-items:center; gap:6px; font-size:10px; color:#333; }
.shop-hiw-num {
  background:#000080; color:#fff;
  width:16px; height:16px;
  display:flex; align-items:center; justify-content:center;
  font-size:9px; font-weight:bold; flex-shrink:0;
}
