*,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}:root{--green-dark:#003625;--green-mid:#66b553;--green-lime:#cfe09b;--green-header:#00633c;--bg:#eef2ed;--surface:#fff;--surface-subtle:#f4f7f5;--surface-header:#f2f6f3;--border:#c8d6cc;--border-light:#dde8e0;--text:#02251c;--text-muted:#4a4a4a;--gray-muted:#6b7280;--primary:#00633c;--primary-hover:#003625;--primary-light:#e2f1de;--danger:#f5192f;--danger-hover:#cc1228;--danger-dark:#96091b;--success:#66b553;--warning:#fbbe5e;--warning-dark:#bf6200;--warning-mid:#d97800;--bg-muted:#ececec;--nav-bg:#0c2a12;--nav-bg-hover:#ffffff0f;--nav-text:#a7d4c1;--nav-active:#cfe09b;--nav-active-bg:#ffffff1a;--sidebar-w:280px;--radius:12px;--radius-lg:16px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000d;--shadow-lg:0 8px 24px #0000001a, 0 4px 8px #0000000f}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 0 0,#0036250b 0%,#0000 55%),radial-gradient(at 100% 100%,#66b55308 0%,#0000 55%);background-attachment:fixed;font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}@keyframes spin{to{transform:rotate(360deg)}}.app-loader{background:var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-loader__spinner{border:3px solid #1e4a2624;border-top-color:var(--primary);border-right-color:var(--green-mid);border-radius:50%;width:38px;height:38px;animation:.65s linear infinite spin;box-shadow:0 0 0 6px #1e4a260a}.app-layout{min-height:100vh;display:flex}.app-main{flex:1;min-width:0;padding:0;overflow-x:clip}@media (width<=1199px){.app-main{padding:72px 20px 32px}}@media (width<=479px){.app-main{padding:64px 12px 24px}}.nav-sidebar{width:var(--sidebar-w);isolation:isolate;background:linear-gradient(165deg,#0d2e14 0%,#17481e 40%,#1c5c26 75%,#1e6829 100%);flex-direction:column;flex-shrink:0;height:100vh;padding:0 10px;transition:width .35s cubic-bezier(.4,0,.2,1),border-radius .35s cubic-bezier(.4,0,.2,1),margin .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1),top .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden;box-shadow:2px 0 20px #0a1c0e38}.nav-sidebar:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(#ffffff14 0%,#0000 30%);position:absolute;inset:0}.nav-sidebar>*{z-index:1;position:relative}.nav-sidebar--collapsed{width:76px;padding-left:6px;padding-right:6px}.nav-sidebar--mobile{z-index:1000;flex-shrink:0;width:min(86vw,292px);height:100vh;padding:12px;transition:transform .32s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:26px 0 54px #07120a47,inset -1px 0 #ffffff14}.nav-sidebar--mobile-open{transform:translate(0)}.sidebar-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;background:#07120a7a;animation:.2s forwards backdrop-in;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.hamburger-btn{z-index:100;color:#fff;cursor:pointer;background:linear-gradient(135deg,#0c2a12 0%,#1d5c2a 100%);border:1px solid #ffffff2e;border-radius:14px;justify-content:center;align-items:center;width:42px;height:42px;transition:background .15s,box-shadow .15s,transform .15s;display:flex;position:fixed;top:14px;left:14px;box-shadow:0 10px 24px #12231638,inset 0 1px #ffffff24}.hamburger-btn:hover{background:linear-gradient(135deg,#0a2010 0%,#174d22 100%);transform:translateY(-1px);box-shadow:0 12px 28px #12231642,inset 0 1px #ffffff29}.nav-logo{cursor:pointer;-webkit-user-select:none;user-select:none;color:#fff;width:100%;min-height:66px;font:inherit;text-align:left;box-shadow:none;background:0 0;border:none;border-radius:0;align-items:center;gap:10px;margin-bottom:4px;padding:0 0 2px;transition:background .15s,border-color .15s,box-shadow .15s,padding .35s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.nav-logo:hover{background:0 0;border-color:#ffffff29}.nav-logo:focus-visible{outline:none;box-shadow:0 0 0 3px #c8d87029}.nav-sidebar--collapsed .nav-logo{justify-content:center;gap:0;min-height:70px;padding:0}.nav-logo-img{object-fit:contain;width:auto;min-width:0;max-width:248px;height:auto;max-height:86px;margin:-13px 0 -12px;transition:opacity .22s,max-width .35s cubic-bezier(.4,0,.2,1);display:block}.nav-sidebar--collapsed .nav-logo-img{opacity:0;max-width:0;overflow:hidden}.nav-logo-circle{object-fit:cover;opacity:0;width:0;height:40px;box-shadow:none;background:0 0;border:none;border-radius:50%;flex-shrink:0;transition:opacity .22s,width .35s cubic-bezier(.4,0,.2,1);display:block;overflow:hidden}.nav-sidebar--collapsed .nav-logo-circle{display:none}.nav-logo-arrow{color:#ffffff9e;opacity:.78;pointer-events:none;background:#ffffff12;border:1px solid #ffffff24;border-radius:10px;justify-content:center;align-items:center;width:28px;height:28px;transition:opacity .18s,background .15s,color .15s;display:flex;position:absolute;right:10px}.nav-logo:hover .nav-logo-arrow{opacity:1;color:#fff;background:#ffffff1c}.nav-sidebar--collapsed .nav-logo-arrow{color:#ffffffb3;opacity:1;background:#ffffff14;border-color:#ffffff26;width:32px;height:32px;display:flex;position:static;transform:rotate(180deg)}.nav-logo-arrow--close{opacity:.9;right:12px}.nav-divider{background:linear-gradient(90deg,#0000,#ffffff1f,#0000);flex-shrink:0;height:1px;margin:0 14px 16px}.nav-project-info{cursor:default;background:#ffffff12;border:1px solid #ffffff1f;border-radius:16px;margin:0 4px 20px;padding:14px 15px;transition:border-color .18s,background .18s}.nav-project-info--link{color:inherit;cursor:pointer;text-decoration:none;display:block}.nav-project-info:hover{background:#ffffff1a;border-color:#ffffff2e}.nav-project-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.nav-project-label{color:#c8d8b099;text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:7px;min-width:0;font-size:9.5px;font-weight:800;display:inline-flex}.nav-project-label svg{color:#c8d8b099;flex-shrink:0}.nav-change-btn{color:#ffffffa6;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex}.nav-change-btn:hover{color:var(--green-lime);background:#c8d87029;border-color:#c8d87057;transform:translateY(-1px)}.nav-change-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #c8d8702e}.nav-project-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.02em;margin-bottom:6px;font-size:20px;font-weight:800;line-height:1.1;overflow:hidden}.nav-project-meta{color:#c8d8b0a6;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;min-width:0;font-size:12px;font-weight:600;line-height:1.3;display:flex;overflow:hidden}.nav-project-meta svg{color:#c8d8b08c;flex-shrink:0}.nav-links{scrollbar-width:thin;scrollbar-color:#fff3 transparent;flex-direction:column;flex:1;gap:3px;padding:0;list-style:none;display:flex;overflow:hidden auto}.nav-links::-webkit-scrollbar{width:4px}.nav-links::-webkit-scrollbar-thumb{background:#fff3;border-radius:999px}.nav-links li{border:none;padding:0}.nav-links li a{color:#c8d8b0b3;white-space:nowrap;border:none;border-radius:13px;align-items:center;gap:12px;min-height:46px;padding:8px;font-size:13.5px;font-weight:600;text-decoration:none;transition:background .18s,color .18s;display:flex;position:relative}.nav-links li a:hover{color:#fff;background:#ffffff0f}.nav-links li a.active{color:#fff;background:#ffffff1a;font-weight:700}.nav-icon-wrap{background:#ffffff12;border:1px solid #ffffff1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,border-color .15s;display:flex}.nav-links li a:hover .nav-icon-wrap{background:#ffffff1f;border-color:#ffffff29}.nav-links li a.active .nav-icon-wrap{background:#ffffff2e;border-color:#ffffff38}.nav-icon{color:#c8d8b0a6;flex-shrink:0;width:16px;height:16px;transition:color .15s}.nav-links li a:hover .nav-icon,.nav-links li a.active .nav-icon{color:#fff}.nav-link-label{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;max-width:160px;transition:opacity .18s,max-width .32s cubic-bezier(.4,0,.2,1);overflow:hidden}.nav-link-short{letter-spacing:.02em;color:inherit;opacity:0;pointer-events:none;max-height:0;font-size:9px;font-weight:700;transition:opacity .18s,max-height .32s cubic-bezier(.4,0,.2,1);overflow:hidden}.nav-sidebar--collapsed .nav-link-short{display:none}.nav-sidebar--collapsed .nav-divider{margin-bottom:4px}.nav-sidebar--collapsed .nav-links{gap:2px;padding-top:2px}.nav-sidebar--collapsed .nav-links li a{flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:auto;padding:6px 4px}.nav-sidebar--collapsed .nav-link-label{opacity:0;max-width:0}.nav-sidebar--collapsed .nav-links li a.active,.nav-sidebar--collapsed .nav-links li a:hover{background:0 0}.nav-footer{border-top:1px solid #ffffff14;flex-shrink:0;padding:16px 18px 20px}.nav-footer-mini{border-top:1px solid #ffffff14;justify-content:center;align-items:center;padding:14px 0 18px;display:flex}.nav-footer-text{color:#ffffffbf;align-items:center;gap:7px;margin-bottom:4px;font-size:12px;font-weight:700;display:flex}.nav-footer-sub{color:#c8d8b066;padding-left:14px;font-size:10.5px;font-weight:500;display:block}.nav-footer-dot{background:#4aa832;border-radius:50%;flex-shrink:0;width:7px;height:7px}.nav-logout-btn{color:#ecf8f0bd;text-align:left;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:10px;width:100%;min-height:42px;margin-bottom:8px;padding:8px 12px;font-family:inherit;font-size:12.5px;font-weight:700;transition:background .18s,color .18s,border-color .18s,transform .2s;display:flex}.nav-logout-btn:hover{color:#ffe2e2;background:#dc262629;border-color:#f8717157;transform:translate(1px)}.nav-logout-btn svg{color:#f87171d9;flex-shrink:0}.nav-logout-label{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.nav-section-label{letter-spacing:.1em;text-transform:uppercase;color:#c8d8b073;margin:0 8px 10px;font-size:9.5px;font-weight:800}.page-header{border:1px solid #1e4a2617;border-left:3px solid var(--green-mid);background:linear-gradient(#fffffffa 0%,#f4f9f5f7 100%);border-radius:14px;margin-bottom:28px;padding:18px 22px;box-shadow:0 6px 18px #1223160b,inset 0 1px #ffffffd1}.page-header h2{color:#183321;letter-spacing:-.04em;font-size:22px;font-weight:800}.page-header p{color:var(--text-muted);margin-top:4px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.card-header{border-bottom:1px solid var(--border);background:var(--surface-subtle);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.card-header h3{color:var(--text);font-size:14px;font-weight:600}.card-body{padding:20px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s,box-shadow .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #4aa83240}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:#bcd8b4}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{background:var(--surface-subtle);text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;padding:10px 16px;font-size:11.5px;font-weight:600}tbody tr{border-bottom:1px solid var(--border-light);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody td{color:var(--text);vertical-align:middle;padding:10px 16px}.td-actions{justify-content:flex-end;gap:6px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px;font-size:13px}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes panel-in{0%{opacity:0;scale:.96}to{opacity:1;scale:1}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.2s both modal-overlay-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border-light);background:linear-gradient(#f6faf7fa 0%,#f0f7f1f5 100%);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{color:var(--text);font-size:15px;font-weight:600}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:20px;line-height:1;transition:background .15s}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:20px;overflow-y:auto}.modal-section-divider{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-top:1px solid var(--border-light);margin-bottom:14px;padding-top:16px;font-size:10.5px;font-weight:700}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.section-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px;font-size:11px;font-weight:700}.modal-footer{border-top:1px solid var(--border-light);background:linear-gradient(#fafcfaf5 0%,#f2f7f3f5 100%);justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.form-group{margin-bottom:16px}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11.5px;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:var(--surface);outline:none;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s,box-shadow .15s}.tipo-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tipo-card{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);text-align:left;background:#fffffff0;border-radius:11px;align-items:center;gap:9px;padding:11px 13px;font-size:12.5px;font-weight:700;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:flex}.tipo-card:hover{border-color:var(--primary);color:var(--text)}.tipo-card.selected{border-color:var(--primary);background:var(--primary-light);color:var(--primary);box-shadow:0 0 0 3px #4aa83221}.tipo-card .tipo-dot{border:1.5px solid var(--border);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;transition:border-color .15s,background .15s;display:inline-flex}.tipo-card.selected .tipo-dot{border-color:var(--primary);background:var(--primary)}.tipo-card.selected .tipo-dot:after{content:"";background:#fff;border-radius:50%;width:5px;height:5px}.input-unit{position:relative}.input-unit input{padding-right:48px}.input-unit .unit{color:var(--text-muted);pointer-events:none;font-size:11px;font-weight:700;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.row-menu-btn.is-open{color:#1e4a26!important;background:#1e4a2614!important;border:1px solid #1e4a2624!important;box-shadow:0 0 0 3px #4aa8321a!important}.tabs{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);scrollbar-width:none;background:#ffffffd1;border:1px solid #1e4a2617;border-radius:14px;gap:3px;margin-bottom:20px;padding:5px 6px;display:flex;overflow-x:auto;box-shadow:0 2px 8px #1223160a,inset 0 1px #ffffffb3}.tabs::-webkit-scrollbar{display:none}.tab-btn{cursor:pointer;color:var(--text-muted);letter-spacing:.01em;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;flex-shrink:0;padding:7px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s}.tab-btn:hover:not(.active){color:#1e4a26;background:#1e4a260f;transform:translateY(-1px)}.tab-btn.active{background:linear-gradient(135deg, var(--primary) 0%, #00633c 100%);color:#fff;border-color:#0036258c;font-weight:700;transform:translateY(-1px);box-shadow:0 4px 12px #00362533,inset 0 1px #ffffff2e}.cantiere-tabs-sep{background:#1e4a261a;border-radius:1px;align-self:stretch;width:1px;margin:4px 6px}.cantiere-page{flex-direction:column;gap:18px;width:100%;max-width:1240px;margin:0 auto;padding:18px 18px 64px;display:flex}.cantiere-page .page-header{box-shadow:var(--shadow-lg);background:linear-gradient(105deg,#0c2a12f7 0%,#14441ce6 35%,#1d5c2a8c 65%,#1d5c2a26 100%),url(/hero_solar_1920.jpg) 50% 47%/cover no-repeat;border:1px solid #ffffff14;border-radius:18px;justify-content:space-between;align-items:stretch;gap:16px;margin-bottom:0;padding:22px 24px;display:flex;position:relative}.cantiere-page .page-header:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(at 10%,#64c87812 0%,#0000 60%);position:absolute;inset:0}.cantiere-page .page-header h2{color:#fff;letter-spacing:-.04em;font-size:26px;font-weight:800;line-height:1.05}.cantiere-page .page-header p{color:#ffffffbd;margin-top:4px;font-size:13px}@media (width<=768px){.cantiere-page .page-header{flex-direction:column;gap:14px;padding:18px}.cantiere-page .page-header h2{font-size:22px}.cantiere-header-side{width:100%}.cantiere-header-panel{box-sizing:border-box;width:100%}.cantiere-header-panel__top{justify-content:flex-start}}@media (width<=479px){.cantiere-page .page-header{border-radius:14px;padding:14px}.cantiere-page .page-header h2{font-size:18px}}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{box-shadow:var(--shadow-md);border-radius:8px;align-items:center;gap:10px;max-width:340px;padding:10px 14px;font-size:13px;font-weight:500;animation:.25s toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast--success{color:#dcfce7;background:#166534}.toast--error{color:#fee2e2;background:#8a0f1c}.toast-icon{flex-shrink:0}.toast-msg{flex:1}.toast-close{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;border-radius:3px;padding:2px;display:flex}.toast-close:hover{opacity:1}.badge{letter-spacing:.2px;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{color:var(--green-dark);background:#4aa8321f;border:1px solid #4aa83233}.badge-orange{color:#9a3412;background:#fb923c1f;border:1px solid #fb923c33}.badge-gray{color:var(--text-muted);border:1px solid var(--border);background:#0000000f}.badge-blue{color:#1e3a8a;background:#3b82f61a;border:1px solid #3b82f633}.progress-bar-wrap{background:var(--border-light);border-radius:99px;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#2f6d3a 0%,#16a34a 100%);border-radius:99px;height:100%;transition:width .4s}.progress-bar-fill--danger{background:linear-gradient(90deg, var(--danger-dark) 0%, var(--danger) 100%)}.progress-bar-fill--warning{background:linear-gradient(90deg, var(--warning-dark) 0%, var(--warning-mid) 100%)}.progress-bar-fill--success{background:linear-gradient(90deg, var(--primary) 0%, var(--green-mid) 100%)}.checklist-section-header{background:var(--surface-subtle);border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);align-items:center;gap:8px;padding:6px 12px;font-size:11px;font-weight:700;display:flex}.report-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:24px;overflow:hidden}.report-section-header{border-bottom:2px solid var(--green-mid);background:var(--surface-subtle);align-items:center;gap:10px;padding:14px 20px;display:flex}.report-section-header h3{color:var(--green-header);text-transform:uppercase;letter-spacing:.5px;font-size:15px;font-weight:700}.report-section-body{padding:20px}.gantt-table{font-size:12px}.gantt-table th{text-align:center;min-width:36px;padding:6px 8px;font-size:10px}.gantt-table td{padding:6px 8px}.gantt-cell--active{background:var(--green-mid);border-radius:4px}.sel-overlay{background:url(/hero_solar_1920.jpg) 50%/cover no-repeat fixed;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.sel-overlay:before{content:"";background:linear-gradient(160deg,#08180cad 0%,#0f32148c 60%,#050f08b8 100%);position:absolute;inset:0}.sel-card{-webkit-backdrop-filter:blur(22px);z-index:1;background:#ffffffe8;border-radius:20px;width:100%;max-width:420px;position:relative;overflow:hidden;box-shadow:0 12px 48px #00000059,0 0 0 1px #ffffff38}.sel-header{text-align:center;background:linear-gradient(145deg,#0c2a12 0%,#1d5c2a 60%,#0a2010 100%);border-bottom:1px solid #ffffff1f;padding:4px 28px 18px;display:block;position:relative;overflow:hidden}.sel-header:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff12 0%,#0000 70%);width:220px;height:220px;position:absolute;top:-40%;right:-20%}.sel-logo{opacity:.95;width:100%;max-width:300px;height:auto;margin:0 auto;display:block}.sel-count{color:#ffffffb3;letter-spacing:.3px;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.sel-body{scrollbar-width:thin;scrollbar-color:#0000001f transparent;min-height:160px;max-height:400px;padding:18px 20px 12px;overflow-y:auto}.sel-body::-webkit-scrollbar{width:5px}.sel-body::-webkit-scrollbar-track{background:0 0}.sel-body::-webkit-scrollbar-thumb{background:#0000001f;border-radius:99px}.sel-list{flex-direction:column;gap:6px;display:flex}.sel-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:14px;align-items:center;gap:10px;width:100%;min-height:46px;padding:6px 10px;font-family:inherit;transition:background .18s,border-color .18s,transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;display:flex}.sel-item:hover{background:#00633c12;border-color:#00633c33}.sel-item--active{background:#fffc;border-color:#00633c59;transform:scale(1.022);box-shadow:0 4px 16px #0036251a}.sel-item-check{width:34px;height:34px;color:var(--text-muted);background:#0000000a;border:1px solid #00000014;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.sel-item:hover .sel-item-check{color:var(--primary);background:#00633c1a;border-color:#00633c38}.sel-item--active .sel-item-check{color:#fff;background:linear-gradient(135deg,#0c2a12 0%,#1d5c2a 100%);border-color:#002a1280;box-shadow:0 4px 10px #002a1247}.sel-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sel-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.sel-item--active .sel-item-name{color:var(--green-dark)}.sel-item-sub{color:var(--gray-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.sel-item-actions{flex-shrink:0;align-items:center;gap:1px;display:flex}.sel-action-btn{color:var(--gray-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:5px 6px;transition:color .15s,background .15s;display:flex}.sel-action-btn:hover{color:var(--primary);background:#00633c1a}.sel-action-btn--danger:hover{color:var(--danger);background:#dc262614}.sel-action-btn--pause:hover{color:#f59e0b;background:#f59e0b1a}.sel-action-btn--activate{color:var(--primary)}.sel-action-btn--activate:hover{color:var(--primary);background:#00633c26}.sel-badge-pausa{letter-spacing:.3px;color:#b45309;vertical-align:middle;background:#f59e0b21;border:1px solid #f59e0b4d;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-block}.sel-search{background:#f4f6f4;border:1.5px solid #e2e8e2;border-radius:10px;align-items:center;gap:8px;margin-bottom:12px;padding:0 12px;transition:border-color .18s,box-shadow .18s;display:flex}.sel-search:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #4aa8321a}.sel-search-icon{color:var(--gray-muted);-webkit-user-select:none;user-select:none;font-size:16px;line-height:1}.sel-search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:10px 0;font-family:inherit;font-size:13.5px}.sel-search-input::placeholder{color:#b0b8c4}.sel-search-clear{color:var(--gray-muted);cursor:pointer;opacity:.6;background:0 0;border:none;padding:0;font-size:18px;line-height:1;transition:opacity .15s,color .15s}.sel-search-clear:hover{opacity:1;color:var(--danger)}.sel-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 0 32px;font-size:13px;display:flex}.sel-footer{background:#f6faf6cc;border-top:1px solid #00000012;flex-direction:column;gap:8px;padding:14px 20px 20px;display:flex}.sel-footer .btn{justify-content:center;padding:10px;font-size:13.5px}.sel-footer .btn-primary{background:linear-gradient(135deg,#0c2a12 0%,#1d5c2a 100%);box-shadow:0 4px 14px #002a1247}.sel-footer .btn-primary:hover{background:linear-gradient(135deg,#0a2010 0%,#174d22 100%)}.sel-admin-btn{color:#ffffffd9;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1f;border:1px solid #ffffff47;border-radius:20px;align-items:center;gap:5px;padding:5px 11px;font-size:11.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex;position:absolute;top:12px;right:14px}.sel-admin-btn:hover{color:#fff;background:#ffffff38}.sel-user{z-index:2;-webkit-backdrop-filter:blur(8px);background:#ffffff21;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:9px;max-width:340px;padding:5px 6px 5px 7px;display:inline-flex;position:absolute;top:18px;right:20px}.sel-user-avatar{color:#14411c;letter-spacing:-.02em;background:#c8d870eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12.5px;font-weight:800;display:inline-flex}.sel-user-meta{text-align:left;flex-direction:column;min-width:0;line-height:1.15;display:flex}.sel-user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;overflow:hidden}.sel-user-role{color:#ffffffb3;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:600;overflow:hidden}.sel-user-logout{cursor:pointer;color:#ffe2e2;white-space:nowrap;background:#dc262652;border:1px solid #f8717173;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 13px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.sel-user-logout:hover{color:#fff;background:#dc262680;border-color:#f87171b3}.sel-user-logout svg{flex-shrink:0}@media (width<=560px){.sel-user{gap:6px;max-width:none;top:12px;right:12px}.sel-user-meta{display:none}.sel-user-logout{padding:7px 9px}.sel-user-logout-label{display:none}}@media print{.nav-sidebar,.hamburger-btn,.btn,.no-print{display:none!important}.app-main{padding:0!important}.app-layout{display:block!important}body{font-size:12px;background:#fff!important}.report-section{box-shadow:none!important;border:1px solid #ccc!important}}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#09180c7a}.modal{background:linear-gradient(#fffffffc 0%,#f6faf7fc 100%);border:1px solid #1e4a261f;border-radius:20px;animation:.25s cubic-bezier(.22,1,.36,1) both modal-in;box-shadow:0 26px 70px #08140a3d,0 8px 22px #08140a1a}.modal-header{background:linear-gradient(#fffffffa 0%,#f7fbf8f5 100%);border-bottom:1px solid #1e4a261a;min-height:64px;padding:18px 24px}.modal-header h3{color:#183321;letter-spacing:0;font-size:19px;font-weight:800}.modal-close{color:#496d52;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:inline-flex}.modal-close:hover{color:#1e4a26;background:#1e4a2614}.modal-body{scrollbar-width:thin;scrollbar-color:#1e4a2661 transparent;padding:24px}.modal-body::-webkit-scrollbar{width:10px}.modal-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-thumb{background-color:#1e4a2661;background-clip:content-box;border:3px solid #0000;border-radius:999px}.modal-footer{background:linear-gradient(#fafdfbfa 0%,#f4f9f5fa 100%);border-top:1px solid #1e4a261a;min-height:68px;padding:14px 24px}.modal .section-label,.modal-section-divider{color:#55765d;letter-spacing:.08em;font-weight:800}.modal .form-group label{color:#55765d;letter-spacing:.04em;font-size:12px;font-weight:800}.modal .form-group input,.modal .form-group select,.modal .form-group textarea,.modal .cantiere-inline-input{background:#fffffff0;border-color:#94b8a0c7;border-radius:11px;min-height:43px}.modal .form-group textarea{min-height:auto}.modal .form-group input:focus,.modal .form-group select:focus,.modal .form-group textarea:focus,.modal .cantiere-inline-input:focus-within{border-color:#2f6d3a;box-shadow:0 0 0 3px #4aa83221}.modal .cantiere-form-card,.modal .act-modal-panel,.modal .act-modal-pct-section,.modal .act-modal-status-card{background:#ffffffbd;border-color:#1e4a2617;border-radius:16px;box-shadow:inset 0 1px #ffffffb8}.confirm-dialog{align-items:flex-start;gap:13px;padding:4px 0;display:flex}.confirm-dialog__icon{width:38px;height:38px;color:var(--danger);background:#fdf2f2e6;border:1px solid #b840402e;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.confirm-dialog__message{color:var(--text);margin:0;font-size:14px;font-weight:600;line-height:1.6}.row-menu-dropdown{border-radius:var(--radius-lg);background:linear-gradient(#fffffffc 0%,#f6faf7fc 100%);border-color:#1e4a261f;min-width:190px;padding:6px;box-shadow:0 18px 38px #12231629,inset 0 1px #ffffffb8}.row-menu-dropdown:before{content:"";background:linear-gradient(90deg,#0c2a12,#4aa832);border-radius:999px;height:3px;margin:-1px -1px 5px;display:block}.row-menu-item{border-radius:var(--radius);min-height:34px;padding:8px 10px;font-size:12.5px;font-weight:700}.row-menu-item:hover{color:#1e4a26;background:#1e4a2612}.row-menu-item:hover svg{color:#2f6d3a}.date-picker-dropdown{scrollbar-width:thin;scrollbar-color:#1e4a2652 transparent}.date-picker-trigger.is-open{box-shadow:0 0 0 3px #4aa8321a}.row-menu-dropdown{background:linear-gradient(#fffffffc 0%,#f8fbf9fc 100%);border-color:#1e4a261a;border-radius:16px;min-width:176px;padding:8px;top:calc(100% + 8px);box-shadow:0 18px 42px #1223162e,0 4px 10px #12231614,inset 0 1px #ffffffdb}.row-menu-dropdown:before{content:none}.row-menu-item{color:#183321;letter-spacing:0;border-radius:12px;gap:10px;min-height:42px;padding:7px 8px;font-size:13px;font-weight:800;transition:background .14s,color .14s,transform .14s}.row-menu-item:hover{color:#1e4a26;background:#1e4a260f;transform:translate(1px)}.row-menu-item svg{color:#2f6d3a;box-sizing:border-box;background:#1e4a260e;border:1px solid #1e4a2617;border-radius:10px;width:28px;height:28px;padding:6px}.row-menu-item:hover svg{background:#1e4a2617;border-color:#1e4a2629}.row-menu-item--danger svg{color:#c8152b;background:#c8152b0e;border-color:#c8152b1f}.row-menu-item--danger:hover{color:#a30e22;background:#c8152b13}.row-menu-item--danger:hover svg{color:#a30e22;background:#c8152b1a;border-color:#c8152b33}.row-menu{display:inline-block;position:relative}.row-menu-btn{box-shadow:none!important;background:0 0!important;border:none!important;padding:3px 5px!important}.row-menu-dropdown{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #0000001a}.row-menu-dropdown--up{top:auto;bottom:calc(100% + 4px)}.row-menu-item{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.row-menu-item:hover{background:#f0f7f1}.row-menu-item svg{color:var(--text-muted);flex-shrink:0}.row-menu-item--danger{color:var(--danger-dark)}.row-menu-item--danger:hover{background:#fdf0ef}.row-menu-item--danger svg{color:var(--danger-dark)}.act-modal-label strong{color:var(--text);font-size:15px;font-weight:700;line-height:1.4}.act-modal-pct-section{background:var(--bg);border:1px solid var(--border-light);border-radius:14px;margin-bottom:20px;padding:20px 20px 8px;transition:border-color .3s,background .3s}.act-modal-pct-section--done{background:#f0faea;border-color:#2d7c1e}.act-modal-pct-hero{flex-direction:column;align-items:center;gap:2px;margin-bottom:4px;display:flex}.act-modal-pct-display{font-variant-numeric:tabular-nums;letter-spacing:-1px;font-size:52px;font-weight:800;line-height:1;transition:color .25s}.act-modal-pct-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.act-modal-pct-sub--done{color:#1a5e0e;align-items:center;gap:4px;display:flex}.act-modal-slider-wrap{margin-bottom:6px;padding:14px 10px;position:relative}.act-modal-track{border-radius:99px;height:8px;position:relative}.act-modal-track-bg{background:var(--border);border-radius:99px;position:absolute;inset:0}.act-modal-track-fill{background:linear-gradient(90deg,#d4f5a0,#5bba38,#1a5e0e);border-radius:99px;min-width:0;transition:width 80ms;position:absolute;top:0;bottom:0;left:0}.act-modal-track-thumb{pointer-events:none;background:#fff;border-radius:50%;width:24px;height:24px;transition:left 80ms,box-shadow .15s;position:absolute;top:50%;box-shadow:0 2px 8px #0000002e,0 0 0 2.5px #16a34a}.act-modal-slider{opacity:0;cursor:pointer;appearance:none;z-index:2;width:calc(100% + 20px);height:calc(100% + 28px);margin:0;position:absolute;inset:-14px -10px}.act-modal-presets{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:0;margin-bottom:4px;display:flex;overflow:hidden}.act-modal-preset-btn{border:none;border-right:1px solid var(--border);cursor:pointer;min-height:44px;color:var(--text-muted);background:0 0;flex:1;padding:11px 4px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s}.act-modal-preset-btn:last-child{border-right:none}.act-modal-preset-btn:hover{background:var(--primary-light);color:var(--primary)}.act-modal-preset-btn--active{background:var(--primary);color:#fff;font-weight:700}.act-modal-preset-btn--active:hover{background:var(--primary);color:#fff}.act-modal-head{background:radial-gradient(circle at 100% 0,#4aa8321f,#0000 34%),linear-gradient(#f7fbf8fa 0%,#fffffffc 100%);border:1px solid #1e4a261a;border-radius:18px;margin-bottom:18px;padding:18px 18px 16px;box-shadow:0 10px 24px #1e4a260d,inset 0 1px #ffffffb8}.act-modal-head__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.act-modal-state-dot{background:#4d6e5252;border-radius:999px;flex-shrink:0;width:10px;height:10px;display:inline-flex;box-shadow:0 0 0 5px #4d6e5214}.act-modal-state-dot.is-idle{background:#4d6e52a6;box-shadow:0 0 0 5px #4d6e5214}.act-modal-state-dot.is-active{background:#f59e0b;box-shadow:0 0 0 5px #f59e0b1f}.act-modal-state-dot.is-done{background:#16a34a;box-shadow:0 0 0 5px #16a34a1f}.act-modal-label{border-bottom:none;align-items:flex-start;gap:14px;margin-bottom:14px;padding-bottom:0;display:flex}.act-modal-label__icon{width:48px;height:48px;color:var(--primary);background:linear-gradient(#1e4a261a 0%,#4aa83224 100%);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.act-modal-label__content{flex-direction:column;gap:5px;min-width:0;display:flex}.act-modal-label strong{letter-spacing:-.02em;font-size:16px;line-height:1.35}.act-modal-label span{color:var(--text-muted);font-size:12.5px;line-height:1.45}.act-modal-status-strip{grid-template-columns:1fr;gap:10px;display:grid}.act-modal-status-card{background:linear-gradient(#ffffffeb 0%,#f9fcfae6 100%);border:1px solid #1e4a2614;border-radius:14px;padding:11px 13px;box-shadow:0 4px 14px #1e4a260a,inset 0 1px #ffffffd1}.act-modal-status-card__label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:10px;font-weight:700;display:block}.act-modal-status-card__value{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.act-modal-status-card__value.is-idle{color:var(--text-muted)}.act-modal-status-card__value.is-active{color:#9a3412}.act-modal-status-card__value.is-done{color:#166534}.act-modal-pct-section{background:linear-gradient(#f8fbf9 0%,#eff5f1 100%);border:1px solid #1e4a2614;border-radius:18px;padding:18px 18px 14px;transition:border-color .3s,background .3s,box-shadow .3s;box-shadow:0 10px 22px #1e4a260b,inset 0 1px #ffffffb3}.act-modal-pct-section--done{background:linear-gradient(#f2faec 0%,#e9f6e5 100%);box-shadow:inset 0 1px #fffc,0 0 0 3px #2d7c1e14}.act-modal-pct-hero{gap:4px;margin-bottom:8px}.act-modal-pct-display{letter-spacing:-.05em}.act-modal-pct-sub{color:var(--text-muted);font-weight:700}.act-modal-progress-scale{letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;margin-top:10px;font-size:10px;font-weight:700;display:flex}.act-modal-slider-wrap{margin-bottom:10px;padding:12px 2px 0}.act-modal-range{appearance:none;width:100%;height:12px;accent-color:var(--primary);background:0 0;border-radius:999px;outline:none}.act-modal-range::-webkit-slider-runnable-track{background:0 0;border-radius:999px;height:4px}.act-modal-range::-webkit-slider-thumb{appearance:none;cursor:pointer;background:linear-gradient(#fff 0%,#eef6f0 100%);border:1px solid #1e4a263d;border-radius:50%;width:16px;height:16px;margin-top:-6px;box-shadow:0 4px 10px #00000024}.act-modal-range::-moz-range-thumb{cursor:pointer;background:linear-gradient(#fff 0%,#eef6f0 100%);border:1px solid #1e4a263d;border-radius:50%;width:16px;height:16px;box-shadow:0 4px 10px #00000024}.act-modal-range::-moz-range-track{background:0 0;border-radius:999px;height:4px}.act-modal-panel{background:linear-gradient(#fffffffa 0%,#f6faf7fa 100%);border:1px solid #1e4a2614;border-radius:16px;padding:16px;box-shadow:0 8px 20px #1e4a260a,inset 0 1px #ffffffb8}.act-modal-panel--notes{padding:14px 16px}.act-modal-panel--notes.act-modal-panel--compact{padding-top:12px}.act-modal-panel--compact{margin-top:10px;padding:12px 16px 14px}.act-modal-qty-shell{flex-direction:column;gap:6px;display:flex}.act-modal-qty-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:0;font-size:10px;font-weight:700}.act-modal-qty-hero{padding:2px 0 0}.act-modal-qty-hero__value{align-items:baseline;gap:2px;min-width:0;display:inline-flex}.act-modal-qty-hero__input{letter-spacing:-.04em;width:auto;min-width:1ch;color:var(--text);box-shadow:none;background:0 0;border:none;padding:0;font-family:inherit;font-size:28px;font-weight:700;line-height:1}.act-modal-qty-hero__input:focus{outline:none}.act-modal-qty-hero__input--total{color:var(--text-muted)}.act-modal-qty-hero__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.act-modal-qty-hero__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.act-modal-qty-hero__input[type=number]{-moz-appearance:textfield}.act-modal-qty-hero__value span{color:var(--text-muted);font-size:18px;line-height:1}.act-modal-panel--notes textarea{resize:vertical;min-height:88px}.act-modal-panel__title{align-items:center;gap:8px;display:inline-flex}.act-modal-panel__subtitle{color:var(--text-muted);margin:-2px 0 10px;font-size:12px;line-height:1.45}.act-modal-secondary{margin-top:14px;margin-bottom:14px}.act-modal-secondary--notes{margin-bottom:0}.act-modal-secondary--notes .act-modal-secondary-toggle{background:linear-gradient(#ffffffeb 0%,#f8fbf9fa 100%);border-radius:12px;padding:12px 14px}.act-modal-secondary--notes .act-modal-secondary-toggle>span:first-child{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:12px}.act-modal-secondary--notes .act-modal-secondary-meta{gap:8px}.act-modal-secondary--notes .act-modal-secondary-meta strong{letter-spacing:.08em;padding:3px 8px;font-size:10px}.act-modal-secondary--notes .act-modal-secondary-toggle.is-open{background:#f7faf8fa}.act-modal-secondary--notes .act-modal-panel--compact{padding-top:10px}.act-modal-secondary-toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;background:linear-gradient(#ffffffeb 0%,#f8fbf9fa 100%);border:1px solid #1e4a2614;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;display:flex;box-shadow:0 6px 16px #1e4a2609,inset 0 1px #ffffffb8}.act-modal-secondary-toggle:hover{background:#fffffff5;border-color:#1e4a2629;box-shadow:0 8px 18px #1e4a260d,inset 0 1px #fffc}.act-modal-secondary-toggle>span:first-child{font-size:13px;font-weight:700}.act-modal-secondary-toggle.is-open{box-shadow:none;background:#f7faf8fa;border-bottom-color:#1e4a2614;border-bottom-right-radius:0;border-bottom-left-radius:0}.act-modal-secondary-meta{flex-shrink:0;align-items:center;gap:10px;margin-left:12px;flex-direction:row!important;display:inline-flex!important}.act-modal-secondary-meta strong{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);background:#1e4a260d;border:1px solid #1e4a261a;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.act-modal-secondary-add{width:24px;height:24px;color:var(--primary);background:#1e4a260d;border:1px solid #1e4a261a;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 1px #ffffffb3}.act-modal-secondary-toggle small{color:var(--text-muted);font-size:11.5px;font-weight:500}.act-modal-secondary-toggle svg{color:var(--text-muted);flex-shrink:0;transition:transform .16s}.act-modal-secondary-toggle.is-open .act-modal-secondary-meta svg{transform:rotate(180deg)}.act-modal-secondary .act-modal-panel--compact{background:#f7faf8fa;border-top-color:#1e4a2614;border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px;box-shadow:0 10px 18px #1e4a2609}@media (width<=640px){.act-modal-status-strip,.act-modal-info-grid{grid-template-columns:1fr}.act-modal-qty-hero{padding-top:0}.act-modal-head,.act-modal-pct-section,.act-modal-panel{padding:14px}}.act-modal-head{background:linear-gradient(#fffffffa 0%,#f4f9f5fa 100%);border-radius:18px;margin-bottom:16px;padding:16px}.act-modal-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.act-modal-number-pill,.act-modal-status-pill{color:#2f6d3a;letter-spacing:.04em;text-transform:uppercase;background:#1e4a260e;border:1px solid #1e4a261a;border-radius:999px;align-items:center;gap:7px;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}.act-modal-status-pill.is-idle{color:#506756;background:#4d6e5212}.act-modal-status-pill.is-active{color:#9a5a10;background:#f59e0b1a;border-color:#b4681229}.act-modal-status-pill.is-done{color:#1e4a26;background:#1e4a2617;border-color:#1e4a2629}.act-modal-title-card{background:#ffffffdb;border:1px solid #1e4a2614;border-radius:16px;align-items:center;gap:14px;padding:14px;display:flex;box-shadow:inset 0 1px #ffffffc2}.act-modal-title-card .act-modal-label__icon{border-radius:13px;width:42px;height:42px}.act-modal-title-card .act-modal-label__content{gap:0}.act-modal-title-card .act-modal-label__content strong{font-size:15px;line-height:1.35}.act-modal-name-input{border:1px solid var(--primary);background:var(--surface);width:100%;color:var(--text);border-radius:4px;outline:none;padding:2px 6px;font-size:15px;font-weight:600;line-height:1.35;box-shadow:0 0 0 3px #4aa8321f}.act-modal-status-strip{display:none}.act-modal-overview{background:linear-gradient(#fffffffc 0%,#f8fbf9fa 100%);border:1px solid #1e4a2617;border-radius:20px;margin-bottom:16px;padding:18px;box-shadow:0 12px 26px #1e4a260e,inset 0 1px #ffffffdb}.act-modal-overview--done{background:linear-gradient(#fffffffc 0%,#f7faf8fa 100%);border-color:#1e4a261f;box-shadow:0 12px 26px #1e4a260f,inset 0 1px #ffffffe0,inset 0 0 0 1px #ffffff5c}.act-modal-overview__grid{grid-template-columns:minmax(0,1fr) minmax(190px,220px);align-items:start;gap:18px;display:grid}.act-modal-overview .act-modal-head{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;margin:0;padding:0;display:flex}.act-modal-overview .act-modal-heading-row{justify-content:flex-start;margin-bottom:16px}.act-modal-overview .act-modal-title-row{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.act-modal-overview .act-modal-title-card{background:#ffffff6b;border:0;border-radius:17px;flex:1;align-self:flex-start;align-items:center;gap:10px;width:auto;min-width:220px;padding:8px 14px 8px 0;box-shadow:inset 0 1px #ffffffb8}.act-modal-overview .act-modal-title-card .act-modal-label__icon{color:#1e4a26;border-radius:0;width:22px;height:22px;box-shadow:none!important;background:0 0!important;border:0!important}.act-modal-overview .act-modal-title-card .act-modal-label__icon svg{stroke-width:2.25px}.act-modal-overview .act-modal-title-card .act-modal-label__content{padding:2px 0}.act-modal-overview .act-modal-title-card .act-modal-label__content strong{letter-spacing:-.01em;font-size:16.5px;line-height:1.32}.act-modal-state-badge{flex-shrink:0;margin-top:0;margin-left:0}.act-modal-overview .act-modal-pct-section{box-shadow:none;background:0 0;border:0;border-left:1px solid #1e4a261a;border-radius:0;flex-direction:column;justify-content:flex-start;margin:0;padding:0 0 0 18px;display:flex}.act-modal-overview .act-modal-pct-section--done{box-shadow:none;background:0 0}.act-modal-overview .section-label{margin-bottom:8px}.act-modal-overview .act-modal-pct-hero{align-items:flex-start;margin-bottom:0}.act-modal-overview .act-modal-pct-display{font-size:50px;line-height:.95}.act-modal-overview__track{border-top:1px solid #1e4a261a;width:100%;margin-top:16px;padding-top:14px}.act-modal-overview__track .act-modal-range{width:100%;display:block}.act-modal-overview .act-modal-slider-wrap{width:100%;margin:0;padding:8px 0 0}.act-modal-overview .act-modal-progress-scale{margin-top:8px}@media (width<=640px){.act-modal-overview{padding:14px}.act-modal-overview__grid{grid-template-columns:1fr;gap:14px}.act-modal-overview .act-modal-pct-section{border-top:1px solid #1e4a261a;border-left:0;padding:14px 0 0}.act-modal-overview .act-modal-pct-hero{align-items:center}}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.min-w-0{min-width:0}.flex-wrap{flex-wrap:wrap}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-xs{font-size:11px}.text-sm{font-size:12px}.text-base{font-size:13px}.text-md{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-upper{text-transform:uppercase;letter-spacing:.06em}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mb-0{margin-bottom:0}.mb-4{margin-bottom:4px}.mb-6{margin-bottom:6px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-16{margin-top:16px}.no-style{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}:root{--ui-panel-border:#00362517;--ui-panel-border-strong:#00362529;--ui-panel-bg:linear-gradient(180deg, #fffffffa 0%, #f5f9f6fa 100%);--ui-panel-header:linear-gradient(180deg, #fcfdfcfa 0%, #f4f8f5fa 100%);--ui-green-header:linear-gradient(145deg, #0c2a12 0%, #1d5c2a 60%, #0a2010 100%);--ui-soft-shadow:0 10px 26px #0012090b;--ui-card-shadow:0 14px 34px #0012090e, inset 0 1px 0 #ffffffd1}.card,.report-section{border-color:var(--ui-panel-border);background:var(--ui-panel-bg);box-shadow:var(--ui-card-shadow);border-radius:18px}.card-header{background:var(--ui-panel-header);border-bottom-color:#1e4a2614;padding:16px 20px}.card-header h3{letter-spacing:-.01em;font-size:15px;font-weight:800}.card-body,.report-section-body{background:linear-gradient(#ffffffe6 0%,#f8fbf9f5 100%)}.btn{border-radius:10px;min-height:32px;font-weight:700;transition:background .15s,border-color .15s,color .15s,opacity .15s,box-shadow .15s,transform .15s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, #00633c 100%);border:1px solid #003625a6;box-shadow:0 8px 18px #0036252e}.btn-primary:hover{background:linear-gradient(135deg,#0a2010 0%,#1d5c2a 100%);box-shadow:0 10px 22px #00362538}.btn-secondary,.btn-ghost{color:var(--primary);background:#ffffffe0;border:1px solid #b8d0c2db;box-shadow:inset 0 1px #ffffffb8}.btn-secondary:hover,.btn-ghost:hover{color:var(--primary-hover);background:#eef7f0f5}.btn-danger{background:linear-gradient(#c8152b 0%,#8a0f1c 100%);border:1px solid #8a0f1c73}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;min-height:22px;padding:0 9px;font-size:10.5px;font-weight:800}.table-wrap{box-shadow:var(--ui-soft-shadow);background:linear-gradient(#f8fbf9e6 0%,#ffffffe6 100%);border:1px solid #1e4a2614;border-radius:16px}thead th{color:var(--primary);background:#f7faf7;border-bottom-color:#1e4a261a;font-weight:800}tbody tr{border-bottom-color:#1e4a260f}tbody tr:hover{background:#1e4a2609}.form-group input,.form-group select,.form-group textarea{background:#ffffffeb;border-color:#b8d0c2e6;border-radius:8px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4aa8321f}.report-section{overflow:hidden}.report-section-header{background:radial-gradient(circle at 90% 50%, #ffffff1a 0%, transparent 55%), var(--ui-green-header);border-bottom:1px solid #ffffff1f}.report-section-header h3{color:#fff;letter-spacing:.06em}.empty-state,.portale-empty,.dash-card-empty{border-radius:16px}.sel-card{background:#fffffff0;border-radius:18px;max-width:460px;box-shadow:0 24px 64px #050f0847,0 0 0 1px #ffffff14}.sel-header{background:var(--ui-green-header);padding:8px 28px 20px}.sel-header:after{display:none}.sel-count{letter-spacing:.04em;text-transform:uppercase;background:#ffffff24;border-color:#ffffff42;height:24px;padding:0 10px;font-weight:800}.sel-body{padding:18px 20px 14px}.sel-search{background:#f4f6f4;border:1.5px solid #e2e8e2;border-radius:12px}.sel-search-icon,.sel-search-clear{color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.sel-search-clear{border-radius:999px;width:26px;height:26px}.sel-search-clear:hover{background:#dc262614}.sel-action-btn{border-radius:9px;width:28px;height:28px;padding:0}.sel-fav-btn{width:28px;height:28px;color:var(--gray-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:color .15s,background .15s;display:flex}.sel-fav-btn:hover{color:#f59e0b;background:#f59e0b1a}.sel-fav-btn--active{color:#f59e0b}.sel-fav-btn--active svg{fill:#f59e0b}.sel-empty{background:#ffffff9e;border:1px dashed #b8d0c2eb;border-radius:16px;margin:8px 0;padding:38px 20px}.sel-empty svg{opacity:.34}.sel-footer{background:linear-gradient(#fafcfaf5 0%,#f2f7f3f5 100%);border-top-color:#1e4a2614;padding:14px 20px 20px}.sel-footer .btn{justify-content:center}@media print{@page{margin:15mm 12mm 20mm;size:A4}.no-print,.nav-sidebar,.app-topbar{display:none!important}.report-section{break-inside:avoid}body,.app-main{color:#000!important;background:#fff!important;margin:0!important;padding:0!important}.card,.report-section-body{box-shadow:none!important;border-color:#ccc!important}.report-section-header{background:#f3f4f6!important;border-bottom:1px solid #ccc!important}.report-section-header h3{color:#111!important}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ccc!important}.badge{background:0 0!important;border:1px solid!important}}.row-menu-btn.is-open{box-shadow:none!important;color:#1e4a26!important;background:0 0!important;border:none!important}.row-menu-dropdown{background:linear-gradient(#fffffffc 0%,#f8fbf9fc 100%);border-color:#1e4a261f;border-radius:15px;min-width:178px;padding:8px;box-shadow:0 14px 30px #12231629,0 3px 8px #12231614,inset 0 1px #ffffffdb}.row-menu-dropdown:before,.row-menu-dropdown:after{content:none!important;display:none!important}.row-menu-item{min-height:40px}.error-boundary{text-align:center;min-height:100vh;color:var(--text-primary,#e2e8f0);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.error-boundary h2{color:var(--danger,#f87171);font-size:1.25rem;font-weight:600}.error-boundary p{color:var(--text-secondary,#94a3b8);max-width:480px;font-size:.875rem}.error-boundary button{background:var(--accent,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:.5rem;padding:.5rem 1.5rem;font-size:.875rem}.error-boundary button:hover{opacity:.85}.pm-tag-list{flex-wrap:wrap;gap:6px;min-height:0;margin-bottom:8px;display:flex}.pm-tag{color:#1e4a26;background:#1e4a2614;border:1px solid #1e4a2629;border-radius:8px;align-items:center;gap:5px;padding:3px 8px 3px 10px;font-size:12px;font-weight:700;transition:background .15s;display:inline-flex}.pm-tag:hover{background:#1e4a261f}.pm-tag-remove{cursor:pointer;color:#2f6d3a;opacity:.6;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:opacity .15s,color .15s;display:flex}.pm-tag-remove:hover{opacity:1;color:var(--danger)}.pm-input-row{align-items:center;gap:8px;display:flex}.pm-input-row input{flex:1}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-transition{animation:.32s cubic-bezier(.22,1,.36,1) both page-in}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes item-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.card,.report-section,.dash-plant-overview,.dash-materials-panel,.dash-action-card{animation:.38s cubic-bezier(.22,1,.36,1) both card-in}.sel-item{animation:.28s cubic-bezier(.22,1,.36,1) both item-in}.sel-item:first-child{animation-delay:0s}.sel-item:nth-child(2){animation-delay:28ms}.sel-item:nth-child(3){animation-delay:56ms}.sel-item:nth-child(4){animation-delay:84ms}.sel-item:nth-child(5){animation-delay:.112s}.sel-item:nth-child(6){animation-delay:.14s}.sel-item:nth-child(7){animation-delay:.168s}.sel-item:nth-child(8){animation-delay:.196s}.sel-item:nth-child(n+9){animation-delay:.224s}:focus-visible{outline:none;box-shadow:0 0 0 3px #4aa83238!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px #4aa83238!important}.app-main{background:linear-gradient(#f0f6f299 0%,#0000 180px)}.loading{color:var(--text-muted);justify-content:center;align-items:center;gap:10px;padding:48px 20px;font-size:13px;font-weight:600;display:flex}.loading:before{content:"";border:2px solid #1e4a262e;border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.65s linear infinite spin}
