/*
 * LGDB Laravel — contrat visuel v4
 * Transposition native du thème WordPress LGDB Portal Theme 6.18.2
 * et des design tokens du portail 8.1.103.
 */
:root {
    --lgdb-font: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --lgdb-bg: #edf2f5;
    --lgdb-surface: #ffffff;
    --lgdb-surface-muted: #f5f8fa;
    --lgdb-surface-subtle: #eef3f6;
    --lgdb-text: #142536;
    --lgdb-muted: #586a78;
    --lgdb-border: #d3dde5;
    --lgdb-line-strong: #bccad4;
    --lgdb-primary: #263c50;
    --lgdb-primary-strong: #172b3d;
    --lgdb-accent: #e8942e;
    --lgdb-success: #206e4d;
    --lgdb-success-bg: #e5f3eb;
    --lgdb-warning: #875009;
    --lgdb-warning-bg: #fff0d1;
    --lgdb-danger: #a63333;
    --lgdb-danger-bg: #fae7e7;
    --lgdb-info: #2f6694;
    --lgdb-info-bg: #e9f2fa;
    --lgdb-deep: #071725;
    --lgdb-deep-2: #102b40;
    --lgdb-radius-xs: 7px;
    --lgdb-radius-sm: 11px;
    --lgdb-radius: 16px;
    --lgdb-radius-lg: 22px;
    --lgdb-shadow-sm: 0 1px 2px rgba(17, 35, 50, .06), 0 8px 22px rgba(17, 35, 50, .045);
    --lgdb-shadow: 0 16px 38px rgba(17, 35, 50, .09);
    --lgdb-focus: 0 0 0 3px color-mix(in srgb, var(--lgdb-primary) 20%, transparent 80%);
}

html { background: var(--lgdb-deep); }
body,
button,
input,
select,
textarea { font-family: var(--lgdb-font); }
body { color: var(--lgdb-text); }

.skip-link {
    position: fixed;
    left: -9999px;
    top: 12px;
    z-index: 1000;
    padding: 10px 14px;
    border-radius: 12px;
    background: #fff;
    color: var(--lgdb-primary);
    font-weight: 800;
    box-shadow: var(--lgdb-shadow);
}
.skip-link:focus { left: 12px; }
.ui-icon { width: 20px; height: 20px; flex: 0 0 auto; }

