/* Mycomicro — identité commune : bleu profond, or et crème.
   Charger en dernier. Décor uniquement : aucun changement de données ou de parcours.
   Les états d'erreur, suppression, validation et avertissement gardent leurs couleurs. */
:root {
  --myco-ink: #113754;
  --myco-muted: #536372;
  --myco-background: #fff8ec;
  --myco-surface: #ffffff;
  --myco-soft: #fff1cb;
  --myco-border: #dfd7c8;
  --myco-action: #f4bd38;
  --myco-action-hover: #e1a91e;
  --myco-shadow: 0 12px 32px #11375412;
  /* Compatibilité avec les composants publics et les outils administratifs. */
  --myco-navy: var(--myco-ink);
  --myco-sky: var(--myco-ink);
  --myco-sky-soft: var(--myco-background);
  --myco-orange: var(--myco-action);
  --myco-orange-dark: var(--myco-ink);
  --navy: var(--myco-ink);
  --sky: var(--myco-ink);
  --soft: var(--myco-soft);
  --orange: var(--myco-action);
  --border: var(--myco-border);
  color: var(--myco-ink);
  background: var(--myco-background);
  accent-color: var(--myco-ink);
}
body, .portal-body, .search-body, .publishers-body, .product-body, .private-body,
.catalogue-body main, .auth-page, .affiliation-page {
  color: var(--myco-ink);
  background: var(--myco-background);
}
a { color: var(--myco-ink); }
:is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--myco-ink);
  outline-offset: 3px;
}
::selection { background: var(--myco-action); color: var(--myco-ink); }

