*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #1976d2;--secondary-color: #424242;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--background-color: #f5f5f5;--card-background: #ffffff;--text-primary: #212121;--text-secondary: #757575;--border-color: #e0e0e0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-primary)}.app{min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:20px}.header{background-color:var(--primary-color);color:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.header h1{font-size:1.5rem}.header-nav{display:flex;gap:20px;align-items:center}.header-nav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:4px;transition:background-color .2s}.header-nav a:hover{background-color:#ffffff1a}.header-user{display:flex;align-items:center;gap:10px}.header-user button{background-color:#fff3;border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;transition:background-color .2s}.header-user button:hover{background-color:#ffffff4d}.card{background-color:var(--card-background);border-radius:8px;padding:12px;margin-bottom:12px;box-shadow:0 2px 4px #0000001a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.card-title{font-size:1rem;font-weight:600}.btn{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:#1565c0}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover{background-color:#388e3c}.btn-danger{background-color:var(--error-color);color:#fff}.btn-danger:hover{background-color:#d32f2f}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:#212121}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:14px}.form-group textarea{min-height:100px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.table th{background-color:#f5f5f5;font-weight:600}.table tr:hover{background-color:#fafafa}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-new{background-color:#e3f2fd;color:#1976d2}.status-planned{background-color:#fff3e0;color:#f57c00}.status-in_progress{background-color:#e8f5e9;color:#388e3c}.status-waiting_materials{background-color:#fce4ec;color:#c2185b}.status-done{background-color:#e8f5e9;color:#2e7d32}.status-postponed,.status-draft{background-color:#f5f5f5;color:#757575}.status-pending{background-color:#fff3e0;color:#f57c00}.status-approved{background-color:#e8f5e9;color:#2e7d32}.status-rejected{background-color:#ffebee;color:#c62828}.status-active{background-color:#e3f2fd;color:#1976d2}.status-archived{background-color:#f5f5f5;color:#757575}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;font-size:18px;color:var(--text-secondary)}.error{color:var(--error-color);padding:10px;background-color:#ffebee;border-radius:4px;margin-bottom:15px}.success{color:var(--success-color);padding:10px;background-color:#e8f5e9;border-radius:4px;margin-bottom:15px}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 768px){.grid-2,.grid-3{grid-template-columns:1fr}.header{flex-direction:column;gap:10px}.header-nav{flex-wrap:wrap;justify-content:center}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-form{background-color:var(--card-background);padding:40px;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.login-form h2{text-align:center;margin-bottom:30px;color:var(--primary-color)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:15px}.stat-card{background-color:var(--card-background);padding:12px;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.stat-card h3{font-size:1rem;color:var(--primary-color);margin-bottom:2px}.stat-card p{color:var(--text-secondary);font-size:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background-color:var(--card-background);padding:30px;border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{font-size:1.5rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary)}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.empty-state{text-align:center;padding:40px;color:var(--text-secondary)}.empty-state h3{margin-bottom:10px}.progress-container{padding:5px 0}.progress-bar{height:16px;background-color:#e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:5px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--success-color),#66bb6a);border-radius:8px;transition:width .3s ease}.progress-text{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:12px}.status-breakdown{display:flex;flex-direction:column;gap:6px}.status-item{display:flex;align-items:center;gap:8px}.status-item .status-badge{min-width:100px;text-align:center;font-size:10px;padding:2px 4px}.status-bar-container{flex:1;height:12px;background-color:#e0e0e0;border-radius:6px;overflow:hidden}.status-bar{height:100%;border-radius:6px;transition:width .3s ease}.status-bar.status-new{background-color:#1976d2}.status-bar.status-planned{background-color:#f57c00}.status-bar.status-in_progress{background-color:#388e3c}.status-bar.status-waiting_materials{background-color:#c2185b}.status-bar.status-done{background-color:#2e7d32}.status-bar.status-postponed{background-color:#757575}.status-count{min-width:20px;text-align:right;font-weight:500;color:var(--text-primary);font-size:12px}.user-status-counts{display:flex;gap:10px;font-size:12px}.online-count,.offline-count{display:flex;align-items:center;gap:3px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background-color:var(--success-color);box-shadow:0 0 4px var(--success-color)}.status-dot.offline{background-color:var(--text-secondary)}.user-status-list{max-height:150px;overflow-y:auto}.user-status-section{margin-bottom:8px}.user-status-section:last-child{margin-bottom:0}.user-status-section-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;display:flex;align-items:center;gap:4px}.user-list{list-style:none;padding:0;margin:0}.user-item{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-radius:4px;margin-bottom:2px;background-color:#fafafa}.user-item:last-child{margin-bottom:0}.user-item.online{background-color:#e8f5e9}.user-item.offline{background-color:#f5f5f5}.user-info{display:flex;flex-direction:column;gap:1px}.user-name{font-weight:500;color:var(--text-primary);font-size:12px}.you-badge{color:var(--primary-color);font-size:10px}.user-role{font-size:10px;color:var(--text-secondary)}.status-indicator{font-size:10px;font-weight:500;padding:1px 6px;border-radius:8px}.status-indicator.online{background-color:var(--success-color);color:#fff}.last-seen{font-size:10px;color:var(--text-secondary)}
