@charset "UTF-8";:root{--bg:#07101f;--s1:#0c1828;--s2:#111f38;--s3:#182a4c;--s4:#1e3460;--border:rgba(34,80,155,.55);--bl:rgba(34,80,155,.28);--pri:#2255b8;--prl:#2d6fd4;--acc:#f59500;--acl:#fbbf24;--t1:#e8f0ff;--t2:#7aacdc;--t3:#3a5a8a;--cyan:#38bdf8;--ok:#34d399;--err:#f87171;--font:"Space Grotesk",system-ui,sans-serif;--mono:"JetBrains Mono",monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;background:var(--bg);font-family:var(--font);color:var(--t1)}body{display:flex;justify-content:center;align-items:flex-start}app-home,app-casos,app-tablas,app-ajustes,app-hub,app-calc,app-result,app-derrape-ance,app-vel-derrape,app-secuencia,app-arranque-freno,app-reaccion-freno,app-vel-curva,app-adelantamiento,app-estadistica,app-deformaciones{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.shell{width:100%;max-width:430px;min-height:100vh;background:var(--s1);position:relative;display:flex;flex-direction:column;overflow:hidden}@media (min-width: 700px) and (pointer: coarse){body{min-height:100dvh}.shell{max-width:100%;min-height:100dvh;height:100dvh;border-radius:0;border:none;box-shadow:none}}@media (min-width: 700px) and (max-width: 1023px) and (pointer: fine){body{align-items:center;min-height:100vh;background:#040a14}.shell{min-height:unset;height:840px;max-width:400px;border-radius:50px;border:3px solid var(--s4);overflow:hidden;box-shadow:0 24px 80px #000000d9,inset 0 0 0 1px #64a0ff0f}.shell-notch{display:block!important}}.shell-notch{display:none;width:120px;height:30px;background:#040a14;border-radius:0 0 20px 20px;position:absolute;top:0;left:50%;transform:translate(-50%);z-index:200}@media (min-width: 1024px) and (pointer: fine){body{align-items:flex-start;background:var(--bg)}.shell{max-width:100%!important;height:100vh!important;border-radius:0!important;border:none!important;box-shadow:none!important;overflow:hidden}.shell-notch{display:none!important}}.d-topbar{background:var(--s1);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 20px;height:52px;flex-shrink:0}.d-topbar-sep{width:1px;height:22px;background:var(--border);flex-shrink:0}.d-navtabs{display:flex;gap:2px;flex:1}.d-navbtn{background:transparent;border:none;padding:6px 14px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--t3);cursor:pointer;border-radius:8px;display:flex;align-items:center;gap:7px;transition:all .15s;white-space:nowrap}.d-navbtn svg{width:16px;height:16px;flex-shrink:0}.d-navbtn:hover{background:var(--s2);color:var(--t2)}.d-navbtn.on{background:var(--s3);color:var(--acc)}.d-content{flex:1;display:flex;overflow:hidden}.d-nav-panel{width:460px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.d-calc-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.d-full-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.d-placeholder{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column}.d-ph-inner{text-align:center;color:var(--t3)}.d-ph-inner p{margin-top:14px;font-size:14px;line-height:1.7;color:var(--t3)}.desk-home{flex:1;display:flex;overflow:hidden}.desk-cats{width:165px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:10px 8px}.desk-cats::-webkit-scrollbar{width:3px}.desk-cats::-webkit-scrollbar-thumb{background:var(--s3);border-radius:3px}.desk-mods{flex:1;overflow-y:auto;padding:10px 12px}.desk-mods::-webkit-scrollbar{width:3px}.desk-mods::-webkit-scrollbar-thumb{background:var(--s3);border-radius:3px}.desk-cat-hdr{font-size:9px;font-weight:700;color:var(--t3);letter-spacing:.8px;text-transform:uppercase;padding:2px 10px 8px}.dcat-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;border-left:3px solid transparent;cursor:pointer;font-size:12px;font-weight:600;color:var(--t3);margin-bottom:2px;transition:all .15s;line-height:1.3}.dcat-item:hover{background:var(--s2);color:var(--t2)}.dcat-item.on{background:var(--s2);color:var(--t1)}.dcat-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}.sbar{background:#040a14;display:flex;justify-content:space-between;align-items:center;padding:8px 22px 6px;font-size:12px;font-weight:600;color:var(--t3);flex-shrink:0}@media (min-width: 700px) and (max-width: 1023px) and (pointer: fine){.sbar{padding-top:34px}}.tbar{background:var(--s1);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0;min-height:56px}.tbar-back{width:32px;height:32px;background:var(--s2);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:var(--t2);transition:background .15s;font-size:16px}.tbar-back:hover{background:var(--s3)}.tbar-title{font-size:17px;font-weight:700;color:var(--t1);line-height:1.2}.tbar-sub{font-size:11px;color:var(--t3);margin-top:1px}.bnav{background:#040a14;border-top:1px solid var(--border);display:flex;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0px)}.bnav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;cursor:pointer;font-size:10px;font-weight:600;color:var(--t3);transition:color .2s;letter-spacing:.3px}.bnav-btn.on{color:var(--acc)}.bnav-btn svg{width:22px;height:22px;margin-bottom:1px}.content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.content::-webkit-scrollbar{width:3px}.content::-webkit-scrollbar-thumb{background:var(--s3);border-radius:3px}.searchbar{background:var(--s2);border:1.5px solid var(--border);border-radius:28px;padding:10px 16px;display:flex;gap:10px;align-items:center}.searchbar input{flex:1;background:none;border:none;outline:none;font-family:var(--font);font-size:15px;color:var(--t1)}.searchbar input::placeholder{color:var(--t3)}.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px}.chips::-webkit-scrollbar{display:none}.chip{background:var(--s2);border:1.5px solid var(--border);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--t3);cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.chip.on{background:var(--s3);border-color:var(--acc);color:var(--acc)}.mrow{display:flex;align-items:center;gap:12px;background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:11px 13px;margin-bottom:8px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.mrow:active{transform:scale(.99);background:var(--s3)}.mrow:hover{background:var(--s3);border-color:var(--prl)}.micon{width:56px;height:46px;background:var(--s1);border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mname{font-size:15px;font-weight:600;color:var(--t1);line-height:1.3}.mformula{font-family:var(--mono);font-size:10px;color:var(--t3);margin-top:2px}.mbadge{font-size:10px;font-weight:700;border-radius:20px;padding:2px 8px;border:1px solid currentColor;white-space:nowrap;margin-top:4px;display:inline-block}.field{margin-bottom:13px}.flabel{font-size:12px;font-weight:600;color:var(--t2);margin-bottom:5px;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.4px}.funit{font-family:var(--mono);font-size:10px;background:var(--s3);border-radius:4px;padding:2px 7px;color:var(--acc);font-weight:600}.finput{width:100%;background:var(--s1);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;font-family:var(--mono);font-size:19px;color:var(--t1);outline:none;transition:border-color .2s}.finput:focus{border-color:var(--prl);background:var(--bg)}.finput::placeholder{color:var(--t3);font-size:14px}.fnote{font-size:11px;color:var(--t3);margin-top:4px;font-style:italic}.fsel{width:100%;background:var(--s1);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;font-family:var(--font);font-size:15px;color:var(--t1);outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='7' viewBox='0 0 10 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 6L9 1' stroke='%233a5a8a' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.fsel option{background:#0c1828;color:#e8f0ff}.fbox{background:var(--bg);border:1px solid var(--bl);border-left:3px solid var(--acc);border-radius:0 10px 10px 0;padding:10px 14px;margin-bottom:16px}.fbox-lbl{font-size:10px;color:var(--acc);font-weight:700;letter-spacing:.8px;text-transform:uppercase;margin-bottom:4px}.fbox-txt{font-family:var(--mono);font-size:13px;color:var(--t2);line-height:1.6}.dbox{background:var(--bg);border:1px dashed var(--border);border-radius:12px;padding:16px;text-align:center;margin-bottom:16px}.dbox-cap{font-size:11px;color:var(--t3);margin-top:8px;font-style:italic}.cbtn{width:100%;padding:16px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--acc),#e08000);color:#07101f;font-family:var(--font);font-size:18px;font-weight:700;cursor:pointer;letter-spacing:.2px;box-shadow:0 4px 20px #f5950059;transition:transform .1s,box-shadow .2s}.cbtn:hover{transform:translateY(-1px);box-shadow:0 6px 28px #f5950073}.cbtn:active{transform:translateY(1px)}.rcard{background:linear-gradient(145deg,#0d2248,#0f2c58);border:1.5px solid var(--pri);border-radius:20px;padding:24px 20px;text-align:center;position:relative;overflow:hidden}.rcard:before{content:"";position:absolute;top:-60%;left:50%;transform:translate(-50%);width:240px;height:240px;background:radial-gradient(circle,rgba(56,189,248,.07) 0%,transparent 70%);pointer-events:none}.rlbl{font-size:11px;color:var(--t3);font-weight:700;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:10px}.rval{font-family:var(--mono);font-size:64px;font-weight:600;color:var(--cyan);line-height:1}.runit{font-size:20px;color:var(--t2);margin-top:4px}.rrange{font-size:13px;color:var(--t3);margin-top:8px}.ralt{font-size:15px;color:var(--t2);margin-top:6px;font-family:var(--mono)}.steps{background:var(--bg);border:1px solid var(--bl);border-radius:12px;padding:14px;margin-top:14px}.steps-hdr{font-size:10px;color:var(--acc);font-weight:700;letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px}.step{font-family:var(--mono);font-size:12px;color:var(--t3);padding:4px 0;border-bottom:1px solid var(--bl);line-height:1.5}.step:last-child{border-bottom:none;color:var(--cyan);font-weight:500}.btnrow{display:flex;gap:8px;margin-top:12px}.bsec{flex:1;padding:12px;border:1.5px solid var(--border);background:var(--s2);border-radius:12px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--t2);cursor:pointer;text-align:center;transition:background .15s}.bsec:hover{background:var(--s3)}.bpri{flex:1;padding:12px;border:1.5px solid var(--pri);background:var(--s3);border-radius:12px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--t1);cursor:pointer;text-align:center;transition:background .15s}.bpri:hover{background:var(--s4)}.rtbl{width:100%;border-collapse:collapse;font-size:13px}.rtbl th{background:var(--s3);padding:8px 10px;color:var(--t2);font-weight:600;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px}.rtbl td{padding:8px 10px;color:var(--t1);border-bottom:1px solid var(--bl)}.rtbl tr:last-child td{border-bottom:none}.rtbl tr:nth-child(2n) td{background:#ffffff05}.ccard{background:var(--s2);border:1.5px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:background .15s}.ccard:hover{background:var(--s3);border-color:var(--prl)}.cid{font-size:16px;font-weight:700;color:var(--t1)}.ctitle{font-size:13px;color:var(--t2);margin-top:2px}.cmeta{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--t3)}.utog{display:flex;background:var(--bg);border:1.5px solid var(--border);border-radius:8px;overflow:hidden;flex-shrink:0}.uopt{padding:5px 10px;font-size:11px;font-weight:700;cursor:pointer;color:var(--t3);transition:all .15s;letter-spacing:.3px}.uopt.on{background:var(--s3);color:var(--acc)}.shdr{display:flex;align-items:center;gap:7px;padding:10px 0 5px}.sdot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.sname{font-size:11px;font-weight:700;color:var(--t3);letter-spacing:.8px;text-transform:uppercase}.toast{position:absolute;bottom:90px;left:50%;transform:translate(-50%);background:var(--ok);color:#07101f;padding:10px 20px;border-radius:20px;font-size:14px;font-weight:700;box-shadow:0 4px 20px #34d39966;white-space:nowrap;z-index:999;animation:fadeup .3s ease}.info-btn{padding:5px 13px;background:transparent;border:1.5px solid var(--cyan);border-radius:8px;font-family:var(--font);font-size:12px;font-weight:700;color:var(--cyan);cursor:pointer;letter-spacing:.3px;transition:all .15s;flex-shrink:0}.info-btn.on{background:#38bdf824}.info-panel{background:#0a1222f2;border:1px solid rgba(56,189,248,.25);border-left:3px solid var(--cyan);border-radius:0 12px 12px 0;padding:13px 15px;margin-bottom:14px;animation:slideup .2s ease}.info-panel h4{font-size:11px;color:var(--cyan);font-weight:700;letter-spacing:.8px;text-transform:uppercase;margin-bottom:7px}.info-panel p{font-size:13px;color:var(--t2);line-height:1.65;margin-bottom:6px}.info-panel b{color:var(--t1);font-weight:600}.info-panel ul{padding-left:16px;margin-top:4px}.info-panel li{font-size:12px;color:var(--t3);line-height:1.6;margin-bottom:2px}.divider{height:1px;background:var(--bl);margin:10px 0}@keyframes fadeup{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes slideup{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes staggerRow{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes resultBounce{0%{transform:scale(.3);opacity:0}55%{transform:scale(1.18)}75%{transform:scale(.94)}90%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.screen-slide{animation:slideInRight .28s cubic-bezier(.25,.46,.45,.94) forwards}.slide-up{animation:slideup .25s ease forwards}.result-bounce{animation:resultBounce .55s cubic-bezier(.34,1.4,.64,1) forwards}
