*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{max-width:900px;margin:0 auto;padding:1rem}.header{border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.header h1{font-size:1.5rem}.header-right{align-items:center;gap:1rem;display:flex}.header-right span{color:#666;font-size:.875rem}.login-page{background:#f0f4f8;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-form{background:#fff;border-radius:12px;width:100%;max-width:380px;padding:2rem;box-shadow:0 2px 12px #00000014}.login-form h1{text-align:center;margin-bottom:.25rem}.login-form .subtitle{text-align:center;color:#666;margin-bottom:1.5rem;font-size:.875rem}.login-form input{width:100%;margin-bottom:.75rem}.error{color:#dc2626;margin-bottom:.75rem;font-size:.875rem}input,select,button{border:1px solid #d0d0d0;border-radius:6px;padding:.5rem .75rem;font-size:.875rem}input:focus,select:focus{border-color:#3b82f6;outline:none}button{cursor:pointer}.btn{color:#fff;white-space:nowrap;background:#3b82f6;border:none;font-weight:500}.btn:hover{background:#2563eb}.btn-outline{background:0 0;border:1px solid #d0d0d0}.btn-danger{color:#dc2626;background:0 0;border:1px solid #fca5a5;padding:.25rem .5rem;font-size:.75rem}.btn-danger:hover{background:#fef2f2}.btn-sm{background:0 0;border:1px solid #d0d0d0;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.btn-sm.danger{color:#dc2626;border-color:#fca5a5}.link{color:#3b82f6;font-size:.875rem;text-decoration:none}.link:hover{text-decoration:underline}.muted{color:#888;font-size:.8rem}.card{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 4px #0000000f}.card h3{color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.875rem}.stat{margin-bottom:.5rem;font-size:2rem;font-weight:700}.dashboard-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.quick-links{gap:1rem;display:flex}.card-link{color:#3b82f6;text-align:center;background:#fff;border-radius:8px;flex:1;padding:1rem;font-weight:500;text-decoration:none;display:block;box-shadow:0 1px 4px #0000000f}.card-link:hover{background:#f0f7ff}.inline-form{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.inline-form input,.inline-form select{flex:1;min-width:150px}.table{border-collapse:collapse;width:100%;margin-top:.5rem}.table th,.table td{text-align:left;border-bottom:1px solid #e0e0e0;padding:.5rem .75rem}.table th{color:#888;text-transform:uppercase;font-size:.75rem}.table td{font-size:.875rem}.project-list{gap:.75rem;display:grid}.project-card{align-items:center;gap:1rem;display:flex}.project-title{color:#1a1a1a;flex:1;font-weight:600;text-decoration:none}.project-title:hover{color:#3b82f6}.task-board{grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.task-column{background:#f8f9fa;border-radius:8px;min-height:200px;padding:.75rem}.task-column h3{text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem}.task-card{cursor:pointer;background:#fff;border-radius:6px;margin-bottom:.5rem;padding:.75rem;transition:box-shadow .15s;box-shadow:0 1px 3px #0000000f}.task-card:hover{box-shadow:0 2px 8px #0000001a}.task-card strong{margin-bottom:.35rem;display:block}.task-module{color:#0369a1;background:#e0f2fe;border-radius:3px;margin-right:.35rem;padding:.1rem .4rem;font-size:.65rem;display:inline-block}.task-due{color:#b45309;margin-right:.35rem;font-size:.65rem}.task-test{color:#6b21a8;font-size:.65rem}.task-count{color:#999;margin-left:.5rem;font-size:.7rem}.task-meta{justify-content:space-between;align-items:center;margin-top:.5rem;display:flex}.task-actions{gap:.25rem;display:flex}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:90%;max-width:520px;max-height:85vh;padding:1.5rem;overflow-y:auto;box-shadow:0 8px 32px #0000001f}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-header h2{font-size:1.1rem}.form-group{margin-bottom:.75rem}.form-group label{color:#666;text-transform:uppercase;margin-bottom:.25rem;font-size:.75rem;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid #d0d0d0;border-radius:6px;width:100%;padding:.5rem .65rem;font-size:.875rem}.form-group textarea{resize:vertical}.form-row{gap:.75rem;display:flex}.form-row .form-group{flex:1}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.timesheet-form{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.timesheet-form select,.timesheet-form input{flex:1;min-width:120px}.filter-bar{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.filter-bar label{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.report-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}