/* Un en-tête blanc pour le logo, une navigation marine bien identifiable. */
.topbar, .admin-header, .stock-header, .logistics-header { background: #fff; border-color: var(--myco-border); }
.secondary-nav, .topbar.has-main-navigation > .secondary-nav,
.admin-header > div, .stock-header nav, .logistics-header nav {
  background: var(--myco-ink);
  color: #fff;
  border-color: var(--myco-ink);
}
.admin-header > div, .stock-header nav, .logistics-header nav { padding: 10px 14px; border-radius: 10px; }
.secondary-nav a, .topbar .secondary-nav a,
.admin-header > div a, .admin-header > div span,
.stock-header nav a, .logistics-header nav a { color: #fff; }
.admin-header .admin-dashboard-link { color: #fff; }
.secondary-nav a:hover, .topbar .secondary-nav a:hover,
.secondary-nav a[aria-current="page"], .topbar .secondary-nav a[aria-current="page"] {
  color: var(--myco-ink); background: var(--myco-action);
}
.admin-header > div a:hover, .stock-header nav a:hover, .logistics-header nav a:hover { color: var(--myco-action); }
.secondary-nav a:focus-visible, .admin-header > div a:focus-visible,
.stock-header nav a:focus-visible, .logistics-header nav a:focus-visible { outline-color: var(--myco-action); }
.compact-header-search { background: var(--myco-soft); border-color: var(--myco-border); }
.compact-header-search::before, .header-search span, .search-symbol { color: var(--myco-ink); }
.cart-link span { color: var(--myco-ink); background: var(--myco-action); }

/* Les grandes surfaces reprennent le bleu du logo, sans aplat rouge ou glacé. */
.portal-hero, .hero { background: var(--myco-ink); color: #fff; }
.portal-hero::after { border-color: #f4bd3826; }
.portal-hero h1, .hero h1 { color: #fff; text-shadow: none; }
.portal-hero h1 { font-size: clamp(30px, 4vw, 48px); line-height: 1.12; }
.portal-hero .eyebrow, .hero .eyebrow { color: var(--myco-action); }
.portal-hero > p:last-child { color: #fff8ec; }
.catalogs-section { background: var(--myco-background); }
.school-intro { background: var(--myco-background); }
.catalogue-body .school-intro-copy h1, .catalogue-body .public-heading h2,
.publishers-page h1, .publisher-count, .search-page > h1, .search-summary #resultCount,
.private-body .private-page > h1, .product-page > nav, .product-page > nav a,
.private-body .private-page > nav, .private-body .private-page > nav a,
.catalogue-body .eyebrow, .catalogue-body .text-link,
.publishers-page > .eyebrow, .search-page > .eyebrow,
.private-body .private-page > .eyebrow { color: var(--myco-ink); text-shadow: none; }
.catalogue-body .school-intro-copy > p:not(.eyebrow), .catalogue-body .school-benefits,
.catalogue-body .public-heading > div > p:not(.eyebrow), .publishers-intro,
.search-summary, .private-body .private-intro, .pagination,
.intro > span, .cart-help, .cart-time { color: var(--myco-muted); }
.school-intro-visual strong { color: var(--myco-action); }
.eyebrow, .intro > p, .panel-title > div > p { color: var(--myco-ink); }

/* Cartes blanches et encadrés chauds : catalogue, comptes et administration. */
.portal-catalogues-top, .entry-card, .portal-login, .auth-card, .affiliation-card,
.catalogue-body .catalog-card, .catalogue-body .featured-product, .publisher-card,
.result-card, .product-detail, .product-description > div, .publisher-search,
.search-page-form, .missing-book, .private-body .private-user, .school-team,
.private-body .pending-affiliations, .results-panel, .editor-panel, .client-summary,
.receipt-header, .supplier-order, .settings-card, .print-panel, .logistics-card,
.observed-cart, .todo-card, .cart-line, .cart-summary, .quick-row, .legal-card {
  border-color: var(--myco-border);
  box-shadow: var(--myco-shadow);
  background: #fff;
}
.role-explanation article { color: var(--myco-ink); background: #fff; border-color: var(--myco-border); box-shadow: var(--myco-shadow); }
.role-explanation strong { color: var(--myco-ink); }
.portal-login, .entry-school, .entry-visitor { border-top-color: var(--myco-action); }
.entry-number, .legacy-login-help, .auth-card .first-login-help, .school-result,
.school-implantations li, .selected-school, .affiliation-form,
.team-summary, .team-roles span, .teacher-quantity, .invite-form,
.client-order-actions, .client-result-deliveries, .teacher-destination,
.document-meta, .document-summary, .email-monitor, .add-line,
.stock-page form, .supplier-totals, .logistics-notice, .logistics-card .step,
.tier-pricing, .organization-type, .quick-grand-total, .batch-status,
.todo-card header span, .school-users {
  background: var(--myco-soft); color: var(--myco-ink); border-color: var(--myco-border);
}
.product-description aside { background: var(--myco-background); border-color: var(--myco-border); }
.school-implantations { background: #fff; border-color: var(--myco-border); }
.portal-catalogues-top .eyebrow, .entry-card .eyebrow,
.portal-catalogues-top .catalog-card b, .school-create summary,
.login-links a, .legacy-login-help .text-button { color: var(--myco-ink); }
.entry-grid:target { outline-color: var(--myco-ink); }
.catalog-card, .pedagogical-support { border-color: var(--myco-border); }
.school-result-summary b, .school-result-summary small, .school-results-count,
.portal-form label, .auth-card label, .logistics-card strong { color: var(--myco-ink); }
.portal-form small, .school-result small, .entry-card > p, .portal-login > p,
.legacy-login-help p, .first-login-help p { color: var(--myco-muted); }
.private-body .private-tabs { border-bottom-color: var(--myco-border); }
.publisher-card:hover, .result-card:hover { box-shadow: 0 12px 30px #11375420; }
.result-button:hover, .result-button.active, .admin-results .client-result-main:hover,
.admin-results .client-result-main[aria-pressed="true"] { background: var(--myco-soft); border-color: var(--myco-ink); }
.client-result.selected, .gallery-thumb.active { border-color: var(--myco-ink); }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { border-color: #9c9c92; }
input:focus, select:focus, textarea:focus { border-color: var(--myco-ink); }
.image-zoom-dialog { background: var(--myco-background); }

/* Or + texte marine : jamais de texte blanc sur le doré (contraste 7,17:1).
   Sélecteurs ciblés : pas de règle globale qui efface les actions dangereuses. */
.primary, .catalog-search button, .header-search button,
.portal-form button, .school-search-form button, .visitor-button,
.auth-card button:not(.link-button), .compact-header-search button,
.search-page-form button, .result-card a, .missing-book button,
.topbar .secondary-nav .search-nav-link, .topbar .secondary-nav .admin-work-link,
.topbar .secondary-nav .private-work-link, .pedagogical-support .advice-phone,
.private-tabs button.active, .workflow-tools button, .workflow-tools a,
.button-link, .invite-form button, #detailForm > button, .team-row button,
.wishlist-actions button:not(.delete), .affiliation-request-actions button:not([data-action="REJECT"]),
.saved-cart-editor button:not([data-remove-line]), .organization-form button,
.invitation-qr button, .invitation-qr a, .publisher-initials,
.article-search button, .save-row button, .panel-title button,
.client-editor button:not(.secondary-button):not([data-delete-discount]),
.select-client-label, .encode-address, .client-result-deliveries button,
.shipping-editor button, .add-line button, .line-save, .stock-page button,
.supplier-toolbar button, .supplier-order button:not(.approve), .pdf-link,
.product-result button, #createOrder, .settings-card button,
.print-actions button, .print-panel button, .download, .client-cart-page button,
.todo-toolbar a, .todo-toolbar button, .todo-actions button:not(.secondary),
.customer-line button:not(.danger), #references button, #addLine button,
.school-result button:not(.implantations-button),
.admin-header .admin-home-link, .stock-header .admin-home-link, .logistics-header .admin-home-link {
  background: var(--myco-action); color: var(--myco-ink); border-color: var(--myco-action);
}
.primary:hover, .catalog-search button:hover, .header-search button:hover,
.portal-form button:hover, .school-search-form button:hover, .visitor-button:hover,
.auth-card button:not(.link-button):hover, .compact-header-search button:hover,
.search-page-form button:hover, .result-card a:hover, .missing-book button:hover,
.topbar .secondary-nav .search-nav-link:hover, .topbar .secondary-nav .admin-work-link:hover,
.topbar .secondary-nav .private-work-link:hover, .pedagogical-support .advice-phone:hover,
.article-search button:hover, .save-row button:hover, .stock-page button:hover,
.shipping-editor button:hover, .add-line button:hover, .line-save:hover,
.admin-header .admin-home-link:hover, .stock-header .admin-home-link:hover, .logistics-header .admin-home-link:hover {
  background: var(--myco-action-hover); color: var(--myco-ink);
}
/* La règle historique du téléphone utilise !important : conserver sa lisibilité. */
.pedagogical-support .advice-phone { color: var(--myco-ink) !important; }
.portal-form .text-button, .auth-card .link-button, .client-editor .secondary-button,
.school-result button.implantations-button, .todo-actions button.secondary {
  color: var(--myco-ink); background: #fff; border-color: var(--myco-ink);
}
.portal-form .text-button:hover, .auth-card .link-button:hover { background: var(--myco-soft); color: var(--myco-ink); }
school-affiliation-help button.rattachement-help-trigger,
school-affiliation-help button.rattachement-help-trigger:hover {
  color: var(--myco-ink); background: var(--myco-soft); border-color: var(--myco-border);
}
school-affiliation-help button.rattachement-help-trigger:focus-visible { outline-color: var(--myco-ink); }
school-affiliation-help .rattachement-help-tip { color: var(--myco-ink); border-color: var(--myco-border); }

/* Le hibou reste complet, non déformé, avec une pastille vive sur les cadres blancs. */
.portal-visitor-owl { max-width: calc(100% - 44px); padding: 14px 22px; border-radius: 28px; background: var(--myco-action); }
.footer-owl { padding: 8px 10px; border-radius: 18px; background: var(--myco-action); }
.site-footer, .portal-body .site-footer { background: #fff; border-color: var(--myco-border); color: var(--myco-ink); }
.site-footer strong, .site-footer a, .pedagogical-support h2,
.pedagogical-support .advice-guide { color: var(--myco-ink); }
.site-footer p, .pedagogical-support p { color: var(--myco-muted); }

@media print {
  :root, body, .portal-body, .search-body, .publishers-body, .product-body, .private-body,
  .catalogue-body main, .auth-page, .affiliation-page { background: #fff; }
  .portal-visitor-owl, .footer-owl { background: transparent; }
}
