:root{--bg:#121212;--bg-sidebar:#1e1e1e;--bg-card:#252525;--bg-cell:#2d2d2d;--text:#e0e0e0;--text-dim:#888;--accent:#bb86fc;--accent-hover:#cf96ff;--danger:#cf6679;--weekend:#ef5350;--holiday:#ffab91;--border:#333}*{box-sizing:border-box;margin:0;padding:0}body{background:#121212;background:var(--bg);color:#e0e0e0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,sans-serif}.app-container{display:flex;min-height:100vh;width:100%}.sidebar{background:#1e1e1e;background:var(--bg-sidebar);border-right:1px solid #333;border-right:1px solid var(--border);height:100%;padding:16px 0;position:fixed;width:180px}.brand{color:#bb86fc;color:var(--accent);font-size:20px;font-weight:600;margin-bottom:8px;padding:12px 20px}.sidebar a,.sidebar button{background:#0000;border:none;color:#888;color:var(--text-dim);cursor:pointer;display:block;font-size:14px;padding:12px 20px;text-align:left;text-decoration:none;width:100%}.sidebar a:hover,.sidebar button:hover{background:#2d2d2d;background:var(--bg-cell);color:#e0e0e0;color:var(--text)}.sidebar .logout{color:#cf6679;color:var(--danger);margin-top:400px}.main{flex:1 1;margin-left:180px;max-width:100%;padding:20px;width:calc(100% - 180px)}.login-page{align-items:center;background:#121212;background:var(--bg);display:flex;justify-content:center;min-height:100vh}.login-form{background:#252525;background:var(--bg-card);border-radius:8px;padding:40px;width:320px}.login-form h2{margin-bottom:24px;text-align:center}.login-form input{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text);margin-bottom:12px;padding:12px;width:100%}.login-form button{background:#bb86fc;background:var(--accent);border:none;border-radius:4px;color:#000;font-weight:600;padding:12px;width:100%}.error-box{background:#cf667933;border-radius:4px;color:#cf6679;color:var(--danger);font-size:14px;margin-bottom:12px;padding:10px;text-align:center}.page{max-width:100%;width:100%}.page h2{font-size:24px;margin-bottom:20px}.dashboard{max-width:100%;width:100%}.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.header h1{font-size:28px}.nav-buttons button{background:#252525;background:var(--bg-card);border:1px solid #333;border:1px solid var(--border);border-radius:50%;color:#e0e0e0;color:var(--text);cursor:pointer;height:32px;margin-left:4px;width:32px}.nav-buttons button:hover{background:#bb86fc;background:var(--accent);color:#000}.holidays-bar{background:#ffab9126;border-radius:4px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:10px}.holiday-tag{background:#ffab914d;border-radius:4px;color:#ffab91;color:var(--holiday);font-size:12px;padding:4px 8px}.workers-list{display:flex;flex-direction:column;gap:12px;min-width:100%;overflow-x:auto;width:100%}.worker-row{background:#252525;background:var(--bg-card);border-radius:8px;min-width:fit-content;overflow:hidden;width:100%}.worker-info{align-items:center;background:#2d2d2d;background:var(--bg-cell);border-bottom:1px solid #333;border-bottom:1px solid var(--border);display:flex;gap:12px;padding:10px 14px}.worker-code{color:#bb86fc;color:var(--accent);font-size:13px;font-weight:600}.worker-name{font-size:14px}.days-grid{display:flex;flex-direction:row;flex-wrap:nowrap;gap:2px;min-width:100%;overflow-x:auto;padding:8px;width:100%}.day-cell{align-items:center;background:#2d2d2d;background:var(--bg-cell);border-radius:4px;cursor:pointer;display:flex;flex:1 0 45px;flex-direction:column;justify-content:flex-start;max-width:65px;min-height:55px;min-width:45px;padding:4px 2px;position:relative}.day-cell:hover{background:#3d3d3d}.day-label{color:#888;color:var(--text-dim);font-size:9px;text-transform:uppercase}.day-num{font-size:12px;font-weight:500}.day-holiday{color:#ffab91;color:var(--holiday);font-size:7px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.day-status{font-size:9px;font-weight:700}.day-status.stato-r{color:#e65100}.day-status.stato-altro{color:#c62828;font-weight:700}.day-hours{color:#bb86fc;color:var(--accent);font-size:9px}.day-cell.weekend .day-label,.day-cell.weekend .day-num{color:#ef5350;color:var(--weekend)}.day-cell.weekend{background:#ef535026}.day-cell.holiday{background:#ffab9133;border:1px solid #ffab91;border:1px solid var(--holiday)}.day-cell.holiday .day-holiday,.day-cell.holiday .day-label,.day-cell.holiday .day-num{color:#ffab91;color:var(--holiday)}.day-cell.lavorato{background:#bb86fc26}.day-cell.r{background:#ffb74d33}.day-cell.r .day-status{background:#0000;color:#e65100;font-weight:700}.day-cell.stato-assenza{background:linear-gradient(135deg,#f443364d,#f4433626)}.day-cell.stato-assenza .day-status{color:#c62828;font-size:11px;font-weight:700}.day-cell.f{background:linear-gradient(135deg,#4caf504d,#4caf5026)}.day-cell.f .day-status{color:#2e7d32;font-size:11px;font-weight:700}.day-cell.r{background:#ffb74d4d}.day-cell.r .day-status,.day-cell.ts .day-status{color:inherit;font-size:10px;font-weight:700}.modal-overlay{align-items:center;background:#000c;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal-box{background:#252525;background:var(--bg-card);border-radius:8px;padding:24px;width:340px}.modal-box h3{margin-bottom:4px}.modal-date{color:#888;color:var(--text-dim);font-size:14px;margin-bottom:16px}.form-fields{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{color:#888;color:var(--text-dim);font-size:12px}.form-field input,.form-field select,.form-fields input,.form-fields select{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text);padding:10px;width:100%}.modal-actions{display:flex;gap:8px;margin-top:16px}.btn-save{background:#bb86fc;background:var(--accent);border:none;border-radius:4px;color:#000;font-weight:600}.btn-cancel,.btn-save{cursor:pointer;flex:1 1;padding:10px}.btn-cancel{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text)}.form-box{background:#252525;background:var(--bg-card);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:16px}.form-box input,.form-box select{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text);flex:1 1;min-width:140px;padding:10px}.form-box button{background:#bb86fc;background:var(--accent);border:none;border-radius:4px;color:#000;cursor:pointer;font-weight:600;padding:10px 20px}.data-table{background:#252525;background:var(--bg-card);border-collapse:collapse;border-radius:8px;width:100%}.data-table td,.data-table th{border-bottom:1px solid #333;border-bottom:1px solid var(--border);padding:12px;text-align:left}.data-table th{color:#888;color:var(--text-dim);font-size:11px;text-transform:uppercase}.data-table button,.data-table th,.data-table tr:hover{background:#2d2d2d;background:var(--bg-cell)}.data-table button{border:none;border-radius:4px;cursor:pointer;margin-right:4px;padding:6px 10px}.data-table button:hover{background:#bb86fc;background:var(--accent);color:#000}.code{background:#2d2d2d;background:var(--bg-cell);border-radius:3px;color:#bb86fc;color:var(--accent);font-size:12px;padding:3px 6px}.filters{background:#252525;background:var(--bg-card);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:16px}.filters input,.filters select{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text);padding:10px}.filters button{background:#bb86fc;background:var(--accent);border:none;border-radius:4px;color:#000;cursor:pointer;font-weight:600;padding:10px 16px}.no-workers-box{background:#252525;background:var(--bg-card);border:2px dashed #333;border:2px dashed var(--border);border-radius:8px;padding:48px}.loading,.no-workers-box{color:#888;color:var(--text-dim);text-align:center}.loading{padding:40px}.cantieri-section{border-top:1px solid #333;border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.cantieri-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.cantieri-header span{font-size:14px;font-weight:500}.btn-add-cantiere{background:#bb86fc;background:var(--accent);border:none;border-radius:4px;color:#000;cursor:pointer;font-size:12px;padding:6px 12px}.cantiere-row{align-items:center;display:flex;gap:8px;margin-bottom:8px}.cantiere-row select{flex:1 1}.cantiere-row input,.cantiere-row select{background:#2d2d2d;background:var(--bg-cell);border:1px solid #333;border:1px solid var(--border);border-radius:4px;color:#e0e0e0;color:var(--text);padding:8px}.cantiere-row input{width:80px}.legend{background:#252525;background:var(--bg-card);border-radius:8px;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px;padding:12px 16px}.legend-item{align-items:center;display:flex;font-size:13px;gap:8px}.legend-color{border-radius:3px;height:16px;width:16px}.legend-lavorate{background:#4caf50}.legend-straordinario{background:#ff9800}.legend-reperibilita{background:#ffc107}.legend-trasferta{background:#2196f3}.hours-display{display:flex;flex-wrap:wrap;font-size:9px;font-weight:600;gap:2px;justify-content:center;margin-top:2px}.hour-lavorate{color:#4caf50}.hour-straordinario{color:#ff9800}.hour-reperibilita{color:#ffc107}.hour-trasferta{color:#2196f3}.btn-remove{background:#cf6679;background:var(--danger);border:none;border-radius:4px;color:#000;cursor:pointer;font-size:12px;padding:6px 10px}
/*# sourceMappingURL=main.2db3ae2c.css.map*/