/* Canvas applicatif : même environnement sombre que le thème WordPress. */
body.lgdb-app-host {
    min-height: 100dvh;
    padding: 12px;
    background:
        radial-gradient(circle at 8% 4%, color-mix(in srgb, var(--lgdb-accent) 18%, transparent 82%) 0, transparent 28%),
        radial-gradient(circle at 94% 8%, color-mix(in srgb, var(--lgdb-primary) 64%, #06131f 36%) 0, transparent 44%),
        linear-gradient(135deg, #06131f 0%, #0b2538 55%, #071725 100%);
}

.portal-frame {
    min-height: calc(100dvh - 24px);
    max-width: 1920px;
    margin: 0 auto;
    overflow: clip;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 24px;
    background: var(--lgdb-bg);
    box-shadow: 0 28px 80px rgba(0,0,0,.28);
}

/* Navigation */
.sidebar {
    background: linear-gradient(180deg, #172b3d 0%, #0e1f2c 100%);
    padding: 20px 14px;
}
.brand { padding: 4px 8px 16px; }
.brand-mark,
.auth-logo {
    border-radius: 16px;
    background: linear-gradient(145deg, var(--lgdb-accent), #d7780c);
    box-shadow: 0 10px 24px rgba(0,0,0,.22);
}
.brand strong { font-size: 14px; color: #fff; }
.brand small { color: rgba(235,245,251,.68); }

.sidebar-primary-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    margin: 2px 5px 18px;
    padding: 10px 14px;
    border: 1px solid color-mix(in srgb, var(--lgdb-accent) 75%, #fff 25%);
    border-radius: 13px;
    background: var(--lgdb-accent);
    color: #fff !important;
    font-weight: 900;
    text-decoration: none !important;
    box-shadow: 0 12px 28px rgba(232,148,46,.18);
    transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.sidebar-primary-action:hover {
    color: #fff !important;
    transform: translateY(-1px);
    filter: brightness(1.04);
    box-shadow: 0 16px 34px rgba(232,148,46,.24);
}
.sidebar-primary-action:focus-visible,
.side-nav a:focus-visible,
.sidebar-bottom a:focus-visible,
.sidebar-bottom button:focus-visible,
.mobile-bar button:focus-visible {
    outline: 3px solid rgba(232,148,46,.72);
    outline-offset: 3px;
}
.side-nav { gap: 4px; }
.side-nav > a {
    grid-template-columns: 24px 1fr;
    min-height: 52px;
    padding: 10px 11px;
    border: 1px solid transparent;
    border-radius: 13px;
    color: #dbe6ed;
}
.side-nav > a:hover {
    border-color: rgba(255,255,255,.08);
    background: rgba(255,255,255,.07);
    color: #fff;
}
.side-nav > a.active {
    border-color: rgba(255,255,255,.11);
    background: #29475c;
    color: #fff;
    box-shadow: inset 3px 0 0 var(--lgdb-accent);
}
.side-nav > a > span:first-child { font-size: inherit; }
.side-nav small { color: rgba(220,232,240,.62); }
.sidebar-bottom { border-color: rgba(255,255,255,.10); }
.sidebar-bottom button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    color: rgba(230,240,246,.76);
}
.sidebar-bottom button:hover { color: #fff; }

/* Contenu */
.main { background: var(--lgdb-bg); }
.page-container { max-width: 1480px; padding-top: 32px; }
.page-head h1,
.detail-head h1 { color: var(--lgdb-text); }
.eyebrow { color: #7b531e; }
.panel,
.form-card,
.stat,
.partner-card {
    border-color: var(--lgdb-border);
    background: var(--lgdb-surface);
    box-shadow: var(--lgdb-shadow-sm);
}
.panel,
.form-card { border-radius: var(--lgdb-radius); }
.stat { border-radius: var(--lgdb-radius); }
.panel:hover,
.form-card:hover { border-color: color-mix(in srgb, var(--lgdb-primary) 17%, var(--lgdb-border) 83%); }

.btn {
    min-height: 42px;
    border-radius: var(--lgdb-radius-sm);
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
a:focus-visible {
    outline: none;
    box-shadow: var(--lgdb-focus);
}
.btn.primary {
    border-color: var(--lgdb-primary);
    background: var(--lgdb-primary);
    color: #fff !important;
}
.btn.primary:hover { border-color: var(--lgdb-primary-strong); background: var(--lgdb-primary-strong); color: #fff !important; }
.btn.secondary { border-color: var(--lgdb-border); color: var(--lgdb-primary); }
.btn.secondary:hover { border-color: var(--lgdb-line-strong); }

input,
select,
textarea {
    min-height: 44px;
    border-color: var(--lgdb-border);
    border-radius: var(--lgdb-radius-sm);
    color: var(--lgdb-text);
}
textarea { min-height: 92px; }
input:focus,
select:focus,
textarea:focus {
    border-color: var(--lgdb-primary);
    box-shadow: var(--lgdb-focus);
}

.alert { border-radius: var(--lgdb-radius-sm); }
.alert.success { background: var(--lgdb-success-bg); color: var(--lgdb-success); }
.alert.warning { background: var(--lgdb-warning-bg); color: var(--lgdb-warning); }
.alert.error { background: var(--lgdb-danger-bg); color: var(--lgdb-danger); }
.badge.success { background: var(--lgdb-success-bg); color: var(--lgdb-success); }
.badge.warning { background: var(--lgdb-warning-bg); color: var(--lgdb-warning); }
.badge.danger { background: var(--lgdb-danger-bg); color: var(--lgdb-danger); }
.badge.info { background: var(--lgdb-info-bg); color: var(--lgdb-info); }

.readiness {
    top: 14px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: var(--lgdb-radius);
    background: #172b3d;
}
.form-card > .step,
.section-title .step { border-radius: var(--lgdb-radius-sm); background: var(--lgdb-surface-subtle); }
.oral-summary { border-left-color: var(--lgdb-accent); }
.privacy-lock { border-color: var(--lgdb-border); background: var(--lgdb-surface-muted); }

/* Tables et listes : lisibilité avant densité. */
.table-wrap { overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
th { background: var(--lgdb-surface-muted); color: #4b5f6f; }
th, td { border-bottom-color: #e6ecef; }
.request-row:hover,
.clickable:hover { background: var(--lgdb-surface-muted); }
.partner-card { border-radius: var(--lgdb-radius); }
.partner-icon { border-radius: 13px; }

/* Connexion — reprise du thème compagnon, sans WordPress. */
body.auth-page {
    min-height: 100dvh;
    background:
        radial-gradient(circle at 12% 12%, color-mix(in srgb, var(--lgdb-accent) 22%, transparent 78%) 0, transparent 26%),
        radial-gradient(circle at 88% 14%, color-mix(in srgb, var(--lgdb-primary) 76%, #071725 24%) 0, transparent 44%),
        linear-gradient(135deg, #06131f 0%, color-mix(in srgb, var(--lgdb-primary) 84%, #06131f 16%) 52%, #07131f 100%);
    color: #f7fbff;
}
.auth-container {
    min-height: 100dvh;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 14px;
    padding: 34px 18px;
    background: transparent;
}
.auth-wrap { width: min(440px, 100%); }
.auth-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 20px;
    color: #fff;
}
.auth-brand > div:last-child { display: grid; line-height: 1.2; }
.auth-brand strong { font-size: 17px; }
.auth-brand span { color: rgba(244,249,253,.68); font-size: 12px; }
.auth-logo { width: 52px; height: 52px; color: #fff; }
.auth-copy { margin-bottom: 18px; text-align: center; }
.auth-copy .eyebrow { color: var(--lgdb-accent); }
.auth-copy h1 {
    margin: 5px 0 7px;
    color: #fff;
    font-size: clamp(28px, 6vw, 34px);
    line-height: 1.1;
    letter-spacing: -.04em;
}
.auth-copy p { margin: 0; color: rgba(244,249,253,.72); font-size: 14px; }
.auth-card {
    width: 100%;
    padding: 28px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 28px;
    background: linear-gradient(155deg, rgba(19,46,67,.97), rgba(8,24,37,.98));
    color: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter: blur(12px);
}
.auth-card label { color: rgba(246,251,255,.92); font-size: 13px; font-weight: 800; }
.auth-card input[type="email"],
.auth-card input[type="password"] {
    min-height: 52px;
    border-color: rgba(255,255,255,.20);
    border-radius: 16px;
    background: rgba(255,255,255,.98);
    color: #10243a;
    font-weight: 700;
}
.auth-card input:focus { border-color: var(--lgdb-accent); background: #fff; box-shadow: 0 0 0 3px rgba(232,148,46,.24); }
.auth-card .btn.primary {
    min-height: 52px;
    border-color: var(--lgdb-accent);
    border-radius: 16px;
    background: var(--lgdb-accent);
    color: #fff !important;
    box-shadow: 0 16px 34px rgba(232,148,46,.20);
}
.auth-card .btn.primary:hover { background: #f09d37; border-color: #f09d37; }
.auth-remember {
    display: flex !important;
    grid-template-columns: none;
    align-items: center;
    gap: 9px;
    color: rgba(244,249,253,.74) !important;
    font-weight: 700 !important;
}
.auth-remember input { width: auto; min-height: 0; accent-color: var(--lgdb-accent); }
.auth-public-link { margin: 15px 0 0; color: rgba(244,249,253,.66); text-align: center; font-size: 13px; }
.auth-public-link a { color: var(--lgdb-accent); font-weight: 850; }
.auth-alert { width: min(440px, 100%); margin: 0; }

/* Suivi client public : même contrat, sans le chrome applicatif. */
.tracking-page {
    min-height: 100dvh;
    background: linear-gradient(180deg, #eef4f8 0, #f8fafc 420px, #f4f7fa 100%);
}
.tracking-wrap { width: min(820px, calc(100% - 28px)); }
.tracking-card { border-color: var(--lgdb-border); border-radius: var(--lgdb-radius-lg); box-shadow: var(--lgdb-shadow-sm); }
.tracking-brand .brand-mark { width: 48px; height: 48px; }

.mobile-bar {
    border-bottom: 1px solid rgba(255,255,255,.10);
    background: #172b3d;
}
.mobile-bar button { display: grid; place-items: center; }
.mobile-bar .ui-icon { width: 23px; height: 23px; }

@media (max-width: 760px) {
    body.lgdb-app-host { padding: 0; background: var(--lgdb-bg); }
    .portal-frame { min-height: 100dvh; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
    .sidebar { left: -276px; width: 264px; }
    .menu-open .sidebar { left: 0; box-shadow: 22px 0 58px rgba(0,0,0,.30); }
    .menu-open::after { z-index: 40; }
    .mobile-bar { z-index: 35; }
    .page-container { padding: 20px 13px 52px; }
    .sidebar-primary-action { margin-bottom: 14px; }
    .auth-container { padding: 24px 12px; }
    .auth-card { padding: 22px; border-radius: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; }
}

@media (min-width: 761px) {
    .portal-frame .sidebar { height: calc(100dvh - 24px); }
}
@media (max-width: 760px) {
    .portal-frame .sidebar { height: 100dvh; }
}

/* Back-office Laravel — transposition de l'architecture de configuration WP 8.1.103 */
.brand-mark img,.auth-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}.brand-mark:has(img),.auth-logo:has(img){padding:5px;background:rgba(255,255,255,.96)}
.back-link{display:inline-flex;margin-bottom:8px;color:var(--lgdb-muted);font-size:13px;font-weight:800;text-decoration:none}.back-link:hover{color:var(--lgdb-primary)}
.config-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:0 0 28px;padding:26px 28px;border-radius:var(--lgdb-radius-lg);background:linear-gradient(135deg,var(--lgdb-primary),#173247);color:#fff;box-shadow:var(--lgdb-shadow)}.config-hero span{color:#f4b566;font-size:11px;font-weight:900;letter-spacing:.1em}.config-hero h2{margin:5px 0 8px;font-size:24px;color:#fff}.config-hero p{max-width:820px;margin:0;color:rgba(244,249,253,.78)}
.config-section{margin:0 0 30px}.config-section>header{margin-bottom:14px}.config-section>header h2{margin:3px 0 4px;font-size:20px}.config-section>header p{margin:0;color:var(--lgdb-muted)}.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.config-card{position:relative;display:grid;grid-template-columns:1fr auto;gap:10px;min-height:140px;padding:19px 46px 19px 20px;border:1px solid var(--lgdb-border);border-radius:var(--lgdb-radius);background:#fff;color:var(--lgdb-text);text-decoration:none;box-shadow:var(--lgdb-shadow-sm);transition:.16s ease}.config-card:hover{transform:translateY(-2px);border-color:#b9c8d2;box-shadow:var(--lgdb-shadow)}.config-card h3{margin:0 0 7px;font-size:17px}.config-card p{margin:0;color:var(--lgdb-muted);font-size:13px;line-height:1.5}.config-arrow{position:absolute;right:17px;bottom:15px;color:var(--lgdb-accent);font-size:21px;font-weight:900}.config-badge{align-self:start;max-width:150px;padding:5px 8px;border-radius:999px;background:var(--lgdb-surface-subtle);color:var(--lgdb-primary);font-size:10px;font-weight:800;text-align:center}
.settings-shell{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px}.settings-context{position:sticky;top:18px;align-self:start;max-height:calc(100dvh - 44px);overflow:auto;padding:16px;border:1px solid var(--lgdb-border);border-radius:var(--lgdb-radius);background:#fff;box-shadow:var(--lgdb-shadow-sm)}.settings-context>strong{display:block;margin:6px 0 10px}.settings-context nav{display:grid;gap:4px}.settings-context nav a{display:grid;gap:2px;padding:9px 10px;border-radius:10px;color:var(--lgdb-text);text-decoration:none}.settings-context nav a:hover{background:var(--lgdb-surface-muted)}.settings-context nav a.active{background:#e8eef3;color:var(--lgdb-primary);box-shadow:inset 3px 0 0 var(--lgdb-accent)}.settings-context nav span{font-size:13px;font-weight:800}.settings-context nav small{color:var(--lgdb-muted);font-size:9px;letter-spacing:.035em}.settings-main{min-width:0}.settings-card{padding:22px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:grid;align-content:start;gap:7px}.field-wide{grid-column:1/-1}.field>label{font-weight:750;font-size:13px}.field-help{display:block;color:var(--lgdb-muted);font-size:11px;line-height:1.45}.toggle-row{display:flex!important;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--lgdb-border);border-radius:12px;background:var(--lgdb-surface-muted);cursor:pointer}.toggle-row input{min-height:auto;margin-top:3px}.toggle-row span{display:grid;gap:3px}.toggle-row small{color:var(--lgdb-muted);font-weight:500}.input-suffix{display:flex;align-items:center;gap:8px}.input-suffix input{flex:1}.input-suffix span{color:var(--lgdb-muted);font-size:12px;font-weight:800}.image-setting{display:flex;align-items:center;gap:14px;min-height:90px;padding:12px;border:1px dashed var(--lgdb-line-strong);border-radius:12px}.image-setting img{width:140px;max-height:80px;object-fit:contain;padding:6px;border-radius:9px;background:#f2f5f7}.sticky-actions{position:sticky;bottom:12px;z-index:8;display:flex;justify-content:flex-end;gap:9px;margin-top:16px;padding:11px;border:1px solid rgba(38,60,80,.12);border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 12px 32px rgba(17,35,50,.12)}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid label{display:flex;gap:7px;align-items:flex-start;padding:8px 10px;border-radius:9px;background:var(--lgdb-surface-muted);font-size:12px}.check-grid input{min-height:auto;margin-top:2px}.danger-zone{margin:20px 0;padding-top:18px;border-top:1px solid var(--lgdb-border)}.btn.danger{border-color:#c54a4a;background:#fff;color:#a63333}.btn.small{min-height:32px;padding:6px 9px;font-size:12px}
.admin-two-col{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:18px}.account-list{display:grid;gap:8px}.account-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e7ecef}.account-row>div:first-child{display:grid;gap:2px}.account-row span,.account-row small{color:var(--lgdb-muted);font-size:12px}.account-actions{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.account-actions details{position:relative}.account-actions summary{list-style:none;cursor:pointer}.inline-password{position:absolute;right:0;z-index:20;display:grid;gap:7px;width:280px;padding:10px;border:1px solid var(--lgdb-border);border-radius:12px;background:#fff;box-shadow:var(--lgdb-shadow)}
.diagnostic-list{display:grid;gap:8px}.diagnostic-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--lgdb-border);border-radius:12px}.diagnostic-item>span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;font-weight:900}.diagnostic-item.ok>span{background:var(--lgdb-success-bg);color:var(--lgdb-success)}.diagnostic-item.ko>span{background:var(--lgdb-danger-bg);color:var(--lgdb-danger)}.diagnostic-item div{display:grid;gap:2px}.diagnostic-item small{color:var(--lgdb-muted)}.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.integration-grid>div{display:flex;justify-content:space-between;gap:8px;padding:12px;border-radius:11px;background:var(--lgdb-surface-muted)}.setting-preview{white-space:normal;overflow-wrap:anywhere}.cell-sub{display:block;color:var(--lgdb-muted);margin-top:2px}.filter-bar{display:flex;gap:8px;margin:0 0 14px}.filter-bar input{flex:1}
.portal-notice{margin:0 0 14px;padding:13px 15px;border:1px solid;border-radius:13px}.portal-notice strong{display:block;margin-bottom:3px}.notice-info{border-color:#bfdbfe;background:#eff6ff;color:#1e3a5f}.notice-warning{border-color:#fed7aa;background:#fff7ed;color:#7c2d12}.notice-important{border-color:#fecaca;background:#fef2f2;color:#7f1d1d}.notice-blocking{border-color:#fda4af;background:#fff1f2;color:#881337}.public-notice{margin-bottom:12px;padding:13px 15px;border:1px solid;border-radius:14px}.public-notice p{margin:5px 0 0}.tracking-logo-image{max-width:190px;max-height:62px;object-fit:contain}.tracking-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.tracking-facts>div{padding:11px;border-radius:11px;background:var(--lgdb-surface-muted)}.tracking-facts dt{color:var(--lgdb-muted);font-size:11px}.tracking-facts dd{margin:3px 0 0;font-weight:800}.rich-copy{color:var(--lgdb-muted);line-height:1.6}.tracking-card.subtle{background:#f6f9fb}
@media(max-width:1180px){.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-shell{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:860px){.config-hero{align-items:flex-start;flex-direction:column}.config-grid,.settings-grid,.admin-two-col,.integration-grid{grid-template-columns:1fr}.settings-shell{display:block}.settings-context{position:relative;top:auto;max-height:none;margin-bottom:14px}.settings-context nav{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid,.tracking-facts{grid-template-columns:1fr}.account-row{flex-direction:column}.account-actions{width:100%}.inline-password{position:relative;right:auto;width:100%;margin-top:8px}.sticky-actions{bottom:6px}}
@media(max-width:540px){.config-grid{grid-template-columns:1fr}.settings-context nav{grid-template-columns:1fr}.config-card{min-height:120px}.image-setting{align-items:flex-start;flex-direction:column}.image-setting img{width:100%;height:90px}}
