/* core.css — baseline comune (contract) — migrated to doc*
   Obiettivo: markup stabile + geometrie coerenti.
   I preset (*-lite.css) dovrebbero cambiare soprattutto colori/superfici, non la struttura.
*/

:root {
    --font: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

    /* Base palette (neutra) */
    --bg: #ffffff;
    --fg: #111111;
    --muted: #666666;
    --link: #0a58ca;
    --border: #e6e6e6;

    /* Layout */
    --max: 860px;

    /* Nav geometry contract */
    --nav-h: 48px;
    --nav-px: 14px;
    --nav-gap: 14px;
    --nav-font-size: 16px;

    /* Breadcrumb geometry */
    --crumb-font-size: 0.9rem;
    --crumb-sep-pad: 0 6px;
}

/* Reset */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
    font-family: var(--font);
    color: var(--fg);
    background: var(--bg);
    line-height: 1.5;
}

/* Base links */
a {
    color: var(--link);
    text-decoration: none;
    text-underline-offset: 3px;
}
a:hover { text-decoration: underline; }

/* Technical container */
.wrap {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 16px;
}

/* Landmarks */
.site-header {
    border-bottom: 1px solid var(--border);
    padding: 12px 0;
}

.site-inner {
    padding: 24px 0;
}

.site-footer {
    border-top: 1px solid var(--border);
    margin-top: 40px;
    padding: 16px 0;
    text-align: center;
    color: var(--muted);
}

/* Typography */
h1 { margin: 0 0 12px 0; }
p  { margin: 0 0 12px 0; }

code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 0.95em;
}

/* Utilities */
.muted { color: var(--muted); }

/* Nav (geometry contract) */
.nav.nav--primary { min-height: var(--nav-h); }

.nav__list {
    list-style: none;
    margin: 0;
    padding: 0;

    min-height: var(--nav-h);
    display: flex;
    align-items: stretch;
    gap: var(--nav-gap);
}

.nav__item { margin: 0; padding: 0; }

.nav__link {
    min-height: var(--nav-h);
    display: inline-flex;
    align-items: center;

    padding: 0 var(--nav-px);
    font-size: var(--nav-font-size);

    color: inherit;
    font-weight: 600;
    text-decoration: none;
}

.nav__link:hover { text-decoration: none; }

.nav__link.is-current {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Breadcrumb (contract) */
.breadcrumb {
    color: var(--muted);
    font-size: var(--crumb-font-size);
    margin: 0 0 12px 0;
}

.breadcrumb__list {
    list-style: none;
    margin: 0;
    padding: 0;

    display: flex;
    flex-wrap: wrap;
}

.breadcrumb__item + .breadcrumb__item::before {
    content: " / ";
    padding: var(--crumb-sep-pad);
    color: currentColor;
    opacity: 0.9;
}

.breadcrumb a {
    color: inherit;
    text-decoration: none;
}
.breadcrumb a:hover { text-decoration: underline; }

/* Content shell */
.content-sidebar-wrap { display: block; }
.content { min-width: 0; }

/* Doc (replaces entry) */
.doc { margin: 0; }
.doc__header { margin: 0 0 12px 0; }
.doc__body { margin: 0; }

/* View wrappers (safe defaults) */
.list { margin: 0; }
.error { margin: 0; }

/* Icon baseline */
.icon {
    width: 1em;
    height: 1em;
    fill: currentColor;
    flex: 0 0 auto;
}