/* lh-borderlight-v1003 | Portal Administrativo L&H - Version 1.0-003 */
:root{--ink:#11254a;--muted:#546985;--canvas:#f2f5fd;--side:#061f44;--line:#dce5f5;--brand:#117cf4;--white:#fff;--radius:19px;--ease:cubic-bezier(.2,.8,.2,1)}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.48 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
a{text-decoration:none;color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #06a9fa;outline-offset:3px}
.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}
.sidebar{background:radial-gradient(ellipse at -35% 95%,#1164c5 0%,transparent 46%),linear-gradient(165deg,#041b3b 0%,#0a2e5f 55%,#0b4382 100%);position:relative;padding:22px 12px;color:#fff;display:flex;flex-direction:column;overflow:hidden}
.sidebar:after{content:"";position:absolute;left:-32%;right:-35%;bottom:-20%;height:43%;background:linear-gradient(30deg,transparent 20%,#238af055 50%,transparent 79%);border-radius:50%;transform:rotate(-23deg);pointer-events:none}
.brand{display:flex;align-items:center;gap:10px;padding:8px 15px 22px;margin-bottom:25px;border-bottom:1px solid #accdf33b;position:relative;z-index:1}
.brand-logo{display:inline-flex;align-items:center;justify-content:center;min-width:90px;min-height:52px;border:2px solid #b9e7ff;border-left-color:transparent;border-right-color:transparent;border-radius:50%;font-size:29px;letter-spacing:-2px;font-style:italic;font-weight:900;color:#fff;text-shadow:0 1px 8px #58a4ff50;transform:rotate(-8deg)}
.brand-logo span{color:#79d7ff}
.brand-name{font-size:13px;line-height:1.22;font-weight:800;letter-spacing:.1px}
.sidebar nav{display:grid;gap:10px;position:relative;z-index:1}
.nav-item{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:11px;font-size:15px;font-weight:690;color:#e6f3ff;transition:background .2s ease,transform .2s ease}
.nav-item:hover{background:#206ab3a0;transform:translateX(2px)}
.nav-item.active{color:#fff;background:linear-gradient(125deg,#0b8afa,#0871d7);box-shadow:inset 0 1px #ffffff65,0 5px 15px #081c426b}
.nav-icon{display:grid;place-items:center;width:26px;font-size:21px;line-height:1}
.sidebar-footer{position:relative;z-index:1;margin-top:auto;border-top:1px solid #c5ddff36;color:#cae4fb;padding:18px 14px 8px;font-size:12px}
.sidebar-footer small{opacity:.73}
.main-panel{min-width:0}
.topbar{position:relative;isolation:isolate;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:23px 33px 25px;min-height:118px;overflow:hidden;background:linear-gradient(110deg,#fff,#e8f1ff 90%);border-bottom:1px solid #dde6f7}
.topbar:before{content:"";z-index:-1;position:absolute;inset:-160px -20px -50px 42%;background:radial-gradient(ellipse at 70% 55%,#b2d6ffb0,transparent 54%),linear-gradient(125deg,transparent 30%,#dcefffaa 48%,transparent 65%);transform:rotate(-9deg);border-radius:45%}
.heading{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.heading .intro{display:flex;flex-direction:column;gap:0;line-height:1.15}
.eyebrow{font-weight:700;font-size:12px;color:#365782}
.heading h1{font-size:clamp(24px,2.9vw,40px);letter-spacing:-1.4px;margin:2px 0;font-weight:860;color:#0b214b}
.heading h1 span{color:#1378df}
.heading .description{border-left:2px solid #65a2ef;padding-left:26px;max-width:460px;color:#394c6b;font-size:14px;font-weight:510;line-height:1.5}
.account{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap;justify-content:flex-end}
.account-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:white;box-shadow:0 5px 13px #244b7620;font-size:20px}
.account-user{display:flex;flex-direction:column;font-weight:760;font-size:13px;line-height:1.3;min-width:94px;max-width:180px;overflow-wrap:anywhere}
.account-user small{font-size:11px;font-weight:550;color:#63788e}
.logout-form{display:inline}
.logout-form button{border:1px solid #c4d7ed;background:#ffffffd9;color:#164678;border-radius:10px;padding:9px 12px;font:inherit;font-size:12px;font-weight:720;cursor:pointer;transition:background .2s}
.logout-form button:hover{background:#e8f3ff}
.content{max-width:1540px;margin:0 auto;padding:22px 28px 28px}
.preview,.favorites{border-radius:15px;display:flex;align-items:center;gap:14px;padding:15px 19px;margin-bottom:15px;min-height:55px}
.preview{background:linear-gradient(105deg,#dceeff,#e8f8ff);border:1px solid #a8d7fc;color:#21436c;box-shadow:0 3px 7px #1d5d9120;font-size:13px}
.preview strong{color:#123663}
.notice-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;flex:none;background:linear-gradient(145deg,#07a2ec,#1263cb);color:white;font-size:22px;box-shadow:0 4px 9px #1264b344}
.favorites{background:linear-gradient(110deg,#f0eafa,#eaf0ff);border:1px solid #e4ddff;color:#283865;box-shadow:0 2px 7px #4059a311;font-size:13px;flex-wrap:wrap;margin-bottom:27px}
.favorites .star{display:grid;place-items:center;width:35px;color:#714de8;font-size:24px}
.favorites strong{font-size:16px;color:#182e64}
.favorite-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-left:7px}
.favorite-buttons a{font-size:12px;padding:7px 12px;border-radius:10px;background:#fff;border:1px solid #d5dfff;color:#173e79;font-weight:750;transition:background .2s}
.favorite-buttons a:hover{background:#e1f3ff}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
/* Animated luminous frame: the card contents remain completely static. */
.card{--edge:#1394f8;--light:#a5e5ff;--wash:#e8f8ff;--tile1:#09b6ff;--tile2:#0559c9;position:relative;isolation:isolate;border-radius:19px;overflow:hidden;padding:24px 21px 18px;min-height:256px;display:flex;flex-direction:column;background:transparent;box-shadow:0 9px 22px #18365c1c;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.card:before{content:"";position:absolute;z-index:-2;inset:-120%;border-radius:50%;background:conic-gradient(transparent 0deg,transparent 40deg,var(--edge) 85deg,var(--light) 108deg,transparent 134deg,transparent 218deg,var(--edge) 250deg,var(--light) 272deg,transparent 302deg);animation:lh-edge-spin 11s linear infinite;will-change:transform}
.card:after{content:"";position:absolute;z-index:-1;inset:2px;border-radius:17px;background:radial-gradient(ellipse at 90% 3%,var(--wash),transparent 55%),linear-gradient(145deg,#fff 20%,#f8fbff 98%)}
.card:hover{transform:translateY(-4px);box-shadow:0 15px 31px #143b672c}
.card:hover:before{animation-duration:6s}
@keyframes lh-edge-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.card--logistica{--edge:#00a6ff;--light:#8af3ff;--wash:#d4f2ff;--tile1:#13aeff;--tile2:#0657c0}
.card--inventarios{--edge:#a75bff;--light:#e7b7ff;--wash:#f0e6ff;--tile1:#ad7aff;--tile2:#5427b5}
.card--abastecimiento{--edge:#ffa426;--light:#ffec9a;--wash:#fff0db;--tile1:#ffcd3c;--tile2:#e07405}
.card--mercadeo{--edge:#12cda9;--light:#a2fff2;--wash:#dffcf6;--tile1:#3cd6b4;--tile2:#048d8d}
.card--contabilidad{--edge:#3288ff;--light:#a5ddff;--wash:#e3ecff;--tile1:#22a1ff;--tile2:#1744ab}
.card--administracion{--edge:#a94fff;--light:#efadff;--wash:#f0e4ff;--tile1:#b88aff;--tile2:#5a26b9}
.card-head{display:flex;align-items:flex-start;gap:15px;min-height:109px}
.tile{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;flex:none;font-size:34px;background:linear-gradient(145deg,var(--tile1),var(--tile2));box-shadow:inset 0 2px 2px #ffffff5a,0 5px 11px #204b8040}
.card h2{font-size:clamp(18px,1.55vw,24px);letter-spacing:-.65px;margin:3px 0 6px;font-weight:830;line-height:1.17;color:#0a2146}
.card p{font-size:13px;line-height:1.42;color:#405774;margin:0}
.card-modules{margin-top:auto;display:grid;gap:11px}
.module{display:flex;align-items:center;gap:10px;min-width:0;font-size:14px;font-weight:760;color:#0f2b55;padding:12px 13px;border:1px solid #d6e1fa;border-radius:11px;background:#f4f7ffed;box-shadow:inset 0 1px #fff;line-height:1.25}
.module .module-icon{font-size:18px;line-height:1.2;flex:none}
.module .module-name{flex:1;min-width:0}
.module .module-chevron{font-size:21px;font-weight:600;color:#183a6d;line-height:1}
.cta{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 13px;min-height:42px;font-size:13px;font-weight:750;border-radius:11px;color:white;background:linear-gradient(110deg,#137dea,#0955c6);box-shadow:0 4px 10px #164f9e28;transition:filter .2s,transform .2s}
.cta:not(.disabled):hover{filter:brightness(1.09);transform:translateY(-1px)}
.cta.disabled{cursor:default;background:linear-gradient(110deg,#dfe6f1,#d4ddec);border:1px solid #d6dce7;box-shadow:none;color:#3e5677}
.cta-admin{background:linear-gradient(105deg,#139aff,#3b55df 52%,#7e26d4);box-shadow:0 5px 12px #5729b844}
.card small{display:block;margin-top:5px;color:#536d86;font-size:11px;text-align:center}
.content-footer{margin-top:21px;padding:12px 16px;font-size:12px;color:#57708e;border-radius:10px;background:#e6eefacc}
.no-access{padding:28px;border-radius:14px;background:#fff;border:1px solid #d3dff0}
/* Login retains original Django POST, CSRF and session logic. */
.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 0% 98%,#256dce 0%,transparent 40%),radial-gradient(circle at 100% 0%,#763ade66 0%,transparent 39%),linear-gradient(145deg,#061b3c,#123e78)}
.login-panel{width:min(100%,430px);padding:36px;background:#fffe;border-radius:22px;box-shadow:0 18px 65px #0518348a,0 0 0 1px #c9dfff}
.login-brand{font-size:49px;letter-spacing:-3px;font-weight:900;color:#0a2d5d;text-align:center}
.login-brand span{color:#118dfe}
.login-panel h1{text-align:center;font-size:23px;margin:0 0 7px;color:#142a4e}
.login-panel p{text-align:center;font-size:13px;color:#536d89;margin:0 0 29px}
.login-panel label{font-size:13px;font-weight:730;display:block;margin:13px 0 6px}
.login-panel input{width:100%;padding:12px 13px;border-radius:10px;border:1px solid #b7c8df;font:inherit;background:#fafcff}
.login-panel input:focus{border-color:#1685e7;outline:3px solid #a6daff}
.login-button{border:0;width:100%;margin-top:22px;font:inherit;font-weight:790;cursor:pointer}
.login-note{text-align:center;font-size:11px;color:#6b7e97;margin-top:23px}
.login-error{background:#ffeded;color:#972a3d;border-radius:10px;padding:13px;font-weight:700}
@media(max-width:1250px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.heading .description{max-width:290px}}
@media(max-width:900px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:20px 8px}.brand{justify-content:center;padding:4px 0 18px}.brand-logo{font-size:19px;min-width:57px;min-height:39px}.brand-name,.nav-item span:not(.nav-icon),.sidebar-footer{display:none}.nav-item{justify-content:center;padding:13px}.topbar{padding:18px}.content{padding:15px}}
@media(max-width:660px){.app-shell{display:block}.sidebar{padding:9px 13px;flex-direction:row;align-items:center;gap:12px}.brand{margin:0;padding:0;border:0}.brand-logo{width:65px}.sidebar nav{display:flex;gap:4px;flex-wrap:wrap}.nav-item{padding:8px}.nav-item.active{border-radius:8px}.nav-item span:not(.nav-icon),.brand-name{display:none}.topbar{padding:17px;align-items:flex-start}.heading{gap:6px}.heading .description{padding-left:0;border:none}.account{gap:5px}.account-icon{display:none}.account-user{display:none}.logout-form button{padding:7px}.content{padding:12px}.cards{grid-template-columns:1fr}.card{min-height:220px}.preview,.favorites{padding:12px}.heading h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}

/* VERSION 1.0-003 | Actualización premium, sin alterar bordes luminosos aprobados. */
.icon-sprite{position:absolute!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important}
.glyph{height:1em;width:1em;flex:none;display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.tile .glyph{font-size:36px;width:36px;height:36px;color:#fff;filter:drop-shadow(0 2px 2px #08235744)}
.tile{position:relative;box-shadow:inset 0 2px 3px #ffffff75,0 8px 20px #1b458344;transition:transform .32s var(--ease),box-shadow .32s ease}
.tile:before{content:"";position:absolute;inset:3px;border-radius:14px;border:1px solid #ffffff45;pointer-events:none}
.card:hover .tile{transform:translateY(-3px) rotate(-3deg) scale(1.045);box-shadow:inset 0 2px 3px #ffffff87,0 12px 22px #1b45834f}
.module-icon .glyph{font-size:21px;width:21px;height:21px;color:var(--tile2)}
.module-chevron .glyph{width:19px;height:19px}
.cta .glyph{height:16px;width:16px}
.notice-icon .glyph{width:23px;height:23px}
.star .glyph{width:25px;height:25px}
.account-icon .glyph{width:22px;height:22px;color:#2261ad}
.nav-icon .glyph{height:22px;width:22px}
.nav-item{position:relative;overflow:hidden;isolation:isolate;transition:background .25s,transform .25s,box-shadow .3s}
.nav-item:before{content:"";z-index:-1;position:absolute;inset:0;transform:translateX(-112%);background:linear-gradient(95deg,transparent,#72daff50,transparent);transition:transform .6s ease}
.nav-item:hover:before,.nav-item:focus-visible:before{transform:translateX(112%)}
.nav-item:hover{background:#2488d65c;box-shadow:inset 0 0 0 1px #84c9ff55}
.nav-item .nav-icon{transition:transform .28s ease,filter .28s ease}
.nav-item:hover .nav-icon{transform:translateX(2px) rotate(-7deg) scale(1.11);filter:drop-shadow(0 0 4px #80d6ff)}
.nav-item.active{box-shadow:inset 0 1px #ffffff75,0 6px 18px #061a4a6a,0 0 18px #159fff33}
.sidebar:before{content:"";position:absolute;inset:-25% -70% auto -70%;height:95%;background:radial-gradient(ellipse at 25% 48%,#167be748,transparent 65%);pointer-events:none;animation:lh-side-aura 13s ease-in-out infinite alternate}
.sidebar:after{animation:lh-sidebar-wave 15s ease-in-out infinite alternate}
@keyframes lh-side-aura{from{transform:translate3d(-9%,-4%,0)}to{transform:translate3d(12%,8%,0)}}
@keyframes lh-sidebar-wave{from{transform:rotate(-23deg) translateX(-4%)}to{transform:rotate(-12deg) translateX(9%)}}
.brand{isolation:isolate}
.brand-logo{transition:filter .3s,transform .3s}
.brand:hover .brand-logo{filter:drop-shadow(0 0 10px #78d7ff65);transform:rotate(-4deg) scale(1.025)}
.card-head h2{letter-spacing:-.65px}
.module-link{cursor:pointer;transition:background .22s ease,border-color .22s ease,transform .22s ease}
.module-link:hover{background:#fff;border-color:var(--light);transform:translateY(-1px)}
.login-back{display:block;text-align:center;margin-top:20px;color:#156dcb;font-weight:720;font-size:13px}
.login-back:hover{text-decoration:underline}
@media(max-width:660px){.tile .glyph{width:30px;height:30px}.nav-item .nav-icon{width:26px}}
@media(prefers-reduced-motion:reduce){.sidebar:before,.sidebar:after,.nav-item:before{animation:none!important}.nav-item:hover .nav-icon,.card:hover .tile{transform:none!important}}
