*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#f2f3f5;color:#222}
.topbar{background:#141414;color:#fff;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}
.brand strong{color:#ff8c00}.brand span{opacity:.7;font-size:.85em;margin-left:8px}
.topbar nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.topbar a{color:#ddd;text-decoration:none;padding:6px 10px;border-radius:6px;background:#222}
.topbar a.on,.topbar a:hover{background:#ff8c00;color:#000}
.topbar .user{font-size:.85em;opacity:.8}.topbar .logout{background:#a00;color:#fff}
.wrap{max-width:1100px;margin:20px auto;padding:0 15px}
.flash{padding:10px;border-radius:8px;margin-bottom:12px}.flash.ok{background:#d4edda}.flash.ko{background:#f8d7da}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:15px 0}
.card{background:#fff;border-radius:12px;padding:18px;text-align:center;box-shadow:0 2px 8px #0001}.card b{font-size:2em;display:block}.card span{opacity:.6}
.panel{background:#fff;border-radius:12px;padding:16px;margin:14px 0;box-shadow:0 2px 8px #0001}
.panel h3{display:flex;justify-content:space-between;align-items:center}
table{width:100%;border-collapse:collapse;margin-top:8px}th,td{padding:9px;border-bottom:1px solid #eee;text-align:left;font-size:.95em}th{background:#fafafa}
.badge{padding:3px 10px;border-radius:20px;font-size:.8em;color:#fff}.badge.grigio{background:#777}.badge.blu{background:#0d6efd}.badge.verde{background:#198754}.badge.rosso{background:#dc3545}.badge.arancio{background:#fd7e14}
.btn{background:#141414;color:#fff;padding:8px 14px;border-radius:8px;text-decoration:none;border:0;cursor:pointer;display:inline-block}.btn.small{font-size:.85em;padding:5px 10px}.btn:hover{background:#ff8c00;color:#000}
button{background:#ff8c00;border:0;padding:10px 18px;border-radius:8px;cursor:pointer;font-weight:bold}button.big{font-size:1.1em;width:100%;margin-top:10px}
a{color:#b25b00}.danger{color:#c00}
.form-grid label{display:block;margin:8px 0;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:9px;margin-top:4px;border:1px solid #ccc;border-radius:8px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.filters{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.filters input,.filters select{padding:8px;border-radius:8px;border:1px solid #ccc}
.actions{display:flex;gap:8px;margin-bottom:12px}
.doc{background:#fff;padding:30px;border-radius:12px}.doc-head{display:flex;justify-content:space-between;border-bottom:3px solid #ff8c00;padding-bottom:10px}.doc-head h1 small{color:#ff8c00}.tab th{background:#141414;color:#fff}.tot{text-align:right;margin-top:10px}.grand{font-size:1.5em;color:#b25b00}.firme{display:flex;justify-content:space-between;margin-top:40px}
.login-body{background:#141414;display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{background:#fff;padding:30px;border-radius:16px;width:360px;text-align:center}.login-card h1{color:#ff8c00;margin:0}.login-card .sub{opacity:.6}.login-card form{text-align:left}.login-card input{width:100%;padding:10px;margin:5px 0 12px;border:1px solid #ccc;border-radius:8px}.login-card button{width:100%}.hint{font-size:.8em;background:#fafafa;padding:10px;border-radius:8px}
.foot{text-align:center;padding:20px;opacity:.6;font-size:.85em}
@media print{.noprint,.topbar,.foot,.flash{display:none!important}.wrap{margin:0;max-width:none}.doc{box-shadow:none}body{margin:0}}
@page{size:A4;margin:0}
@media(max-width:700px){.row2,.row3{grid-template-columns:1fr}}
