@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=DM+Sans:ital,wght@0,400;0,500;0,600&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#3b6d11;--primary-light:#5d8a3c;--primary-soft:#8aae5d;--primary-50:#f0f7e8;--primary-100:#d4eab8;--primary-200:#a8d478;--background:#f8faf8;--card:#fff;--border:#e7ece7;--border-strong:#c8d4c6;--text:#1a1f1a;--muted:#6b756b;--subtle:#9ba89b;--success:#2d6a1f;--success-bg:#edf7e6;--warning:#92600a;--warning-bg:#fef9ec;--danger:#b91c1c;--danger-bg:#fef2f2;--info:#1d4ed8;--info-bg:#eff6ff;--bg-primary:var(--card);--bg-secondary:#f2f5f2;--bg-tertiary:#ebf0eb;--text-primary:var(--text);--text-secondary:var(--muted);--text-tertiary:var(--subtle);--green-50:var(--primary-50);--green-100:var(--primary-100);--green-200:var(--primary-200);--green-400:#5aaa30;--green-600:var(--primary);--green-800:#1a4012;--amber-50:var(--warning-bg);--amber-400:#f0b429;--amber-600:var(--warning);--red-50:var(--danger-bg);--red-400:#f87171;--red-600:var(--danger);--blue-50:var(--info-bg);--blue-600:var(--info);--gray-50:#f8fafc;--gray-600:#475569;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f,0 1px 3px #0000000a;--shadow-lg:0 12px 32px #00000014,0 4px 12px #0000000a;--shadow-xl:0 24px 64px #0000001f,0 8px 24px #0000000f;--sidebar-width:240px;--sidebar-width-collapsed:64px}[data-theme=dark]{--background:#101310;--card:#181d18;--border:#2a302a;--border-strong:#3a453a;--text:#f5f7f5;--muted:#8a9e8a;--subtle:#556055;--primary-50:#142010;--primary-100:#1e3318;--primary-200:#2e5022;--primary:#4a9c30;--primary-light:#5d8a3c;--success-bg:#142010;--warning-bg:#2a1e08;--danger-bg:#2a1010;--info-bg:#0d1f3a;--gray-50:#1e2a1c;--bg-primary:#181d18;--bg-secondary:#1e241e;--bg-tertiary:#242c24}body{background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:DM Sans,system-ui,sans-serif;font-size:14px;line-height:1.5}#root{width:100%;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--card);border-right:1px solid var(--border);z-index:50;height:100vh;box-shadow:1px 0 0 var(--border);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 5 Q45 20 30 35 Q15 20 30 5Z' fill='rgba(59,109,17,0.025)'/%3E%3C/svg%3E");background-size:60px 60px;flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;position:fixed;top:0;left:0;overflow-x:hidden}[data-theme=dark] .sidebar{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 5 Q45 20 30 35 Q15 20 30 5Z' fill='rgba(74,156,48,0.04)'/%3E%3C/svg%3E")}.sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar-logo{border-bottom:1px solid var(--border);justify-content:center;align-items:center;min-height:64px;padding:20px 18px 16px;display:flex}[data-theme=dark] .sidebar-logo img{filter:brightness(1.2)saturate(1.1)}.sidebar-collapse-btn{border-radius:var(--radius-md);width:28px;height:28px;color:var(--muted);cursor:pointer;border:1px solid var(--border);background:var(--card);flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.sidebar-collapse-btn:hover{background:var(--primary-50);color:var(--primary);border-color:var(--primary-100)}.sidebar-section{color:var(--subtle);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;padding:20px 12px 6px;font-size:10px;font-weight:700;overflow:hidden}.nav-item{border-radius:var(--radius-md);cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:10px;margin:1px 8px;padding:9px 10px;font-size:13px;font-weight:500;transition:all .18s;display:flex;position:relative;overflow:hidden}.sidebar.collapsed .nav-item{justify-content:center;margin:1px 8px;padding:9px}.sidebar.collapsed .sidebar-section{text-align:center;height:12px;padding:16px 0 6px}.nav-item:hover{background:var(--primary-50);color:var(--primary)}.nav-item.active{background:var(--primary-50);color:var(--primary);font-weight:600}.nav-item.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;margin-left:-8px;position:absolute;top:20%;bottom:20%;left:0}.nav-item svg{flex-shrink:0;width:16px;height:16px}.nav-badge{background:var(--danger);color:#fff;text-align:center;border-radius:20px;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.sidebar-footer{border-top:1px solid var(--border-strong);margin-top:auto;padding:14px 16px}.sidebar.collapsed .sidebar-footer{padding:14px 8px}.dark-toggle{border-radius:var(--radius-md);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin:4px 8px 8px;padding:8px 10px;font-size:12px;transition:background .15s;display:flex}.dark-toggle:hover{background:var(--primary-50);color:var(--primary)}.dark-toggle-pill{background:var(--border-strong);border-radius:10px;flex-shrink:0;width:34px;height:19px;transition:background .2s;position:relative}.dark-toggle-pill.on{background:var(--primary)}.dark-toggle-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:2.5px;left:2.5px;box-shadow:0 1px 3px #0003}.dark-toggle-pill.on .dark-toggle-thumb{transform:translate(15px)}.main-content{margin-left:var(--sidebar-width);flex:1;min-width:0;padding:32px 36px;transition:margin-left .2s;overflow-y:auto}body.sidebar-collapsed .main-content{margin-left:var(--sidebar-width-collapsed)}.page-header{margin-bottom:28px}.page-header h2{letter-spacing:-.03em;color:var(--text);font-family:Sora,sans-serif;font-size:24px;font-weight:700;line-height:1.2}.page-header p{color:var(--muted);margin-top:4px;font-size:13px}.page-header-row{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:22px;transition:box-shadow .2s}[data-theme=dark] .card{box-shadow:0 4px 16px #0000004d}.card:hover{box-shadow:var(--shadow-lg)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--card);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);padding:20px 22px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.stat-card-accent{border-radius:var(--radius-xl) 0 0 var(--radius-xl);width:3px;position:absolute;top:0;bottom:0;left:0}.stat-card-clickable{cursor:pointer}.stat-card-clickable:hover{border-color:var(--primary-100);transform:translateY(-2px);box-shadow:0 8px 24px #0000001a,0 2px 8px #0000000f}.stat-card-clickable:active{transform:translateY(0)}.stat-card-arrow{color:var(--subtle);opacity:0;font-size:14px;transition:opacity .15s,right .15s;position:absolute;bottom:14px;right:14px}.stat-card-clickable:hover .stat-card-arrow{opacity:1;right:10px}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:10px;font-size:11px;font-weight:600;display:flex}.stat-val{letter-spacing:-.03em;margin-bottom:8px;font-family:Sora,sans-serif;font-size:30px;font-weight:700;line-height:1}.stat-val.green{color:var(--primary)}.stat-val.amber{color:var(--warning)}.stat-val.red{color:var(--danger)}.stat-val.blue{color:var(--info)}.grid2{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;display:grid}.section-title{letter-spacing:-.01em;color:var(--text);align-items:center;gap:7px;margin-bottom:16px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;display:flex}.badge{letter-spacing:.01em;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.badge:before{content:"";background:var(--badge-dot,transparent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-green{background:var(--success-bg);color:var(--success);border:1px solid var(--primary-100)}.badge-green:before{background:var(--success)}.badge-amber{background:var(--warning-bg);color:var(--warning);border:1px solid #fde68a}.badge-amber:before{background:var(--amber-400)}.badge-red{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.badge-red:before{background:var(--danger)}.badge-blue{background:var(--info-bg);color:var(--info);border:1px solid #bfdbfe}.badge-blue:before{background:var(--info)}.badge-gray{background:var(--gray-50);color:var(--gray-600);border:1px solid #e2e8f0}.badge-gray:before{background:var(--gray-600)}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text);box-shadow:var(--shadow-sm);align-items:center;gap:7px;padding:9px 18px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;line-height:1;transition:all .18s;display:inline-flex}.btn:hover{background:var(--bg-secondary);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.btn:active{box-shadow:var(--shadow-sm);transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #3b6d114d}.btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light);box-shadow:0 4px 16px #3b6d1166}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:12px}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#fecaca}.btn-danger:hover{background:#fee2e2}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);width:100%;color:var(--text);box-shadow:var(--shadow-sm);outline:none;padding:9px 13px;font-family:DM Sans,sans-serif;font-size:13px;transition:box-shadow .15s,border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b6d111f}textarea{resize:vertical;min-height:76px}label{color:var(--muted);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{margin-bottom:16px}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000080;justify-content:center;align-items:flex-start;padding-top:64px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius-2xl);border:1px solid var(--border);width:580px;max-height:88vh;box-shadow:var(--shadow-xl);padding:28px;animation:.22s cubic-bezier(.34,1.4,.64,1) modalIn;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.modal-header h3{letter-spacing:-.02em;font-family:Sora,sans-serif;font-size:18px;font-weight:700}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;display:flex}.list-item{border-radius:var(--radius-lg);border:1px solid var(--border);cursor:pointer;background:var(--card);align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:all .18s;display:flex}.list-item:hover{border-color:var(--primary-100);background:var(--primary-50);box-shadow:var(--shadow-md);transform:translateY(-1px)}.list-item-info{flex:1;min-width:0}.list-item-name{color:var(--text);font-size:13px;font-weight:600}.list-item-sub{color:var(--muted);margin-top:2px;font-size:12px}.tab-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:0;margin-bottom:22px;display:flex;overflow:visible}.tab{cursor:pointer;color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 18px;font-size:13px;font-weight:500;transition:all .18s}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.prog-bar-bg{background:var(--bg-tertiary);border-radius:20px;flex:1;height:7px;overflow:hidden}.prog-bar-fill{background:linear-gradient(90deg,var(--primary-soft),var(--primary));border-radius:20px;height:100%;transition:width .5s}.prog-bar-fill--complete{background:linear-gradient(90deg,var(--primary-100),var(--primary-soft))}.step-item{border-radius:var(--radius-lg);border:1px solid var(--border);cursor:pointer;background:var(--card);align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;transition:all .18s;display:flex}.step-item:hover{border-color:var(--primary-100);background:var(--primary-50)}.step-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.dot-none{background:#d1d5db;border:2px solid #9ca3af}.dot-doing{background:var(--amber-400);border:2px solid var(--warning)}.dot-done{background:var(--primary-soft);border:2px solid var(--primary)}.doc-item{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--card);align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;display:grid}.photo-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.photo-thumb{object-fit:cover;background:var(--bg-secondary);width:100%;height:100px;display:block}.photo-caption{color:var(--muted);padding:7px 10px;font-size:11px;font-weight:500}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-secondary);padding:32px;transition:all .18s}.upload-zone:hover{border-color:var(--primary-soft);background:var(--primary-50)}.orc-row{grid-template-columns:3fr 80px 110px 110px 40px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.orc-header{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:3fr 80px 110px 110px 40px;gap:8px;margin-bottom:8px;padding:0 2px;font-size:11px;font-weight:700;display:grid}.orc-total{border-top:1px solid var(--border);color:var(--text);justify-content:flex-end;margin-top:12px;padding-top:14px;font-size:16px;font-weight:700;display:flex}.orc-row-even{background:var(--bg-secondary);border-radius:var(--radius-sm)}.orc-row-odd{background:var(--card);border-radius:var(--radius-sm)}.search-wrap{margin-bottom:16px;position:relative}.search-wrap svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-wrap input{border-radius:var(--radius-lg);padding-left:38px}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--border);cursor:pointer;background:var(--card);color:var(--muted);border-radius:20px;padding:6px 16px;font-size:12px;font-weight:600;transition:all .15s}.chip:hover,.chip.active{background:var(--primary-50);color:var(--primary);border-color:var(--primary-100)}.back-btn{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-bottom:20px;font-size:13px;font-weight:500;transition:color .15s;display:inline-flex}.back-btn:hover{color:var(--primary)}.valor-falta{color:var(--danger);font-family:Sora,sans-serif;font-size:22px;font-weight:700}.ai-loading{color:var(--primary);align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin;display:inline-block}.top-cliente{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.top-cliente:last-child{border-bottom:none}.rank-num{border-radius:var(--radius-md);background:var(--primary-50);width:30px;height:30px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.22s ease-out fadeInUp}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);border-radius:var(--radius-md);background-size:800px 100%;animation:1.6s infinite shimmer}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background:0 0}body,.modal,.main-content{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.login-card input::placeholder{color:#fff6}.login-card input:focus{border-color:#fff6!important;box-shadow:0 0 0 3px #ffffff1a!important}.login-card input:-webkit-autofill{caret-color:#fff;transition:background-color 9999s ease-in-out;-webkit-text-fill-color:#fff!important;font-family:DM Sans,sans-serif!important;-webkit-box-shadow:inset 0 0 0 1000px #ffffff14!important}.login-card input:-webkit-autofill:hover{caret-color:#fff;transition:background-color 9999s ease-in-out;-webkit-text-fill-color:#fff!important;font-family:DM Sans,sans-serif!important;-webkit-box-shadow:inset 0 0 0 1000px #ffffff14!important}.login-card input:-webkit-autofill:focus{caret-color:#fff;transition:background-color 9999s ease-in-out;-webkit-text-fill-color:#fff!important;font-family:DM Sans,sans-serif!important;-webkit-box-shadow:inset 0 0 0 1000px #ffffff14!important}.login-card input:-webkit-autofill:active{caret-color:#fff;transition:background-color 9999s ease-in-out;-webkit-text-fill-color:#fff!important;font-family:DM Sans,sans-serif!important;-webkit-box-shadow:inset 0 0 0 1000px #ffffff14!important}.empty-state{text-align:center;color:var(--muted);padding:56px 24px}.table{border-collapse:collapse;width:100%;font-size:13px}.table thead th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1.5px solid var(--border);white-space:nowrap;padding:9px 14px;font-size:11px;font-weight:700}.table tbody td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:12px 14px;line-height:1.4}.table tbody tr{transition:background-color .12s}.table tbody tr:hover{background:var(--bg-secondary)}.table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--green-600)}.table tbody tr:last-child td{border-bottom:none}@media (prefers-reduced-motion:reduce){.table tbody tr{transition:none}}
