:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1f232c;--border: #2a2f3a;--text: #e8eaed;--text-muted: #9aa1ac;--accent: #ff7a1a;--accent-2: #2fb872;--danger: #e5484d;--warn: #e5a94d;--radius: 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:1rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:8px}.brand-logo{width:28px;height:28px;border-radius:6px}.topbar h1{font-size:1.1rem;margin:0}.topbar .user-info{font-size:.85rem;color:var(--text-muted);white-space:nowrap}@media (max-width: 420px){.topbar .user-info{display:none}}.tabbar{display:flex;gap:4px;padding:8px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.tabbar button{background:transparent;border:none;color:var(--text-muted);padding:8px 14px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.tabbar button.active{background:var(--surface-2);color:var(--text)}main{flex:1;padding:16px;max-width:900px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.card h3{margin:0 0 6px}.card .meta{color:var(--text-muted);font-size:.9rem}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.badge.ok{background:#2fb87226;color:var(--accent-2)}.badge.warn{background:#e5a94d26;color:var(--warn)}.badge.danger{background:#e5484d26;color:var(--danger)}.badge.neutral{background:#9aa1ac26;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:var(--radius);cursor:pointer;font-weight:600}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.btn.ok{background:var(--accent-2)}.btn.warn{background:var(--warn);color:#1a1300}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-muted)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.event-card{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;cursor:pointer;transition:transform .1s,border-color .15s}.event-card:active{transform:scale(.99)}.event-card.stato-pianificato{border-left-color:var(--text-muted)}.event-card.stato-confermato{border-left-color:var(--accent-2)}.event-card.stato-concluso{border-left-color:var(--border);opacity:.65}.event-card.stato-annullato{border-left-color:var(--danger);opacity:.6}.event-date-chip{flex-shrink:0;width:54px;height:54px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center}.event-date-day{font-size:1.3rem;font-weight:700;line-height:1.1}.event-date-month{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.event-card-body{flex:1;min-width:0}.event-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}.event-card-header h3{margin:0;font-size:1.05rem}.event-card-row{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.85rem;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card-tags{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.load-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:14px 12px;margin-bottom:8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:1rem;transition:background .15s,border-color .15s}.load-row:active{transform:scale(.99)}.load-row-icon{font-size:1.3rem;line-height:1}.load-row-text{flex:1;display:flex;flex-direction:column;gap:2px}.load-row-stato{font-size:.8rem;font-weight:600;white-space:nowrap}.load-state-0{background:var(--surface-2);border-color:var(--border)}.load-state-0 .load-row-stato{color:var(--text-muted)}.load-state-1{background:#2fb87224;border-color:var(--accent-2)}.load-state-1 .load-row-stato{color:var(--accent-2)}.load-state-2{background:#2fb87247;border-color:var(--accent-2)}.load-state-2 .load-row-stato{color:var(--accent-2)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;width:100%;max-width:380px}.error-text{color:var(--danger);font-size:.9rem;margin-top:8px}.muted{color:var(--text-muted)}.section-title{margin:24px 0 8px;font-size:1rem;color:var(--text-muted)}@media (max-width: 480px){main{padding:12px}.card{padding:12px}}.print-section-title{margin-top:22px;margin-bottom:8px;font-size:1.05rem;border-bottom:2px solid var(--border);padding-bottom:4px}.print-box{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:10px 0}.print-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:.9rem}.print-table th,.print-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.print-table th{color:var(--text-muted);font-weight:600}@media print{.topbar,.tabbar,.no-print{display:none!important}body{background:#fff;color:#000}.print-sheet{color:#000}main{max-width:100%;padding:0}.print-section-title{border-bottom:2px solid #000}.print-box{background:#f5f5f5;border-color:#ccc}.print-table th,.print-table td{border-bottom:1px solid #ccc}}
