:root{--bg:#0b1220;--card:#0f1a30;--muted:#94a3b8;--text:#e2e8f0;--accent:#38bdf8;--ok:#22c55e;--bad:#ef4444;}
*{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;}
body{margin:0;background:linear-gradient(180deg,#071022,#0b1220);color:var(--text);}
.container{max-width:1080px;margin:0 auto;padding:18px;}
.topbar{position:sticky;top:0;background:rgba(11,18,32,.8);backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.2);z-index:10}
.brand{display:flex;gap:12px;align-items:center;}
.logo{font-size:28px}
.brand-name{font-weight:800;letter-spacing:.2px}
.brand-sub{font-size:12px;color:var(--muted)}
.nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.nav a{color:var(--text);text-decoration:none;padding:8px 10px;border:1px solid rgba(148,163,184,.2);border-radius:10px}
.nav a:hover{border-color:rgba(56,189,248,.6)}
.nav .right{margin-left:auto}
.card{background:rgba(15,26,48,.7);border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:16px;margin:14px 0;box-shadow:0 10px 30px rgba(0,0,0,.25)}
h1{font-size:24px;margin:10px 0 6px}
h2{font-size:18px;margin:16px 0 8px}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid rgba(148,163,184,.15);text-align:left}
th{color:#cbd5e1;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
input,select,textarea{width:100%;padding:10px;border-radius:12px;border:1px solid rgba(148,163,184,.22);background:rgba(2,6,23,.4);color:var(--text)}
label{display:block;margin:10px 0 6px;color:#cbd5e1;font-size:13px}
.btn{display:inline-block;padding:10px 12px;border-radius:12px;border:1px solid rgba(56,189,248,.5);background:rgba(56,189,248,.12);color:var(--text);text-decoration:none;cursor:pointer}
.btn:hover{background:rgba(56,189,248,.2)}
.btn.secondary{border-color:rgba(148,163,184,.35);background:rgba(148,163,184,.08)}
.alert{padding:10px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.2);margin:12px 0}
.alert.success{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.08)}
.alert.error{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.25);font-size:12px;color:#cbd5e1}
.badge.ok{border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.12)}
.badge.warn{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.10)}
.badge.done{border-color:rgba(59,130,246,.5);background:rgba(59,130,246,.10)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.col-6{grid-column:span 6}
.col-4{grid-column:span 4}
.col-8{grid-column:span 8}
@media(max-width:800px){.col-6,.col-4,.col-8{grid-column:span 12}.nav .right{margin-left:0}}
.footer{border-top:1px solid rgba(148,163,184,.2);margin-top:24px}
.small{color:var(--muted);font-size:12px}
.print{display:none}

/* Impression tickets 80mm (thermique) */
@media print{
  @page{ size: 80mm auto; margin: 4mm; }
  body{background:#fff;color:#000;width:80mm;margin:0;padding:0}
  .topbar,.footer,.nav,.btn,.alert{display:none !important}
  .container{max-width:80mm;padding:0}
  .grid{display:block}
  .col-6,.col-4,.col-8{grid-column:auto}
  .card{box-shadow:none;border:none;border-radius:0;padding:0;margin:0}
  .print{display:block}
  table{font-size:11px}
  h1{font-size:16px}
  h2{font-size:13px}
  .small{font-size:10px}
}
