/* =============================================================================
   ORION SLA — design system (ispirato a shadcn/ui: token semantici HSL,
   palette slate + accent blu, radius 0.5rem, focus ring, dark mode).
   CSS vanilla (stack PHP server-rendered, niente Tailwind).
   ========================================================================== */

:root{
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --card: 0 0% 100%;
  --card-foreground: 222.2 84% 4.9%;
  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;
  --secondary: 210 40% 96.1%;
  --secondary-foreground: 222.2 47.4% 11.2%;
  --muted: 210 40% 96.1%;
  --muted-foreground: 215.4 16.3% 46.9%;
  --accent: 210 40% 94%;
  --accent-foreground: 222.2 47.4% 11.2%;
  --destructive: 0 72.2% 50.6%;
  --destructive-foreground: 210 40% 98%;
  --success: 142.1 70.6% 35.3%;
  --success-foreground: 0 0% 100%;
  --border: 214.3 31.8% 91.4%;
  --input: 214.3 31.8% 91.4%;
  --ring: 221.2 83.2% 53.3%;
  --radius: 0.5rem;
  --shadow-sm: 0 1px 2px 0 hsl(222 84% 5% / .06);
  --shadow-md: 0 4px 12px -2px hsl(222 84% 5% / .10);
}
html.dark{
  --background: 222.2 84% 4.9%;
  --foreground: 210 40% 98%;
  --card: 222.2 47% 9%;
  --card-foreground: 210 40% 98%;
  --primary: 217.2 91.2% 59.8%;
  --primary-foreground: 222.2 47.4% 11.2%;
  --secondary: 217.2 32.6% 17.5%;
  --secondary-foreground: 210 40% 98%;
  --muted: 217.2 32.6% 17.5%;
  --muted-foreground: 215 20.2% 65.1%;
  --accent: 217.2 32.6% 24%;
  --accent-foreground: 210 40% 98%;
  --destructive: 0 62.8% 50%;
  --destructive-foreground: 210 40% 98%;
  --success: 142 60% 45%;
  --success-foreground: 0 0% 100%;
  --border: 217.2 32.6% 20%;
  --input: 217.2 32.6% 24%;
  --ring: 224.3 76.3% 60%;
  --shadow-sm: 0 1px 2px 0 hsl(0 0% 0% / .3);
  --shadow-md: 0 4px 14px -2px hsl(0 0% 0% / .45);
}

*{box-sizing:border-box}
html{color-scheme:light}
html.dark{color-scheme:dark}
body{
  margin:0;
  font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:hsl(var(--foreground));
  background:hsl(var(--background));
  -webkit-font-smoothing:antialiased;
}
a{color:hsl(var(--primary));text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;
  background:hsl(var(--muted));padding:1px 5px;border-radius:6px}

:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:4px}

/* ---- Topbar / nav ------------------------------------------------------- */
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;
  height:58px;padding:0 22px;background:hsl(var(--card) / .85);backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid hsl(var(--border));
}
.brand{font-weight:700;letter-spacing:.2px;color:hsl(var(--foreground))}
.brand span{font-weight:400;color:hsl(var(--muted-foreground));font-size:13px}
.topbar nav{display:flex;gap:2px;height:100%}
.topbar nav a{display:flex;align-items:center;padding:0 14px;color:hsl(var(--muted-foreground));
  font-size:14px;font-weight:500;border-bottom:2px solid transparent}
