/* ETIKID Service — socle UI public, compte et scan. Aucun style ControlPanel. */
:root {
  --etk-navy-950:#07172c;
  --etk-navy-900:#0b2343;
  --etk-navy-800:#12345e;
  --etk-emerald-700:#087a5b;
  --etk-emerald-600:#0d936d;
  --etk-emerald-100:#dcf7ed;
  --etk-violet-100:#f1edff;
  --etk-blue-50:#f5f8fc;
  --etk-surface:#fff;
  --etk-surface-soft:#f7f9fc;
  --etk-border:#d7deea;
  --etk-border-strong:#aebbd0;
  --etk-text:#182337;
  --etk-muted:#5f6f86;
  --etk-danger:#b42318;
  --etk-warning:#9a6700;
  --etk-success:#067647;
  --etk-shadow:0 10px 30px rgba(11,35,67,.08);
  --etk-shadow-sm:0 2px 10px rgba(11,35,67,.07);
  --etk-radius:12px;
  --etk-radius-sm:8px;
  --etk-content:1200px;
}

html { scroll-behavior:smooth; }
body { color:var(--etk-text); }

.etk-service-shell {
  min-height:100vh;
  background:
    radial-gradient(circle at 88% 8%, rgba(13,147,109,.08), transparent 24rem),
    linear-gradient(180deg,#fff 0,#f7f9fc 56%,#f2f5f9 100%);
  color:var(--etk-text);
}

.etk-service-container { width:min(var(--etk-content),calc(100% - 2rem)); margin-inline:auto; }
.etk-service-main { min-height:65vh; }

.etk-service-kicker {
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--etk-emerald-700); font-size:.78rem; font-weight:750;
  letter-spacing:.08em; text-transform:uppercase;
}
.etk-service-kicker::before { content:""; width:1.5rem; height:3px; border-radius:3px; background:var(--etk-emerald-600); }

.etk-service-title { color:var(--etk-navy-950); font-weight:780; letter-spacing:-.035em; line-height:1.08; }
.etk-service-lead { color:var(--etk-muted); line-height:1.7; max-width:68ch; }

.etk-card {
  background:var(--etk-surface); border:1px solid var(--etk-border);
  border-radius:var(--etk-radius); box-shadow:var(--etk-shadow-sm);
}
.etk-card--accent { border-top:4px solid var(--etk-emerald-600); }
.etk-card--flat { box-shadow:none; }

