/* ═══════════════════════════════════════════════════════════════════
   TAKEYS — Styles pages (Messages, Ménages, Check-in/out, Projets,
   Analytics, Logements, Propriétaires, Workflows, Alertes, Portails)
   ═══════════════════════════════════════════════════════════════════ */

/* ───── Common page headers ───── */
.page-header{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;margin-bottom:20px;flex-wrap:wrap;
}
.page-h2{
  font-family:'Cormorant Garamond',serif;
  font-size:30px;font-weight:500;letter-spacing:-0.01em;line-height:1.1;
  color:var(--text);
}
.page-h2 em{color:var(--accent-2);font-style:italic;font-weight:500}
.page-sub{font-size:13px;color:var(--muted);margin-top:4px}
.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.stat-row{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.stat-pill{
  font-size:12px;padding:5px 12px;border-radius:14px;
  border:1px solid var(--border);background:var(--surface);
  color:var(--text-2);display:inline-flex;align-items:center;gap:6px;
}
.stat-pill strong{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--text);font-weight:500}
.stat-pill.stat-warn{border-color:rgba(196,138,30,0.3);color:var(--warning)}
.stat-pill.stat-info{border-color:rgba(90,116,144,0.3);color:var(--info)}
.stat-pill.stat-ok{border-color:rgba(90,122,58,0.3);color:var(--success)}
.stat-pill.stat-danger{border-color:rgba(158,74,61,0.35);color:var(--danger)}

.seg .seg-count{
  display:inline-block;font-size:10px;margin-left:4px;
  padding:0 5px;border-radius:8px;
  background:var(--accent-dim);color:var(--accent-2);
}

/* ═════ MESSAGES ═════ */
.mx-layout{
  display:grid;grid-template-columns:400px 1fr;gap:16px;
  height:calc(100vh - 160px);min-height:560px;
}
@media(max-width:1100px){.mx-layout{grid-template-columns:1fr;height:auto}}
.mx-list-col{
  display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;
}
.mx-filters{
  padding:12px;border-bottom:1px solid var(--border);
  display:flex;flex-direction:column;gap:10px;
}
.mx-city-filter{display:flex;gap:6px;flex-wrap:wrap}
.city-chip{
  font-size:11px;padding:3px 10px;border-radius:12px;
  border:1px solid var(--border);background:transparent;color:var(--text-2);
  cursor:pointer;font-family:inherit;
}
.city-chip.active{background:var(--accent-dim);color:var(--accent-2);border-color:var(--accent-line)}
.mx-list{flex:1;overflow-y:auto}

/* Message row layout */
.msg-row{
  display:grid;grid-template-columns:32px 1fr auto;gap:10px;
  padding:10px 12px;border-bottom:1px solid var(--border);
  align-items:flex-start;cursor:pointer;transition:background .12s;
}
.msg-row:hover{background:var(--surface-2)}
.msg-row.selected{background:var(--accent-dim)}
.msg-row.unread{background:linear-gradient(90deg, var(--accent-dim) 0%, transparent 30%)}
.msg-emoji{
  font-size:18px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:var(--bg);border-radius:50%;flex-shrink:0;
}
.msg-emoji.unread{box-shadow:0 0 0 2px var(--accent)}
.msg-body{min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:2px}
.msg-line1{
  display:flex;align-items:center;gap:6px;flex-wrap:nowrap;
  line-height:1.3;overflow:hidden;
}
.msg-name{
  font-size:13px;font-weight:500;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;
}
.msg-logement{
  font-size:11px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;
}
.msg-preview{
  font-size:12px;color:var(--text-2);line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.msg-meta{
  font-size:10px;color:var(--muted);text-align:right;
  display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;
}
.msg-badge{
  font-size:9px;letter-spacing:0.08em;text-transform:uppercase;
  background:rgba(168,60,43,0.15);color:var(--danger);
  padding:1px 6px;border-radius:8px;font-weight:500;
}
.msg-channel{
  font-size:9px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--muted);margin-top:2px;
}

