:root{--blue: #2563eb;--blue-light: #dbeafe;--blue-dark: #1d4ed8;--green: #059669;--green-light: #d1fae5;--red: #dc2626;--red-light: #fee2e2;--yellow: #d97706;--yellow-light: #fef3c7;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-600: #4b5563;--gray-800: #1f2937;--white: #ffffff;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--radius: 12px;--radius-sm: 8px;--nav-height: 64px;--top-bar-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--gray-50);color:var(--gray-800);min-height:100vh;padding-bottom:calc(var(--nav-height) + 16px)}body.auth-body{padding:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1d4ed8,#2563eb,#3b82f6);min-height:100vh}img{max-width:100%;height:auto;display:block}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit;border:none;outline:none}input,select,textarea{font-family:inherit;outline:none}.top-bar{position:fixed;top:0;left:0;right:0;height:var(--header);background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;z-index:100}.app-name{font-weight:800;font-size:1.05rem;color:var(--accent);letter-spacing:-.3px}.btn-logout{background:none;color:var(--gray-600);font-size:.8rem;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--gray-200);transition:all .2s}.btn-logout:hover{background:var(--gray-100)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:var(--white);border-top:1px solid var(--gray-200);display:flex;box-shadow:0 -4px 6px -1px #0000000d;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--gray-400);transition:color .2s;padding:8px 0}.nav-item.active{color:var(--blue)}.nav-item:active{background:var(--gray-50)}.nav-icon{font-size:1.3rem;line-height:1}.nav-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.page-content{max-width:640px;margin:0 auto;padding:16px 16px 0}.page-header{margin-bottom:16px}.page-header h1{font-size:1.35rem;font-weight:700}.btn-primary{background:var(--blue);color:var(--white);padding:12px 20px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;transition:background .2s,transform .1s;display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn-primary:hover{background:var(--blue-dark)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--gray-100);color:var(--gray-800);padding:10px 18px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;transition:background .2s}.btn-secondary:hover{background:var(--gray-200)}.btn-danger{background:var(--red);color:var(--white);padding:10px 18px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;transition:background .2s}.btn-danger:hover{background:#b91c1c}.btn-full{width:100%}.form-card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{font-size:.85rem;font-weight:600;color:var(--gray-600)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.95rem;color:var(--gray-800);background:var(--white);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}textarea{resize:vertical;min-height:80px}.file-input{padding:8px;border:1.5px dashed var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.photo-preview{border-radius:var(--radius-sm);overflow:hidden;max-height:200px}.photo-preview img{width:100%;height:200px;object-fit:cover}.part-item{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-bottom:8px}.part-item:last-child{margin-bottom:0}.btn-remove-part{background:var(--red-light);color:var(--red);border:none;width:32px;height:32px;border-radius:6px;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-add-part{background:none;color:var(--blue);border:1.5px dashed var(--blue);padding:8px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;width:100%;margin-top:8px;transition:background .2s}.btn-add-part:hover{background:var(--blue-light)}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px;margin-bottom:12px}.alert-success{background:var(--green-light);color:var(--green)}.alert-error{background:var(--red-light);color:var(--red)}.warranty-alert{background:var(--yellow-light);border:1.5px solid #fcd34d;border-radius:var(--radius-sm);padding:12px 16px;font-size:.85rem;color:#92400e;margin-bottom:12px}.error-msg{background:var(--red-light);color:var(--red);padding:10px 14px;border-radius:var(--radius-sm);font-size:.9rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;gap:12px;color:var(--gray-400)}.spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.no-data{text-align:center;padding:48px 16px;color:var(--gray-400);display:flex;flex-direction:column;align-items:center;gap:16px}.no-data p{font-size:1rem}.search-container{margin-bottom:12px}.search-input{width:100%;padding:10px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:.95rem;background:var(--white)}.search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.clients-grid{display:flex;flex-direction:column;gap:12px}.client-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s}.client-card:hover{box-shadow:var(--shadow-md)}.card-photo{width:100%;height:160px;overflow:hidden;background:var(--gray-100)}.card-photo img{width:100%;height:100%;object-fit:cover}.no-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--gray-400)}.card-body{padding:14px}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.card-header h3{font-size:1rem;font-weight:700;line-height:1.3}.status-badge{padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;white-space:nowrap;flex-shrink:0}.status-badge.paid{background:var(--green-light);color:var(--green)}.status-badge.pending{background:var(--yellow-light);color:var(--yellow)}.card-details{display:flex;gap:16px;font-size:.85rem;color:var(--gray-600);margin-bottom:8px}.warranty-row{margin-bottom:8px}.warranty-badge{font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:20px;display:inline-block}.warranty-badge.ok{background:var(--green-light);color:var(--green)}.warranty-badge.warning{background:var(--yellow-light);color:var(--yellow)}.warranty-badge.critical{background:var(--red-light);color:var(--red)}.warranty-badge.expired{background:var(--gray-100);color:var(--gray-400)}.parts-mini{font-size:.8rem;color:var(--gray-600);margin-bottom:6px}.observations{font-size:.82rem;color:var(--gray-600);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--gray-100)}.btn-whatsapp{background:#25d366;color:#fff;padding:8px 12px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;transition:background .2s}.btn-whatsapp:hover{background:#1ea952}.btn-edit{background:var(--blue-light);color:var(--blue);padding:8px 12px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;transition:background .2s}.btn-edit:hover{background:#bfdbfe}.btn-delete{background:var(--red-light);color:var(--red);padding:8px 12px;border-radius:var(--radius-sm);font-size:.9rem;transition:background .2s}.btn-delete:hover{background:#fecaca}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:0}.modal-content{background:var(--white);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;padding:20px;animation:slideUp .25s ease-out}.modal-sm{max-height:60vh}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-header h2{font-size:1.1rem;font-weight:700}.modal-close{background:var(--gray-100);border:none;width:32px;height:32px;border-radius:50%;font-size:1.1rem;color:var(--gray-600);display:flex;align-items:center;justify-content:center;transition:background .2s}.modal-close:hover{background:var(--gray-200)}.modal-form{box-shadow:none;padding:0}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.month-selector-wrap{margin-bottom:16px}.month-select{width:100%;padding:10px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.95rem;background:var(--white);font-weight:600;color:var(--gray-800)}.month-select:focus{border-color:var(--blue)}.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.report-card{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.report-card.blue{background:var(--blue-light)}.report-card.red{background:var(--red-light)}.report-card.green{background:var(--green-light)}.report-card.full-width{grid-column:1 / -1}.highlight-card{box-shadow:var(--shadow-md)}.report-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);margin-bottom:8px}.report-value{font-size:1.3rem;font-weight:800;color:var(--gray-800);line-height:1.2}.report-sub{font-size:.75rem;color:var(--gray-600);margin-top:4px}.summary-list{display:flex;flex-direction:column;gap:8px}.summary-row{display:flex;justify-content:space-between;font-size:.85rem}.summary-row span{color:var(--gray-600)}.text-green{color:var(--green)}.text-red{color:var(--red)}.top-clients-list{display:flex;flex-direction:column;gap:8px}.top-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--gray-50);border-radius:var(--radius-sm);font-size:.88rem}.top-name{font-weight:600}.top-value{color:var(--green);font-weight:700}.action-buttons{display:flex;gap:10px;margin-bottom:16px}.action-buttons .btn-primary{flex:1}.auth-container{width:100%;max-width:380px;padding:16px}.auth-card{background:var(--white);border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow-lg);text-align:center}.auth-logo{font-size:3rem;margin-bottom:12px}.auth-title{font-size:1.35rem;font-weight:800;color:var(--gray-800);margin-bottom:4px}.auth-subtitle{font-size:.9rem;color:var(--gray-400);margin-bottom:24px}.auth-form{display:flex;flex-direction:column;gap:14px;text-align:left}.alert{padding:14px 16px;border-radius:var(--radius-md);font-size:.88rem;font-weight:500;align-items:center;gap:10px;margin-bottom:16px;display:none}.alert.show{display:flex}.auth-footer{margin-top:16px;font-size:.9rem;color:var(--gray-600)}.auth-footer-link{color:var(--blue);font-weight:600;transition:color .2s}.text-label{font-size:.85rem;font-weight:600;color:var(--gray-600)}@media (min-width: 480px){.clients-grid{display:grid;grid-template-columns:1fr 1fr}.card-photo{height:180px}}@media (min-width: 640px){.page-content{padding:20px 20px 0}}