.etk-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:44px; padding:.7rem 1.15rem; border-radius:var(--etk-radius-sm);
  border:1px solid transparent; font-weight:700; text-decoration:none;
  transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;
}
.etk-btn:hover { transform:translateY(-1px); }
.etk-btn:focus-visible,.etk-focusable:focus-visible { outline:3px solid #ffd24a; outline-offset:3px; }
.etk-btn-primary { color:#fff; background:var(--etk-navy-900); box-shadow:0 5px 14px rgba(11,35,67,.2); }
.etk-btn-primary:hover { color:#fff; background:var(--etk-navy-800); }
.etk-btn-accent { color:#fff; background:var(--etk-emerald-700); }
.etk-btn-accent:hover { color:#fff; background:var(--etk-emerald-600); }
.etk-btn-secondary { color:var(--etk-navy-900); background:#fff; border-color:var(--etk-navy-900); }
.etk-btn-secondary:hover { background:var(--etk-blue-50); }

.etk-alert { border-left:4px solid var(--etk-navy-800); background:#eef4ff; padding:1rem 1.1rem; border-radius:0 var(--etk-radius-sm) var(--etk-radius-sm) 0; }
.etk-alert-success { border-left-color:var(--etk-success); background:#ecfdf3; }
.etk-alert-warning { border-left-color:var(--etk-warning); background:#fffaeb; }
.etk-alert-danger { border-left-color:var(--etk-danger); background:#fef3f2; }

.etk-field label { display:block; color:var(--etk-navy-950); font-weight:700; margin-bottom:.45rem; }
.etk-field input,.etk-field select,.etk-field textarea,
.etk-service-shell input:not([type=checkbox]):not([type=radio]),
.etk-service-shell select,.etk-service-shell textarea {
  width:100%; min-height:44px; border:1px solid var(--etk-border-strong);
  border-radius:var(--etk-radius-sm); background:#fff; color:var(--etk-text);
  padding:.7rem .8rem; box-shadow:inset 0 1px 1px rgba(11,35,67,.03);
}
.etk-field input:focus,.etk-field select:focus,.etk-field textarea:focus,
.etk-service-shell input:focus,.etk-service-shell select:focus,.etk-service-shell textarea:focus {
  outline:3px solid rgba(13,147,109,.22); border-color:var(--etk-emerald-700);
}

/* Navigation publique */
.etk-public-header { position:sticky; top:0; z-index:70; background:rgba(255,255,255,.96); border-bottom:1px solid var(--etk-border); backdrop-filter:blur(14px); }
.etk-public-header::before { content:""; display:block; height:4px; background:linear-gradient(90deg,var(--etk-navy-900) 0 52%,var(--etk-emerald-600) 52% 84%,#6955a5 84%); }
.etk-public-inner { width:min(var(--etk-content),calc(100% - 2rem)); min-height:76px; margin:auto; display:flex; align-items:center; gap:1.5rem; }
.etk-public-brand { display:flex; align-items:center; gap:.8rem; color:var(--etk-navy-950); text-decoration:none; min-width:max-content; }
.etk-public-brand img { width:42px; height:42px; object-fit:contain; }
.etk-public-brand strong { display:block; font-size:1.05rem; letter-spacing:.03em; }
.etk-public-brand small { display:block; color:var(--etk-muted); font-size:.7rem; }
.etk-public-nav { display:flex; align-items:center; gap:.2rem; margin-left:auto; }
.etk-public-link { color:var(--etk-navy-900); text-decoration:none; font-size:.9rem; font-weight:650; padding:.65rem .85rem; border-radius:7px; }
.etk-public-link:hover { color:var(--etk-emerald-700); background:var(--etk-emerald-100); }
.etk-public-actions { display:flex; align-items:center; gap:.55rem; }
.etk-public-mobile-toggle { display:none; width:44px; height:44px; border:1px solid var(--etk-border); border-radius:8px; background:#fff; color:var(--etk-navy-900); }
.etk-public-mobile { display:none; padding:1rem; background:#fff; border-bottom:1px solid var(--etk-border); }
.etk-public-mobile a { display:flex; align-items:center; gap:.7rem; padding:.8rem; color:var(--etk-navy-900); text-decoration:none; font-weight:650; border-radius:8px; }
.etk-public-mobile a:hover { background:var(--etk-emerald-100); }

/* Espace compte */
.etk-account-shell { min-height:100vh; background:var(--etk-surface-soft); color:var(--etk-text); }
.etk-account-header { position:sticky; top:0; z-index:60; background:#fff; border-top:4px solid var(--etk-emerald-600); border-bottom:1px solid var(--etk-border); box-shadow:0 3px 14px rgba(11,35,67,.05); }
.etk-account-header-inner { min-height:72px; display:flex; align-items:center; gap:1rem; width:min(1440px,calc(100% - 2rem)); margin:auto; }
.etk-account-brand { display:flex; align-items:center; gap:.75rem; color:var(--etk-navy-950); text-decoration:none; }
.etk-account-brand img { width:40px; height:40px; }
.etk-account-brand small { display:block; color:var(--etk-muted); font-size:.72rem; }
.etk-account-grid { width:min(1440px,calc(100% - 2rem)); margin:auto; padding:2rem 0 3rem; display:grid; grid-template-columns:270px minmax(0,1fr); gap:2rem; }
.etk-account-sidebar { align-self:start; position:sticky; top:96px; }
.etk-account-sidebar-card { background:#fff; border:1px solid var(--etk-border); border-radius:var(--etk-radius); padding:1rem; box-shadow:var(--etk-shadow-sm); }
.etk-account-content { min-width:0; }
.etk-account-heading { margin-bottom:1.25rem; }
.etk-account-heading h1 { margin:.2rem 0; color:var(--etk-navy-950); font-size:clamp(1.75rem,3vw,2.4rem); font-weight:780; letter-spacing:-.035em; }
.etk-account-heading p { color:var(--etk-muted); margin:0; }
.etk-account-panel { background:#fff; border:1px solid var(--etk-border); border-radius:var(--etk-radius); padding:clamp(1rem,3vw,2rem); box-shadow:var(--etk-shadow); }

.etk-manage-nav { display:flex; flex-direction:column; gap:1.25rem; }
.etk-manage-group-title { padding:0 .55rem; color:var(--etk-muted); font-size:.7rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.etk-manage-link { display:flex; align-items:center; gap:.75rem; padding:.72rem .75rem; border-radius:8px; color:var(--etk-navy-900); text-decoration:none; font-weight:650; border-left:3px solid transparent; }
.etk-manage-link:hover { background:var(--etk-blue-50); color:var(--etk-emerald-700); }
.etk-manage-link.is-active { background:var(--etk-emerald-100); border-left-color:var(--etk-emerald-700); color:var(--etk-navy-950); }
.etk-manage-icon { width:2rem; height:2rem; display:grid; place-items:center; color:var(--etk-emerald-700); background:#fff; border:1px solid var(--etk-border); border-radius:7px; }

.etk-dashboard-access {
  display:grid; grid-template-columns:2.5rem minmax(0,1fr); gap:.75rem;
  padding:.9rem; border:1px solid rgba(13,147,109,.3); border-radius:10px;
  background:linear-gradient(145deg,#f1fbf7 0,#fff 58%,#f3f6fb 100%);
  box-shadow:0 5px 16px rgba(11,35,67,.07);
}
.etk-dashboard-access-icon {
  width:2.5rem; height:2.5rem; display:grid; place-items:center; border-radius:9px;
  color:#fff; background:linear-gradient(145deg,var(--etk-navy-900),var(--etk-emerald-700));
  box-shadow:0 4px 10px rgba(11,35,67,.18);
}
.etk-dashboard-access-content { min-width:0; display:flex; flex-direction:column; gap:.15rem; }
.etk-dashboard-access-kicker { color:var(--etk-emerald-700); font-size:.64rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.etk-dashboard-access-content strong { color:var(--etk-navy-950); font-size:.86rem; line-height:1.25; }
.etk-dashboard-access-content small { color:var(--etk-muted); font-size:.72rem; line-height:1.35; }
.etk-dashboard-access-link {
  grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:.75rem;
  min-height:38px; padding:.55rem .7rem; border-radius:7px; color:#fff; background:var(--etk-navy-900);
  font-size:.78rem; font-weight:750; text-decoration:none;
}
.etk-dashboard-access-link:hover { color:#fff; background:var(--etk-navy-800); }
.etk-dashboard-access-link:focus-visible { outline:3px solid #ffd24a; outline-offset:2px; }

@media (max-width:900px) {
  .etk-public-nav,.etk-public-actions .etk-hide-mobile { display:none; }
  .etk-public-mobile-toggle { display:grid; place-items:center; margin-left:auto; }
  .etk-public-mobile.is-open { display:block; }
  .etk-account-grid { grid-template-columns:1fr; padding-top:1rem; }
  .etk-account-sidebar { position:static; }
}

@media (max-width:560px) {
  .etk-service-container,.etk-public-inner,.etk-account-grid,.etk-account-header-inner { width:min(100% - 1rem,var(--etk-content)); }
  .etk-public-brand small { display:none; }
  .etk-account-panel { border-radius:10px; padding:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
