:root{--admin-bg: #F8F6F0;--admin-card: #FFFFFF;--admin-border: #E8E2D5;--admin-green: #1B5E20;--admin-green-bg: #E8F5E9;--admin-green-border: #C8E6C9;--admin-red: #B71C1C;--admin-red-bg: #FFEBEE;--admin-red-border: #FFCDD2}body.admin-body{background-color:var(--admin-bg);color:#212529;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;padding:0;-webkit-tap-highlight-color:transparent;min-height:100vh}.pin-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at top,#364835,#1e281d);color:#fff}.pin-card{background:#ffffff0f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15);border-radius:1.5rem;padding:2.25rem 1.75rem;width:100%;max-width:360px;text-align:center;box-shadow:0 20px 50px #0006}.pin-logo-img-wrap{width:76px;height:76px;margin:0 auto 1.25rem;border-radius:50%;overflow:hidden;background:#fff;border:2px solid rgba(255,255,255,.4);box-shadow:0 10px 30px #0006,0 0 0 3px #c07d5366;display:flex;align-items:center;justify-content:center}.pin-logo-img{width:100%;height:100%;object-fit:cover;display:block}.pin-title{font-family:Playfair Display,serif;font-size:1.6rem;margin:0 0 .25rem;letter-spacing:.02em}.pin-subtitle{font-size:.85rem;color:#ffffffb3;margin:0 0 1.75rem}.pin-dots-row{display:flex;justify-content:center;gap:1rem;margin-bottom:1.5rem}.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:transparent;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.pin-dot.is-filled{background:#fff;border-color:#fff;transform:scale(1.15);box-shadow:0 0 10px #fffc}.pin-hidden-input{position:absolute;opacity:0;pointer-events:none;left:-9999px}.pin-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;max-width:280px;margin:0 auto}.numpad-btn{height:60px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#fff;font-size:1.4rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease-out;touch-action:manipulation;-webkit-user-select:none;user-select:none}.numpad-btn:active{background:#ffffff40;transform:scale(.92)}.numpad-btn.numpad-action{font-size:1rem;color:#fff9;background:transparent;border-color:transparent}.pin-help{font-size:.78rem;color:#ffffff80;margin-top:1.5rem;margin-bottom:.5rem}.pin-help strong{color:var(--color-sand, #E8D8C0)}.pin-back-link{display:inline-flex;align-items:center;gap:.4rem;color:#ffffffb3;font-size:.82rem;text-decoration:none;margin-top:1rem;padding:.4rem .8rem;border-radius:9999px;transition:all .2s ease}.pin-back-link:hover{color:#fff;background:#ffffff1a}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pin-card.is-error{animation:shake .4s ease-in-out;border-color:#ff6b6b}.admin-app{max-width:580px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:#fff;box-shadow:0 0 40px #0000000d}.admin-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#2a3828;color:#fff;box-shadow:0 2px 10px #00000026;gap:.5rem}.admin-header-brand-wrap{display:flex;align-items:center;gap:.65rem;min-width:0}.admin-header-logo{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#fff;border:1.5px solid rgba(255,255,255,.4);box-shadow:0 2px 8px #00000040;flex-shrink:0}.admin-header-text{display:flex;align-items:center;gap:.45rem;min-width:0}.admin-brand{font-family:Playfair Display,serif;font-weight:700;letter-spacing:.04em;font-size:.92rem;white-space:nowrap;color:#fff}.admin-role-badge{background:#c07d5340;color:#f8d9c0;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.18rem .45rem;border-radius:9999px;border:1px solid rgba(192,125,83,.4);white-space:nowrap}.admin-header-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.admin-site-link,.admin-lock-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:9999px;height:34px;padding:0 .65rem;font-size:.76rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease}.admin-site-link:hover,.admin-lock-btn:hover{background:#ffffff40}.admin-content{padding:.85rem 1rem 4rem;flex:1}.admin-accom-selector{margin-bottom:.85rem}.admin-accom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;background:var(--admin-bg);padding:.25rem;border-radius:.85rem;border:1px solid var(--admin-border)}.admin-accom-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .2rem;min-height:52px;border-radius:.65rem;border:1px solid transparent;background:transparent;color:#6c757d;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);text-align:center;touch-action:manipulation}.admin-accom-btn.is-active{background:#fff;color:#2a3828;border-color:#c07d534d;box-shadow:0 3px 8px #00000014}.admin-accom-title{font-weight:700;font-size:.82rem;white-space:nowrap}.admin-accom-sub{font-size:.66rem;color:var(--color-terracotta, #C07D53);font-weight:600;margin-top:.12rem;white-space:nowrap}.admin-month-bar{background:#faf8f5;border:1px solid var(--admin-border);border-radius:.85rem;padding:.75rem .85rem;margin-bottom:.75rem}.admin-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem}.admin-current-month{font-family:Playfair Display,serif;font-size:1.15rem;font-weight:700;color:#2a3828;margin:0;text-transform:capitalize;text-align:center}.admin-nav-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--admin-border);background:#fff;color:#2a3828;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;touch-action:manipulation;flex-shrink:0}.admin-nav-arrow:active{transform:scale(.92);background:#f0eae1}.admin-stats-card{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}.stat-pill{display:flex;flex-direction:column;align-items:center;padding:.4rem .2rem;border-radius:.5rem;border:1px solid transparent;text-align:center}.stat-pill.is-dispo{background:var(--admin-green-bg);border-color:var(--admin-green-border);color:var(--admin-green)}.stat-pill.is-bloque{background:var(--admin-red-bg);border-color:var(--admin-red-border);color:var(--admin-red)}.stat-pill.is-occupancy{background:#fff8e1;border-color:#ffe082;color:#f57f17}.stat-value{font-size:1.05rem;font-weight:800;line-height:1}.stat-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-top:.2rem}.admin-touch-hint{font-size:.74rem;color:#495057;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem;background:#eef3ed;padding:.45rem .7rem;border-radius:.5rem}.admin-hint-legend{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.7rem}.legend-badge.is-green{color:#1b5e20}.legend-badge.is-red{color:#b71c1c}.admin-calendar-container{background:#fff;border:1px solid var(--admin-border);border-radius:.85rem;padding:.65rem .45rem;box-shadow:0 4px 15px #00000008;margin-bottom:1rem}.admin-weekdays-row{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.7rem;font-weight:700;color:#868e96;text-transform:uppercase;margin-bottom:.35rem;padding:0}.admin-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.28rem}.admin-day{position:relative;height:48px;border-radius:.5rem;border:1.5px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:inherit;font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:all .12s ease-out;padding:2px;overflow:hidden}.admin-day:active{transform:scale(.92)}.admin-day-num{font-size:.95rem;font-weight:700;line-height:1}.admin-day-indicator{font-size:.65rem;font-weight:800;line-height:1;margin-top:2px}.admin-day-sub{font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1;margin-top:2px}.admin-day.is-empty{background:transparent;color:#ced4da;cursor:default;border:none}.admin-day.is-empty:active{transform:none}.admin-day.is-available{background:var(--admin-green-bg);border-color:#c8e6c9;color:var(--admin-green)}.admin-day.is-available .admin-day-indicator,.admin-day.is-available .admin-day-sub{color:#2e7d32}.admin-day.is-booked{background:var(--admin-red-bg);border-color:#ffcdd2;color:var(--admin-red)}.admin-day.is-booked .admin-day-num{text-decoration:line-through;text-decoration-thickness:1.5px}.admin-day.is-booked .admin-day-indicator,.admin-day.is-booked .admin-day-sub{color:#c62828}.admin-day.is-today{box-shadow:inset 0 0 0 2px #2a3828}.admin-actions-section{background:#faf8f5;border:1px solid var(--admin-border);border-radius:.85rem;padding:.85rem}.admin-actions-title{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#495057;margin:0 0 .7rem}.admin-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.85rem}.action-card-btn{display:flex;align-items:center;gap:.55rem;background:#fff;border:1px solid var(--admin-border);border-radius:.65rem;padding:.6rem .65rem;text-align:left;cursor:pointer;transition:all .15s ease-out;touch-action:manipulation;min-height:48px}.action-card-btn:active{transform:scale(.97);background:#f8f9fa}.action-icon{font-size:1.2rem;flex-shrink:0}.action-text{display:flex;flex-direction:column;min-width:0}.action-text strong{font-size:.78rem;color:#212529;line-height:1.2}.action-text span{font-size:.65rem;color:#6c757d;margin-top:.1rem;line-height:1.2}.admin-danger-row{border-top:1px solid var(--admin-border);padding-top:.75rem;text-align:center}.btn-reset-data{background:transparent;border:1px dashed #ADB5BD;color:#6c757d;font-size:.74rem;font-weight:600;padding:.5rem .75rem;border-radius:.5rem;cursor:pointer;transition:all .2s ease;width:100%}.btn-reset-data:hover,.btn-reset-data:active{background:#fff;color:#c62828;border-color:#ef9a9a}.admin-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%) translateY(100px);background:#2a3828;color:#fff;padding:.65rem 1.15rem;border-radius:9999px;font-size:.82rem;font-weight:600;box-shadow:0 8px 25px #00000040;pointer-events:none;transition:transform .25s cubic-bezier(.175,.885,.32,1.275),opacity .25s ease;opacity:0;z-index:999;white-space:nowrap}.admin-toast.is-visible{transform:translate(-50%) translateY(0);opacity:1}@media(max-width:440px){.admin-header{padding:.65rem .75rem}.admin-brand{font-size:.88rem}.admin-content{padding:.65rem .55rem 4.5rem}.admin-calendar-container{padding:.45rem .25rem}.admin-grid{gap:.2rem}.admin-day{height:44px;border-radius:.42rem}.admin-day-num{font-size:.9rem}.admin-day-sub{display:none}.admin-day-indicator{font-size:.72rem;margin-top:1px}.admin-actions-grid{grid-template-columns:1fr;gap:.45rem}}@media(max-width:360px){.admin-btn-label{display:none}.admin-day{height:40px}.admin-day-num{font-size:.85rem}.admin-current-month{font-size:1.05rem}}.admin-tabs-nav{position:sticky;top:0;z-index:100;background:var(--admin-bg);border-bottom:1px solid var(--admin-border);padding:.65rem 1rem;display:flex;gap:.65rem;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-tab-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:9999px;font-family:inherit;font-size:.88rem;font-weight:600;color:#4b5563;background:#fff;border:1px solid var(--admin-border);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000000a}.admin-tab-btn:hover{border-color:#b86b42;color:#b86b42}.admin-tab-btn.is-active{background:#1e281d;color:#fff;border-color:#1e281d;box-shadow:0 4px 14px #1e281d40}.admin-tab-btn.is-active svg{stroke:#fff}.admin-tab-panel{display:block}.admin-tarifs-intro{text-align:center;margin:1rem auto 1.75rem;max-width:620px;padding:0 .5rem}.tarifs-intro-badge{display:inline-block;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#b86b42;background:#b86b421f;padding:.25rem .8rem;border-radius:9999px;margin-bottom:.6rem}.admin-tarifs-title{font-family:Playfair Display,serif;font-size:clamp(1.4rem,2.5vw,1.85rem);color:#1e281d;margin:0 0 .5rem}.admin-tarifs-desc{font-size:.88rem;color:#6b7280;line-height:1.55;margin:0}.tarifs-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.25rem;margin-bottom:2rem;align-items:stretch}.tarif-card{background:#fff;border:1px solid var(--admin-border);border-radius:1.15rem;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 2px 8px #00000008;transition:border-color .2s ease,box-shadow .2s ease}.tarif-card:hover{border-color:#b86b4266;box-shadow:0 6px 18px #0000000f}.tarif-card-header{border-bottom:1px solid var(--admin-border);padding-bottom:1rem;display:flex;flex-direction:column;gap:.35rem}.tarif-card-badge{display:inline-flex;align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#1b5e20;background:#e8f5e9;padding:.2rem .65rem;border-radius:9999px}.tarif-card-badge.is-villa{color:#854d0e;background:#fef9c3}.tarif-card-name{font-family:Playfair Display,serif;font-size:1.28rem;font-weight:700;color:#1e281d;margin:.15rem 0 0}.tarif-card-subtitle{font-size:.8rem;color:#6b7280;margin:0;line-height:1.4}.tarif-card-body{display:flex;flex-direction:column;gap:1.15rem}.tarif-field-group{display:flex;flex-direction:column;gap:.45rem}.tarif-field-group.highlight-season{background:#b86b420a;border:1px dashed rgba(184,107,66,.3);padding:.95rem;border-radius:.75rem}.tarif-field-label{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.tarif-label-title{font-size:.86rem;font-weight:700;color:#1e281d}.tarif-label-hint{font-size:.74rem;color:#9ca3af}.tarif-input-wrap{position:relative;display:flex;align-items:center}.tarif-input{width:100%;height:46px;padding:0 4.75rem 0 .9rem;border:1.5px solid var(--admin-border);border-radius:.6rem;font-family:inherit;font-size:1.15rem;font-weight:700;color:#1e281d;background:#fff;outline:none;transition:all .2s ease;box-sizing:border-box}.tarif-input:focus{border-color:#b86b42;box-shadow:0 0 0 3px #b86b4226}.tarif-currency{position:absolute;right:.9rem;font-size:.82rem;font-weight:600;color:#6b7280;pointer-events:none}.tarif-season-dates-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tarif-subfield{display:flex;flex-direction:column;gap:.35rem}.tarif-subfield-label{font-size:.76rem;font-weight:600;color:#4b5563}.tarif-date-selects{display:flex;gap:.35rem}.tarif-select{flex:1;height:38px;padding:0 .35rem;border:1.5px solid var(--admin-border);border-radius:.5rem;font-family:inherit;font-size:.82rem;font-weight:600;color:#1e281d;background:#fff;cursor:pointer;outline:none;box-sizing:border-box}.tarif-select:focus{border-color:#b86b42}.tarif-card-footer{margin-top:auto;border-top:1px solid var(--admin-border);padding-top:.85rem}.tarif-preview-pill{display:block;text-align:center;font-size:.78rem;font-weight:600;color:#b86b42;background:#b86b4214;padding:.35rem .65rem;border-radius:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tarifs-actions-bar{display:flex;flex-direction:column;gap:.75rem;max-width:480px;margin:0 auto 3rem;padding:0 .5rem}.btn-save-tarifs{height:52px;border-radius:.75rem;background:#b86b42;color:#fff;font-family:inherit;font-size:1rem;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.65rem;box-shadow:0 4px 16px #b86b4252;transition:all .2s ease;touch-action:manipulation}.btn-save-tarifs:hover{background:#9e5630;transform:translateY(-1px);box-shadow:0 6px 20px #b86b4266}.btn-save-tarifs:active{transform:translateY(1px)}.btn-reset-tarifs{height:42px;border-radius:.65rem;background:transparent;color:#6b7280;font-family:inherit;font-size:.84rem;font-weight:600;border:1px solid var(--admin-border);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease;touch-action:manipulation}.btn-reset-tarifs:hover{background:#00000008;color:#1e281d;border-color:#cbd5e1}@media(max-width:640px){.admin-tabs-nav{padding:.5rem .75rem}.admin-tab-btn{padding:.55rem .95rem;font-size:.82rem}.tarifs-cards-grid{grid-template-columns:1fr}}
