.modalAdmin-form{display:flex;flex-direction:column;padding:0 8px}.modalAdmin-form button{margin:10px auto}.modalDetails-img{margin:8px auto 4px;text-align:center;background:var(--imgPlate);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px}.modalDetails-img>img{max-width:100%;max-height:320px;object-fit:contain;border-radius:var(--r-sm)}.modalDetails-img>figcaption{color:var(--fontColor100);font-weight:700;font-size:1.05rem;line-height:1.3;text-align:left;margin-top:12px}.modalDetailsGeneral{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;padding:20px;background:color-mix(in srgb,var(--fontColor100) 32%,transparent);pointer-events:auto}.modalDetails{position:relative;width:100%;max-width:460px;max-height:88vh;background-color:var(--surfaceElevated);color:var(--fontColor75);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:var(--r-xl);overflow-y:auto;padding:24px;pointer-events:auto}.modalDetails-closebtn{position:sticky;float:right;top:0;margin:-6px -6px 0 0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:22px;padding:0;border-radius:var(--r-full);background:var(--surfaceSunken);color:var(--fontColor75);z-index:2}.modalDetails-closebtn:hover{background:var(--fontColor15);color:var(--fontColor100)}.modalDetails p{color:var(--fontColor75);margin-top:0;margin-bottom:8px}.modalDetails p strong{color:var(--fontColor100)}.modalDetails-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;margin:8px 0 20px;padding:12px 20px;background:var(--primary);color:var(--logoText);font-weight:700;border-radius:var(--r-md);text-decoration:none;transition:filter .18s ease,transform .18s ease}.modalDetails-cta:hover{color:var(--logoText);filter:brightness(1.05);transform:translateY(-1px)}.modalDetails-comments{border-top:1px solid var(--border);padding-top:16px}.modalDetails-comments>p:first-child{color:var(--fontColor100);font-weight:600;margin-bottom:2px}.modalDetails-form{background:var(--surfaceSunken);border:1px solid var(--border);border-radius:var(--r-md);width:100%;box-sizing:border-box;padding:12px;margin:12px 0}.modalDetails-form input,.modalDetails-form--comment{width:100%;box-sizing:border-box}.modalDetails-comment{position:relative;list-style:none;display:flex;flex-direction:column;gap:8px;padding:12px;margin:8px 0;border-radius:var(--r-md);background:var(--surfaceSunken)}.modalDetails-comment>div{display:flex;justify-content:space-between}.modalDetails-comment>div>p{margin:0;text-align:end;font-size:.85rem}.modalDetails-comment--edit{position:absolute;right:8px;top:8px;background:var(--fontColor15);border-radius:var(--r-sm);font-size:.85rem;padding:2px 6px}.modalDetails-comment-updtbtn{cursor:pointer;transition:transform .18s ease}.modalDetails-comment-updtbtn:hover{transform:scale(1.15)}.themeToggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;background:var(--fontColor15);color:var(--primary);border:1px solid transparent;font-size:1.1rem;line-height:0;transition:background-color .2s ease,color .2s ease,transform .2s ease}.themeToggle:hover{background:var(--fontColor25);border-color:transparent;transform:scale(1.08)}.themeToggle:active{transform:scale(.96)}@media (prefers-reduced-motion: reduce){.themeToggle{transition:none}.themeToggle:hover,.themeToggle:active{transform:none}}.bodyDevices{display:grid;position:relative;grid-template-areas:"header" "main" "footer" "aside";grid-template-columns:minmax(320px,1fr);grid-auto-rows:auto;min-height:100vh}@media (width > 900px){.bodyDevices{grid-template-areas:"header header" "main   aside" "footer aside";grid-template-columns:minmax(340px,5fr) minmax(480px,7fr);grid-template-rows:auto 1fr auto;height:100vh}}.bodyDevices header{grid-area:header;margin:0;padding:16px 28px;display:flex;gap:16px;align-items:center;justify-content:space-between}@media (width > 900px){.bodyDevices header{border-bottom:1px solid var(--border);padding:16px 40px}}.logo{font-family:marigny,Poppins,sans-serif;font-style:italic;font-weight:800;color:var(--logoText);font-size:1.25rem;letter-spacing:-.02em;align-self:center;background:var(--primary);padding:9px 16px;border-radius:var(--r-md);margin:0;box-shadow:var(--shadow-sm)}.navbar{display:flex;gap:22px;align-items:center;font-size:.95rem}.navbar>p{margin:0;color:var(--fontColor75);font-weight:500;cursor:pointer;transition:color .18s ease}.navbar>p:hover{color:var(--fontColor100)}@media (width < 560px){.navbar{gap:14px}.navbar>p{display:none}}.navbar-loginIcon{position:relative;display:flex;flex-direction:column;text-align:center;align-items:center}.navbar-loginIcon>a{display:flex;justify-content:center;align-items:center;width:38px;height:38px;border-radius:var(--r-full);background:var(--fontColor15);font-size:1.15rem;color:var(--fontColor75);transition:background-color .18s ease,color .18s ease}.navbar-loginIcon>a:hover{background:var(--fontColor25);color:var(--fontColor100)}.navbar-loginIcon--username{font-size:.72rem;color:var(--fontColor50);margin-top:2px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-loginIcon--logout{position:absolute;right:0;top:46px;z-index:5;font-size:.85rem;background-color:var(--surfaceElevated);color:var(--fontColor100);border:1px solid var(--border);padding:10px 12px;border-radius:var(--r-md);width:130px;box-shadow:var(--shadow-md);cursor:pointer}.navbar-loginIcon--logout:hover{background:var(--fontColor10)}.bodyDevices main{grid-area:main;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;padding:24px 40px}@media (width > 900px){.bodyDevices main{padding:24px 48px 24px 44px}}.title{margin:0;text-align:left}.title>span{display:block;font-size:1.15rem;font-weight:600;color:var(--fontColor75);margin-bottom:2px}.title h1{font-size:clamp(2.6rem,6vw,4rem);color:var(--fontColor100)}.title h1 em{font-style:normal;color:var(--primary)}.title~p{margin:0;max-width:42ch;font-size:1.02rem;line-height:1.6;color:var(--fontColor75)}.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.hero-chips-label{width:100%;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fontColor50);margin-bottom:2px}.chip{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:var(--r-full);border:1px solid var(--borderStrong);background:var(--surface);color:var(--fontColor100);font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:none;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.chip svg{color:var(--primary);font-size:1.05rem}.chip:hover{border-color:var(--primary);color:var(--fontColor100);transform:translateY(-1px)}.bodyDevices footer{grid-area:footer;margin:0;padding:12px 40px 24px;display:flex;gap:10px;align-items:center;justify-content:flex-start;color:var(--fontColor50);font-size:.88rem}.bodyDevices footer svg{color:var(--fontColor50)}.bodyDevices aside{grid-area:aside;background:var(--fontColor10);border-radius:0;display:flex;flex-direction:column;min-height:0}@media (width > 900px){.bodyDevices aside{border-left:1px solid var(--border)}}.aside-filters{position:sticky;top:0;background:var(--fontColor10);z-index:3;padding:22px 24px 16px;border-bottom:1px solid var(--border)}.searcher{position:relative;display:flex;align-items:center}.searcher svg{position:absolute;left:16px;font-size:1.3rem;color:var(--fontColor50);pointer-events:none}.inputText{width:100%;font-family:Poppins,system-ui,sans-serif;font-size:1.05rem;padding:14px 16px 14px 48px;border-radius:var(--r-lg);background:var(--inputBg);color:var(--inputColor);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin:0;transition:border-color .18s ease,box-shadow .18s ease}.inputText:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.filters,.filterclic{width:auto;flex:0 0 auto;padding:9px 16px;font-size:.85rem;font-weight:600;border-radius:var(--r-full);border:1px solid var(--borderStrong);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.filterclic{background:var(--surface);color:var(--fontColor75)}.filterclic:hover{border-color:var(--fontColor50);color:var(--fontColor100)}.filters{background:var(--primary);border-color:var(--primary);color:var(--logoText)}.filters:hover{background:var(--primaryHover);border-color:var(--primaryHover)}.listItemsError{padding:24px;color:var(--fontColor75)}.listItems{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid;gap:14px;align-content:start;padding:20px 24px 32px;flex:1;overflow-y:auto;overflow-x:hidden}.featured-title{grid-column:1 / -1;margin:0 0 2px;font-weight:700;color:var(--fontColor100);font-size:1.05rem;letter-spacing:-.01em}.device-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:row;align-items:center;gap:14px;cursor:pointer;text-decoration:none;color:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.device-card:hover{border-color:var(--borderStrong);box-shadow:var(--shadow-md);transform:translateY(-2px);color:inherit}.listItems-img{border-radius:var(--r-md);background:var(--imgPlate);display:flex;align-items:center;justify-content:center;width:76px;height:76px;flex:0 0 auto;overflow:hidden;border:1px solid var(--border)}.listItems-img img{max-width:100%;max-height:74px;object-fit:contain}.listItems-text{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.device-card-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;font-weight:600;color:var(--fontColor100);line-height:1.3}.listItems-text--owner{font-size:.75rem;font-weight:500;color:var(--fontColor75)}.device-card-price{font-size:1.05rem;font-weight:700;color:var(--fontColor100)}.listItems-infopage{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 0 4px}.listItems-infopage p{margin:0;font-size:.82rem;color:var(--fontColor50)}.listItems-infopage button{background:var(--fontColor100);color:var(--fontColor05)}.listItems-infopage button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.listItems-descriptionInitial{grid-column:1 / -1;margin:40px auto;max-width:420px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.listItems-descriptionInitial>div>p{margin:0;color:var(--fontColor75);line-height:1.6}.listItems-descriptionInitial>div>p strong{color:var(--fontColor100)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollThumb);border-radius:var(--r-full);border:3px solid var(--fontColor10)}.productPage{width:100%;max-width:960px;margin:0 auto;padding:20px 20px 64px;box-sizing:border-box;min-height:100vh;text-align:left}.productPage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.productPage-back{display:inline-flex;align-items:center;gap:8px;font-family:marigny,Poppins,sans-serif;font-style:italic;font-weight:800;letter-spacing:-.02em;color:var(--logoText);background:var(--primary);padding:9px 16px;border-radius:var(--r-md);font-size:1.05rem;box-shadow:var(--shadow-sm);transition:transform .18s ease,filter .18s ease}.productPage-back:hover{color:var(--logoText);filter:brightness(1.04);transform:translateY(-1px)}.productPage-msg{text-align:center;padding:64px 16px;color:var(--fontColor75)}.productPage-msg h1{color:var(--fontColor100);font-size:1.6rem;margin-bottom:12px}.productPage-card{display:grid;grid-template-columns:1fr;gap:32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;box-shadow:var(--shadow-md)}@media (width > 720px){.productPage-card{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;padding:32px}}.productPage-img{margin:0;background:var(--imgPlate);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;display:flex;align-items:center;justify-content:center}.productPage-img img{max-width:100%;max-height:400px;border-radius:var(--r-sm);object-fit:contain}.productPage-info h1{margin:0 0 14px;font-size:clamp(1.4rem,3.5vw,1.9rem);line-height:1.2;letter-spacing:-.02em;color:var(--fontColor100)}.productPage-price{margin:0 0 10px;font-size:1.7rem;font-weight:800;letter-spacing:-.02em;color:var(--fontColor100)}.productPage-price span{font-size:.95rem;font-weight:500;color:var(--fontColor50)}.productPage-meta{margin:0 0 24px;color:var(--fontColor75);font-size:.95rem;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.productPage-meta strong{color:var(--fontColor100)}.productPage-cta{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:var(--logoText);font-weight:700;font-size:1rem;padding:13px 26px;border-radius:var(--r-md);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.productPage-cta:hover{color:var(--logoText);filter:brightness(1.05);transform:translateY(-2px);box-shadow:var(--shadow-md)}.productPage-features{margin-top:32px}.productPage-features h2{font-size:1rem;color:var(--fontColor100);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.productPage-features ul{margin:0;padding-left:20px;color:var(--fontColor75);line-height:1.7;font-size:.9rem}.productPage-features li{margin-bottom:4px}.productPage-more{display:inline-block;margin-top:32px;color:var(--link);font-size:.92rem;font-weight:600}.productPage-reviews{grid-column:1 / -1;margin-top:8px}.login{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:24px}.login>div{display:flex;flex-direction:column;gap:24px;width:100%;max-width:340px;text-align:center;padding:36px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.login>div>strong{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--fontColor100)}.login-logOrReg{display:flex;gap:8px;background:var(--surfaceSunken);padding:5px;border-radius:var(--r-full)}.login-logOrReg button{flex:1;background:transparent;color:var(--fontColor75);font-size:.9rem;padding:9px 8px;border:none}.login-logOrReg button:hover{color:var(--fontColor100)}.loginForm{display:flex;flex-direction:column;gap:16px}.loginForm>input{margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--inputBg);color:var(--inputColor);transition:border-color .18s ease,box-shadow .18s ease}.loginForm>input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.loginForm>button[type=submit]{margin-top:4px;padding:12px;background:var(--primary);color:var(--logoText);font-weight:700;border:none}.loginForm>button[type=submit]:hover{background:var(--primaryHover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.loginForm-status{color:var(--danger);font-size:.85rem}.admin{display:flex;flex-direction:column;align-items:center}.uploadExcel{display:flex;flex-direction:column;align-items:center;border:1px solid var(--border);padding:16px}#btnoriginal{visibility:hidden}.btnpersonal{height:50px;background:#27c500}.dashboard{width:100%;max-width:1100px;margin:0 auto 32px;padding:0 16px;box-sizing:border-box;text-align:left}.dashboard-msg{padding:32px 16px;text-align:center}.dashboard-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:16px}.kpi{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:12px;background:var(--fontColor15)}.kpi--alerta{outline:2px solid var(--danger)}.kpi-label{font-size:.8rem;color:var(--fontColor50)}.kpi-value{font-size:1.75rem;line-height:1.1;color:var(--fontColor100)}.kpi--alerta .kpi-value{color:var(--danger)}.kpi-hint{font-size:.75rem;color:var(--fontColor50)}.dashboard-alerta{margin:0 0 24px;padding:12px 16px;border-radius:10px;border-left:4px solid var(--danger);background:var(--fontColor15);color:var(--fontColor100);font-size:.9rem}.dashboard-bloque{margin-bottom:40px}.dashboard-bloque h3{margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border);color:var(--fontColor100);font-size:1.15rem}.dashboard-bloque h4{margin:24px 0 12px;color:var(--fontColor75);font-size:.9rem;font-weight:600}.dashboard-bloque h4:first-of-type{margin-top:0}.dashboard-nota{margin:12px 0 0;font-size:.8rem;color:var(--fontColor50)}.dashboard-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}.tableWrap{overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;font-size:.85rem;white-space:nowrap}.dashboard-table th{text-align:left;padding:8px;color:var(--fontColor50);font-weight:600;border-bottom:1px solid var(--border)}.dashboard-table td{padding:8px;border-bottom:1px solid var(--border);color:var(--fontColor75)}.dashboard-table td:first-child{color:var(--fontColor100)}.dashboard-table .is-alerta{color:var(--danger);font-weight:600}.barList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.barList li{display:grid;grid-template-columns:minmax(0,1fr) 90px 40px;align-items:center;gap:10px;font-size:.8rem}.barList-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fontColor75)}.barList-track{height:8px;border-radius:4px;background:var(--fontColor25);overflow:hidden}.barList-fill{display:block;height:100%;border-radius:4px;background:var(--primary)}.barList-value{text-align:right;color:var(--fontColor100);font-weight:600}.monthBars{display:flex;align-items:flex-end;gap:6px;height:160px;overflow-x:auto;padding-bottom:4px}.monthBars-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:34px;flex:1;height:100%}.monthBars-barWrap{flex:1;width:100%;display:flex;align-items:flex-end}.monthBars-bar{width:100%;border-radius:4px 4px 0 0;background:var(--primary);min-height:2px}.monthBars-bar--cero{height:2px!important;background:var(--fontColor25)}.monthBars-label{font-size:.65rem;color:var(--fontColor50);white-space:nowrap}:root{--fontColor100: #1c1c1e;--fontColor75: #565659;--fontColor50: #8a8a8f;--fontColor25: #cacaca;--fontColor15: #e3e3e6;--fontColor10: #ededf0;--fontColor05: #f6f6f4;--primary: #ff9800;--primaryHover: #f08a00;--accentText: #b45309;--surface: #ffffff;--surfaceElevated: #ffffff;--surfaceSunken: #efefec;--inputBg: #ffffff;--inputColor: #2b2b2e;--border: #e2e2e0;--borderStrong: #d2d2cf;--link: #b45309;--linkHover: #8a3f06;--logoText: #1c1c1e;--danger: #c0281f;--scrollTrack: rgba(0, 0, 0, .08);--scrollThumb: #c4c4c0;--imgPlate: #ffffff;--shadow-sm: 0 1px 2px rgba(28, 28, 30, .06), 0 1px 3px rgba(28, 28, 30, .05);--shadow-md: 0 4px 12px rgba(28, 28, 30, .08), 0 2px 4px rgba(28, 28, 30, .05);--shadow-lg: 0 12px 32px rgba(28, 28, 30, .12), 0 4px 8px rgba(28, 28, 30, .06);--shadow: var(--shadow-md);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;color-scheme:light;line-height:1.5;font-weight:400;font-size:16px;color:var(--fontColor75);background-color:var(--fontColor05);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--fontColor100: #f3f3f5;--fontColor75: #b9b9c0;--fontColor50: #86868e;--fontColor25: #3f3f46;--fontColor15: #2a2a30;--fontColor10: #232329;--fontColor05: #161619;--primary: #ffa726;--primaryHover: #ffb547;--accentText: #ffb454;--surface: #202027;--surfaceElevated: #26262e;--surfaceSunken: #131316;--inputBg: #26262e;--inputColor: #e6e6ea;--border: #34343c;--borderStrong: #44444d;--link: #ffb454;--linkHover: #ffc879;--logoText: #161619;--danger: #ff8a80;--scrollTrack: rgba(255, 255, 255, .06);--scrollThumb: #45454f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 18px rgba(0, 0, 0, .45), 0 2px 6px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .55), 0 4px 12px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}#root{width:100%}a{font-weight:500;color:var(--link);text-decoration:none;transition:color .18s ease}a:hover{color:var(--linkHover)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--fontColor05);color:var(--fontColor75);font-family:Poppins,system-ui,sans-serif}h1{line-height:1.05;display:block;margin:0;font-weight:800;font-size:3rem;letter-spacing:-.03em;color:var(--fontColor100)}p{font-size:.95rem}button{border-radius:var(--r-full);border:1px solid transparent;padding:.65em 1.3em;font-size:.9rem;font-weight:600;font-family:inherit;background-color:var(--fontColor100);color:var(--fontColor05);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,color .18s ease}button:hover{border-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus{outline:none}input,textarea{font-family:Poppins,system-ui,sans-serif;font-size:1rem;border-radius:var(--r-md);background:var(--inputBg);color:var(--inputColor);border:1px solid var(--border);margin:8px 0}input::placeholder,textarea::placeholder{color:var(--fontColor50)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
