:root {
    --audix-navy: #06142b;
    --audix-navy-2: #08244a;
    --audix-blue: #0057a8;
    --audix-blue-2: #0077d9;
    --audix-cyan: #00a9e8;
    --audix-silver: #d9e1e8;
    --audix-bg: #f4f8fc;
    --audix-card: #ffffff;
    --audix-text: #142033;
    --audix-muted: #6b7a90;
    --audix-border: #e5edf5;
    --audix-success: #12a454;
    --audix-warning: #f59e0b;
    --audix-danger: #dc3545;
    --audix-radius: 22px;
    --audix-shadow: 0 18px 55px rgba(6, 20, 43, .08);
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(0, 169, 232, .10), transparent 34%),
        linear-gradient(180deg, #f7fbff 0%, var(--audix-bg) 100%);
    color: var(--audix-text);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: var(--audix-blue); }
.audix-shell { display: flex; min-height: 100vh; }
.audix-sidebar {
    width: 292px;
    min-height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    padding: 24px 18px;
    background:
        radial-gradient(circle at 40% 0%, rgba(0, 169, 232, .26), transparent 32%),
        linear-gradient(165deg, #06142b 0%, #08244a 60%, #003b7a 100%);
    color: #fff;
    z-index: 1030;
    box-shadow: 22px 0 60px rgba(6, 20, 43, .18);
}
.audix-main { margin-left: 292px; width: calc(100% - 292px); min-height: 100vh; }
.audix-topbar {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 28px;
    background: rgba(255,255,255,.76);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(229, 237, 245, .95);
    position: sticky;
    top: 0;
    z-index: 1020;
}
.audix-content { padding: 28px; }

.audix-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; margin-bottom: 28px; }
.audix-brand img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(0,0,0,.25)); }
.audix-brand-title { line-height: 1.05; }
.audix-brand-title strong { display: block; font-size: 1.35rem; letter-spacing: .02em; }
.audix-brand-title span { display: block; color: rgba(255,255,255,.64); font-size: .75rem; margin-top: 4px; }

.audix-nav-group { margin-top: 18px; }
.audix-nav-label { font-size: .72rem; color: rgba(255,255,255,.42); letter-spacing: .11em; text-transform: uppercase; padding: 0 12px 8px; }
.audix-menu { list-style: none; padding: 0; margin: 0; }
.audix-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.78);
    text-decoration: none;
    padding: 11px 12px;
    border-radius: 14px;
    margin-bottom: 4px;
    transition: .18s ease;
}
.audix-menu a:hover,
.audix-menu a.active {
    background: rgba(255,255,255,.12);
    color: #fff;
    transform: translateX(2px);
}
.audix-menu .ico { width: 24px; text-align: center; opacity: .9; }
.audix-sidebar-footer {
    position: absolute;
    bottom: 20px;
    left: 18px;
    right: 18px;
    padding: 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.72);
    font-size: .82rem;
}

