:root{
    --ink:#17362e;
    --ink-2:#294840;
    --pine:#103b30;
    --pine-deep:#082a22;
    --pine-soft:#e8f0ec;
    --cream:#f8f5ee;
    --paper:#fffdf8;
    --white:#fff;
    --gold:#c59035;
    --gold-light:#eed49a;
    --red:#bd3942;
    --red-deep:#922730;
    --navy:#263b68;
    --muted:#6d7b75;
    --line:#dedbd2;
    --line-dark:#c9c4b8;
    --success:#176244;
    --danger:#9c2933;
    --shadow-xs:0 2px 8px rgba(13,43,34,.06);
    --shadow-sm:0 10px 30px rgba(13,43,34,.09);
    --shadow-md:0 22px 55px rgba(13,43,34,.14);
    --shadow-lg:0 35px 90px rgba(5,29,23,.22);
    --radius-sm:10px;
    --radius:16px;
    --radius-lg:24px;
    --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body,button,input,textarea,select{font-family:var(--sans)}
img{max-width:100%}
a{color:inherit}
button,a,input,textarea,select{transition:border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease}
button{font:inherit}
h1,h2,h3{margin-top:0;font-family:var(--serif);font-weight:700;line-height:1.04;letter-spacing:-.035em}
h1{font-size:clamp(2.6rem,5.5vw,5rem)}
h2{font-size:clamp(2rem,4vw,3.5rem)}
h3{font-size:1.5rem}
p{margin:0 0 1rem;color:var(--muted)}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.skip{position:fixed;z-index:999;left:12px;top:-100px;padding:10px 14px;border-radius:8px;background:#fff;color:#111;box-shadow:var(--shadow-sm)}
.skip:focus{top:12px}
.eyebrow{display:block;margin-bottom:14px;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.full{grid-column:1/-1}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 20px;border:1px solid transparent;border-radius:999px;font-size:.9rem;font-weight:800;line-height:1;text-align:center;text-decoration:none;cursor:pointer}
.btn svg{width:18px;height:18px}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:3px solid rgba(197,144,53,.28);outline-offset:3px}
.btn:disabled{cursor:wait;opacity:.65;transform:none}
.btn-lg{min-height:56px;padding:16px 25px;font-size:.95rem}
.btn-red,.primary{background:linear-gradient(135deg,var(--red),var(--red-deep));color:#fff;box-shadow:0 12px 26px rgba(189,57,66,.25)}
.btn-red:hover,.primary:hover{box-shadow:0 16px 32px rgba(189,57,66,.34)}
.btn-dark{background:var(--pine);color:#fff;box-shadow:0 12px 26px rgba(16,59,48,.21)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 12px 26px rgba(38,59,104,.22)}
.btn-light{background:#fff;color:var(--pine);box-shadow:0 16px 38px rgba(1,26,20,.2)}
.btn-light:hover{background:#fffaf0}
.btn-ghost,.secondary{border-color:var(--line-dark);background:transparent;color:var(--ink)}
.btn-ghost:hover,.secondary:hover{border-color:var(--ink);background:#fff}
.wide{width:100%}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:.88rem;font-weight:750;text-underline-offset:4px}
.text-link:hover{color:var(--red)}

label,legend{color:var(--ink);font-size:.84rem;font-weight:750}
input,textarea,select{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid var(--line-dark);border-radius:12px;background:#fff;color:var(--ink);font:inherit;outline:none}
input{min-height:50px}
textarea{min-height:110px;resize:vertical;line-height:1.6}
input::placeholder,textarea::placeholder{color:#9ca59f}
input:hover,textarea:hover,select:hover{border-color:#a9a398}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(197,144,53,.13)}
fieldset{margin:0;padding:0;border:0}

.alert{max-width:1180px;margin:0 auto 18px;padding:14px 17px;border:1px solid transparent;border-radius:12px;font-size:.9rem;font-weight:650}
.alert.error,.error{border-color:#eabfc3;background:#fff0f1;color:#8f2530}
.alert.success,.success{border-color:#bce1ce;background:#edf9f2;color:#176244}
.alert.warning,.warning{border-color:#ead29c;background:#fff7df;color:#72520f}

/* Páginas auxiliares */
.status-page,.legal,.install{width:min(880px,calc(100% - 32px));min-height:60vh;margin:0 auto;padding:82px 0 100px;text-align:center}
.status-page h1,.legal h1{margin-bottom:18px}
.status-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:30px 0;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-sm);text-align:left}
.status-card div{display:flex;flex-direction:column;gap:4px;padding:8px}
.status-card small{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.success-seal{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 24px;border-radius:50%;background:var(--pine);color:#fff;font-size:2rem;box-shadow:0 0 0 9px rgba(16,59,48,.08)}
.privacy-note{font-size:.8rem}
.legal{text-align:left}
.legal h2{margin-top:40px;font-size:1.8rem}
.card{padding:clamp(26px,5vw,58px);border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-md);text-align:left}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.install .card h1{font-size:clamp(2.5rem,6vw,4rem)}

/* Administración */
.admin-body{background:#f3f4f1;color:#243c35}
.admin-top{position:sticky;z-index:50;top:0;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 28px;background:#102f27;color:#fff;box-shadow:0 7px 24px rgba(9,35,28,.16)}
.admin-top strong{font-family:var(--serif);font-size:1.3rem}
.admin-top nav{display:flex;align-items:center;gap:17px;overflow:auto}
.admin-top a,.admin-top button{padding:8px 0;border:0;background:none;color:#d5e0dc;font-size:.78rem;text-decoration:none;white-space:nowrap;cursor:pointer}
.admin-top a:hover,.admin-top button:hover{color:#fff}
.admin-top form{display:inline;margin:0}
.admin-main{width:min(1440px,calc(100% - 36px));margin:0 auto;padding:32px 0 70px}
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}
.admin-heading h1{margin:0;font-size:clamp(2.4rem,5vw,3.5rem)}
.actions,.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.actions form,.row-actions form{margin:0}
.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}
.metrics article,.panel{border:1px solid #dfe3de;border-radius:14px;background:#fff;box-shadow:var(--shadow-xs)}
.metrics article{padding:20px}
.metrics small{display:block;color:var(--muted);font-size:.72rem}
.metrics strong{display:block;margin:8px 0;font-family:var(--serif);font-size:2.2rem;line-height:1}
.metrics a{color:var(--red);font-size:.75rem;font-weight:750}
.panel{margin-bottom:18px;padding:22px}
.panel h2{margin:0 0 17px;font-size:1.6rem}
.table-wrap{overflow:auto;padding:0}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 13px;border-bottom:1px solid #e7e9e5;text-align:left;font-size:.8rem;vertical-align:middle}
th{background:#f7f8f6;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
td small{display:block;color:var(--muted)}
.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e8eeeb;font-size:.67rem;font-weight:750}
.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:9px;margin-bottom:16px}
.filters input,.filters select{margin:0}
.pagination{display:flex;justify-content:space-between;margin:20px}
.admin-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}
.letter-text{font:1.08rem/1.7 var(--serif)}
.details{display:grid;grid-template-columns:130px 1fr}
.details dt{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.details dd{margin:0 0 14px}
.timeline{padding-left:22px;border-left:2px solid #dfe5e1}
.timeline small{display:block;color:var(--muted)}
.ship-panel{border-top:4px solid var(--red)}
.pending{padding:8px;border-radius:8px;background:#fff0c9}
.login-card{width:min(430px,calc(100% - 32px));margin:10vh auto;padding:40px;border-radius:18px;background:#fff;box-shadow:var(--shadow-md)}
.login-card h1{font-size:3rem}
.settings-form{display:grid;gap:18px}
.help{color:var(--muted);font-size:.77rem}
.danger{border:1px solid #e7b8bb;background:#fff1f1;color:#8b2930}
.row-actions button{border:0;background:none;color:var(--danger);text-decoration:underline;cursor:pointer}
.extra-thumb{width:58px;height:58px;border-radius:10px;object-fit:cover}
.carrier-logo{width:72px;height:42px;padding:4px;border:1px solid #ddd;border-radius:8px;background:#fff;object-fit:contain}
.carrier-logo.large{display:block;width:150px;height:80px;margin-top:.5rem}
.admin-extra-list{display:grid;gap:10px}
.admin-extra-list article{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #ead9bb;border-radius:12px;background:#fffaf0}
.admin-extra-list img,.admin-extra-list>article>span{display:grid;place-items:center;width:72px;height:72px;border-radius:12px;object-fit:cover;font-size:2rem}
.admin-extra-list small,.admin-extra-list p{display:block;margin-top:3px}
.admin-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.admin-photo-grid article{padding:10px;border:1px solid #e0e3df;border-radius:10px}
.admin-photo-grid img{width:100%;aspect-ratio:4/3;border-radius:7px;object-fit:cover}
.order-extras-box{margin-top:14px;padding:14px;border:1px solid #ead9bb;border-radius:12px;background:#fffaf0}

@media(max-width:1000px){
    .metrics{grid-template-columns:repeat(2,1fr)}
    .filters{grid-template-columns:1fr 1fr}
    .admin-columns{grid-template-columns:1fr}
}
@media(max-width:700px){
    .grid{grid-template-columns:1fr}
    .admin-top{padding:0 16px}
    .admin-top strong{display:none}
    .admin-main{width:min(100% - 22px,1440px);padding-top:22px}
    .admin-heading{align-items:flex-start;flex-direction:column}
    .metrics{grid-template-columns:1fr 1fr}
    .filters{grid-template-columns:1fr}
    .details{grid-template-columns:1fr}
    .admin-photo-grid{grid-template-columns:1fr}
}

.test-mode-public{margin-top:18px;text-align:left}
