/* ==========================================================================
   guide.css — sursa UNICĂ de stil pentru toate ghidurile (E0, fundația).
   Extras din blocul <style> duplicat identic în cele 8 pagini Ghid de admin.
   Conține: tokens de paletă + clasele existente (.guide/.tip/.warn/.good/.num)
   pentru migrare drop-in + componente noi reutilizabile (.callout/.gflow/.gmock/.gstep).
   Zero dependențe externe. Vezi docs/STRATEGIE-ghiduri-ilustrate.md.
   ========================================================================== */

:root {
    --g-primary: #2563EB;
    --g-primary-ink: #1e40af;
    --g-primary-wash: #eaf3ff;
    --g-good: #1c7c2e;
    --g-good-wash: #eaf7ee;
    --g-warn: #f5a623;
    --g-warn-wash: #fff6e6;
    --g-ink: #1f2a44;
    --g-body: #384150;
    --g-muted: #6c757d;
    --g-line: #e6e9f0;
}

/* ---- Structura de ghid (clase existente, acum într-un singur loc) ---- */
.guide { max-width: 980px; }
.guide h1 { font-size: 26px; margin-bottom: 4px; }
.guide .lead { color: var(--g-muted); margin-bottom: 22px; }
.guide .toc { background: #f4f7fb; border: 1px solid #e1e8f0; border-radius: 10px; padding: 14px 18px; margin-bottom: 26px; }
.guide .toc ol { margin: 6px 0 0; padding-left: 20px; }
.guide .toc a { text-decoration: none; }
.guide section { border: 1px solid var(--g-line); border-radius: 12px; padding: 20px 22px; margin-bottom: 18px; background: #fff; }
.guide section h2 { font-size: 19px; margin: 0 0 10px; color: var(--g-ink); }
.guide section h2 .num { display: inline-flex; width: 28px; height: 28px; border-radius: 50%; background: var(--g-primary); color: #fff; align-items: center; justify-content: center; font-size: 15px; margin-right: 8px; }
.guide p, .guide li { font-size: 14.5px; line-height: 1.6; color: var(--g-body); }
.guide ul { margin: 8px 0; padding-left: 22px; }
.guide .tip { background: var(--g-primary-wash); border-left: 4px solid var(--g-primary); border-radius: 6px; padding: 10px 14px; margin: 12px 0; font-size: 14px; }
.guide .warn { background: var(--g-warn-wash); border-left: 4px solid var(--g-warn); border-radius: 6px; padding: 10px 14px; margin: 12px 0; font-size: 14px; }
.guide .good { background: var(--g-good-wash); border-left: 4px solid var(--g-good); border-radius: 6px; padding: 10px 14px; margin: 12px 0; font-size: 14px; }
.guide code { background: #eef1f5; padding: 1px 6px; border-radius: 4px; font-size: 13px; }

/* ---- Casetă callout parametrizată (componenta nouă _Callout) ---- */
.callout { display: flex; gap: 10px; align-items: flex-start; border-radius: 8px; padding: 10px 14px; margin: 12px 0; font-size: 14px; border-left: 4px solid; color: var(--g-body); }
.callout--tip { background: var(--g-primary-wash); border-color: var(--g-primary); }
.callout--warn { background: var(--g-warn-wash); border-color: var(--g-warn); }
.callout--good { background: var(--g-good-wash); border-color: var(--g-good); }
.callout--note { background: #f4f7fb; border-color: #9fb0c8; }
.callout__ic { flex: 0 0 auto; margin-top: 1px; }
.callout--tip .callout__ic { color: var(--g-primary); }
.callout--warn .callout__ic { color: var(--g-warn); }
.callout--good .callout__ic { color: var(--g-good); }
.callout--note .callout__ic { color: #5a6b82; }
.callout__body { flex: 1; }
.callout__body :last-child { margin-bottom: 0; }

/* ---- Componente SVG reutilizabile ---- */
.g-svg { width: 100%; height: auto; display: block; }        /* SVG fluid, scalabil */
.g-badge { width: 44px; height: auto; }
.g-arrow { width: 100%; max-width: 220px; height: auto; }
.g-screen { width: 100%; height: auto; }

/* Diagramă de flux (orizontal pe desktop, se strânge pe mobil) */
.gflow { display: flex; flex-wrap: wrap; gap: 4px 0; align-items: flex-start; list-style: none; margin: 0; padding: 0; }
.gflow__node { flex: 1 1 0; min-width: 92px; text-align: center; position: relative; }
.gflow__node::before { content: ""; position: absolute; top: 23px; left: -50%; width: 100%; height: 3px; background: var(--g-line); z-index: 0; }
.gflow__node:first-child::before { display: none; }
.gflow__dot { position: relative; z-index: 1; width: 46px; height: 46px; margin: 0 auto 6px; border-radius: 50%; background: var(--g-primary); color: #fff; display: flex; align-items: center; justify-content: center; }
.gflow__dot svg { width: 24px; height: 24px; }
.gflow__lbl { position: relative; z-index: 1; font-size: 13px; color: var(--g-body); font-weight: 600; padding: 0 2px; }
@media (max-width: 640px) {
    .gflow { flex-direction: column; align-items: stretch; }
    .gflow__node { display: flex; align-items: center; gap: 12px; text-align: left; min-width: 0; }
    .gflow__node::before { top: -50%; left: 23px; width: 3px; height: 100%; }
    .gflow__dot { margin: 0; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .g-svg *, .gflow * { animation: none !important; transition: none !important; }
}
