:root{--yellow:#f5bd00;--ink:#111318;--soft:#f5f6f8;--line:#e5e7eb;--muted:#6b7280;--green:#14a46d;--blue:#1769ff;--red:#dc3545}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f5f6f8;color:#15171b}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.portal-shell{min-height:100vh}.portal-topbar{height:76px;background:#111318;color:#fff;display:flex;align-items:center;padding:0 max(20px,4vw);gap:22px;position:sticky;top:0;z-index:20}.portal-logo{display:flex;align-items:center;gap:10px}.portal-logo img{width:112px}.portal-logo span{color:var(--yellow);font-size:11px;font-weight:900;letter-spacing:.11em}.portal-nav{display:flex;gap:8px;margin-left:auto}.portal-nav a{padding:10px 13px;border-radius:9px;font-size:12px;font-weight:750;color:#d7d9df}.portal-nav a:hover,.portal-nav a.active{background:#2a2d33;color:#fff}.portal-container{max-width:1180px;margin:auto;padding:38px 20px 70px}.welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.welcome h1{font-size:36px;margin:5px 0}.eyebrow{color:#a27700;font-size:10px;letter-spacing:.15em;font-weight:950}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:12px 17px;font-weight:850;cursor:pointer}.btn-yellow{background:var(--yellow);color:#111}.btn-dark{background:#17191e;color:#fff}.btn-light{background:#fff;border:1px solid var(--line);color:#20242b}.btn-danger{background:#fff0f1;color:#c52a39}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.summary-card,.card{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 10px 30px rgba(10,20,40,.05)}.summary-card{padding:20px}.summary-card span{font-size:11px;color:var(--muted)}.summary-card strong{display:block;font-size:25px;margin-top:8px}.card{padding:23px;margin-bottom:18px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.card h2{font-size:20px;margin:0}.orders-list{display:grid;gap:13px}.order-card{border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:1fr auto;gap:14px;transition:.2s}.order-card:hover{box-shadow:0 12px 28px rgba(20,30,50,.08);transform:translateY(-1px)}.order-code{font-size:15px;font-weight:900}.order-meta{display:flex;gap:13px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin:7px 0}.order-total{font-size:18px;font-weight:900;text-align:right}.status{display:inline-flex;border-radius:20px;padding:6px 10px;font-size:10px;font-weight:900}.status-pending{background:#fff5d9;color:#9b7000}.status-paid{background:#e8f2ff;color:#1769ff}.status-preparing{background:#f1ebff;color:#7041d8}.status-shipped{background:#e7f8ff;color:#087ca6}.status-delivered{background:#e8f8ef;color:#148252}.status-cancelled{background:#fff0f1;color:#c52a39}.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:26px 0}.step{position:relative;text-align:center}.step:before{content:"";position:absolute;height:4px;left:-50%;right:50%;top:17px;background:#dfe3e8}.step:first-child:before{display:none}.step-dot{width:38px;height:38px;border-radius:50%;margin:auto;display:grid;place-items:center;background:#e9ecf0;color:#87909d;font-size:13px;font-weight:900;position:relative;z-index:2}.step.done:before,.step.current:before{background:var(--yellow)}.step.done .step-dot,.step.current .step-dot{background:var(--yellow);color:#111}.step.current .step-dot{box-shadow:0 0 0 7px rgba(245,189,0,.17)}.step span{display:block;font-size:10px;font-weight:800;margin-top:8px}.detail-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.items-table{width:100%;border-collapse:collapse}.items-table th,.items-table td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);font-size:12px}.items-table th{color:var(--muted);font-size:10px}.tracking-box{background:#111318;color:#fff;border-radius:14px;padding:18px}.tracking-box small,.tracking-box strong{display:block}.tracking-box small{color:#b8bdc8}.tracking-box strong{margin:7px 0;font-size:18px}.auth-body{min-height:100vh;background:radial-gradient(circle at 80% 15%,rgba(245,189,0,.25),transparent 28%),#111318;display:grid;place-items:center;padding:25px}.auth-card{width:min(470px,100%);background:#fff;border-radius:22px;padding:32px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.auth-brand{display:flex;align-items:center;gap:10px}.auth-brand img{width:120px}.auth-brand span{font-size:10px;color:#8b6a00;font-weight:900;letter-spacing:.1em}.auth-card h1{font-size:30px;margin:25px 0 8px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#f1f2f4;border-radius:11px;padding:4px;margin:23px 0}.tabs a{text-align:center;padding:10px;border-radius:8px;font-size:12px;font-weight:850}.tabs a.active{background:#fff;box-shadow:0 3px 10px rgba(20,30,50,.09)}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:11px;font-weight:800;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:13px;border:1px solid #d8dce3;border-radius:10px;background:#fff}.notice{padding:12px;border-radius:10px;font-size:12px;margin-bottom:14px}.notice-error{background:#fff0f1;color:#b72c39}.notice-ok{background:#eaf8f0;color:#147448}.empty{text-align:center;padding:48px 20px}.empty i{display:block;font-size:40px;font-style:normal}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mobile-nav{display:none}@media(max-width:820px){.portal-topbar{height:68px;padding:0 15px}.portal-logo img{width:92px}.portal-nav{display:none}.mobile-nav{display:flex;margin-left:auto}.summary-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.timeline{overflow-x:auto;padding-bottom:10px}.step{min-width:95px}.welcome{display:block}.welcome .btn{margin-top:12px}.account-grid{grid-template-columns:1fr}.order-card{grid-template-columns:1fr}.order-total{text-align:left}.portal-container{padding:28px 15px 60px}}/* Portal V1.1: acceso con contraseña y cierre accesible */
.auth-card-modal{position:relative;animation:portalIn .24s ease-out}
.auth-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eef0f3;color:#48505c;font-size:29px;line-height:1;font-weight:400;transition:.2s;z-index:3}
.auth-close:hover{background:#111318;color:#fff;transform:rotate(4deg)}
.account-badge{width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,#15171c,#292d35);color:var(--yellow);display:grid;place-items:center;font-size:28px;margin:22px auto 10px;box-shadow:0 12px 26px rgba(0,0,0,.18)}
.auth-links{text-align:center;margin-top:16px}.auth-links a{font-size:12px;color:#8b6900;font-weight:850;text-decoration:underline}
.auth-help{font-size:11px;margin-top:20px;text-align:center}
.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:#f1f2f4;border-radius:8px;width:36px;height:36px;cursor:pointer}
.field small{display:block;color:var(--muted);font-size:9px;margin-top:5px;line-height:1.4}
@keyframes portalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:520px){.auth-card{padding:27px 20px}.auth-close{right:11px;top:11px}.auth-card h1{font-size:27px;padding-right:28px}.auth-brand img{width:105px}.auth-brand span{font-size:9px}}
