/* AI360 Booking — frontend (cliente) */
:root{
  --a360b-primary:#0e7c86; --a360b-primary-d:#0a5f67; --a360b-navy:#0b2545;
  --a360b-bg:#ffffff; --a360b-soft:#f4f7f8; --a360b-line:#e2e8ea; --a360b-text:#1d2b30;
  --a360b-radius:14px; --a360b-shadow:0 8px 24px rgba(11,37,69,.08);
}
.a360b-wizard,.a360b-calendar,.a360b-mybookings{
  max-width:760px;margin:0 auto;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--a360b-text);
  background:var(--a360b-bg);border:1px solid var(--a360b-line);border-radius:var(--a360b-radius);box-shadow:var(--a360b-shadow);padding:24px;
}
.a360b-steps{display:flex;gap:10px;justify-content:center;margin-bottom:22px}
.a360b-step{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:600;
  background:var(--a360b-soft);color:#7b8a90;border:2px solid var(--a360b-line);transition:.2s}
.a360b-step.is-active{background:var(--a360b-primary);color:#fff;border-color:var(--a360b-primary)}
.a360b-step.is-done{background:var(--a360b-navy);color:#fff;border-color:var(--a360b-navy)}
.a360b-panel{display:none;animation:a360b-fade .25s ease}
.a360b-panel.is-active{display:block}
@keyframes a360b-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.a360b-panel h3{margin:0 0 16px;font-size:1.15rem;color:var(--a360b-navy)}
.a360b-panel label{display:block;margin:0 0 14px;font-weight:600;font-size:.92rem}
.a360b-panel input,.a360b-panel select,.a360b-panel textarea{
  display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--a360b-line);
  border-radius:10px;font-size:1rem;background:#fff;font-weight:400;box-sizing:border-box}
.a360b-panel input:focus,.a360b-panel select:focus,.a360b-panel textarea:focus{
  outline:none;border-color:var(--a360b-primary);box-shadow:0 0 0 3px rgba(14,124,134,.15)}
.a360b-resources{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.a360b-card{border:2px solid var(--a360b-line);border-radius:12px;padding:14px;cursor:pointer;transition:.15s;background:#fff}
.a360b-card:hover{border-color:var(--a360b-primary);transform:translateY(-2px)}
.a360b-card.is-selected{border-color:var(--a360b-primary);background:var(--a360b-soft)}
.a360b-card .t{font-weight:700;color:var(--a360b-navy)}
.a360b-card .p{color:var(--a360b-primary);font-weight:700;margin-top:4px}
.a360b-avail{margin-top:10px;font-weight:600;min-height:22px}
.a360b-avail.ok{color:#0a7d29}.a360b-avail.bad{color:#b32d2e}
.a360b-nav{display:flex;justify-content:space-between;margin-top:22px;gap:10px}
.a360b-btn{border:none;border-radius:10px;padding:11px 20px;font-weight:700;cursor:pointer;background:var(--a360b-soft);color:var(--a360b-navy);font-size:.95rem}
.a360b-btn:hover{filter:brightness(.97)}
.a360b-btn.a360b-primary{background:var(--a360b-primary);color:#fff}
.a360b-btn.a360b-primary:hover{background:var(--a360b-primary-d)}
.a360b-btn[disabled]{opacity:.45;cursor:not-allowed}
.a360b-back{visibility:hidden}
.a360b-summary{background:var(--a360b-soft);border-radius:12px;padding:16px;margin-bottom:12px}
.a360b-summary .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--a360b-line)}
.a360b-summary .row:last-child{border:none;font-weight:700;color:var(--a360b-navy)}
.a360b-muted{color:#7b8a90}
.a360b-notice{background:#fff4e5;border:1px solid #ffd8a8;border-radius:12px;padding:16px;color:#8a5300;font-weight:600}
.a360b-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.a360b-cal-head button{border:1px solid var(--a360b-line);background:#fff;border-radius:8px;width:38px;height:38px;font-size:1.2rem;cursor:pointer}
.a360b-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.a360b-cal-grid .d{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:var(--a360b-soft);font-size:.85rem}
.a360b-cal-grid .d.avail{background:rgba(14,124,134,.14);color:var(--a360b-primary);font-weight:700;cursor:pointer}
.a360b-cal-grid .d.full{background:#f3f3f3;color:#c2c8cb;text-decoration:line-through}
.a360b-cal-grid .d.head{background:none;font-weight:700;color:var(--a360b-navy)}
.a360b-result{margin-top:12px;font-weight:600}
.a360b-result.ok{color:#0a7d29}.a360b-result.bad{color:#b32d2e}
@media(max-width:560px){.a360b-wizard,.a360b-calendar,.a360b-mybookings{padding:16px;border-radius:12px}}
