:root{--navy:#071725;--ink:#152538;--secondary:#5a6c7b;--teal:#0dbf9d;--mint:#6ff0d0;--line:#dfE6ea;--panel:#fff;--bg:#f4f7f8;--danger:#c94550;--amber:#ac6b09;--shadow:0 10px 34px rgba(13,37,50,.075);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #77d6c7;outline-offset:2px}.appnav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px max(22px,calc((100vw - 1220px)/2));background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:800;letter-spacing:-.035em}.brand span{color:var(--teal)}.mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--navy);color:var(--mint);font-weight:900;font-size:22px}.navlinks{display:flex;gap:8px;align-items:center}.navlinks a{padding:10px 14px;border-radius:9px;color:#405161;font-size:14px;font-weight:650}.navlinks a.active{background:#e9f8f3;color:#027963}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 17px;border-radius:10px;border:1px solid transparent;font-weight:750;font-size:14px;transition:all .15s;background:#e8eef1;color:var(--ink)}.btn:hover{transform:translateY(-1px);filter:brightness(.98)}.btn.primary{background:var(--navy);color:white}.btn.mint{background:var(--mint);color:#073c37}.btn.outline{border:1px solid var(--line);background:white}.btn.danger{background:#fff1f0;color:#a4333d}.btn.small{padding:7px 11px;font-size:12px;border-radius:8px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.hero{background:var(--navy);color:white;overflow:hidden}.hero-wrap{max-width:1220px;margin:auto;min-height:405px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;padding:55px 24px;gap:35px}.eyebrow{color:#008f74;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.hero .eyebrow{color:var(--mint)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,5vw,65px);line-height:1.08;letter-spacing:-.06em;margin:14px 0 18px}h2{font-size:28px;letter-spacing:-.045em;margin:0 0 10px}h3{font-size:17px;letter-spacing:-.02em}p{line-height:1.65}.lead{font-size:16px;line-height:1.8;color:#bed1db;max-width:560px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;min-height:290px}.locker-render{display:grid;grid-template-columns:repeat(3,75px);gap:8px;transform:rotate(-6deg);padding:24px;background:linear-gradient(135deg,#223d50,#10283a);border-radius:23px;box-shadow:18px 27px 50px #0005;border:1px solid #466070}.locker-render>div{height:77px;display:flex;align-items:flex-start;justify-content:flex-end;padding:11px;border-radius:9px;border:1px solid #4f6675;background:linear-gradient(140deg,#233e52,#142b3e);color:var(--mint);font-size:13px}.locker-render>div:first-child,.locker-render>div:nth-child(6){background:linear-gradient(120deg,#0a806f,#154c52)}.floating{position:absolute;right:-10px;bottom:15px;border:1px solid #5d8185;border-radius:12px;padding:11px 15px;background:#1b3b4a;color:#d5fff4;box-shadow:var(--shadow)}.container{max-width:1220px;margin:0 auto;padding:50px 24px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.muted{color:var(--secondary)}.mini{font-size:12px}.tag{display:inline-block;padding:5px 10px;border-radius:30px;font-size:11px;font-weight:800;background:#e9f8f2;color:#008367}.tag.demo{background:#fff4d7;color:#9b650b}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.product-card{border-radius:18px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}.product-card:hover{transform:translateY(-4px);box-shadow:0 22px 45px #102b4418}.product-art{min-height:175px;display:grid;place-items:center;font-size:76px;background:linear-gradient(145deg,#e2faf3,#c5e5e6);position:relative}.product-card:nth-child(3n+2) .product-art{background:linear-gradient(135deg,#e2e8f9,#c8edf7)}.product-card:nth-child(3n) .product-art{background:linear-gradient(135deg,#fff0da,#f2dfc9)}.product-art .tag{position:absolute;top:13px;left:14px}.product-info{padding:23px;flex:1;display:flex;flex-direction:column}.product-info h3{font-size:20px;margin:0 0 8px}.product-info p{font-size:13px;color:var(--secondary);flex:1}.product-info .price{font-size:25px;font-weight:850;letter-spacing:-.06em}.price small{font-weight:500;font-size:12px;color:var(--secondary)}.feature-strip{background:white;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.features{max-width:1220px;margin:auto;padding:25px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature{font-size:13px;color:var(--secondary)}.feature b{display:block;color:var(--ink);font-size:14px;margin-bottom:5px}.footer{padding:36px 24px;text-align:center;background:#071725;color:#a7c0ce;font-size:13px}.loading-screen{display:grid;place-content:center;justify-items:center;height:65vh;color:var(--secondary)}.loading-screen p{margin-top:18px}.admin-layout{display:grid;grid-template-columns:248px 1fr;min-height:calc(100vh - 74px)}.sidebar{background:#102435;color:#b3c8d1;padding:26px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .label{color:#7797a7;font-size:10px;letter-spacing:.12em;font-weight:800;padding:21px 13px 10px}.sidebar button{background:none;border:0;color:inherit;text-align:left;padding:12px 14px;border-radius:9px;font-weight:650;font-size:13px;display:flex;align-items:center;gap:11px}.sidebar button:hover,.sidebar button.active{color:#dafff2;background:#213d4b}.sidebar button.active{border-left:3px solid var(--mint)}.sidebar .foot{margin-top:auto;padding:20px 12px;font-size:11px;color:#7093a7}.admin-main{padding:32px;min-width:0;max-width:1600px;width:100%;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px}.page-head h1{font-size:30px;color:var(--ink);margin:2px 0 6px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:15px;padding:20px}.stat .value{font-size:29px;font-weight:850;letter-spacing:-.06em;margin:8px 0 2px}.stat .label{font-size:12px;color:var(--secondary)}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:21px;box-shadow:0 4px 25px #0c2b3908;margin-bottom:19px}.panel h3{margin-bottom:16px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:670px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#71808d;background:#f5f8fa;font-weight:750;padding:13px}td{padding:14px 13px;border-bottom:1px solid #ecf1f4;font-size:13px;vertical-align:middle}tr:last-child td{border-bottom:0}tr:hover td{background:#f9fbfc}.pill{font-size:11px;font-weight:780;padding:5px 9px;background:#eef3f5;border-radius:15px;white-space:nowrap}.pill.available,.pill.active,.pill.paid,.pill.demo_paid,.pill.fulfilled,.pill.resolved,.pill.acknowledged{color:#07866b;background:#e3f9f1}.pill.fault,.pill.disabled,.pill.failed,.pill.refunded,.pill.expired{color:#ae4350;background:#ffedef}.pill.pending,.pill.reserved,.pill.maintenance,.pill.open,.pill.occupied,.pill.partially_refunded{color:#a06b0c;background:#fff4dc}.empty{text-align:center;color:#718592;padding:35px}.login-wrap{max-width:435px;margin:65px auto}.login-card{background:white;border:1px solid var(--line);border-radius:19px;padding:30px;box-shadow:var(--shadow)}.login-card h1{font-size:29px;color:var(--ink)}label{display:block;font-size:12px;color:#4f6372;font-weight:750;margin:0 0 7px}input,select,textarea{width:100%;background:#fff;border:1px solid #cdd9df;padding:12px 13px;border-radius:9px;color:var(--ink);outline:none;margin:0 0 15px}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #b5f3e678}textarea{min-height:85px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:9px}#modal{border:0;border-radius:17px;padding:0;width:min(540px,92vw);box-shadow:0 35px 100px #07172570;max-height:88vh}#modal::backdrop{background:#07172599}#modal-content{padding:27px}#modal h2{font-size:23px;margin-bottom:5px}#modal .sub{font-size:13px;color:var(--secondary);margin-bottom:23px}#toast{position:fixed;bottom:25px;right:25px;z-index:200;display:none;background:#102b3b;color:#fff;padding:14px 20px;border-radius:11px;max-width:430px;box-shadow:0 10px 30px #0003;font-size:13px}#toast.show{display:block}#toast.error{background:#a02c38}.door-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:10px}.door-tile{border:1px solid #d5e1e6;border-radius:11px;background:#f9fcfd;padding:18px 9px;text-align:center}.door-tile b{display:block;font-size:20px}.door-tile small{display:block;color:var(--secondary);font-size:11px;margin:6px 0}.door-tile.fault,.door-tile.disabled{background:#fff1f1}.door-tile.occupied,.door-tile.reserved{background:#fff9e9}.notice{padding:15px;border:1px solid #eecf84;background:#fff7df;border-radius:11px;color:#765215;font-size:13px;line-height:1.65;margin:18px 0}.receipt{max-width:720px;margin:65px auto}.receipt .panel{padding:32px}.qr{display:block;margin:15px auto;width:230px;max-width:100%}.receipt-total{font-size:38px;font-weight:900;letter-spacing:-.05em}.line{height:1px;background:var(--line);margin:19px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.actions{display:flex;gap:7px;flex-wrap:wrap}.copyright{text-align:center;padding:20px;color:var(--secondary);font-size:12px}button.link{background:transparent;border:0;color:#027e6b;padding:0;font-weight:750;font-size:13px}.kpi-good{color:#009a7c}.quick-filter{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.quick-filter select{width:auto;min-width:240px;margin:0}.mobile-only{display:none}@media(max-width:980px){.stats{grid-template-columns:repeat(2,1fr)}.product-grid{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:70px 1fr}.sidebar button span,.sidebar .label,.sidebar .foot{display:none}.sidebar button{justify-content:center;font-size:22px}.admin-main{padding:22px}.hero-wrap{grid-template-columns:1fr 240px}.locker-render{transform:scale(.8) rotate(-6deg)}}@media(max-width:630px){.appnav{padding:12px 16px}.brand{font-size:15px}.navlinks a{padding:9px;font-size:12px}.hero-wrap{display:block;padding:50px 21px}.hero-art{display:none}h1{font-size:39px}.container{padding:33px 17px}.product-grid{grid-template-columns:1fr}.features{grid-template-columns:1fr;gap:12px}.section-head,.page-head{align-items:flex-start;flex-direction:column}.admin-layout{grid-template-columns:1fr}.sidebar{flex-direction:row;padding:8px;overflow-x:auto;position:sticky;top:60px;z-index:40}.sidebar button{font-size:12px;min-width:44px;white-space:nowrap}.sidebar button span{display:none}.admin-main{padding:18px}.stats{gap:9px}.stat{padding:14px}.stat .value{font-size:24px}.form-grid,.two{grid-template-columns:1fr}.receipt{margin:25px 16px}.login-wrap{margin:35px 16px}.mobile-only{display:inline}}
@media(max-width:630px){.brand{font-size:0;gap:7px}.brand .mark{font-size:22px}.brand span:last-child{font-size:14px}.navlinks{gap:0}.navlinks a{padding:8px 7px;font-size:12px}}

/* Ficha empresarial con formulario de identificación, contactos, domicilio y facturación */
#modal.org-modal{width:min(900px,96vw);max-height:94dvh;overflow-y:auto}
#modal.org-modal #modal-content{padding:26px clamp(16px,3vw,36px)}
.org-section{border:1px solid var(--line);border-radius:13px;padding:18px 20px;margin:16px 0 22px;background:#fbfdfe}
.org-section h3{font-size:17px;color:var(--navy);margin:0 0 12px}
.org-section .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 18px}
.org-section .org-field{min-width:0}
.org-section .org-wide{grid-column:1/-1}
.org-section .org-field input{margin-bottom:14px}
.org-section textarea{min-height:94px}
.org-modal .form-actions{position:sticky;bottom:0;background:#fff;padding:14px 0 2px;border-top:1px solid var(--line);z-index:2}
@media(max-width:660px){.org-section{padding:14px 12px}.org-section .form-grid{grid-template-columns:1fr}.org-section .org-wide{grid-column:1}#modal.org-modal{width:98vw;max-height:97dvh}}

/* LG-OFI-01 — tarjetas de casilla legibles y responsivas */
.door-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,174px),1fr));gap:14px;align-items:stretch}
.door-tile{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:7px;min-width:0;min-height:178px;padding:17px 14px;border:1px solid #d5e1e6;border-radius:14px;background:#fbfdff;text-align:left;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}
.door-tile:hover{border-color:#74bbae;box-shadow:0 5px 17px #0c2b3913;transform:translateY(-1px)}
.door-tile:focus-visible{outline:3px solid #77d6c7;outline-offset:2px}
.door-tile .door-num{font-size:23px;font-weight:850;line-height:1.1;letter-spacing:-.035em;color:var(--navy)}
.door-tile .door-machine{font-size:11px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.door-tile .door-product{font-size:12px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.door-tile .door-statuses{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:auto;width:100%;min-width:0}
.door-tile .door-statuses .pill{display:inline-flex;align-items:center;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25;text-align:left;font-size:11px;padding:5px 8px}
.door-tile .door-price{margin-top:4px;font-size:17px;font-weight:850;color:var(--navy)}
.door-tile .door-loaded{font-size:11px}
@media(min-width:1300px){.door-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr))}}
@media(max-width:700px){.door-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.door-tile{padding:13px 11px;min-height:165px}}
@media(max-width:360px){.door-grid{grid-template-columns:1fr}}

.product-list-thumb{width:50px;height:50px;object-fit:contain;object-position:center;background:#f3f8f8;border:1px solid #d5e5e5;border-radius:9px;display:block}
.product-preview{width:min(230px,100%);height:190px;object-fit:contain;border:1px solid #dbe6e8;border-radius:14px;background:#f9fdfd;display:block;margin:12px 0}
.product-preview[hidden]{display:none}
.product-preview-empty{display:grid;place-items:center;background:#f2f7f7;border:1px dashed #b9d1d3;color:#6b818b;border-radius:12px;height:95px;margin:10px 0}
#product-image-input{display:block;width:100%;max-width:100%;padding:13px;border:1px dashed #bdd4d5;border-radius:10px;background:#fff}

.admin-header-actions{flex-wrap:wrap;align-items:end}
.admin-org-picker{min-width:220px;max-width:320px;font-size:12px;margin:0}
.admin-org-picker select{padding:8px 11px;min-height:39px;margin:4px 0 0;font-weight:750;border-color:#9fccc4}
@media(max-width:750px){.admin-org-picker{min-width:180px}.admin-header-actions{width:100%}.admin-header-actions>*{flex:1}}


/* Public-facing SmartLockers access panel brand matches smartlockers.es. */
.appnav .brand .mark,
.loading-screen .mark{
 background:linear-gradient(145deg,#77f7cd,#78b8ff);
 color:#071222;
 border-radius:11px;
}
.appnav .brand .smart-app-name{
 font-size:clamp(16px,2vw,23px);
 font-weight:850;
 letter-spacing:-1px;
 color:#102938;
}
.appnav .brand{gap:10px}
@media(max-width:600px){
 .appnav .brand .smart-app-name{font-size:17px}
 .appnav .brand .mark{width:31px;height:31px;flex-shrink:0}
}
@media(max-width:390px){
 .appnav{gap:8px}
 .appnav .brand .smart-app-name{font-size:15px}
 .appnav .brand{gap:6px}
}