.mx-thread-col{
  display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;
}
.mx-thread-head{
  padding:14px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.mx-thread-who{display:flex;align-items:center;gap:12px}
.mx-thread-name{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:500;color:var(--text)}
.mx-thread-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:2px}
.mx-thread-actions{display:flex;gap:6px}

.mx-convo{
  flex:1;overflow-y:auto;padding:18px 20px;
  display:flex;flex-direction:column;gap:12px;
  background:var(--bg);
}
.bubble-row{display:flex;flex-direction:column;gap:3px;max-width:72%}
.bubble-row.guest{align-self:flex-start;align-items:flex-start}
.bubble-row.ops{align-self:flex-end;align-items:flex-end}
.bubble{
  padding:9px 14px;border-radius:14px;font-size:13px;line-height:1.5;
}
.bubble.guest{background:var(--surface);color:var(--text);border-bottom-left-radius:4px;border:1px solid var(--border)}
.bubble.ops{background:var(--brand-2);color:#f5ead8;border-bottom-right-radius:4px}
.bubble-time{font-size:10px;color:var(--muted)}

.mx-compose{
  border-top:1px solid var(--border);padding:12px 16px 14px;
  background:var(--surface);
}
.mx-ai-suggest{
  background:var(--accent-dim);border:1px solid var(--accent-line);
  border-radius:8px;padding:8px 10px;margin-bottom:10px;
}
.mx-ai-label{
  display:flex;align-items:center;gap:5px;
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--accent-2);margin-bottom:6px;font-weight:500;
}
.mx-ai-chips{display:flex;gap:6px;flex-wrap:wrap}
.ai-chip{
  font-size:11.5px;padding:4px 10px;border-radius:12px;
  background:var(--surface);border:1px solid var(--border);color:var(--text-2);
  cursor:pointer;font-family:inherit;
}
.ai-chip:hover{background:var(--surface-2);color:var(--text);border-color:var(--accent-line)}
.mx-textarea{
  width:100%;min-height:68px;resize:vertical;
  background:var(--surface-2);border:1px solid var(--border);border-radius:8px;
  padding:9px 12px;color:var(--text);font-family:inherit;font-size:13px;
  outline:none;line-height:1.5;
}
.mx-textarea:focus{border-color:var(--accent-line)}
.mx-compose-actions{display:flex;justify-content:space-between;margin-top:8px}
.mx-compose-left,.mx-compose-right{display:flex;gap:6px}

/* ═════ MÉNAGES ═════ */
.slot{border-bottom:1px solid var(--border)}
.slot:last-child{border-bottom:none}
.slot-head{
  display:flex;align-items:center;gap:14px;
  padding:12px 20px;background:var(--bg-raised);
  border-bottom:1px solid var(--border);
}
.slot-time{
  font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;
  color:var(--accent-2);line-height:1;
}
.slot-label{font-size:13px;color:var(--text);font-weight:500}
.slot-count{font-size:11px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase}

.menage-card{
  display:grid;grid-template-columns:68px 1fr auto auto auto;
  gap:16px;align-items:center;
  padding:12px 20px;border-bottom:1px solid var(--border);
  transition:background .1s;
}
.menage-card:last-child{border-bottom:none}
.menage-card:hover{background:var(--surface-2)}
.menage-card.alert{background:rgba(158,74,61,0.06)}
.menage-card.alert:hover{background:rgba(158,74,61,0.1)}
.mc-left{text-align:left}
.mc-time{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:500;color:var(--text);line-height:1}
.mc-turn{font-size:10px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;margin-top:3px}
.mc-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mc-logement{font-size:14px;font-weight:500;color:var(--text)}
.mc-type{font-size:11px;color:var(--muted)}
.mc-detail{font-size:11.5px;color:var(--muted);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap}
.mc-prestataire{display:flex;align-items:center;gap:8px}
.mc-prest-name{font-size:12.5px;color:var(--text-2)}
.mc-actions{display:flex;gap:2px}
.avatar-md{
  width:32px;height:32px;border-radius:50%;color:#fff;
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:14px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

.prestataire-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){.prestataire-grid{grid-template-columns:1fr}}
.prest-card{
  background:var(--bg-raised);border:1px solid var(--border);
  border-radius:9px;padding:12px 14px;
}
.prest-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.prest-name{font-size:13px;font-weight:500;color:var(--text)}
.prest-city{font-size:10.5px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase}
.prest-load{margin-left:auto;font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--text)}
.prest-load span{color:var(--muted);font-size:13px}
.load-bar{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-bottom:10px}
.load-fill{height:100%;border-radius:2px;transition:width .3s}
.prest-items{display:flex;flex-direction:column;gap:3px}
.prest-item{font-size:11px;color:var(--text-2);padding:3px 0}
.prest-item.muted{color:var(--muted);font-style:italic}

