.admin-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--canvas)}.admin-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:16px 32px;display:flex;align-items:center;gap:24px;flex-shrink:0}.admin-header .brand{color:#fff;font-weight:800;font-size:15px;letter-spacing:.5px;text-transform:uppercase;margin-right:auto}.admin-nav{display:flex;gap:4px;align-items:center}.admin-nav a{color:var(--header-subtitle);text-decoration:none;font-size:14px;font-weight:600;padding:8px 14px;border-radius:6px;transition:all .15s ease}.admin-nav a:hover{color:#fff;background:#1a1a1a}.admin-nav a.current{color:#fff;background:#1f1f1f}.admin-body{flex:1;overflow-y:auto;padding:32px}.admin-main{max-width:1100px;margin:0 auto}.admin-main h1{font-size:26px;font-weight:800;margin-bottom:6px;color:var(--text-main)}.admin-main h2{font-size:17px;font-weight:800;margin:28px 0 12px;color:var(--text-main)}.admin-main .lead{color:var(--text-muted);font-size:14px;margin-bottom:24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:13px;font-weight:700;color:var(--text-main)}.field .hint{font-size:12px;color:var(--text-muted)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=file],.field select{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-family:Inter,sans-serif;font-size:14px;background:var(--surface);color:var(--text-main)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent-tech);box-shadow:0 0 0 3px var(--focus-ring)}.row{display:flex;gap:16px;flex-wrap:wrap}.row>.field{flex:1;min-width:220px}.btn{padding:10px 18px;border:none;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;background:var(--btn-neutral-bg);color:var(--text-main);text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--btn-neutral-hover-bg);color:var(--btn-neutral-hover-fg)}.btn.primary{background:var(--accent-tech);color:#fff}.btn.primary:hover{filter:brightness(1.1);background:var(--accent-tech);color:#fff}.btn.danger{background:transparent;color:#dc2626;border:1px solid #fecaca}.btn.danger:hover{background:#dc2626;color:#fff}:root[data-theme=dark] .btn.danger{color:#f87171;border-color:#7f1d1d}.btn.small{padding:6px 10px;font-size:12.5px}.actions{display:flex;gap:10px;align-items:center;margin-top:20px;flex-wrap:wrap}.alert{padding:12px 16px;border-radius:6px;font-size:14px;font-weight:600;margin-bottom:20px}.alert.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.alert.ok{background:var(--tag-func-bg);color:var(--tag-func-fg);border:1px solid currentColor}.alert.warn{background:var(--tag-proj-bg);color:var(--tag-proj-fg);border:1px solid currentColor}:root[data-theme=dark] .alert.error{background:#2a1113;color:#fca5a5;border-color:#7f1d1d}table.admin-table{width:100%;border-collapse:collapse;font-size:14px}table.admin-table th{text-align:left;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--tree-label);padding:8px 10px;border-bottom:1px solid var(--border)}table.admin-table td{padding:10px;border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle}table.admin-table tr:hover td{background:var(--hover-bg)}table.admin-table td.right,table.admin-table th.right{text-align:right;white-space:nowrap}table.admin-table a{color:var(--accent-tech);font-weight:600;text-decoration:none}table.admin-table a:hover{text-decoration:underline}.stat-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;min-width:150px;flex:1}.stat .value{font-size:28px;font-weight:800;color:var(--text-main);line-height:1.1}.stat .label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.assign-group{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;overflow:hidden}.assign-group>summary{padding:10px 14px;font-weight:700;font-size:13.5px;cursor:pointer;background:var(--hover-bg);color:var(--text-main)}.assign-list{padding:10px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px}.assign-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:5px;font-size:13px;color:var(--text-main)}.assign-item:hover{background:var(--hover-bg)}.assign-item .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-item.sub .name{padding-left:14px;color:var(--text-muted)}.assign-item.top{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:7px}.assign-item.top .name{font-weight:600}.assign-item select{font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text-main)}.assign-item input[type=checkbox]{accent-color:var(--accent-tech);width:15px;height:15px;flex-shrink:0}.assign-item label.leader{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--text-muted);white-space:nowrap}.login-shell{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--canvas)}.login-box{width:380px;max-width:calc(100vw - 40px)}.login-box .panel{margin-bottom:0}.login-box h1{font-size:20px;margin-bottom:4px}.salute-voce{border-left:3px solid var(--border);padding:2px 0 2px 14px;margin-bottom:18px}.salute-voce:last-child{margin-bottom:0}.salute-voce.da-fare{border-left-color:var(--tag-proj-fg)}.salute-testa{display:flex;align-items:center;gap:10px;margin-bottom:6px}.salute-titolo{font-size:13.5px;font-weight:700;color:var(--text-main)}.salute-conto{font-size:12px;font-weight:700;line-height:1;padding:4px 9px;border-radius:999px;background:var(--reset-bg);color:var(--text-muted)}.salute-voce.da-fare .salute-conto{background:var(--tag-proj-bg);color:var(--tag-proj-fg)}.salute-corpo{margin:0;font-size:14px;line-height:1.6;color:var(--text-main)}.salute-corpo.sano{color:var(--text-muted)}.salute-dove{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;color:var(--accent-tech);text-decoration:none}.salute-dove:hover{text-decoration:underline}.salute-ripartizione{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.salute-ripartizione li{display:flex;align-items:baseline;gap:12px;padding:9px 2px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text-main)}.salute-ripartizione li .voce{flex:1;min-width:0;color:var(--text-muted)}.salute-ripartizione li .conto{font-weight:700;font-variant-numeric:tabular-nums}.salute-ripartizione li.vuoto .voce,.salute-ripartizione li.vuoto .conto{color:var(--tag-proj-fg)}.salute-persone{margin:0;font-size:14px;line-height:1.9;color:var(--text-main)}.salute-persone a{color:var(--accent-tech);font-weight:600;text-decoration:none}.salute-persone a:hover{text-decoration:underline}.salute-persone .sep{color:var(--text-muted)}.stat .value a{color:var(--accent-tech);text-decoration:none}.stat .value a:hover{text-decoration:underline}
