/* ============================================================================
   PIETRONI TECNOLOGIE - livello di brand di Simplici
   Riferimenti: pietronitecnologie.com e materiali di stampa (logo, biglietto, firma).
   Caricato DOPO bootstrap e simplici.css: qui vivono token, font e look dei componenti condivisi.
   Palette: blu notte #0f172a, ambra #f59e0b (CTA), verde-petrolio #0f766e (accento), grigi slate.
   ============================================================================ */

@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal; font-weight: 200 800; font-display: swap;
    src: url('../fonts/PlusJakartaSans-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal; font-weight: 200 800; font-display: swap;
    src: url('../fonts/PlusJakartaSans-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Poppins';
    font-style: normal; font-weight: 700; font-display: swap;
    src: url('../fonts/Poppins-700-latin.woff2') format('woff2');
}

:root {
    /* Brand */
    --pt-navy: #0f172a;
    --pt-navy-mid: #1e293b;
    --pt-navy-deep: #08101e;
    --pt-amber: #f59e0b;
    --pt-amber-d: #d97706;
    --pt-amber-soft: #fef3c7;
    --pt-teal: #0f766e;
    --pt-teal-l: #14b8a6;
    --pt-teal-soft: #f0fdfa;
    --pt-bg: #f8fafc;
    --pt-surface: #ffffff;
    --pt-border: #e2e8f0;
    --pt-border-dark: #1e3a52;
    --pt-text: #1e293b;
    --pt-muted: #64748b;
    --pt-dim: #94a3b8;
    --pt-shadow: 0 4px 24px rgba(15, 23, 42, .07);
    --pt-shadow-hover: 0 12px 40px rgba(15, 23, 42, .13);
    --pt-radius: 8px;
    --pt-radius-lg: 12px;

    --font-body: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-brand: 'Poppins', 'Plus Jakarta Sans', system-ui, sans-serif;

    /* Alias storici (usati da template e simplici.css) */
    --site-bg: var(--pt-bg);
    --site-surface: var(--pt-surface);
    --site-surface-alt: var(--pt-bg);
    --site-border: var(--pt-border);
    --site-border-strong: #cbd5e1;
    --site-text: var(--pt-text);
    --site-text-soft: var(--pt-muted);
    --site-accent: var(--pt-teal);
    --site-accent-soft: var(--pt-teal-soft);
    --site-accent-strong: var(--pt-navy);
    --site-highlight: var(--pt-amber-d);
    --site-shadow: var(--pt-shadow);

    /* Bootstrap 5 */
    --bs-body-font-family: var(--font-body);
    --bs-body-color: var(--pt-text);
    --bs-body-bg: var(--pt-bg);
    --bs-border-color: var(--pt-border);
    --bs-link-color: var(--pt-teal);
    --bs-link-hover-color: var(--pt-navy);
    --bs-primary: var(--pt-navy);
    --bs-primary-rgb: 15, 23, 42;
    --bs-info: var(--pt-teal);
    --bs-info-rgb: 15, 118, 110;
    --bs-warning: var(--pt-amber);
    --bs-warning-rgb: 245, 158, 11;
    --bs-success: #16a34a;
    --bs-success-rgb: 22, 163, 74;
    --bs-danger: #dc2626;
    --bs-danger-rgb: 220, 38, 38;
    --bs-border-radius: var(--pt-radius);
}

/* ------------------------------------------------------------------ base */
html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    background: var(--pt-bg);
    color: var(--pt-text);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    word-spacing: .06em;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-body);
    color: var(--pt-navy);
    font-weight: 700;
    letter-spacing: -0.01em;
}
a { color: var(--pt-teal); }
a:hover { color: var(--pt-navy); }
::selection { background: var(--pt-amber); color: var(--pt-navy); }

/* Sovratitolo alla maniera del sito: ambra, maiuscolo, spaziato */
.overline, .planning-sidebar-kicker, .landing-kicker {
    font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: var(--pt-amber-d);
}