/* ═════ CHECK-IN / CHECK-OUT ═════ */
.cio-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:1100px){.cio-grid{grid-template-columns:1fr}}
.guest-row{
  display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;
  padding:12px 18px;border-bottom:1px solid var(--border);transition:background .1s;
}
.guest-row:last-child{border-bottom:none}
.guest-row:hover{background:var(--surface-2)}
.guest-time{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--accent-2)}
.guest-title{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.guest-name{font-size:13.5px;font-weight:500;color:var(--text)}
.guest-detail{font-size:11.5px;color:var(--muted)}
.guest-status{display:flex;align-items:center;gap:6px}
.status-lbl{font-size:11.5px;color:var(--text-2)}

.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.week-col{
  background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;
  padding:10px;display:flex;flex-direction:column;align-items:center;
  min-height:130px;justify-content:space-between;
}
.week-col.active{border-color:var(--accent-line);background:var(--accent-dim)}
.week-day{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.week-date{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--text)}
.week-bar-wrap{display:flex;gap:4px;align-items:flex-end;height:60px}
.week-bar{width:8px;border-radius:3px;min-height:4px}
.week-bar.in{background:var(--success)}
.week-bar.out{background:var(--warning)}
.week-labels{display:flex;gap:8px;font-size:10px;font-family:'JetBrains Mono',monospace}
.week-lbl.in{color:var(--success)}
.week-lbl.out{color:var(--warning)}
.week-legend{display:flex;gap:14px;margin-top:10px;font-size:11px;color:var(--muted)}
.week-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}

/* ═════ PROJETS KANBAN ═════ */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:1100px){.kanban{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.kanban{grid-template-columns:1fr}}
.kanban-col{
  background:var(--surface);border:1px solid var(--border);
  border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-height:300px;
}
.kanban-col-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;border-bottom:1px solid var(--border);
  background:var(--bg-raised);
}
.kanban-col-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text)}
.kanban-dot{width:8px;height:8px;border-radius:50%}
.kanban-count{font-size:11px;color:var(--muted);background:var(--surface);padding:1px 8px;border-radius:10px}
.kanban-body{padding:10px;display:flex;flex-direction:column;gap:10px;flex:1}
.kc{
  background:var(--bg-raised);border:1px solid var(--border);
  border-radius:8px;padding:11px 12px;cursor:pointer;transition:border-color .12s;
}
.kc:hover{border-color:var(--border-strong)}
.kc-head{display:flex;justify-content:space-between;margin-bottom:4px}
.kc-project{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}
.kc-owner{font-size:10.5px;font-weight:500}
.kc-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.35;margin-bottom:4px}
.kc-desc{font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:8px}
.kc-progress{height:3px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-bottom:4px}
.kc-progress-fill{height:100%;background:var(--accent)}
.kc-progress-lbl{font-size:10px;color:var(--muted);margin-bottom:6px;font-family:'JetBrains Mono',monospace}
.kc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.kc-due{font-size:11px;color:var(--text-2)}

