/* Agéndalo v0.1.4: interfaz rediseñada, sin cambios en los datos. */
:root {
  --ink:#14243b;
  --sub:#62748a;
  --light:#f7f9fc;
  --border:#e6ecf3;
  --blue:#2158e8;
  --blue-light:#eef3ff;
  --green:#158363;
  --shadow:0 8px 30px rgba(21,39,70,.045);
  --ring:0 0 0 3px rgba(33,88,232,.12);
}
html{min-width:320px;scroll-behavior:smooth}
body{background:linear-gradient(135deg,#f9fbff 0%,#f6f8fc 58%,#f5f8fc 100%);color:var(--ink);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font-family:inherit}
a,button,input,select,textarea{transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}
:focus-visible{outline:3px solid rgba(33,88,232,.26)!important;outline-offset:3px!important}
.topbar{height:82px;background:rgba(255,255,255,.96);border-bottom:1px solid #e9eef5;padding:0 clamp(20px,3vw,46px);position:sticky;top:0;z-index:10;box-shadow:0 2px 16px rgba(29,51,85,.025);backdrop-filter:blur(14px)}
.topbar nav{gap:10px;font-size:13px;color:#63738a}
.topbar nav>a{padding:9px 13px;border-radius:9px}
.topbar nav>a:hover{background:#f2f6ff;color:#234fd6}
.topbar nav a[href*="page=dashboard"]{font-weight:800}
.brand{font-size:22px;letter-spacing:-1.1px;gap:11px}
.brandmark{width:50px;height:50px;font-size:24px;color:#fff;background:linear-gradient(155deg,#49b0ff 0%,#2d6bf0 55%,#1c46bb 100%);border-radius:16px;box-shadow:0 12px 26px rgba(49,94,216,.20)}
.brandtext{font-size:30px;font-weight:900}
.brandaccent{color:#2158e8}
.navbtn{padding:9px 14px;border:1px solid #e2e8f1;border-radius:10px;background:white}
.navbtn:hover{background:#fff0f1;color:#ba3448;border-color:#f4d0d3}
.adminlayout{grid-template-columns:238px minmax(0,1fr);min-height:calc(100vh - 128px)}
.sidebar{background:#fff;border-right:1px solid #e9edf4;padding:31px 13px;align-self:stretch}
.sidehead{padding:0 15px 17px;color:#90a0b5;font-size:10px;letter-spacing:1.35px}
.sideitem{font-size:13px;min-height:46px;margin-bottom:5px;padding:11px 13px;border-radius:11px;color:#607189;gap:13px}
.sideitem:hover{background:#f3f7fd;color:#2158e8}
.sideitem.on{background:#edf3ff;color:#1a52df;font-weight:800;box-shadow:inset 3px 0 0 #245beb}
.sideitem>span{font-family:Arial,sans-serif;display:grid;place-items:center;font-size:20px;font-weight:400;line-height:1;width:23px;flex:none}
.adminmain{max-width:1320px;margin:0 auto;padding:39px clamp(25px,3.6vw,60px) 78px;min-width:0}
.pagetitle{margin-bottom:27px;max-width:950px}
.pagetitle h1{font-size:clamp(25px,2.6vw,33px);letter-spacing:-1.25px;line-height:1.23;font-weight:800;margin:0 0 8px}
.pagetitle p{color:#64758b;font-size:14px;line-height:1.6;max-width:740px}
.statgrid{gap:17px}
.stat{padding:24px 25px;min-height:150px;border:1px solid #e5ebf3;border-radius:16px;box-shadow:var(--shadow);background:#fff;position:relative;overflow:hidden}
.stat:before{content:'';height:4px;position:absolute;inset:0 0 auto;background:linear-gradient(90deg,#386cf4,#77a1fb)}
.stat:nth-child(2):before{background:linear-gradient(90deg,#10a084,#7ac4ad)}
.stat:nth-child(3):before{background:linear-gradient(90deg,#6884e2,#9daee4)}
.stat span{color:#6a7890;font-size:13px}
.stat strong{font-size:37px;letter-spacing:-1.8px;line-height:1.1;margin:14px 0 8px}
.stat small{font-size:12px;color:#8190a5}
.stat a{font-size:16px;line-height:1.45;color:#245ade;margin:17px 0 9px}
.sectionline{margin:36px 0 17px;align-items:center}
.sectionline h2{font-size:19px;font-weight:800;letter-spacing:-.55px;margin:0 0 6px}
.sectionline p{line-height:1.5}
.eventgrid{gap:17px}
.eventcard{padding:22px;min-height:265px;border-radius:15px;box-shadow:0 8px 24px rgba(30,45,80,.025);position:relative}
.eventcard:hover{border-color:#bdd0ee;box-shadow:0 9px 25px rgba(30,66,135,.09);transform:translateY(-2px)}
.eventicon{background:linear-gradient(140deg,#e8efff,#f0f5ff);color:#285ee3;border-radius:13px;font-size:23px}
.status{align-self:auto;position:absolute;top:27px;right:21px;margin:0;background:#eaf8f1;border:1px solid #d5eee2;color:#13815a;border-radius:30px;padding:5px 10px;line-height:1.4;font-size:10px}
.eventcard:has(.status) h3{margin-top:24px}
.eventcard h3{font-size:16px}
.eventcard>p{font-size:13px;color:#708097}
.eventdetails{font-size:12px;gap:14px}
.eventactions{gap:13px;justify-content:space-between;border-top:1px solid #e9edf3;padding-top:14px;margin-top:18px}
.eventactions>a,.eventactions>button{border-radius:8px;padding:7px 5px;font-size:12px}
.eventactions>a:hover,.eventactions>button:hover{background:#f0f4ff;color:#1645c5}
.btn{min-height:45px;padding:11px 19px;border-radius:10px;font-size:13px;letter-spacing:.03px;box-shadow:none}
.btn.primary{background:#2359e6;color:white;box-shadow:0 5px 13px rgba(35,89,230,.14)}
.btn.primary:hover{background:#1647cf;box-shadow:0 8px 20px rgba(35,89,230,.2)}
.btn.secondary{background:#fff;color:#2659d7;border-color:#ccd9f0}
.btn.secondary:hover{background:#f1f5ff}
.btn.danger:hover{background:#fff1f3}
.settingscard,.listcard{max-width:1000px;background:#fff;border:1px solid #e4eaf2;border-radius:17px;box-shadow:0 7px 24px rgba(19,41,69,.033);overflow:hidden}
.settingscard{padding:clamp(23px,3vw,33px);overflow:visible}
.settingscard h2{font-size:17px;letter-spacing:-.4px;font-weight:800;line-height:1.4;margin:0 0 7px}
.settingscard .hint,.settingscard>p{color:#748197;font-size:13px;line-height:1.68}
.settingscard .hint{margin:6px 0 20px}
.settingscard>label,.settingscard .formgrid>label,.form-area label{color:#334862;font-size:12px;font-weight:800;line-height:1.5}
.settingscard .formgrid>label{margin-bottom:18px}
input:not([type=checkbox]):not([type=hidden]):not([type=radio]),textarea,select{border:1px solid #dbe3ee;min-height:46px;border-radius:10px;padding:11px 14px;margin-top:7px;background:#fff;color:#243b56;font-size:14px;box-shadow:0 1px 2px rgba(24,42,69,.02)}
input:not([type=checkbox]):not([type=hidden]):not([type=radio]):hover,textarea:hover,select:hover{border-color:#b8c9e2}
input:not([type=checkbox]):not([type=hidden]):not([type=radio]):focus,textarea:focus,select:focus{outline:0;border-color:#5380ed;box-shadow:var(--ring)}
input::placeholder,textarea::placeholder{color:#9aa8b8}
.formgrid{column-gap:19px}
.formactions{margin-top:23px;padding-top:21px;border-color:#edf1f6}
.checkline{margin:15px 0!important;align-items:flex-start;line-height:1.6}
.checkline input{margin-top:3px;width:18px;height:18px;accent-color:#255de8;flex:none}
.cut{background:#e9edf4;margin-top:25px;margin-bottom:25px!important}
.settingscard code{display:inline-block;max-width:100%;white-space:normal;word-break:break-word;padding:9px 11px;background:#f3f6fb;color:#405677;border:1px solid #e8edf4;font-size:12px;line-height:1.6}
.listcard{max-width:none}
.meeting{padding:20px 25px}
.datecube{border-color:#dfe7f0;background:#f7faff;color:#234fd1;border-radius:11px}
.meeting strong{font-size:14px}
.meeting small{font-size:12px}
.empty{padding:43px 28px;font-size:14px}
.tablewrap{overflow-x:auto}
table{min-width:670px}
th{background:#f8fafd;color:#74849a;font-size:10px;padding:16px 20px}
td{padding:19px 20px;color:#3a4e68}
tbody tr:hover{background:#fafcff}
td form{display:inline-block;margin:0 7px 5px 0}
.pill.good{color:#0d8060;background:#e9f8f1}
.toast{top:87px;right:22px;max-width:min(450px,calc(100vw - 32px));z-index:40;border-radius:13px;line-height:1.5}
.footer{border-top:1px solid #e8edf4;background:#fff;color:#96a3b3;font-size:11px;padding:22px}
/* Correo: elección de método clara y secciones condicionales. */
.mail-intro{margin-bottom:24px!important}
.mail-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:19px 0 24px}
.mailchoice{display:flex!important;align-items:flex-start;gap:9px;min-height:153px;padding:18px 17px!important;margin:0!important;border:1px solid #e1e7f0!important;border-radius:13px!important;background:#fff!important;cursor:pointer;box-shadow:0 2px 6px rgba(20,40,66,.02)}
.mailchoice:hover{background:#fafcff!important;border-color:#bbcced!important;box-shadow:0 5px 15px rgba(31,71,135,.05)}
.mailchoice:has(input:checked){border:2px solid #255ae7!important;padding:17px 16px!important;background:#f5f8ff!important;box-shadow:0 0 0 3px #eef3ff}
.mailchoice input[type=radio]{display:block!important;appearance:auto;flex:0 0 17px!important;width:17px!important;max-width:17px!important;height:17px!important;min-height:17px!important;margin:2px 0 0!important;padding:0!important;border:0;accent-color:#285fe6;box-shadow:none!important}
.mailchoice strong{font-size:13px;line-height:1.45;color:#223954}
.mailchoice small{font-size:11px;line-height:1.6;color:#7889a0;margin-top:9px}
.mailchoice:has(input:checked) strong{color:#1f51cb}
.mail-section{padding:24px;border-radius:14px;background:#fbfcff;border:1px solid #e7edf5;margin:18px 0 24px}
.mail-section h2{font-size:16px;margin:0 0 8px}
.mail-section .hint{margin-bottom:14px}
.mail-section>label{display:block;margin-bottom:12px}
.mail-section.is-collapsed{display:none!important}
.mail-tip{padding:14px 16px;background:#edf7f2;border:1px solid #d6ecdf;border-radius:10px;color:#2e6e54;font-size:12px;line-height:1.65;margin-top:14px}
.mail-tip strong{color:#176144}
.mail-warning{padding:13px 15px;background:#fff9ed;border:1px solid #f4e8c9;border-radius:10px;color:#846130;font-size:12px;line-height:1.65;margin:16px 0}
.mail-section .formgrid{margin-top:12px}
.mail-section .formgrid label{margin:0 0 13px}
.mail-section .formgrid label:last-child{margin-bottom:0}
.mail-status{display:inline-flex;align-items:center;gap:8px;border:1px solid #dce7f9;background:#f2f6fd;padding:8px 12px;border-radius:9px;font-size:12px;font-weight:800;color:#315c9e;margin:8px 0 16px}
.mail-radio-caption{font-size:12px;color:#7b8ca0}
.settingscard .formactions{position:relative}
/* Página pública y flujo de reserva */
.auth-shell{padding:38px 14px}
.auth-card,.resultcard{border-radius:19px;border-color:#e3eaf3;box-shadow:0 16px 55px rgba(28,48,80,.075)}
.auth-card{padding:clamp(24px,4vw,41px)}
.auth-card h1{font-size:29px}
.publicwrap{max-width:800px;padding:65px 19px 86px}
.profile-banner{margin-bottom:28px}
.profile-banner h1{font-size:31px}
.avatar{box-shadow:inset 0 0 0 2px #dce7ff;background:#edf3ff;color:#2757db}
.publicevents{border-radius:17px;box-shadow:0 14px 40px rgba(30,58,90,.065)}
.publicevent{padding:24px 27px}
.publicevent:hover{background:#f4f7ff}
.bookingshell{padding:48px 20px 75px}
.bookingpanel{max-width:1100px;grid-template-columns:320px minmax(0,1fr);border-radius:19px;box-shadow:0 14px 55px rgba(25,47,85,.07);border-color:#e0e8f1}
.hostinfo{background:#fcfdff;border-right:1px solid #e8eef6;padding:32px 27px}
.hostinfo h1{font-size:24px;line-height:1.3}
.hostlabel,.eventmeta{color:#718197}
.description{color:#667993}
.notechip{background:#f1f5ff;color:#59729b}
.pickarea{padding:34px 30px;gap:22px}
.pickarea h2{font-size:19px;margin:3px 0 25px}
.pickarea .monthline{padding-bottom:12px;margin-bottom:7px}
.monthline button{width:34px;height:34px;font-size:20px;border-radius:9px}
.calgrid.weekday{color:#8694a8}
.calday{max-height:44px;justify-self:center;width:min(100%,44px);border-radius:10px;font-size:13px}
.calday.has-slots{background:#eef3ff}
.calday.selected{background:#2259e5;color:#fff;box-shadow:0 4px 10px #2259e526}
.slot{min-height:44px;border-radius:9px;transition:.16s ease}
.slot:hover{border-color:#285ae0;background:#edf3ff}
.slots-area{border-left-color:#e9edf6}
.booking-summary{background:#f4f7fc;border:1px solid #e8eef6}
.form-area{max-width:550px}
.resultcard{max-width:540px}
.ticket{background:#f5f7fc;border:1px solid #e5ebf4}
/* Mejoras de móvil y tablet: no se cortan controles ni tablas. */
@media(max-width:1100px){.adminlayout{grid-template-columns:210px minmax(0,1fr)}.adminmain{padding:34px 25px 66px}.eventgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.mail-modes{grid-template-columns:1fr}.mailchoice{min-height:unset}.mailchoice small{margin-top:4px}}
@media(max-width:800px){
  .topbar{height:66px;padding:0 16px}
  .topbar nav{gap:5px}
  .brandtext{font-size:24px}
  .brand{font-size:20px}
  .brandmark{width:42px;height:42px}
  .adminlayout{display:block}
  .sidebar{display:flex;position:sticky;top:66px;z-index:9;overflow-x:auto;white-space:nowrap;padding:8px 12px;gap:6px;border-right:0;border-bottom:1px solid #e7edf4;scrollbar-width:thin}
  .sidehead{display:none}
  .sideitem{display:inline-flex;flex-shrink:0;margin:0;padding:10px 13px;min-height:42px}
  .sideitem.on{box-shadow:inset 0 -3px 0 #245beb}
  .adminmain{padding:29px 18px 58px}
  .statgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stat{padding:20px;min-height:137px}
  .stat a{font-size:14px}
  .bookingpanel{display:block;max-width:600px}
  .hostinfo{border-right:0;border-bottom:1px solid #e7ebf1;padding:24px}
  .hostinfo .description,.notechip{margin-top:13px}
  .pickarea{padding:27px 23px}
  .settingscard{padding:24px}
}
@media(max-width:640px){
  .topbar nav>a:first-child{display:none}
  .topbar nav>a:nth-child(2){display:none}
  .navbtn{padding:8px 11px}
  .pagetitle{margin-bottom:21px}
  .pagetitle h1{font-size:25px}
  .statgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .stat{padding:18px;min-height:127px;margin:0}
  .stat:last-child{grid-column:1/-1}
  .stat strong{font-size:31px}
  .stat a{font-size:14px;margin-top:12px}
  .eventgrid{grid-template-columns:1fr}
  .sectionline{margin-top:29px;align-items:flex-start;flex-wrap:wrap;gap:15px}
  .sectionline>.btn{width:100%}
  .sectionline .textlink{font-size:12px}
  .settingscard{padding:20px 18px;border-radius:14px}
  .settingscard .formgrid{grid-template-columns:1fr}
  .mail-modes{grid-template-columns:1fr;gap:9px}
  .mailchoice{padding:15px!important}
  .mailchoice:has(input:checked){padding:14px!important}
  .mail-section{padding:17px 15px}
  .formactions{gap:13px;flex-wrap:wrap}
  .formactions .btn{width:100%}
  .scheduleline{display:flex;align-items:stretch;gap:9px}
  .scheduleinputs{display:flex;gap:8px;justify-content:space-between}
  .scheduleinputs input{min-width:0;width:48%;font-size:13px}
  .listcard{border-radius:12px}
  .meeting{gap:12px;padding:15px}
  .meeting>b{font-size:12px}
  .datecube{min-width:49px;height:50px}
  .publicwrap{padding:35px 13px 60px}
  .publicevent{padding:19px 14px;gap:11px}
  .bookingshell{padding:15px 10px 50px}
  .bookingpanel{border-radius:15px}
  .pickarea{display:block;padding:24px 17px}
  .pickarea #pick-calendar,.pickarea:has(.slots-area:not([hidden])) #pick-calendar{width:100%;min-width:0}
  .slots-area{width:100%;min-width:0;border-left:0;border-top:1px solid #e8edf4;padding:19px 0 0;margin-top:20px}
  .slots-area .slot{display:inline-block;width:calc(50% - 10px);margin:5px}
  .resultwrap{padding:36px 13px}
  .resultcard{padding:27px 21px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* Iconografía consistente */
.brandmark svg{width:30px;height:30px;stroke-width:2.2}
.sideitem>span svg{height:19px;width:19px;stroke-width:1.75}
.eventicon svg{height:22px;width:22px;stroke-width:1.9}

/* Evita controles de ancho completo y desbordamiento en los ajustes. */
.mail-modes .mailchoice{min-width:0}
.mail-modes .mailchoice span{display:block;min-width:0;flex:1}
.mailchoice strong,.mailchoice small{display:block;overflow-wrap:anywhere}
.mail-notices-panel{border-top:1px solid #e9edf4;padding-top:20px;margin-top:10px}
.mail-notices-panel.is-collapsed,.mail-test-form.is-collapsed,.mail-off-panel.is-collapsed{display:none!important}
.mail-off-panel{padding:18px 20px;margin:20px 0 10px;border:1px solid #e4eaf3;background:#f7f9fd;border-radius:12px;font-size:13px;color:#526781}
.mail-section input[type=email],.mail-section input[type=password],.mail-section input[type=text],.mail-section select{max-width:100%}
.mail-test-form{margin-top:20px!important}
@media(min-width:801px){.mail-modes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.mail-modes{grid-template-columns:1fr}.mailchoice{min-height:0}}
@media(max-width:640px){.mail-status{max-width:100%;white-space:normal}.mail-off-panel{padding:16px}}

/* SaaS 0.2: Google connection */
.google-connect-title{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.google-connect-title h2{margin:0 0 5px}
.google-connect-title .hint{margin:0}
.google-logo{display:flex;align-items:center;justify-content:center;border-radius:14px;border:1px solid #e5e7eb;background:#fff;min-width:54px;height:54px;font-size:29px;font-weight:750;font-family:system-ui,sans-serif;color:#4285f4;box-shadow:0 2px 8px #18295a0d}
.google-button{min-height:48px}
.calendar-status{padding:14px 17px;border-radius:12px;font-weight:650;margin:16px 0}
.calendar-status.success{color:#166534;background:#ecfdf5;border:1px solid #a7f3d0}
@media(max-width:680px){.google-connect-title{align-items:flex-start}.google-logo{min-width:48px;height:48px}}

.calendar-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;margin-bottom:24px;background:linear-gradient(115deg,#f3f7ff,#ffffff);border:1px solid #d9e4ff;border-radius:16px}
.calendar-cta strong{font-weight:740;color:#1f3465}.calendar-cta p{margin:5px 0 0;color:#53637d}
@media(max-width:630px){.calendar-cta{align-items:stretch;flex-direction:column}.calendar-cta .btn{width:100%;text-align:center;justify-content:center}}

/* v0.2.4: acción de eliminación en tarjetas de tipos de reunión */
.eventactions .delete-event-form{display:inline-flex;align-items:center;margin:0;padding:0}
.eventactions .delete-event-btn{color:#b42318;font-weight:600;min-height:34px}
.eventactions .delete-event-btn:hover{color:#912018;text-decoration:underline}
