*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a2e;background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:#4361ee;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:0 1rem}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.55rem 1.2rem;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#4361ee}.btn-danger{color:#fff;background:#e63946}.btn-success{color:#fff;background:#2a9d8f}.btn-warning{color:#1a1a2e;background:#e9c46a}.btn-outline{color:#4361ee;background:0 0;border:1px solid #4361ee}.btn-sm{padding:.35rem .8rem;font-size:.8rem}.card{background:#fff;border-radius:10px;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1px 3px #00000014}.badge{text-transform:uppercase;border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-cre{color:#4338ca;background:#e0e7ff}.badge-vie{color:#92400e;background:#fef3c7}.badge-inp{color:#1e40af;background:#dbeafe}.badge-sub{color:#065f46;background:#d1fae5}.badge-don{color:#334155;background:#e2e8f0}.badge-red{color:#991b1b;background:#fee2e2}.status-badge{border-radius:20px;padding:.25rem .7rem;font-size:.75rem;font-weight:600;display:inline-block}.status-badge.created{color:#4338ca;background:#e0e7ff}.status-badge.viewed{color:#92400e;background:#fef3c7}.status-badge.in_progress{color:#1e40af;background:#dbeafe}.status-badge.submitted{color:#065f46;background:#d1fae5}.status-badge.done{color:#334155;background:#e2e8f0}.status-badge.redo{color:#991b1b;background:#fee2e2}.overdue{color:#e63946;font-weight:600}.urgent{border-left:3px solid #e63946}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h1{font-size:1.5rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.3rem;font-size:.9rem;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.6rem;font-family:inherit;font-size:.9rem}.form-group textarea{resize:vertical;min-height:80px}.file-input{text-align:center;cursor:pointer;border:2px dashed #d1d5db;border-radius:8px;padding:1.5rem;transition:border-color .15s}.file-input:hover{border-color:#4361ee}.file-input input{display:none}.job-grid{gap:.75rem;display:grid}.job-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.job-card-info{flex:1;min-width:200px}.job-card-info h3{margin-bottom:.2rem;font-size:1rem}.job-card-info .meta{color:#6b7280;font-size:.8rem}.job-card-actions{align-items:center;gap:.5rem;display:flex}.timeline{padding-left:1.5rem;position:relative}.timeline:before{content:"";background:#e5e7eb;width:2px;position:absolute;top:0;bottom:0;left:.5rem}.timeline-item{padding-bottom:1rem;position:relative}.timeline-item:before{content:"";background:#4361ee;border-radius:50%;width:10px;height:10px;position:absolute;top:.35rem;left:-1rem}.timeline-item .time{color:#9ca3af;font-size:.75rem}.timeline-item .note{margin-top:.15rem;font-size:.85rem}.navbar{color:#fff;background:#1a1a2e;padding:.75rem 0}.navbar .container{justify-content:space-between;align-items:center;display:flex}.navbar-brand{color:#fff;font-size:1.1rem;font-weight:700}.navbar-right{align-items:center;gap:1rem;display:flex}.navbar-right span{opacity:.8;font-size:.85rem}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:380px;padding:2rem;box-shadow:0 4px 20px #00000014}.login-card h1{text-align:center;margin-bottom:1.5rem;font-size:1.3rem}.login-card .error{color:#991b1b;text-align:center;background:#fee2e2;border-radius:6px;margin-bottom:1rem;padding:.5rem;font-size:.85rem}.empty-state{text-align:center;color:#9ca3af;padding:3rem 1rem}.empty-state p{margin-top:.5rem}.job-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.job-filters button{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:20px;padding:.35rem .8rem;font-size:.8rem}.job-filters button.active{color:#fff;background:#4361ee;border-color:#4361ee}.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:450px;padding:1.5rem}.modal h2{margin-bottom:1rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.error-msg{color:#991b1b;background:#fee2e2;border-radius:6px;margin-bottom:1rem;padding:.5rem;font-size:.85rem}.success-msg{color:#065f46;background:#d1fae5;border-radius:6px;margin-bottom:1rem;padding:.5rem;font-size:.85rem}.file-list{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.file-item{background:#f3f4f6;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.8rem;display:flex}.source-file-item{background:#f9fafb;border-radius:6px;align-items:center;gap:.4rem;width:100%;padding:.4rem;display:flex}.source-file-item .btn-danger{margin-left:auto;padding:.15rem .4rem;font-size:.85rem;line-height:1}.source-file-preview{flex:1;align-items:center;gap:.5rem;display:flex}.file-thumb{object-fit:cover;border:1px solid #e5e7eb;border-radius:4px;width:48px;height:48px}.pdf-icon{color:#fff;letter-spacing:.5px;background:#e63946;border-radius:3px;padding:.15rem .3rem;font-size:.6rem;font-weight:700;display:inline-block}.radio-group{gap:1rem;padding:.3rem 0;display:flex}.radio-label{cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.radio-label input[type=radio]{cursor:pointer;width:auto}.job-detail-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.job-detail-grid{grid-template-columns:1fr}}.section-title{color:#374151;margin-bottom:.5rem;font-size:.9rem;font-weight:600}.redo-banner{background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:1rem;padding:.75rem;font-size:.85rem}.redo-banner strong{margin-bottom:.25rem;display:block}.notification-badge{color:#fff;background:#e63946;border-radius:50%;margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem}.spinner{border:2px solid #e5e7eb;border-top-color:#4361ee;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading{justify-content:center;align-items:center;padding:3rem;display:flex}