/* ═════ ANALYTICS ═════ */
.city-row{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.city-row:last-child{border:none;padding:0;margin:0}
.city-row-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.city-name{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--text)}
.city-stats{display:flex;gap:14px;font-size:12px;color:var(--muted);align-items:baseline}
.city-pct{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:500;color:var(--accent-2)}
.city-bar{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.city-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:3px}
.city-meta{font-size:10.5px;color:var(--muted);margin-top:4px;letter-spacing:0.06em;text-transform:uppercase}

.log-perf-row{
  display:grid;grid-template-columns:32px 1fr auto 120px;gap:12px;align-items:center;
  padding:10px 18px;border-bottom:1px solid var(--border);
}
.log-perf-row:last-child{border:none}
.log-rank{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted)}
.log-name{font-size:13px;font-weight:500;color:var(--text)}
.log-meta{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;margin-top:2px}
.log-pct{display:flex;align-items:center;gap:6px}
.log-pct-val{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--text)}
.log-pct-trend{font-size:11px;font-family:'JetBrains Mono',monospace}
.log-pct-trend.up{color:var(--success)}
.log-pct-trend.down{color:var(--danger)}
.log-bar{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}
.log-bar-fill{height:100%;background:var(--accent)}

.pricing-row{
  display:grid;grid-template-columns:180px auto 1fr auto;gap:14px;align-items:center;
  padding:11px 18px;border-bottom:1px solid var(--border);
}
.pricing-row:last-child{border:none}
.pricing-log{display:flex;align-items:center;gap:8px}
.pricing-suggest{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500}
.pricing-suggest.up{color:var(--success)}
.pricing-suggest.down{color:var(--danger)}
.pricing-reason{font-size:12px;color:var(--muted)}
.pricing-actions{display:flex;gap:6px}

/* ═════ LOGEMENTS ═════ */
.log-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.log-card{
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;cursor:pointer;transition:border-color .12s,transform .12s;
}
.log-card:hover{border-color:var(--accent-line);transform:translateY(-1px)}
.log-thumb{
  height:120px;position:relative;
  background:repeating-linear-gradient(45deg,var(--surface-2) 0 12px,var(--bg-raised) 12px 24px);
}
.log-thumb-placeholder{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:38px;color:var(--muted);opacity:0.5;
}
.log-city-badge{position:absolute;top:10px;left:10px}
.log-vacant-badge{
  position:absolute;top:10px;right:10px;
  font-size:10px;padding:2px 8px;border-radius:10px;
  background:var(--warning);color:var(--bg);font-weight:500;
}
.log-body{padding:12px 14px}
.log-card-name{font-size:13.5px;font-weight:500;color:var(--text);letter-spacing:0.03em}
.log-card-meta{font-size:11.5px;color:var(--muted);margin:3px 0 8px;display:flex;gap:6px}
.log-card-bar{height:3px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-bottom:8px}
.log-card-bar-fill{height:100%;background:var(--accent)}
.log-card-foot{font-size:11px;color:var(--muted)}
.log-next strong{color:var(--text)}

/* ═════ PROPRIÉTAIRES ═════ */
.prop-table{width:100%;border-collapse:collapse}
.prop-table th{
  text-align:left;padding:10px 14px;font-size:10px;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);
  border-bottom:1px solid var(--border);font-weight:500;
}
.prop-table td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:12.5px;vertical-align:middle}
.prop-table tr:last-child td{border:none}
.prop-table tr:hover td{background:var(--surface-2)}
.prop-name{font-weight:500;color:var(--text);font-size:13px}
.prop-source{font-size:10px;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;margin-top:2px}
.prop-logs{display:flex;gap:4px;flex-wrap:wrap}
.prop-log-chip{
  font-size:10.5px;padding:1px 7px;border-radius:4px;
  background:var(--bg-raised);color:var(--text-2);
  border:1px solid var(--border);letter-spacing:0.04em;
}