.card, .audix-card {
    background: var(--audix-card);
    border: 1px solid rgba(229, 237, 245, .82);
    border-radius: var(--audix-radius);
    box-shadow: var(--audix-shadow);
}
.card .card-body { padding: 24px; }
.table { --bs-table-bg: transparent; }
.table thead th { color: var(--audix-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; border-bottom-color: var(--audix-border); }
.table td { border-bottom-color: var(--audix-border); vertical-align: middle; }
.form-control, .form-select {
    border: 1px solid #dce7f1;
    border-radius: 14px;
    padding: .72rem .9rem;
    background-color: #fbfdff;
}
.form-control:focus, .form-select:focus {
    border-color: rgba(0, 119, 217, .52);
    box-shadow: 0 0 0 .22rem rgba(0, 119, 217, .12);
}
.form-label { font-weight: 700; font-size: .86rem; color: #26364f; }
.btn { border-radius: 14px; font-weight: 700; padding: .68rem 1rem; }
.btn-sm { padding: .38rem .74rem; border-radius: 12px; }
.btn-primary {
    background: linear-gradient(135deg, var(--audix-blue), var(--audix-blue-2));
    border: 0;
    box-shadow: 0 12px 26px rgba(0, 87, 168, .22);
}
.btn-primary:hover { filter: brightness(.96); transform: translateY(-1px); }
.btn-outline-primary { border-color: rgba(0,87,168,.26); color: var(--audix-blue); }
.btn-outline-primary:hover { background: var(--audix-blue); border-color: var(--audix-blue); }
.btn-outline-secondary { border-color: #dce7f1; color: #5f7189; }
.badge { border-radius: 999px; padding: .42rem .62rem; font-weight: 700; }
.badge-soft { background: rgba(0, 169, 232, .10); color: var(--audix-blue); }

.audix-hero {
    position: relative;
    overflow: hidden;
    border-radius: 30px;
    background:
        radial-gradient(circle at 88% 18%, rgba(0, 169, 232, .34), transparent 30%),
        linear-gradient(135deg, #06142b 0%, #003b7a 60%, #0057a8 100%);
    color: #fff;
    padding: 36px;
    box-shadow: 0 24px 70px rgba(6, 20, 43, .20);
}
.audix-hero:after {
    content: "";
    position: absolute;
    right: -70px;
    top: -70px;
    width: 220px;
    height: 220px;
    border: 34px solid rgba(255,255,255,.07);
    border-radius: 50%;
}
.audix-hero > * { position: relative; z-index: 1; }
.stat { font-size: 2.18rem; font-weight: 900; letter-spacing: -.04em; line-height: 1; }
.stat-label { color: var(--audix-muted); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }

.module-card { height: 100%; transition: .18s ease; }
.module-card:hover { transform: translateY(-4px); box-shadow: 0 25px 70px rgba(6, 20, 43, .12); }
.module-icon {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(0,87,168,.12), rgba(0,169,232,.18));
    color: var(--audix-blue);
    font-size: 1.3rem;
    margin-bottom: 16px;
}

.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        radial-gradient(circle at 20% 15%, rgba(0,169,232,.32), transparent 28%),
        radial-gradient(circle at 90% 84%, rgba(94,216,242,.22), transparent 30%),
        linear-gradient(145deg, #06142b 0%, #08244a 52%, #003b7a 100%);
}
.login-card {
    max-width: 1040px;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 32px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 30px 100px rgba(0,0,0,.24);
}
.login-panel { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 610px; }
.login-showcase {
    padding: 48px;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(6,20,43,.92), rgba(0,59,122,.9)),
        radial-gradient(circle at 70% 15%, rgba(0,169,232,.35), transparent 28%);
    position: relative;
    overflow: hidden;
}
.login-showcase:after {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    right: -90px;
    bottom: -90px;
    border-radius: 50%;
    border: 36px solid rgba(255,255,255,.08);
}
.login-logo { width: 120px; height: 120px; object-fit: contain; filter: drop-shadow(0 22px 34px rgba(0,0,0,.32)); }
.login-form { padding: 54px 48px; display: flex; align-items: center; }
.login-form-inner { width: 100%; }
.login-kicker { color: var(--audix-blue); text-transform: uppercase; font-size: .75rem; letter-spacing: .14em; font-weight: 900; }
.login-feature { display: flex; gap: 12px; color: rgba(255,255,255,.78); margin-top: 18px; }
.login-feature b { color: #fff; display: block; }

.alert { border: 0; border-radius: 16px; }
.alert-success { background: rgba(18,164,84,.10); color: #08703b; }
.alert-danger { background: rgba(220,53,69,.10); color: #b02a37; }
.alert-warning { background: rgba(245,158,11,.12); color: #8a5700; }

@media (max-width: 991px) {
    .audix-sidebar { position: static; width: 100%; min-height: auto; border-radius: 0 0 24px 24px; }
    .audix-sidebar-footer { position: static; margin-top: 14px; }
    .audix-main { margin-left: 0; width: 100%; }
    .audix-shell { display: block; }
    .audix-content { padding: 18px; }
    .audix-topbar { padding: 14px 18px; }
    .login-panel { grid-template-columns: 1fr; }
    .login-showcase { display: none; }
    .login-form { padding: 34px 24px; }
}

/* Audix v3 - firme, timbri e report */
.audix-signature-chip{
    display:flex;
    flex-direction:column;
    gap:.25rem;
    line-height:1.15;
}
.audix-signature-chip small{color:#64748b;font-size:.72rem}
.audix-stamp-wrap{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.audix-stamp-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:2px solid #0057A8;
    border-radius:999px;
    padding:.22rem .55rem;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:rgba(255,255,255,.82);
    white-space:nowrap;
}
.signature-pad-wrap{
    background:linear-gradient(180deg,#fff,#f8fbff);
    border:1px solid #d9e1e8;
    border-radius:22px;
    padding:12px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 18px 40px rgba(0,59,122,.08);
}
.signature-pad-wrap canvas{
    width:100%;
    height:230px;
    display:block;
    border-radius:16px;
    background:linear-gradient(0deg,rgba(0,87,168,.04) 1px, transparent 1px), #fff;
    background-size:100% 42px;
    cursor:crosshair;
    touch-action:none;
}
.report-page .table th{background:#f5f8fb;color:#172033}
@media print{
    body{background:#fff!important}
    .audix-stamp-badge{break-inside:avoid}
}

/* Audix v4 - operatività, filtri, chiusure */
.dash-card-link{display:block;text-decoration:none;color:inherit}.dash-card-link .card{transition:.18s ease}.dash-card-link:hover .card{transform:translateY(-2px);box-shadow:0 18px 48px rgba(0,59,122,.12)}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-action{display:flex;align-items:center;gap:12px;text-decoration:none;color:#172033;background:linear-gradient(180deg,#fff,#f7fbff);border:1px solid #d9e1e8;border-radius:18px;padding:16px;font-weight:800}.quick-action:first-letter{font-size:1.2rem}.quick-action:hover{border-color:#00A9E8;box-shadow:0 14px 34px rgba(0,87,168,.10)}
.notification-mini{padding:12px 0;border-bottom:1px solid #edf2f7}.notification-mini:last-child{border-bottom:0}.audix-notification{border:1px solid #d9e1e8;border-radius:18px;padding:16px;background:#fff}.audix-notification.is-read{opacity:.65;background:#f8fafc}
.supplier-card{display:block;text-decoration:none;color:inherit;border:1px solid #d9e1e8;border-radius:18px;padding:14px;margin-bottom:10px;background:#fff}.supplier-card:hover,.supplier-card.active{border-color:#00A9E8;box-shadow:0 14px 34px rgba(0,87,168,.10)}
.mini-kpi{border:1px solid #e5edf5;border-radius:16px;padding:12px;background:#f8fbff;font-size:.82rem;color:#64748b}.mini-kpi strong{display:block;font-size:1.35rem;color:#172033}.mini-kpi.danger strong{color:#dc3545}.mini-kpi.warning strong{color:#f59e0b}.mini-kpi.success strong{color:#12a454}
.closure-check{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #d9e1e8;border-radius:16px;padding:12px 14px;margin-bottom:10px;background:#fff}.closure-check.ok{border-color:rgba(18,164,84,.25);background:rgba(18,164,84,.04)}.closure-check.ko{border-color:rgba(220,53,69,.24);background:rgba(220,53,69,.04)}.closure-value{font-weight:900;font-size:1.25rem;color:#172033}
@media(max-width:991px){.quick-grid{grid-template-columns:1fr}.table{font-size:.88rem}}

/* Audix v4.1 - catene audit, firma profilo e azioni correttive */
.audix-chain{border:1px solid rgba(0,59,122,.13);border-radius:22px;background:#fff;margin:16px 0;overflow:hidden;box-shadow:0 12px 28px rgba(0,59,122,.06)}
.audix-chain-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;background:linear-gradient(135deg,rgba(0,87,168,.09),rgba(94,216,242,.10));border-bottom:1px solid rgba(0,59,122,.10)}
.audix-chain-body{padding:14px 18px 18px;position:relative}
.audix-chain-step{display:grid;grid-template-columns:22px 1fr;gap:12px;position:relative;padding:8px 0 14px}
.audix-chain-step:not(:last-child)::after{content:"";position:absolute;left:10px;top:28px;bottom:-4px;width:2px;background:rgba(0,59,122,.13)}
.audix-chain-dot{width:14px;height:14px;border-radius:999px;margin-top:5px;box-shadow:0 0 0 5px rgba(0,87,168,.08);z-index:2}
.audix-chain-content{background:#f8fbfe;border:1px solid rgba(0,59,122,.08);border-radius:16px;padding:12px 14px}
.audix-chain-print{box-shadow:none;break-inside:avoid}.audix-chain-print .audix-chain-content{background:#fff}
.signature-pad-wrap canvas{width:100%;max-width:100%;height:auto;background:#fff;border:2px dashed rgba(0,59,122,.22);border-radius:20px;touch-action:none}
