@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@500;600;700&display=swap";:root{--primary:226 71% 40%;--primary-light:226 80% 55%;--primary-glow:226 71% 40%;--secondary:45 93% 47%;--secondary-hover:45 93% 42%;--success:158 64% 35%;--danger:348 83% 47%;--warning:38 92% 50%;--surface:0 0% 100%;--surface-hover:210 40% 98%;--background:210 28% 97%;--sidebar:0 0% 100%;--sidebar-hover:213 30% 96%;--text-main:222 47% 15%;--text-muted:215 20% 45%;--text-light:215 16% 57%;--border:214 30% 90%;--border-light:214 32% 95%;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 1px 3px #0f172a0a, 0 1px 2px #0f172a08;--shadow-md:0 4px 12px #0f172a0f, 0 2px 4px #0f172a08;--shadow-lg:0 10px 24px #0f172a14, 0 4px 8px #0f172a0a;--shadow-hover:0 16px 32px #0f172a1a, 0 6px 12px #0f172a0d;--shadow-nav:0 1px 0 hsl(var(--border) / .7);--topnav-height:60px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:hsl(var(--background));color:hsl(var(--text-main));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{color:hsl(var(--text-main));letter-spacing:-.015em;font-family:Outfit,Inter,sans-serif;font-weight:600;line-height:1.25}.glass{-webkit-backdrop-filter:blur(20px);background:#fffc;border:1px solid #fff9}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.4375rem;min-height:38px;padding:.5625rem 1.25rem;font-family:Outfit,sans-serif;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;transition:all .2s cubic-bezier(.2,.8,.2,1);display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4);box-shadow:none;transform:none}.btn-primary{background:linear-gradient(135deg, hsl(var(--primary-light)), hsl(var(--primary)));color:#fff;box-shadow:0 3px 12px -2px hsla(var(--primary-glow) / .35)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px -3px hsla(var(--primary-glow) / .45);filter:brightness(1.05);transform:translateY(-1px)}.btn-secondary{background-color:hsl(var(--surface));color:hsl(var(--text-main));border-color:hsl(var(--border));box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background-color:hsl(var(--surface-hover));border-color:hsl(var(--primary) / .25);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-outline{color:hsl(var(--text-main));border-color:hsl(var(--border));background-color:#0000}.btn-outline:hover:not(:disabled){background-color:hsl(var(--surface-hover));border-color:hsl(var(--primary) / .3);color:hsl(var(--primary))}.btn-danger{background-color:hsl(var(--surface));color:hsl(var(--danger));border-color:hsla(var(--danger) / .25)}.btn-danger:hover:not(:disabled){background-color:hsl(var(--danger));color:#fff;box-shadow:0 4px 14px -3px hsla(var(--danger) / .35);transform:translateY(-1px)}.btn-action{border-radius:var(--radius-sm);width:34px;height:34px;color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .18s;display:inline-flex}.btn-action:hover{background:hsl(var(--border) / .5);color:hsl(var(--primary))}.card{background-color:hsl(var(--surface));border-radius:var(--radius-md);border:1px solid hsl(var(--border) / .7);box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .25s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-hover);border-color:hsla(var(--primary) / .12);transform:translateY(-3px)}.input-group{flex-direction:column;gap:.375rem;margin-bottom:1rem;display:flex}.input-label{color:hsl(var(--text-main));letter-spacing:.01em;font-family:Outfit,sans-serif;font-size:.8125rem;font-weight:600}.input-field{border-radius:var(--radius-sm);border:1.5px solid hsl(var(--border));background-color:hsl(var(--surface));color:hsl(var(--text-main));width:100%;min-height:40px;padding:.625rem .875rem;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.input-field::placeholder{color:hsl(var(--text-muted) / .55)}.input-field:hover{border-color:hsl(var(--primary) / .3)}.input-field:focus{border-color:hsl(var(--primary-light));box-shadow:0 0 0 3px hsla(var(--primary) / .1);outline:none}.input-field:disabled{background-color:hsl(var(--background));color:hsl(var(--text-muted));cursor:not-allowed;opacity:.75}select.input-field{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.1em 1.1em;padding-right:2.25rem}.container{width:100%;max-width:1440px;margin:0 auto;padding:0 2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.w-full{width:100%}.h-full{height:100%}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:hsl(var(--text-muted))}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.grid{gap:1.25rem;display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width>=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.app-layout{background-color:hsl(var(--background));height:100vh;display:flex;overflow:hidden}.sidebar{background-color:hsl(var(--sidebar));border-right:1px solid hsl(var(--border) / .6);z-index:20;flex-direction:column;flex-shrink:0;width:256px;transition:width .22s;display:flex;overflow:hidden}.sidebar.collapsed{width:56px}.sidebar-header{border-bottom:1px solid hsl(var(--border) / .5);height:var(--topnav-height);flex-shrink:0;align-items:center;gap:.75rem;padding:0 1.25rem;display:flex;overflow:hidden}.sidebar.collapsed .sidebar-header{justify-content:center;gap:0;padding:0}.sidebar-header h1{letter-spacing:-.02em;background:linear-gradient(110deg, hsl(var(--text-main)), hsl(var(--primary)));-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;background-clip:text;flex:1;margin:0;font-size:1.2rem;font-weight:800;transition:opacity .15s;overflow:hidden}.sidebar.collapsed .sidebar-logo-icon,.sidebar.collapsed .sidebar-header h1{display:none}.sidebar-logo-icon{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.sidebar-toggle-btn{border-radius:var(--radius-sm);border:1px solid hsl(var(--border) / .5);width:28px;height:28px;color:hsl(var(--text-muted));cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:all .15s;display:flex}.sidebar.collapsed .sidebar-toggle-btn{width:36px;height:36px;margin-left:0}.sidebar-toggle-btn:hover{background:hsl(var(--sidebar-hover));color:hsl(var(--primary));border-color:hsl(var(--primary) / .3)}.sidebar-nav{flex-direction:column;flex:1;gap:.125rem;padding:.875rem .625rem;display:flex;overflow:hidden auto}.sidebar.collapsed .sidebar-nav{align-items:center;padding:.875rem .375rem}.nav-item{color:hsl(var(--text-muted));border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.75rem;padding:.5625rem .875rem;font-family:Outfit,sans-serif;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background-color:hsl(var(--sidebar-hover));color:hsl(var(--primary))}.nav-item.active{background-color:hsla(var(--primary) / .08);color:hsl(var(--primary));border-color:hsla(var(--primary) / .1);font-weight:600}.sidebar.collapsed .nav-item{justify-content:center;width:40px;padding:.5625rem}.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-group-label{display:none}.nav-group-label{text-transform:uppercase;letter-spacing:.1em;color:hsl(var(--text-muted) / .65);white-space:nowrap;padding:1rem .875rem .375rem;font-family:Outfit,sans-serif;font-size:.6875rem;font-weight:700}.main-content{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.top-navbar{height:var(--topnav-height);background-color:hsl(var(--surface));border-bottom:1px solid hsl(var(--border) / .7);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:0 1.5rem;display:flex}.topnav-greeting{flex-direction:column;gap:0;min-width:0;display:flex}.topnav-greeting-name{color:hsl(var(--text-main));white-space:nowrap;font-size:.875rem;font-weight:600;line-height:1.35}.topnav-greeting-sub{color:hsl(var(--text-muted));white-space:nowrap;font-size:.72rem;line-height:1.35}.topnav-user{border-left:1px solid hsl(var(--border));align-items:center;gap:.625rem;padding-left:.75rem;display:flex}.topnav-avatar{background:linear-gradient(135deg, hsla(var(--primary) / .15), hsla(var(--primary) / .08));width:32px;height:32px;color:hsl(var(--primary));border:1.5px solid hsl(var(--primary) / .2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;display:flex}.topnav-user-info{flex-direction:column;gap:0;min-width:0;display:flex}.topnav-user-name{color:hsl(var(--text-main));white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:.8125rem;font-weight:600;line-height:1.3;overflow:hidden}.topnav-user-role{color:hsl(var(--text-muted));font-size:.6875rem;line-height:1.3}.content-scroll{flex:1;padding:1.5rem 1.75rem;overflow-y:auto}.table-container{background:hsl(var(--surface));border-radius:var(--radius-md);border:1px solid hsl(var(--border) / .6);box-shadow:var(--shadow-sm);overflow:hidden}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{background-color:hsl(var(--background));color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid hsl(var(--border) / .8);padding:.625rem 1rem;font-family:Outfit,sans-serif;font-size:.6875rem;font-weight:700}.data-table td{border-bottom:1px solid hsl(var(--border) / .5);color:hsl(var(--text-main));vertical-align:middle;padding:.75rem 1rem;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background-color:hsla(var(--primary) / .02)}.tab-header-bg{background-color:hsl(var(--surface));border-bottom:1px solid hsl(var(--border));z-index:10;align-items:flex-end;gap:0;padding:0 1.5rem;display:flex;position:relative}.tab-item{color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4375rem;padding:.8125rem 1rem;font-family:Outfit,sans-serif;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex;position:relative;bottom:-1px}.tab-item:hover{color:hsl(var(--primary));background-color:hsla(var(--primary) / .03)}.tab-item.active{color:hsl(var(--primary));border-bottom:2px solid hsl(var(--primary));font-weight:600}.fade-in{animation:.3s cubic-bezier(.2,.8,.2,1) fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.resource-box{background-color:hsl(var(--background));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-md);padding:1.25rem;position:relative;overflow:hidden}.resource-box.decor-blue{border-color:hsla(var(--primary) / .2)}.resource-box.decor-amber{border-color:hsla(var(--secondary) / .3)}.decor-line{width:3px;height:100%;position:absolute;top:0;left:0}.decor-line.blue{background-color:hsl(var(--primary))}.decor-line.amber{background-color:hsl(var(--secondary))}.resource-box-title{color:hsl(var(--text-main));align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1rem;font-weight:700;display:flex}.resource-list{flex-direction:column;gap:.5rem;display:flex}.resource-item{background-color:hsl(var(--surface));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-sm);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.5625rem .875rem;transition:all .15s;display:flex}.resource-item:hover{border-color:hsla(var(--primary) / .2);box-shadow:var(--shadow-sm)}.resource-title{color:hsl(var(--text-main));white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.875rem;font-weight:600;overflow:hidden}.resource-controls{background-color:hsl(var(--background));border-radius:var(--radius-sm);border:1px solid hsl(var(--border) / .5);flex-shrink:0;align-items:center;gap:.375rem;padding:.1875rem;display:flex}.resource-label{text-transform:uppercase;color:hsl(var(--text-muted));letter-spacing:.06em;white-space:nowrap;font-size:.625rem;font-weight:700}.resource-number{text-align:center;width:54px;padding:.25rem .375rem;font-weight:700}.empty-message{color:hsl(var(--text-muted));text-align:center;background-color:hsl(var(--background));border:1.5px dashed hsl(var(--border));border-radius:var(--radius-md);padding:2.5rem 1rem;font-size:.875rem;font-weight:500}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:2rem;align-items:center;padding:.1875rem .5625rem;font-family:Outfit,sans-serif;font-size:.6875rem;font-weight:600;line-height:1.4;display:inline-flex}.badge-success{background-color:hsla(var(--success) / .1);color:hsl(var(--success));border:1px solid hsla(var(--success) / .2)}.badge-warning{background-color:hsla(var(--warning) / .12);color:#8f6214;border:1px solid hsla(var(--warning) / .25)}.badge-primary{background-color:hsla(var(--primary) / .09);color:hsl(var(--primary));border:1px solid hsla(var(--primary) / .16)}.badge-danger{background-color:hsla(var(--danger) / .09);color:hsl(var(--danger));border:1px solid hsla(var(--danger) / .18)}.page-header{max-width:960px}.form-container{max-width:760px}.page-section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{letter-spacing:-.02em;color:hsl(var(--text-main));font-size:1.5rem;font-weight:700;line-height:1.2}.page-subtitle{color:hsl(var(--text-muted));margin-top:.25rem;font-size:.875rem;font-weight:400}.section-divider{border:none;border-top:1px solid hsl(var(--border) / .7);margin:1.5rem 0}.form-section{border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-md);background-color:hsl(var(--background));margin-bottom:1rem;padding:1rem 1.125rem}.form-section-title{text-transform:uppercase;letter-spacing:.08em;color:hsl(var(--text-muted));margin-bottom:.875rem;font-family:Outfit,sans-serif;font-size:.6875rem;font-weight:700}.bg-amber{background-color:hsl(var(--warning))!important;color:#fff!important}.bg-amber:hover{filter:brightness(.9)!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--text-muted) / .35)}.rdolist-page{flex-direction:column;gap:1.25rem;max-width:1100px;margin:0 auto;animation:.3s fadeIn;display:flex}.rdolist-header{border:1px solid hsl(var(--border) / .8);border-radius:var(--radius-lg);background:linear-gradient(135deg,#1e3fae0a,#0000);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.rdolist-header-left{align-items:center;gap:.875rem;display:flex}.rdolist-header-icon{background:linear-gradient(135deg, hsl(var(--primary-light)), hsl(var(--primary)));color:#fff;width:42px;height:42px;box-shadow:0 4px 12px -2px hsla(var(--primary) / .35);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rdolist-title{margin:0;font-size:1.1rem;font-weight:700;line-height:1.2}.rdolist-subtitle{color:hsl(var(--text-muted));margin:.15rem 0 0;font-size:.78rem}.rdolist-header-right{align-items:center;gap:.75rem;display:flex}.rdolist-count-badge{background:hsl(var(--primary) / .08);color:hsl(var(--primary));border:1px solid hsl(var(--primary) / .15);border-radius:2rem;align-items:center;padding:.3rem .875rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;display:inline-flex}.rdolist-error{background:hsl(var(--danger) / .07);border:1px solid hsl(var(--danger) / .2);border-radius:var(--radius-md);color:hsl(var(--danger));align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.rdolist-search-bar{align-items:center;gap:.75rem;display:flex}.rdolist-search-wrap{flex:1;max-width:420px;position:relative}.rdolist-search-icon{color:hsl(var(--text-muted));pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.rdolist-search-input{padding-left:2.25rem;font-size:.875rem}.rdolist-empty{text-align:center;border:2px dashed hsl(var(--border));border-radius:var(--radius-xl);background:hsl(var(--background));flex-direction:column;justify-content:center;align-items:center;gap:.625rem;padding:4rem 2rem;display:flex}.rdolist-empty-icon{background:hsl(var(--primary) / .06);width:72px;height:72px;color:hsl(var(--primary) / .4);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.rdolist-empty-title{margin:0;font-size:1rem;font-weight:700}.rdolist-empty-desc{color:hsl(var(--text-muted));max-width:360px;margin:0 0 .5rem;font-size:.85rem;line-height:1.5}.rdolist-table-wrap{overflow:hidden}.rdolist-row{cursor:pointer;transition:background .12s}.rdolist-row:hover td{background:hsl(var(--primary) / .03)!important}.rdolist-idx{background:hsl(var(--border) / .6);width:22px;height:22px;color:hsl(var(--text-muted));border-radius:50%;justify-content:center;align-items:center;font-family:Outfit,sans-serif;font-size:.7rem;font-weight:700;display:inline-flex}.rdolist-obra{align-items:center;gap:.4rem;display:flex}.rdolist-obra-icon{color:hsl(var(--primary) / .5);flex-shrink:0}.rdolist-obra-name{color:hsl(var(--text-main));font-size:.875rem;font-weight:600}.rdolist-updated{color:hsl(var(--text-muted));margin-top:.15rem;font-size:.68rem;font-style:italic}.rdolist-data-cell,.rdolist-horario{color:hsl(var(--text-muted));white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.rdolist-actions{justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.rdolist-btn-edit{border-radius:var(--radius-sm);cursor:pointer;background:hsl(var(--primary) / .08);border:1px solid hsl(var(--primary) / .2);color:hsl(var(--primary));white-space:nowrap;justify-content:center;align-items:center;gap:.3rem;padding:.3rem .75rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.rdolist-btn-edit:hover{background:hsl(var(--primary));color:#fff;border-color:hsl(var(--primary))}.rdolist-btn-download{border-radius:var(--radius-sm);border:1px solid hsl(var(--border));background:hsl(var(--surface));width:32px;height:32px;color:hsl(var(--text-muted));cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.rdolist-btn-download:hover:not(:disabled){background:hsl(var(--text-main));color:#fff;border-color:hsl(var(--text-main))}.rdolist-btn-download:disabled{opacity:.55;cursor:not-allowed}.rdolist-btn-delete{border-radius:var(--radius-sm);border:1px solid hsl(var(--danger,0 80% 50%) / .25);background:hsl(var(--danger,0 80% 50%) / .07);width:32px;height:32px;color:hsl(var(--danger,0 72% 45%));cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.rdolist-btn-delete:hover{background:hsl(var(--danger,0 80% 50%));color:#fff;border-color:hsl(var(--danger,0 80% 50%))}.rdolist-del-confirm{color:hsl(var(--danger,0 72% 45%));white-space:nowrap;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;display:inline-flex}.rdolist-del-yes{border-radius:var(--radius-sm);border:1px solid hsl(var(--danger,0 80% 50%));background:hsl(var(--danger,0 80% 50%));color:#fff;cursor:pointer;padding:.2rem .5rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.rdolist-del-no{border-radius:var(--radius-sm);border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));cursor:pointer;padding:.2rem .5rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:600}.eap-editor{flex-direction:column;gap:1.25rem;display:flex}.eap-header{border:1px solid hsl(var(--border) / .8);border-radius:var(--radius-lg);background:linear-gradient(135deg,#1e3fae0a,#1e3fae03);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.eap-header-left{align-items:center;gap:.875rem;display:flex}.eap-header-icon{background:linear-gradient(135deg, hsl(var(--primary-light)), hsl(var(--primary)));color:#fff;width:42px;height:42px;box-shadow:0 4px 12px -2px hsla(var(--primary) / .35);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.eap-header-title{color:hsl(var(--text-main));margin:0;font-size:1.05rem;font-weight:700;line-height:1.2}.eap-header-subtitle{color:hsl(var(--text-muted));margin:.15rem 0 0;font-size:.78rem;font-weight:400}.eap-header-right{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.eap-add-btn{padding:.5rem 1.125rem;font-size:.84rem}.eap-global-weight{border-radius:2rem;align-items:center;gap:.4rem;padding:.35rem .875rem;font-family:Outfit,sans-serif;font-size:.8rem;font-weight:600;display:inline-flex}.eap-global-weight.weight-ok{color:#1a7554;background:#2092681a;border:1px solid #20926840}.eap-global-weight.weight-warn{color:#825b17;background:#f59f0a1a;border:1px solid #f59f0a4d}.eap-new-local-form{border:1.5px dashed hsl(var(--primary) / .35);border-radius:var(--radius-lg);background:hsl(var(--primary) / .02);animation:.25s fadeIn;overflow:hidden}.eap-new-local-form-header{background:hsl(var(--primary) / .06);border-bottom:1px solid hsl(var(--primary) / .12);color:hsl(var(--primary));text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700;display:flex}.eap-new-local-form-body{flex-wrap:wrap;align-items:flex-end;gap:1rem;padding:1.25rem;display:flex}.eap-empty-state{text-align:center;border:2px dashed hsl(var(--border));border-radius:var(--radius-xl);background:hsl(var(--background));flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3.5rem 2rem;display:flex}.eap-empty-icon{background:hsl(var(--primary) / .07);width:72px;height:72px;color:hsl(var(--primary) / .5);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.eap-empty-title{color:hsl(var(--text-main));margin:0;font-size:1rem;font-weight:700}.eap-empty-desc{color:hsl(var(--text-muted));max-width:380px;margin:0;font-size:.85rem;line-height:1.5}.eap-locais-list{flex-direction:column;gap:1rem;display:flex}.eap-local-card{border-radius:var(--radius-lg);border:1px solid var(--local-border,hsl(var(--border)));background:hsl(var(--surface));box-shadow:var(--shadow-sm);transition:box-shadow .2s;overflow:hidden}.eap-local-card:hover{box-shadow:var(--shadow-md)}.eap-local-header{background:var(--local-bg,hsl(var(--background)));border-left:4px solid hsl(var(--primary));cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.125rem;transition:background .15s;display:flex}.eap-local-header:hover{filter:brightness(.97)}.eap-local-header-left{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.eap-local-chevron{color:hsl(var(--text-muted));flex-shrink:0;display:flex}.eap-local-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.eap-local-info{min-width:0}.eap-local-name{color:hsl(var(--text-main));text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9rem;font-weight:700;line-height:1.2;overflow:hidden}.eap-local-meta{align-items:center;gap:.75rem;margin-top:.15rem;display:flex}.eap-local-gps{color:hsl(var(--text-muted));font-feature-settings:"tnum";font-family:JetBrains Mono,monospace;font-size:.7rem}.eap-local-count{color:hsl(var(--text-muted));font-size:.72rem;font-weight:500}.eap-local-header-right{flex-shrink:0;align-items:center;gap:.625rem;display:flex}.eap-peso-badge{white-space:nowrap;border-radius:2rem;align-items:center;gap:.3rem;padding:.2rem .625rem;font-family:Outfit,sans-serif;font-size:.73rem;font-weight:700;display:inline-flex}.eap-peso-badge.peso-ok{color:#1a7554;background:#2092681f;border:1px solid #2092684d}.eap-peso-badge.peso-partial{color:#825b17;background:#f59f0a1f;border:1px solid #f59f0a4d}.eap-peso-badge.peso-empty{background:hsl(var(--border) / .5);color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.eap-catalogo-select{background-color:hsl(var(--primary) / .05);border-color:hsl(var(--primary) / .2);min-width:130px;max-width:200px;min-height:34px;color:hsl(var(--primary));cursor:pointer;padding:.35rem 2rem .35rem .625rem;font-size:.78rem;font-weight:600}.eap-catalogo-select:hover{background-color:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .4)}.eap-catalogo-searchable{flex:none;min-width:200px;max-width:260px}.eap-catalogo-searchable .ss-input{background-color:hsl(var(--primary) / .05);border-color:hsl(var(--primary) / .22);min-height:34px;color:hsl(var(--primary));font-size:.78rem;font-weight:600}.eap-catalogo-searchable .ss-input::placeholder{color:hsl(var(--primary) / .65);font-weight:600}.eap-catalogo-searchable .ss-input:hover{background-color:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .4)}.eap-catalogo-searchable .ss-input:focus{background-color:hsl(var(--surface));border-color:hsl(var(--primary) / .55);box-shadow:0 0 0 3px hsl(var(--primary) / .1);color:hsl(var(--text-main))}.eap-catalogo-searchable .ss-icon{color:hsl(var(--primary) / .55)}.eap-remove-local-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:hsl(var(--danger) / .55);border:1px solid hsl(var(--danger) / .15);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.eap-remove-local-btn:hover{background:hsl(var(--danger));color:#fff;border-color:hsl(var(--danger))}.eap-local-body{background:hsl(var(--background) / .6);border-top:1px solid hsl(var(--border) / .6);padding:1rem}.eap-servicos-empty{text-align:center;color:hsl(var(--text-muted));background:hsl(var(--surface));border:1.5px dashed hsl(var(--border));border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.eap-servicos-empty p{margin:0;font-size:.82rem;line-height:1.5}.eap-servicos-list{flex-direction:column;gap:.625rem;display:flex}.eap-servico-card{background:hsl(var(--surface));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:stretch;transition:box-shadow .2s,border-color .2s;display:flex;overflow:hidden}.eap-servico-card:hover{border-color:hsl(var(--primary) / .2);box-shadow:var(--shadow-md)}.eap-servico-num{border-right:1px solid;flex-shrink:0;justify-content:center;align-items:center;width:34px;min-width:34px;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:800;display:flex}.eap-servico-content{flex-direction:column;flex:1;min-width:0;display:flex}.eap-servico-main{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem .875rem;display:flex}.eap-servico-nome-wrap{flex:1;min-width:160px}.eap-servico-nome{font-size:.85rem;font-weight:600}.eap-servico-field{flex-direction:column;flex-shrink:0;display:flex}.eap-field-sm{width:72px}.eap-field-md{width:100px}.eap-field-label{text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--text-muted));white-space:nowrap;margin-bottom:.2rem;font-family:Outfit,sans-serif;font-size:.67rem;font-weight:700}.eap-input-center{text-align:center;background:hsl(var(--background));font-size:.8rem}.eap-input-right{text-align:right;font-size:.8rem}.eap-input-money{text-align:right;color:#1c7d5a;background:#2092680a;border-color:#20926833;font-size:.8rem;font-weight:600}.eap-input-weight{text-align:center;color:hsl(var(--primary));font-size:.8rem;font-weight:700}.eap-servico-actions{flex-shrink:0;align-items:center;gap:.375rem;margin-left:auto;display:flex}.eap-btn-compose{border-radius:var(--radius-sm);border:1px solid hsl(var(--border));background:hsl(var(--surface));width:32px;height:32px;color:hsl(var(--text-muted));cursor:pointer;justify-content:center;align-items:center;transition:all .15s;display:flex}.eap-btn-compose:hover,.eap-btn-compose.active{background:hsl(var(--primary));color:#fff;border-color:hsl(var(--primary));box-shadow:0 2px 8px -2px hsla(var(--primary) / .4)}.eap-btn-sync{border-radius:var(--radius-sm);color:#1c7d5a;cursor:pointer;background:#2092680f;border:1.5px solid #20926859;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.eap-btn-sync:hover{color:#fff;background:#209268;border-color:#209268;box-shadow:0 2px 8px -2px #20926866}.eap-btn-remove{border-radius:var(--radius-sm);border:1px solid hsl(var(--danger) / .15);width:32px;height:32px;color:hsl(var(--danger) / .6);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.eap-btn-remove:hover{background:hsl(var(--danger));color:#fff;border-color:hsl(var(--danger))}.eap-servico-total-bar{color:hsl(var(--text-muted));border-top:1px solid hsl(var(--border) / .5);background:#20926808;align-items:center;gap:.25rem;padding:.35rem .875rem;font-size:.75rem;display:flex}.eap-servico-total-bar strong{color:#1a7554;font-size:.8rem}.eap-composicao-panel{border-top:1px solid hsl(var(--border) / .7);background:hsl(var(--background));animation:.2s fadeIn}.eap-composicao-header{text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--text-muted));border-bottom:1px solid hsl(var(--border) / .5);align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700;display:flex}.eap-composicao-table-wrap{flex-direction:column;gap:.625rem;padding:.875rem 1rem;display:flex}.eap-composicao-add-bar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.eap-composicao-add-btn{border-radius:var(--radius-sm);cursor:pointer;background:hsl(var(--surface));border:1.5px solid hsl(var(--border));color:hsl(var(--text-muted));align-items:center;gap:.3rem;padding:.3rem .75rem;font-family:Outfit,sans-serif;font-size:.73rem;font-weight:600;transition:all .15s;display:inline-flex}.eap-composicao-add-btn:hover{background:var(--type-color,hsl(var(--primary)));color:#fff;border-color:var(--type-color,hsl(var(--primary)))}.eap-composicao-empty{color:hsl(var(--text-muted));background:hsl(var(--surface));border:1.5px dashed hsl(var(--border));border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.5rem;padding:1rem;font-size:.8rem;font-style:italic;display:flex}.eap-insumo-table{border-collapse:collapse;background:hsl(var(--surface));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-md);width:100%;overflow:hidden}.eap-insumo-table thead tr{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border))}.eap-insumo-table th{text-transform:uppercase;letter-spacing:.07em;color:hsl(var(--text-muted));white-space:nowrap;text-align:left;padding:.45rem .75rem;font-family:Outfit,sans-serif;font-size:.67rem;font-weight:700}.eap-insumo-table tbody tr{border-bottom:1px solid hsl(var(--border) / .5);transition:background .12s}.eap-insumo-table tbody tr:last-child{border-bottom:none}.eap-insumo-table tbody tr:hover{background:hsl(var(--primary) / .02)}.eap-insumo-table td{vertical-align:middle;padding:.35rem .625rem}.col-tipo{width:110px}.col-ud{width:70px}.col-qty{width:96px}.col-action{text-align:center;width:36px}.eap-tipo-badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:3px;align-items:center;padding:.2rem .5rem;font-family:Outfit,sans-serif;font-size:.67rem;font-weight:700;display:inline-flex}.tipo-mo{color:#18338c;background:#1e3fae1a;border:1px solid #1e3fae33}.tipo-eq{color:#3d4a5c;background:#5c6f8a1a;border:1px solid #5c6f8a33}.tipo-mat{color:#795015;background:#c2750a1a;border:1px solid #c2750a38}.tipo-aux{color:#166448;background:#2092681a;border:1px solid #20926838}.eap-table-select{min-height:30px;padding:.25rem 1.75rem .25rem .5rem;font-size:.8rem;font-weight:500}.eap-table-input{min-height:30px;padding:.25rem .375rem;font-size:.8rem}.eap-subform-remove{width:28px;height:28px;color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin:0 auto;padding:0;transition:all .12s;display:flex}.eap-subform-remove:hover{color:hsl(var(--danger));background:hsl(var(--danger) / .08)}@keyframes spin{to{transform:rotate(360deg)}}.catalogo-page{flex-direction:column;gap:1.25rem;animation:.3s fadeIn;display:flex}.catalogo-header{border:1px solid hsl(var(--border) / .8);border-radius:var(--radius-lg);background:linear-gradient(135deg,#1e3fae0a,#0000);flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.catalogo-header-icon{background:linear-gradient(135deg, hsl(var(--primary-light)), hsl(var(--primary)));color:#fff;width:42px;height:42px;box-shadow:0 4px 12px -2px hsla(var(--primary) / .35);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.catalogo-header-text{flex:1;min-width:0}.catalogo-title{color:hsl(var(--text-main));margin:0;font-size:1.1rem;font-weight:700;line-height:1.2}.catalogo-subtitle{color:hsl(var(--text-muted));margin:.15rem 0 0;font-size:.78rem}.catalogo-stats-grid{grid-template-columns:repeat(4,1fr);gap:.875rem;display:grid}@media (width<=900px){.catalogo-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.catalogo-stats-grid{grid-template-columns:1fr 1fr}}.catalogo-stat-card{background:hsl(var(--surface));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:.875rem;padding:1rem 1.125rem;transition:box-shadow .2s,transform .2s;display:flex}.catalogo-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.catalogo-stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.catalogo-stat-total .catalogo-stat-icon,.catalogo-stat-mo .catalogo-stat-icon{color:#18338c;background:#1e3fae1a}.catalogo-stat-mat .catalogo-stat-icon{color:#795015;background:#da840b1f}.catalogo-stat-equip .catalogo-stat-icon{color:#3d4a5c;background:#5c6f8a1a}.catalogo-stat-value{color:hsl(var(--text-main));font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:800;line-height:1}.catalogo-stat-label{color:hsl(var(--text-muted));margin-top:.2rem;font-size:.72rem;font-weight:500;line-height:1.3}.catalogo-toolbar{border-bottom:1px solid hsl(var(--border) / .7);background:hsl(var(--background) / .5);align-items:center;gap:.875rem;padding:.875rem 1.25rem;display:flex}.catalogo-search-wrap{flex:1;max-width:380px;position:relative}.catalogo-search-icon{color:hsl(var(--text-muted));pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.catalogo-search-input{border-radius:var(--radius-sm);border:1.5px solid hsl(var(--border));background-color:hsl(var(--surface));width:100%;color:hsl(var(--text-main));min-height:38px;padding:.5rem .875rem .5rem 2.25rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.catalogo-search-input::placeholder{color:hsl(var(--text-muted) / .55)}.catalogo-search-input:hover{border-color:hsl(var(--primary) / .3)}.catalogo-search-input:focus{border-color:hsl(var(--primary-light));box-shadow:0 0 0 3px hsla(var(--primary) / .1);outline:none}.catalogo-count-badge{background:hsl(var(--primary) / .08);color:hsl(var(--primary));border:1px solid hsl(var(--primary) / .15);white-space:nowrap;border-radius:2rem;align-items:center;padding:.3rem .875rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;display:inline-flex}.catalogo-loading{color:hsl(var(--text-muted));flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:4rem 2rem;font-size:.85rem;display:flex}.catalogo-spinner{border:3px solid hsl(var(--border));border-top-color:hsl(var(--primary));border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.catalogo-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.625rem;padding:4rem 2rem;display:flex}.catalogo-empty-icon{background:hsl(var(--primary) / .06);width:72px;height:72px;color:hsl(var(--primary) / .4);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.catalogo-empty-title{color:hsl(var(--text-main));margin:0;font-size:1rem;font-weight:700}.catalogo-empty-sub{color:hsl(var(--text-muted));max-width:360px;margin:0 0 .5rem;font-size:.85rem;line-height:1.5}.catalogo-row{cursor:pointer;transition:background .12s}.catalogo-row:hover td{background:hsl(var(--primary) / .025)!important}.catalogo-row-name{color:hsl(var(--text-main));white-space:nowrap;text-overflow:ellipsis;max-width:360px;font-size:.875rem;font-weight:600;overflow:hidden}.catalogo-ud-badge{text-transform:uppercase;letter-spacing:.04em;background:hsl(var(--border) / .5);color:hsl(var(--text-muted));border:1px solid hsl(var(--border));text-align:center;border-radius:4px;justify-content:center;align-items:center;min-width:34px;padding:.175rem .5rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700;display:inline-flex}.catalogo-preco{color:#1a7554;font-feature-settings:"tnum";font-size:.85rem;font-weight:600}.catalogo-custo-apurado{color:hsl(var(--primary));font-feature-settings:"tnum";font-size:.85rem;font-weight:700}.catalogo-categoria-tag{letter-spacing:.05em;text-transform:uppercase;background:hsl(var(--primary) / .08);color:hsl(var(--primary));border:1px solid hsl(var(--primary) / .2);border-radius:4px;margin-top:.2rem;padding:.1rem .45rem;font-family:Outfit,sans-serif;font-size:.65rem;font-weight:700;display:inline-block}.catalogo-filter-wrap{flex-shrink:0;position:relative}.catalogo-filter-icon{color:hsl(var(--text-muted));pointer-events:none;position:absolute;top:50%;left:.65rem;transform:translateY(-50%)}.catalogo-filter-select{border-radius:var(--radius-sm);border:1.5px solid hsl(var(--border));background-color:hsl(var(--surface));color:hsl(var(--text));cursor:pointer;appearance:none;min-width:180px;padding:.5rem .875rem .5rem 2rem;font-size:.85rem}.catalogo-filter-select:focus{border-color:hsl(var(--primary));outline:none}.catalogo-comp-badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:.375rem;display:flex}.catalogo-comp-tag{white-space:nowrap;border-radius:4px;align-items:center;gap:.25rem;padding:.175rem .5rem;font-family:Outfit,sans-serif;font-size:.67rem;font-weight:700;display:inline-flex}.catalogo-comp-mo{color:#18338c;background:#1e3fae1a;border:1px solid #1e3fae33}.catalogo-comp-mat{color:#795015;background:#c2750a1a;border:1px solid #c2750a38}.catalogo-comp-eq{color:#3d4a5c;background:#5c6f8a1a;border:1px solid #5c6f8a33}.catalogo-comp-aux{color:#17694b;background:#2092681a;border:1px solid #20926840}.catalogo-comp-empty{color:hsl(var(--text-light));font-size:.73rem;font-style:italic}.catalogo-actions{justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.btn-action-danger{color:hsl(var(--danger) / .55)!important;border-color:hsl(var(--danger) / .12)!important}.btn-action-danger:hover{background:hsl(var(--danger))!important;color:#fff!important;border-color:hsl(var(--danger))!important}.catalogo-del-confirm{color:hsl(var(--danger));align-items:center;gap:.375rem;font-size:.78rem;display:inline-flex}.catalogo-del-yes{border-radius:var(--radius-sm);cursor:pointer;background:hsl(var(--danger));color:#fff;border:none;align-items:center;padding:.25rem .625rem;font-family:Outfit,sans-serif;font-size:.75rem;font-weight:700;transition:opacity .15s;display:inline-flex}.catalogo-del-yes:hover{opacity:.85}.catalogo-del-no{border-radius:var(--radius-sm);cursor:pointer;background:hsl(var(--surface));color:hsl(var(--text-muted));border:1px solid hsl(var(--border));align-items:center;padding:.25rem .625rem;font-family:Outfit,sans-serif;font-size:.75rem;font-weight:600;transition:background .15s;display:inline-flex}.catalogo-del-no:hover{background:hsl(var(--surface-hover))}.af-page{flex-direction:column;gap:1.5rem;padding-bottom:3rem;animation:.25s fadeIn;display:flex}.af-nav{align-items:center;gap:.875rem;display:flex}.af-nav-title{color:hsl(var(--text-main));margin:0;font-size:1.2rem;font-weight:700;line-height:1.2}.af-nav-subtitle{color:hsl(var(--text-muted));margin:.2rem 0 0;font-size:.8rem}.af-nav-back{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.af-card{max-width:920px}.af-form{flex-direction:column;gap:2rem;display:flex}.af-section{flex-direction:column;gap:1rem;display:flex}.af-section-title{color:hsl(var(--text-main));border-bottom:1px solid hsl(var(--border) / .7);margin:0;padding-bottom:.625rem;font-size:1rem;font-weight:700}.af-fields-grid{grid-template-columns:1fr 88px 144px 144px;align-items:start;gap:1rem;display:grid}@media (width<=760px){.af-fields-grid{grid-template-columns:1fr 88px 1fr}}@media (width<=520px){.af-fields-grid{grid-template-columns:1fr 88px}.af-col-price{grid-column:1/-1}}@media (width<=420px){.af-fields-grid{grid-template-columns:1fr}}.af-label-custo{color:#18338c}.af-custo-display{border-radius:var(--radius-sm);color:#152c7a;font-feature-settings:"tnum";background:#1e3fae0a;border:1.5px solid #1e3fae33;align-items:center;min-height:40px;padding:.625rem .875rem;font-family:Outfit,sans-serif;font-size:.875rem;font-weight:700;display:flex}.af-input-ud{text-transform:uppercase;text-align:center;letter-spacing:.04em;font-weight:700}.af-label-price{color:#1a7554}.af-input-price{text-align:right;color:#1a7554;background:#2092680a;border-color:#20926833;font-weight:600}.af-cpu-header{border-bottom:1px solid hsl(var(--border) / .7);align-items:flex-start;gap:1rem;padding-bottom:.625rem;display:flex}.af-cpu-hint{color:hsl(var(--text-muted));margin:.2rem 0 0;font-size:.78rem;line-height:1.5}.af-subforms-grid{flex-direction:column;gap:.875rem;display:flex}.af-subform{border-radius:var(--radius-md);border:1px solid hsl(var(--border) / .7);background:hsl(var(--surface))}.af-subform-header{border-bottom:1px solid hsl(var(--border) / .5);border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0;justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem .875rem;display:flex}.af-subform-title{text-transform:uppercase;letter-spacing:.07em;margin:0;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.af-subform-add-btn{border-radius:var(--radius-sm);cursor:pointer;opacity:.75;background:0 0;border:1.5px solid;align-items:center;gap:.3rem;padding:.22rem .625rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.af-subform-add-btn:hover{opacity:1;background:#fff9}.af-subform-empty{text-align:center;color:hsl(var(--text-muted));background:hsl(var(--background) / .5);padding:.875rem 1rem;font-size:.78rem;font-style:italic}.af-subform-rows{background:hsl(var(--surface));flex-direction:column;display:flex}.af-subform-row{border-bottom:1px solid hsl(var(--border) / .4);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.af-subform-row:last-child{border-bottom:none}.af-row-select{flex:1;min-width:0;min-height:34px;padding:.325rem 2rem .325rem .625rem;font-size:.8rem}.af-row-ud{text-align:center;background:hsl(var(--background));width:60px;min-height:34px;color:hsl(var(--text-muted));border-color:#0000;flex-shrink:0;padding:.325rem .375rem;font-size:.8rem}.af-row-coef-wrap{flex-shrink:0;width:180px;position:relative}.af-row-eq-coefs{flex-shrink:0;gap:.25rem;display:flex}.af-row-coef-wrap-sm{width:120px}.af-row-coef-label{color:hsl(var(--text-muted));pointer-events:none;letter-spacing:.02em;font-family:Outfit,sans-serif;font-size:.65rem;font-weight:700;position:absolute;top:50%;left:.5rem;transform:translateY(-50%)}.af-row-coef{text-align:right;width:100%;min-height:34px;padding:.325rem .375rem .325rem 2.25rem;font-size:.8rem;font-weight:600}.af-row-remove{width:28px;height:28px;color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,background .12s;display:flex}.af-row-remove:hover{color:hsl(var(--danger));background:hsl(var(--danger) / .08)}.af-row-stat{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;padding:0 .4rem;line-height:1.2;display:flex}.af-row-unit-price{width:90px}.af-row-line-cost{width:108px}.af-row-stat-label{letter-spacing:.03em;color:hsl(var(--text-muted));text-transform:uppercase;font-family:Outfit,sans-serif;font-size:.6rem;font-weight:700}.af-row-stat-value{color:hsl(var(--text));font-size:.78rem;font-weight:600}.af-row-line-cost .af-row-stat-value{color:hsl(var(--primary))}.af-subform-total-bar{border-top:1px solid hsl(var(--border));background:hsl(var(--background));justify-content:flex-end;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem 1rem;display:flex}.af-subform-total-label{letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--text-muted));font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.af-subform-total-value{color:hsl(var(--primary));font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:700}.af-subform-mo{border-color:#1e3fae38}.af-subform-mo .af-subform-header{background:#1e3fae12;border-bottom-color:#1e3fae26}.af-subform-mo .af-subform-title,.af-subform-mo .af-subform-add-btn{color:#18338c}.af-subform-eq{border-color:#5c6f8a38}.af-subform-eq .af-subform-header{background:#5c6f8a12;border-bottom-color:#5c6f8a26}.af-subform-eq .af-subform-title,.af-subform-eq .af-subform-add-btn{color:#3d4a5c}.af-subform-mat{border-color:#da840b40}.af-subform-mat .af-subform-header{background:#da840b12;border-bottom-color:#da840b2e}.af-subform-mat .af-subform-title,.af-subform-mat .af-subform-add-btn{color:#795015}.af-subform-aux{border-color:#20926840}.af-subform-aux .af-subform-header{background:#20926812;border-bottom-color:#20926826}.af-subform-aux .af-subform-title,.af-subform-aux .af-subform-add-btn{color:#17694b}.af-footer{border-top:1px solid hsl(var(--border) / .7);justify-content:flex-end;align-items:center;gap:.75rem;padding-top:1.5rem;display:flex}.af-spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.75s linear infinite spin}.ss-wrap{flex:1;min-width:0;max-width:320px;position:relative}.ss-input-wrap{position:relative}.ss-icon{color:hsl(var(--text-muted));pointer-events:none;flex-shrink:0;position:absolute;top:50%;left:.55rem;transform:translateY(-50%)}.ss-input{border-radius:var(--radius-sm);border:1.5px solid hsl(var(--border));background:hsl(var(--surface));width:100%;min-height:34px;color:hsl(var(--text-main));padding:.325rem .625rem .325rem 1.875rem;font-family:inherit;font-size:.8rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.ss-input::placeholder{color:hsl(var(--text-muted) / .5)}.ss-input:hover{border-color:hsl(var(--primary) / .3)}.ss-input:focus{border-color:hsl(var(--primary-light));box-shadow:0 0 0 3px hsla(var(--primary) / .1);outline:none}.ss-dropdown{background:hsl(var(--surface));border:1.5px solid hsl(var(--primary) / .22);border-radius:var(--radius-md);min-width:100%;max-height:220px;box-shadow:var(--shadow-lg);z-index:300;margin:0;padding:.25rem 0;list-style:none;animation:.12s fadeIn;position:absolute;top:calc(100% + 3px);left:0;overflow-y:auto}.ss-dropdown::-webkit-scrollbar{width:5px}.ss-dropdown::-webkit-scrollbar-track{background:0 0}.ss-dropdown::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:3px}.ss-option{cursor:pointer;color:hsl(var(--text-main));white-space:nowrap;text-overflow:ellipsis;padding:.45rem .75rem;font-size:.82rem;line-height:1.4;transition:background .1s,color .1s;overflow:hidden}.ss-option:hover{background:hsl(var(--primary) / .07);color:hsl(var(--primary))}.ss-option-active{background:hsl(var(--primary) / .1);color:hsl(var(--primary));font-weight:600}.ss-empty{color:hsl(var(--text-muted));text-align:center;padding:.625rem .875rem;font-size:.8rem;font-style:italic}.obra-save-bar{z-index:50;background:hsl(var(--surface));border-top:1px solid hsl(var(--border) / .8);padding:.75rem 2rem;animation:.2s slideUp;position:fixed;bottom:0;left:256px;right:0;box-shadow:0 -4px 20px #0f172a14}.obra-save-bar-inner{justify-content:flex-end;align-items:center;gap:1rem;max-width:1200px;display:flex}.obra-save-ok{color:#1a7554;align-items:center;gap:.4rem;font-size:.83rem;font-weight:600;animation:.2s fadeIn;display:inline-flex}.obra-save-err{color:hsl(var(--danger));align-items:center;gap:.4rem;font-size:.83rem;font-weight:600;animation:.2s fadeIn;display:inline-flex}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.mat-tab{flex-direction:column;gap:1.25rem;display:flex}.mat-empty-state{color:hsl(var(--text-muted));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3.5rem 1rem;display:flex}.mat-empty-state h4{color:hsl(var(--text));margin:0;font-size:1rem;font-weight:600}.mat-empty-state p{margin:0;font-size:.85rem}.mat-empty-icon{color:hsl(var(--border))}.mat-empty{color:hsl(var(--text-muted));text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;font-size:.875rem;display:flex}.mat-empty-hint{color:hsl(var(--text-muted));opacity:.7;font-size:.78rem}.mat-filter-bar{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.mat-filter-label{letter-spacing:.05em;text-transform:uppercase;color:hsl(var(--text-muted));flex-shrink:0;margin-right:.25rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.mat-torre-badge{border:1.5px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));cursor:pointer;border-radius:999px;align-items:center;padding:.3rem .75rem;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.mat-torre-badge:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.mat-torre-active{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff;font-weight:600}.mat-table-wrap{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);overflow-x:auto}.mat-table{border-collapse:collapse;width:100%;font-size:.84rem}.mat-table thead tr{background:hsl(var(--background));border-bottom:2px solid hsl(var(--border))}.mat-th-material{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--text-muted));min-width:220px;padding:.6rem 1rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.mat-th-ud{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--text-muted));width:60px;padding:.6rem .5rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.mat-th-torre{text-align:right;letter-spacing:.03em;text-transform:uppercase;color:hsl(var(--primary));white-space:nowrap;min-width:110px;padding:.6rem 1rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.mat-th-total{text-align:right;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--text));white-space:nowrap;border-left:2px solid hsl(var(--border));min-width:110px;padding:.6rem 1rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700}.mat-row{border-bottom:1px solid hsl(var(--border) / .5);transition:background .1s}.mat-row:last-child{border-bottom:none}.mat-row:hover td{background:hsl(var(--primary) / .03)}.mat-td-material{color:hsl(var(--text));padding:.55rem 1rem;font-weight:500}.mat-td-ud{text-align:center;color:hsl(var(--text-muted));background:hsl(var(--background));padding:.55rem .5rem;font-size:.75rem;font-weight:600}.mat-td-qtd{text-align:right;font-variant-numeric:tabular-nums;color:hsl(var(--text));padding:.55rem 1rem}.mat-td-total{text-align:right;font-variant-numeric:tabular-nums;color:hsl(var(--primary));border-left:2px solid hsl(var(--border));padding:.55rem 1rem;font-weight:700}.mat-zero{color:hsl(var(--border))}.mat-group-header{background:hsl(var(--primary) / .06)}.mat-group-header-cell{border-top:2px solid hsl(var(--primary) / .2);border-bottom:1px solid hsl(var(--primary) / .15);padding:.5rem 1rem}.mat-group-nome{color:hsl(var(--primary));letter-spacing:.01em;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700}.mat-group-ud{color:hsl(var(--text-muted));font-size:.75rem;font-weight:500}.mat-td-indent{padding-left:1.75rem!important}.mat-td-no-mat{color:hsl(var(--text-muted));padding:.4rem 1.75rem;font-size:.78rem;font-style:italic}.mat-summary-row{background:hsl(var(--text) / .02)}.mat-summary-row .mat-td-material{font-weight:600}.mat-summary-total{font-size:.9rem!important;font-weight:800!important}.mat-summary-spacer td{background:hsl(var(--background));height:0;box-shadow:0 4px 8px -2px hsl(var(--text) / .12) inset;border:none;padding:0}.mat-summary-header{background:#252b37}.mat-summary-header-cell{letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:.65rem 1rem;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:800}.mat-print-btn{border-radius:var(--radius-sm);border:1.5px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));cursor:pointer;align-items:center;gap:.4rem;margin-left:auto;padding:.35rem .875rem;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.mat-print-btn:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.mat-print-header{display:none}@media print{body *{visibility:hidden}.mat-printable,.mat-printable *{visibility:visible}.mat-printable{background:#fff;padding:1.5cm 1.5cm 1cm;position:fixed;inset:0;overflow:visible}.mat-print-header{border-bottom:2px solid #333;margin-bottom:1rem;padding-bottom:.5rem;display:block}.mat-print-title{color:#000;margin:0 0 .2rem;font-size:14pt;font-weight:700}.mat-print-sub{color:#555;margin:0;font-size:9pt}.no-print{display:none!important}.mat-table-wrap{border:1px solid #ccc;overflow:visible!important}.mat-table{width:100%;font-size:9pt}.mat-table thead tr{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f0f0f0!important}.mat-group-header,.mat-summary-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}.mat-td-qtd,.mat-td-total,.mat-td-material{border:1px solid #ddd}.mat-group-header,.mat-row{page-break-inside:avoid}}.prod-tab{flex-direction:column;gap:1rem;display:flex}.prod-filter-bar{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.prod-filter-left{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.prod-filter-label{letter-spacing:.05em;text-transform:uppercase;color:hsl(var(--text-muted));flex-shrink:0;font-size:.72rem;font-weight:700}.prod-preset-group{flex-wrap:wrap;gap:.25rem;display:flex}.prod-preset-btn{border:1.5px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));cursor:pointer;border-radius:999px;padding:.3rem .75rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:all .15s}.prod-preset-btn:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.prod-preset-btn.active{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff;font-weight:600}.prod-custom-range{align-items:center;gap:.5rem;display:flex}.prod-date-input{width:140px;padding:.3rem .6rem!important;font-size:.8rem!important}.prod-date-sep{color:hsl(var(--text-muted));font-size:.8rem}.prod-filter-info{color:hsl(var(--text-muted));white-space:nowrap;margin-left:auto;font-size:.78rem}.prod-empty{color:hsl(var(--text-muted));text-align:center;flex-direction:column;align-items:center;gap:.625rem;padding:4rem 1rem;display:flex}.prod-empty p{color:hsl(var(--text));margin:0;font-size:.9rem;font-weight:500}.prod-empty span{font-size:.82rem}.prod-table-wrap{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);max-height:72vh;overflow:auto}.prod-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.82rem}.prod-table thead tr{background:hsl(var(--surface));border-bottom:2px solid hsl(var(--border))}.prod-table thead th{text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--text-muted));text-align:center;z-index:2;background:hsl(var(--surface));padding:.6rem .75rem;font-size:.72rem;font-weight:700;position:sticky;top:0}.prod-th-servico{z-index:3;min-width:200px;left:0;text-align:left!important}.prod-th-ud{z-index:3;min-width:48px;left:200px}.prod-th-num{z-index:3;min-width:72px;left:248px}.prod-th-pct{z-index:3;min-width:160px;left:320px;box-shadow:4px 0 6px -3px #0000001a}.prod-th-date{min-width:52px}.prod-th-total{min-width:72px}.prod-group-header{background:#1d3658}.prod-group-cell{color:#fff;letter-spacing:.03em;z-index:1;background:#1d3658;padding:.5rem .875rem;font-size:.78rem;font-weight:700;position:sticky;left:0}.prod-row{border-bottom:1px solid hsl(var(--border) / .6);transition:background .12s}.prod-row:hover{background:hsl(var(--primary) / .04)}.prod-td-servico{color:hsl(var(--text));text-align:left;white-space:normal;z-index:1;background:hsl(var(--surface));min-width:200px;padding:.5rem .875rem .5rem 1.5rem;font-weight:500;position:sticky;left:0}.prod-td-ud{text-align:center;color:hsl(var(--text-muted));z-index:1;background:hsl(var(--surface));padding:.5rem;font-size:.75rem;position:sticky;left:200px}.prod-td-num{text-align:right;color:hsl(var(--text));font-variant-numeric:tabular-nums;z-index:1;background:hsl(var(--surface));padding:.5rem .75rem;position:sticky;left:248px}.prod-td-pct{z-index:1;background:hsl(var(--surface));min-width:160px;padding:.4rem .75rem;position:sticky;left:320px;box-shadow:4px 0 6px -3px #0000001a}.prod-pct-wrap{align-items:center;gap:.5rem;display:flex}.prod-pct-track{background:hsl(var(--border));border-radius:99px;flex:1;min-width:60px;height:7px;overflow:hidden}.prod-pct-fill{border-radius:99px;height:100%;transition:width .4s}.prod-pct-num{text-align:right;min-width:40px;font-size:.8rem;font-weight:700}.prod-pct-acum{color:hsl(var(--text-muted));font-variant-numeric:tabular-nums;margin-top:.125rem;font-size:.7rem}.prod-td-date{text-align:right;font-variant-numeric:tabular-nums;color:hsl(var(--text));padding:.5rem}.prod-td-total{text-align:right;font-variant-numeric:tabular-nums;color:hsl(var(--primary));background:hsl(var(--primary) / .04);padding:.5rem .75rem;font-weight:700}.prod-zero{color:hsl(var(--border))}.eap-progresso-bar{border-top:1px dashed hsl(var(--border) / .5);align-items:center;gap:.625rem;margin-top:.25rem;padding:.3rem .625rem .3rem 0;display:flex}.eap-progresso-label{color:hsl(var(--text-muted));white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.eap-progresso-track{background:hsl(var(--border));border-radius:99px;flex:1;min-width:60px;height:6px;overflow:hidden}.eap-progresso-fill{border-radius:99px;height:100%;transition:width .4s}.eap-progresso-pct{text-align:right;min-width:42px;font-size:.8rem;font-weight:700}.eap-progresso-qtd{color:hsl(var(--text-muted));white-space:nowrap;font-size:.72rem}.topnav-hamburger,.sidebar-backdrop{display:none}@media (width<=768px){.sidebar{z-index:200;height:100vh;box-shadow:none;transition:left .25s,box-shadow .25s;top:0;left:-260px;width:256px!important;position:fixed!important}.sidebar.mobile-open{left:0;box-shadow:4px 0 32px #0f172a2e}.sidebar.collapsed{width:256px!important}.sidebar.collapsed .sidebar-logo-icon{display:flex!important}.sidebar.collapsed .sidebar-header h1{display:block!important}.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-group-label{display:initial!important}.sidebar.collapsed .nav-item{justify-content:flex-start!important;width:auto!important;padding:.5625rem .875rem!important}.sidebar.collapsed .sidebar-nav{align-items:stretch!important;padding:.875rem .625rem!important}.sidebar-toggle-btn{display:none}.sidebar-backdrop{z-index:199;background:#0f172a73;animation:.2s fadeInBackdrop;display:block;position:fixed;inset:0}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.topnav-hamburger{flex-shrink:0;display:flex}.top-navbar{gap:.625rem;padding:0 .875rem}.topnav-greeting-sub,.topnav-user-info{display:none}.topnav-user{gap:.375rem;padding-left:.5rem}.content-scroll{padding:.75rem .5rem}.wizard-container{padding-left:0!important;padding-right:0!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}.chart-grid{grid-template-columns:1fr!important}.obra-save-bar{padding:.75rem 1rem;left:0!important}.wizard-step-title{display:none}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr!important}.card{padding:1rem}.table-container{overflow-x:auto}.rdo-filter-row{flex-direction:column;align-items:stretch}}@media (width<=480px){.step1-time-grid{grid-template-columns:1fr!important}}@media (width<=768px){.resources-columns{flex-direction:column!important}}@media (width<=520px){.insumo-add-row{flex-wrap:wrap}.insumo-add-row select{flex:100%;min-width:0}}@media (width<=480px){.photos-grid{grid-template-columns:1fr!important}}@media (width<=768px){.wizard-step-card{padding:1rem!important}}.tab-scroll-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:0;display:flex;overflow-x:auto}.tab-scroll-row::-webkit-scrollbar{display:none}@media (width<=768px){.obra-form-header{flex-wrap:wrap;align-items:center!important;gap:.625rem!important}.obra-form-header>div:first-child{flex:1;min-width:0}.tab-header-bg{padding:0 .5rem}.tab-item{gap:.3rem;padding:.6875rem .625rem;font-size:.8125rem}.tab-item svg{display:none}.obra-form-content{padding:1rem .875rem!important}.obra-form-2col{grid-template-columns:1fr!important}.obra-kpi-panel{grid-template-columns:repeat(3,1fr)!important;padding:.875rem 1rem!important}.obra-form-2col .input-group+.input-group div[style*="display: flex"]{flex-wrap:wrap}}@media (width<=480px){.obra-kpi-panel{grid-template-columns:repeat(2,1fr)!important}.obra-form-content{padding:.875rem .75rem!important}.obra-header-save-label{display:none}}