.topbar nav a:hover{color:hsl(var(--foreground));text-decoration:none}
.topbar nav a.active{color:hsl(var(--primary));border-bottom-color:hsl(var(--primary))}
.theme-toggle{margin-left:auto;width:38px;height:38px;border:1px solid hsl(var(--border));
  background:hsl(var(--card));border-radius:var(--radius);cursor:pointer;color:hsl(var(--foreground));
  font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.theme-toggle:hover{background:hsl(var(--accent))}
.ic-moon{display:none}
html.dark .ic-sun{display:none}
html.dark .ic-moon{display:inline}

/* ---- Layout ------------------------------------------------------------- */
main{max-width:1140px;margin:26px auto;padding:0 22px}
h1{font-size:22px;font-weight:700;margin:0 0 18px;letter-spacing:-.01em}
h2{font-size:16px;font-weight:600;margin:26px 0 10px}

/* ---- KPI cards ---------------------------------------------------------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin-bottom:8px}
.card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow-sm)}
.card-num{font-size:28px;font-weight:700;letter-spacing:-.02em}
.card-lbl{color:hsl(var(--muted-foreground));font-size:13px;margin-top:2px}

/* ---- Tabelle ------------------------------------------------------------ */
table{width:100%;border-collapse:separate;border-spacing:0;background:hsl(var(--card));
  border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
th,td{padding:9px 12px;text-align:left;font-size:14px;white-space:nowrap;border-bottom:1px solid hsl(var(--border))}
th{background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-weight:600;font-size:12px;
  text-transform:uppercase;letter-spacing:.4px}
tbody tr:last-child td,tr:last-child td{border-bottom:none}
tbody tr:hover td{background:hsl(var(--accent) / .5)}
td.wrap,th.wrap{white-space:normal}

/* header ordinabile */
.th-sort{padding:0}
.th-sort a{display:flex;align-items:center;gap:5px;padding:9px 12px;color:inherit;
  font:inherit;text-transform:uppercase;font-size:12px;font-weight:600;letter-spacing:.4px}
.th-sort a:hover{color:hsl(var(--foreground));text-decoration:none;background:hsl(var(--accent))}
.th-sort.is-active a{color:hsl(var(--primary))}
.sort-ind{font-size:9px;line-height:1}

.chip{display:inline-block;padding:2px 9px;border-radius:999px;background:hsl(var(--secondary));
  color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600}

/* ---- Bottoni ------------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 14px;border:1px solid transparent;border-radius:var(--radius);
  background:hsl(var(--primary));color:hsl(var(--primary-foreground));
  font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,box-shadow .12s,opacity .12s}
.btn:hover{background:hsl(var(--primary) / .9);text-decoration:none}
.btn:active{transform:translateY(.5px)}
.btn-sm{padding:4px 10px;font-size:13px}
.btn-ghost{background:hsl(var(--card));color:hsl(var(--foreground));border-color:hsl(var(--border))}
.btn-ghost:hover{background:hsl(var(--accent))}
.btn-danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}
.btn-danger:hover{background:hsl(var(--destructive) / .9)}

/* ---- Toolbar / filtri --------------------------------------------------- */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;flex-wrap:wrap}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---- Form --------------------------------------------------------------- */
input,select,textarea{font:inherit;color:hsl(var(--foreground));background:hsl(var(--card));
  border:1px solid hsl(var(--input));border-radius:var(--radius);padding:8px 10px}
input::placeholder,textarea::placeholder{color:hsl(var(--muted-foreground))}
input:focus,select:focus,textarea:focus{outline:none;border-color:hsl(var(--ring));
  box-shadow:0 0 0 3px hsl(var(--ring) / .25)}
.filters input,.filters select{padding:7px 9px;font-size:14px}
form.card{max-width:780px;padding:20px}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.field label{font-size:13px;color:hsl(var(--muted-foreground));font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.req{color:hsl(var(--destructive))}
.actions{display:flex;gap:10px;margin-top:8px}

/* ---- Flash -------------------------------------------------------------- */
.flash{padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;font-size:14px;border:1px solid transparent}
.flash-ok{background:hsl(var(--success) / .12);color:hsl(var(--success));border-color:hsl(var(--success) / .3)}
.flash-err{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .3)}

/* ---- Paginazione -------------------------------------------------------- */
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;flex-wrap:wrap}
.pg-info{color:hsl(var(--muted-foreground));font-size:13px}
.pg-nav{display:flex;gap:4px;flex-wrap:wrap}
.pg{display:inline-block;min-width:36px;text-align:center;padding:6px 10px;border:1px solid hsl(var(--border));
  border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));font-size:13px}
a.pg:hover{background:hsl(var(--accent));text-decoration:none}
.pg-act{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}
.pg-act:hover{background:hsl(var(--primary))}
.pg-dis{color:hsl(var(--muted-foreground) / .5);background:hsl(var(--muted))}

/* ---- Vari --------------------------------------------------------------- */
.foot{max-width:1140px;margin:30px auto;padding:16px 22px;color:hsl(var(--muted-foreground));
  font-size:13px;border-top:1px solid hsl(var(--border))}
.muted{color:hsl(var(--muted-foreground))}
.empty{padding:30px;text-align:center;color:hsl(var(--muted-foreground))}

@media (max-width:640px){
  .grid2{grid-template-columns:1fr}
  .topbar{gap:12px;padding:0 14px}
  main{padding:0 14px}
}