/* ═════ WORKFLOWS ═════ */
.health-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.health-row{grid-template-columns:repeat(2,1fr)}}
.health-card{
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  padding:14px 16px;
}
.health-card.ok{border-color:rgba(90,122,58,0.3)}
.health-card.warn{border-color:rgba(196,138,30,0.3)}
.health-card.ko{border-color:rgba(158,74,61,0.35)}
.health-val{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:500;color:var(--text);line-height:1}
.health-card.ok .health-val{color:var(--success)}
.health-card.warn .health-val{color:var(--warning)}
.health-card.ko .health-val{color:var(--danger)}
.health-lbl{font-size:11px;color:var(--muted);margin-top:6px;letter-spacing:0.06em;text-transform:uppercase}

.wf-table{width:100%;border-collapse:collapse}
.wf-table th{
  text-align:left;padding:10px 14px;font-size:10px;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);
  border-bottom:1px solid var(--border);font-weight:500;
}
.wf-table td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:12.5px}
.wf-table tr:last-child td{border:none}
.wf-table tr:hover td{background:var(--surface-2)}
.wf-dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.mono.err{color:var(--danger);font-weight:500}

/* ═════ ALERTES DÉTAIL ═════ */
.alert-section{margin-bottom:22px}
.alert-section-head{
  display:flex;align-items:center;gap:10px;margin-bottom:10px;
  padding:0 4px;
}
.alert-section-dot{width:8px;height:8px;border-radius:50%}
.alert-section-title{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--text)}
.alert-section-count{
  font-size:11px;padding:1px 8px;border-radius:10px;
  background:var(--surface);border:1px solid var(--border);color:var(--muted);
}
.alert-detail{
  background:var(--surface);border:1px solid var(--border);
  border-left-width:3px;border-radius:8px;
  padding:14px 18px;margin-bottom:8px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.alert-detail.alert-danger{border-left-color:var(--danger);background:rgba(158,74,61,0.04)}
.alert-detail.alert-warning{border-left-color:var(--warning);background:rgba(196,138,30,0.04)}
.alert-detail.alert-info{border-left-color:var(--info)}
.alert-detail-main{flex:1;min-width:0}
.alert-detail-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px}
.alert-detail-desc{font-size:12.5px;color:var(--text-2);line-height:1.5;margin-bottom:6px}
.alert-detail-meta{display:flex;gap:6px;font-size:11px;color:var(--muted);align-items:center}
.alert-source{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted)}
.alert-detail-actions{display:flex;gap:6px;flex-shrink:0}

/* ═════ PORTAILS ═════ */
.portails-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.portail-card{
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;
}
.portail-preview{
  height:140px;position:relative;
  background:linear-gradient(135deg,var(--brand-2),var(--surface-2));
}
.portail-preview-bg{
  position:absolute;inset:0;
  background-image:
    linear-gradient(var(--accent-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--accent-line) 1px,transparent 1px);
  background-size:24px 24px;
  opacity:0.3;
}
.portail-preview-overlay{position:absolute;top:10px;right:10px;display:flex;gap:6px}
.portail-status{
  font-size:10px;padding:2px 8px;border-radius:10px;font-weight:500;
}
.portail-status-live{background:var(--success);color:#fff}
.portail-status-draft{background:var(--warning);color:var(--bg)}
.portail-preview-url{
  position:absolute;bottom:10px;left:12px;
  font-size:10px;color:#f5ead8;opacity:0.8;letter-spacing:0.02em;
}
.portail-body{padding:14px 16px}
.portail-name{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--text);margin-bottom:4px}
.portail-stats{display:flex;gap:6px;font-size:11.5px;color:var(--muted);margin-bottom:8px}
.portail-flag{
  font-size:11px;padding:5px 9px;border-radius:6px;
  background:rgba(196,138,30,0.12);color:var(--warning);
  margin-bottom:10px;border:1px solid rgba(196,138,30,0.25);
}
.portail-actions{display:flex;gap:6px;flex-wrap:wrap}