/* ---------------------------------------------------------------- navbar */
.navbar {
    position: relative;
    z-index: 5000;
    isolation: isolate;
    background: var(--pt-navy) !important;
    border-bottom: 1px solid var(--pt-border-dark);
    box-shadow: none;
    padding: .55rem 0;
    margin-bottom: 0 !important;
}
.navbar .navbar-brand, .navbar .nav-link, .navbar .navbar-text {
    color: #e2e8f0 !important;
    font-weight: 600;
    font-size: .9rem;
    letter-spacing: .01em;
}
.navbar .nav-link { padding: .45rem .8rem; border-radius: var(--pt-radius); }
.navbar .nav-link:hover { color: #fff !important; background: rgba(255, 255, 255, .06); }
.navbar .nav-link.active { color: var(--pt-teal-l) !important; }
.navbar .navbar-toggler { border-color: rgba(255, 255, 255, .25); }
.navbar .navbar-toggler-icon { filter: invert(1) brightness(2); }

.brand-lockup {
    display: inline-flex; align-items: center; gap: .75rem;
    text-decoration: none; padding: 0;
}
.brand-mark {
    display: inline-flex; flex-direction: column; width: 38px; flex: none;
}
.brand-mark span {
    display: block; text-align: center; color: #fff; background: var(--pt-navy-mid);
    font: 700 .95rem/28px var(--font-brand); height: 28px; border: 1px solid var(--pt-border-dark);
    border-bottom: 0;
}
.brand-mark::after { content: ''; display: block; height: 8px; background: var(--pt-amber); }
.brand-word { display: flex; flex-direction: column; line-height: 1; }
.brand-word strong {
    font: 700 1.15rem/1.15 var(--font-brand); color: #fff; letter-spacing: .04em;
    text-transform: uppercase; border-bottom: 2px solid var(--pt-amber); padding-bottom: 2px;
}
.brand-word small {
    font-size: .58rem; letter-spacing: .42em; color: var(--pt-dim); text-transform: uppercase; margin-top: 4px;
}
.navbar .brand-lockup:hover .brand-word strong { color: #fff; }

/* Dropdown: scuri come la navigazione del sito */
.dropdown-menu, .dropdown-menu-dark {
    z-index: 5100 !important;
    max-width: min(92vw, 24rem);
    background: var(--pt-navy) !important;
    border: 1px solid var(--pt-border-dark) !important;
    border-radius: var(--pt-radius-lg);
    box-shadow: 0 16px 40px rgba(8, 16, 30, .35);
    padding: .4rem;
    font-size: .88rem;
}
.dropdown-item, .dropdown-menu-dark .dropdown-item {
    color: #cbd5e1 !important;
    white-space: normal;
    padding: .45rem .75rem;
    border-radius: 6px;
    transition: background .15s, color .15s;
}
.dropdown-item:hover, .dropdown-item:focus,
.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {
    background: rgba(245, 158, 11, .12) !important;
    color: var(--pt-amber) !important;
}
.dropdown-item.disabled { color: #475569 !important; }
.dropdown-divider { border-top-color: var(--pt-border-dark); opacity: 1; }
.nav-link.dropdown-toggle { cursor: pointer; }

.dropdown-menu { min-width: 13.5rem; }

/* Fascia sotto la navbar: barra ambra del marchio */
.pt-accent-bar { height: 3px; background: linear-gradient(90deg, var(--pt-amber) 0 84px, transparent 84px); }

/* ---------------------------------------------------------------- pulsanti */
.btn {
    border-radius: var(--pt-radius);
    font-weight: 700;
    letter-spacing: .01em;
    transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.btn:focus-visible { box-shadow: 0 0 0 .2rem rgba(245, 158, 11, .35); }

/* Azione principale = ambra con testo scuro (btn-amber del sito) */
.btn-primary, .btn-warning, .btn-amber {
    background: var(--pt-amber); border-color: var(--pt-amber); color: var(--pt-navy-deep);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-amber:hover {
    background: var(--pt-amber-d); border-color: var(--pt-amber-d); color: var(--pt-navy-deep);
    box-shadow: 0 8px 24px rgba(245, 158, 11, .3);
}
.btn-info, .btn-teal { background: var(--pt-teal); border-color: var(--pt-teal); color: #fff; }
.btn-info:hover, .btn-info:focus, .btn-teal:hover { background: #0d9488; border-color: #0d9488; color: #fff; }
.btn-dark { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }
.btn-dark:hover { background: var(--pt-navy-mid); border-color: var(--pt-navy-mid); color: #fff; }
.btn-success { background: #16a34a; border-color: #16a34a; color: #fff; }
.btn-success:hover { background: #15803d; border-color: #15803d; color: #fff; }
.btn-danger { background: #dc2626; border-color: #dc2626; color: #fff; }
.btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }

.btn-secondary, .btn-outline-secondary, .btn-light, .btn-outline-light {
    background: #fff; border: 1px solid #cbd5e1; color: var(--pt-navy-mid);
}
.btn-secondary:hover, .btn-outline-secondary:hover, .btn-light:hover, .btn-outline-light:hover,
.btn-secondary:focus, .btn-outline-secondary:focus {
    background: var(--pt-bg); border-color: var(--pt-navy-mid); color: var(--pt-navy);
}
.btn-outline-primary, .btn-outline-info, .btn-outline-warning {
    background: #fff; color: var(--pt-navy-mid); border: 1px solid #cbd5e1;
}
.btn-outline-primary:hover, .btn-outline-info:hover, .btn-outline-warning:hover {
    background: var(--pt-navy); border-color: var(--pt-navy); color: #fff;
}
.btn-outline-danger { background: #fff; color: #dc2626; border: 1px solid #fecaca; }
.btn-outline-danger:hover { background: #dc2626; border-color: #dc2626; color: #fff; }
.btn-outline-success { background: #fff; color: #15803d; border: 1px solid #bbf7d0; }
.btn-outline-success:hover { background: #16a34a; border-color: #16a34a; color: #fff; }
.btn-link { color: var(--pt-teal); font-weight: 600; }
.btn-link:hover { color: var(--pt-navy); }

/* Pulsanti del layout applicativo (simplici.css) */
.industrial-btn, .landing-btn-primary {
    background: var(--pt-amber) !important; color: var(--pt-navy-deep) !important; border: 0;
    border-radius: var(--pt-radius) !important; font-weight: 700;
}
.industrial-btn:hover, .landing-btn-primary:hover {
    background: var(--pt-amber-d) !important; transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(245, 158, 11, .3) !important;
}

/* ---------------------------------------------------------------- form */
.form-control, .form-select, textarea, input[type="text"], input[type="password"], input[type="email"],
input[type="number"], input[type="date"], input[type="search"], select {
    border-color: #cbd5e1;
    border-radius: var(--pt-radius);
    color: var(--pt-text);
    background-color: #fff;
}
.form-control:focus, .form-select:focus, textarea:focus, input:focus, select:focus {
    border-color: var(--pt-amber);
    box-shadow: 0 0 0 .2rem rgba(245, 158, 11, .2);
    background-color: #fff;
}
.form-control::placeholder { color: var(--pt-dim); }
.form-label { font-weight: 600; color: var(--pt-navy-mid); font-size: .88rem; }
.form-check-input:checked { background-color: var(--pt-teal); border-color: var(--pt-teal); }
.form-check-input:focus { border-color: var(--pt-teal); box-shadow: 0 0 0 .2rem rgba(15, 118, 110, .2); }
.input-group-text { border-color: #cbd5e1; background: var(--pt-bg); color: var(--pt-muted); }
.form-control:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px #fff inset; }

/* ---------------------------------------------------------------- card / superfici */
.card, .modal-content, .list-group-item, .accordion-item {
    border-radius: var(--pt-radius-lg);
    border-color: var(--pt-border);
}
.card { background: #fff; box-shadow: var(--pt-shadow); }
.card-header { background: var(--pt-bg); border-bottom-color: var(--pt-border); font-weight: 700; color: var(--pt-navy); }
.card-footer { background: var(--pt-bg); border-top-color: var(--pt-border); }
.industrial-card { background: #fff; border: 1px solid var(--pt-border); border-radius: var(--pt-radius-lg); box-shadow: var(--pt-shadow); color: var(--pt-text); }
.industrial-title { color: var(--pt-navy); font-weight: 700; letter-spacing: 0; }
.industrial-divider { border-top: 1px solid var(--pt-border); margin: 1.5rem 0; }

/* Le viste scritte per un tema scuro restano leggibili sul fondo chiaro del brand */
.card.bg-dark, .card.border-secondary, .card.border-success, .card.border-warning, .card.border-danger,
.list-group-item.bg-dark, .list-group-item.text-light,
.modal-content.bg-dark, .modal-header.bg-dark, .modal-body.bg-dark, .modal-footer.bg-dark {
    background: #fff !important; color: var(--pt-text) !important; border-color: var(--pt-border) !important;
}
.card-header.bg-secondary, .input-group-text.bg-secondary {
    background: var(--pt-bg) !important; color: var(--pt-navy) !important; border-color: var(--pt-border) !important;
}
.card-header.bg-primary, .card-header.bg-dark {
    background: var(--pt-navy) !important; color: #fff !important; border-color: var(--pt-navy) !important;
}
.bg-primary { background-color: var(--pt-navy) !important; }
.bg-info { background-color: var(--pt-teal) !important; }
.bg-warning { background-color: var(--pt-amber) !important; }
.text-primary { color: var(--pt-navy) !important; }
.text-info { color: var(--pt-teal) !important; }
.text-warning { color: var(--pt-amber-d) !important; }
.text-muted, small.text-muted { color: var(--pt-muted) !important; }
.text-light, .text-white { color: var(--pt-text) !important; }
.text-white-50 { color: var(--pt-muted) !important; }
.navbar .text-light, .navbar .text-white,
.pt-dark .text-light, .pt-dark .text-white, .btn-primary .text-white, .btn-dark .text-white,
.bg-primary .text-white, .bg-dark .text-white, .bg-info .text-white, .card-header.bg-dark .text-white,
.card-header.bg-primary .text-white, .badge.text-white, .bg-success .text-white, .bg-danger .text-white {
    color: #fff !important;
}
.border-primary { border-color: var(--pt-navy) !important; }
.border-info { border-color: var(--pt-teal) !important; }
.border-warning { border-color: var(--pt-amber) !important; }

/* ---------------------------------------------------------------- tabelle */
.table, .table > :not(caption) > * > * { color: var(--pt-text); border-color: var(--pt-border); }
.table > thead > tr > th, .table thead th {
    background: var(--pt-bg); color: var(--pt-muted);
    font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    border-bottom: 1px solid var(--pt-border);
}
.table-hover > tbody > tr:hover > * { --bs-table-hover-bg: #f1f5f9; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-striped-bg: #f8fafc; }
.table-dark, .table-dark > :not(caption) > * > * {
    --bs-table-bg: #fff; --bs-table-striped-bg: #f8fafc; --bs-table-hover-bg: #f1f5f9;
    --bs-table-color: var(--pt-text); --bs-table-striped-color: var(--pt-text); --bs-table-hover-color: var(--pt-text);
    border-color: var(--pt-border); color: var(--pt-text) !important;
}
.table-dark thead th, .table-dark > thead > tr > th { background: var(--pt-bg) !important; color: var(--pt-muted) !important; }
.table-light, .table-light > :not(caption) > * > * { --bs-table-bg: var(--pt-bg); --bs-table-color: var(--pt-muted); }

/* ---------------------------------------------------------------- badge / alert / progress */
.badge { font-weight: 700; letter-spacing: .02em; border-radius: 6px; }
.badge.bg-warning, .badge.text-bg-warning { background: var(--pt-amber-soft) !important; color: #92400e !important; }
.badge.bg-info, .badge.text-bg-info { background: #ccfbf1 !important; color: #115e59 !important; }
.badge.bg-primary, .badge.text-bg-primary { background: var(--pt-navy) !important; color: #fff !important; }
.badge.bg-secondary, .badge.text-bg-secondary { background: #e2e8f0 !important; color: #475569 !important; }
.badge.bg-success, .badge.text-bg-success { background: #dcfce7 !important; color: #166534 !important; }
.badge.bg-danger, .badge.text-bg-danger { background: #fee2e2 !important; color: #991b1b !important; }
.badge.bg-dark, .badge.text-bg-dark { background: var(--pt-navy) !important; color: #fff !important; }
.alert { border-radius: var(--pt-radius-lg); border-width: 1px; }
.alert-info { background: var(--pt-teal-soft); border-color: #99f6e4; color: #115e59; }
.alert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-danger { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.alert-success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.alert-info .alert-link { color: #0f172a; }
/* Alert del layout applicativo (simplici.css): bordo laterale colorato, sfondo tenue */
.alert-info, .alert-success, .alert-danger, .alert-warning, .alert-primary { border-left-width: 4px; }
.alert-primary { background: var(--pt-bg); border-color: var(--pt-border); border-left-color: var(--pt-navy); color: var(--pt-navy); }
.alert-info { border-left-color: var(--pt-teal); }
.alert-success { border-left-color: #16a34a; }
.alert-danger { border-left-color: #dc2626; }
.alert-warning { border-left-color: var(--pt-amber); }
.badge-success { background: #dcfce7; color: #166534; }
.badge-danger { background: #fee2e2; color: #991b1b; }
.badge-warning { background: var(--pt-amber-soft); color: #92400e; }
.badge-info { background: #ccfbf1; color: #115e59; }
.progress { background-color: #e2e8f0 !important; border-radius: 999px; }
.progress-bar { background-color: var(--pt-teal); }

/* ---------------------------------------------------------------- navigazione secondaria */
.breadcrumb {
    background: transparent; border: 0; border-radius: 0; padding: .25rem 0; font-size: .82rem; margin-bottom: .5rem;
}
.breadcrumb-item + .breadcrumb-item::before { color: var(--pt-dim); content: "/"; font-size: .9rem; }
.breadcrumb-item a { text-decoration: none; color: var(--pt-teal); font-weight: 600; }
.breadcrumb-item a:hover { color: var(--pt-navy); text-decoration: underline; }
.breadcrumb-item.active { color: var(--pt-muted); }

.nav-tabs { border-bottom-color: var(--pt-border); }
.nav-tabs .nav-link { color: var(--pt-muted); border: 1px solid transparent; border-radius: var(--pt-radius) var(--pt-radius) 0 0; font-weight: 600; }
.nav-tabs .nav-link:hover { color: var(--pt-navy); border-color: transparent; }
.nav-tabs .nav-link.active { color: var(--pt-navy); background: #fff; border-color: var(--pt-border) var(--pt-border) #fff; box-shadow: inset 0 3px 0 var(--pt-amber); }
.nav-pills .nav-link { color: var(--pt-muted); border-radius: var(--pt-radius); font-weight: 600; }
.nav-pills .nav-link.active { background: var(--pt-navy); color: #fff; }
.page-link { color: var(--pt-navy-mid); border-color: var(--pt-border); }
.page-link:hover { color: var(--pt-navy); background: var(--pt-bg); }
.page-item.active .page-link { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }

/* Sidebar di sezione (Sales, Finance, Asset, ...) */
.planning-shell { padding: 1.25rem 1rem; }
.planning-sidebar {
    background: #fff; border: 1px solid var(--pt-border); border-radius: var(--pt-radius-lg);
    box-shadow: var(--pt-shadow); color: var(--pt-text);
}
.planning-sidebar-header h2 { font-size: 1.1rem; color: var(--pt-navy); }
.planning-sidebar-header p { color: var(--pt-muted); }
.planning-sidebar-nav a {
    color: var(--pt-navy-mid); border: 1px solid transparent; border-radius: var(--pt-radius);
    padding: .6rem .75rem; font-weight: 600; font-size: .9rem;
}
.planning-sidebar-nav a i { color: var(--pt-dim); transition: color .15s; }
.planning-sidebar-nav a:hover { background: var(--pt-bg); color: var(--pt-navy); }
.planning-sidebar-nav a:hover i { color: var(--pt-amber-d); }
.planning-sidebar-nav a.active {
    background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; font-weight: 700;
    box-shadow: inset 3px 0 0 var(--pt-amber);
}
.planning-sidebar-nav a.active i { color: var(--pt-amber); }
.planning-hero {
    background: #fff; border: 1px solid var(--pt-border); border-radius: var(--pt-radius-lg); box-shadow: var(--pt-shadow);
    border-top: 3px solid var(--pt-amber);
}
.planning-hero h1 { font-weight: 800; }
.planning-header { background: var(--pt-navy); border-bottom: 3px solid var(--pt-amber); }

/* Contenitore pagina */
.site-content-wrap { padding: 0 .85rem 1.25rem; }
.site-content-card { padding: clamp(.75rem, 1.4vw, 1.15rem); margin-bottom: 1rem; }
@media (max-width: 991.98px) {
    .site-content-wrap { padding: 0 .6rem 1rem; }
    .planning-shell { grid-template-columns: minmax(0, 1fr); }
    .planning-sidebar { position: static; }
}

/* Testi di servizio */
.pt-footer { color: var(--pt-muted); font-size: .8rem; text-align: center; padding: 1.25rem 1rem 2rem; }
.pt-footer a { color: var(--pt-teal); font-weight: 600; text-decoration: none; }
.pt-footer a:hover { color: var(--pt-navy); }

/* ---------------------------------------------------------------- FullCalendar */
.fc {
    --fc-border-color: var(--pt-border);
    --fc-button-bg-color: var(--pt-navy);
    --fc-button-border-color: var(--pt-navy);
    --fc-button-hover-bg-color: var(--pt-navy-mid);
    --fc-button-hover-border-color: var(--pt-navy-mid);
    --fc-button-active-bg-color: var(--pt-amber-d);
    --fc-button-active-border-color: var(--pt-amber-d);
    --fc-today-bg-color: rgba(245, 158, 11, .10);
    --fc-neutral-bg-color: var(--pt-bg);
    --fc-page-bg-color: #fff;
}
.fc a, .fc .fc-col-header-cell-cushion, .fc .fc-daygrid-day-number { text-decoration: none; }
.fc .fc-col-header-cell-cushion { color: var(--pt-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fc .fc-daygrid-day-number { color: var(--pt-navy-mid); font-weight: 600; }
.fc .fc-toolbar-title { font-size: 1.15rem; font-weight: 800; color: var(--pt-navy); text-transform: capitalize; }
.fc .fc-button-primary:focus { box-shadow: 0 0 0 .2rem rgba(245, 158, 11, .35); }
