:root{--bg:#f5f5ef;--panel:#fff;--card:#fff;--soft:#f0f1ed;--border:#dfe2e7;--gold:#eee600;--gold2:#fff866;--cyan:#1769d2;--green:#008b57;--red:#c93434;--text:#172036;--muted:#687080;--dark:#070a08;--radius:16px;--shadow:0 14px 38px rgba(18,25,32,.09)}
body{font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--text);background:var(--bg)}
.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,#030504,#0b1007);color:#fff;padding:30px 20px;position:sticky;top:0;height:100vh}.brand{border-bottom:1px solid #283020;padding-bottom:24px}.brand-icon{background:var(--gold);color:#050505;font-weight:1000;border-radius:7px;padding:10px 8px}.brand strong{font-size:13px;letter-spacing:.04em}.brand small{color:#aeb5aa}.nav{margin-top:24px}.nav a{color:#e7eae5;border-radius:10px;padding:13px 12px;font-weight:750}.nav a:hover{background:#1b2118;color:var(--gold)}.nav .danger{margin-top:20px;border:1px solid #343a32}
.main{padding:36px clamp(22px,4vw,64px);max-width:1500px;width:100%;margin:0 auto}.public-page{background:var(--bg);padding:48px 24px;min-height:100vh;color:var(--text)}.public-shell{max-width:1180px;margin:auto}.card,.calendar-card{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);color:var(--text);padding:24px}.page-heading{margin-bottom:22px}.page-heading h1,.hero h1{font-size:clamp(34px,5vw,56px);line-height:1.04;margin:8px 0 12px;letter-spacing:-.045em}.page-heading p,.subtitle{color:var(--muted)}.eyebrow{display:block;color:#827c00;font-size:12px;font-weight:900;letter-spacing:.18em}.hero{max-width:1120px;margin:auto;padding:clamp(30px,6vw,76px)}.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:36px 0}.route-card{display:block;padding:34px;border:1px solid var(--border);border-radius:18px;color:var(--text);text-decoration:none;transition:.2s}.route-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#cbc500}.route-card.dark{background:#080b09;color:#fff}.route-card h2{font-size:32px;margin:20px 0 8px}.route-card p{color:#727985;min-height:72px}.route-card.dark p{color:#b9c0b8}.route-card strong{color:#8b8500}.route-card.dark strong{color:var(--gold)}.route-number{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--gold);color:#090909;font-weight:900}.access-links{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted)}.access-links a,.back-link,.mini-link{color:#706b00;font-weight:800}.filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:#fff;padding:16px;border:1px solid var(--border);border-radius:16px;margin-bottom:18px}.filter-bar label{flex:1;min-width:160px}.layout{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(380px,1.2fr);gap:20px}.calendar-head a{background:#f1f2ed;color:#111}.day{color:var(--text);background:#f3f4f1}.day.available{background:#d7f4e6;color:#06653e}.day.selected{background:var(--gold)!important;color:#090909!important;box-shadow:none}.day.disabled{opacity:.35}.hours-grid{gap:10px}.hour-box{border:1px solid var(--border);border-radius:12px;color:var(--text);background:#f4f5f1}.hour-box small,.table small{display:block;color:var(--muted);margin-top:4px}.hour-box.available,.hour-box.saved{background:#dcf7ea;color:#05613c}.hour-box.busy{background:#fbe5e5;color:#8c2525}.empty-state{padding:28px;text-align:center;color:var(--muted);background:#f5f6f2;border-radius:12px}
input,select,textarea{background:#fff!important;color:var(--text)!important;border:1px solid #ccd1da!important;border-radius:11px!important;padding:12px!important}button,.btn{background:var(--gold);color:#0b0b08!important;border:0;border-radius:11px;padding:12px 17px;font-weight:900;box-shadow:none}.btn-dark{background:#101410;color:#fff!important}.btn-success{background:#d7f4e6!important;color:#086940!important}.btn-danger{background:#f8dddd!important;color:#9d2424!important}.table-card{padding:0;overflow:hidden}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table thead{background:var(--gold);color:#10120d}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table th,.table td{text-align:left;padding:15px;border-bottom:1px solid var(--border);vertical-align:top}.table tbody tr:hover{background:#fafbf7}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:18px}.stats-grid.four{grid-template-columns:repeat(4,1fr)}.stat{background:#fff;border:1px solid var(--border);border-radius:15px;padding:20px}.stat small{display:block;color:var(--muted);margin-bottom:8px}.stat strong{font-size:26px}.stat.accent{background:var(--gold)}.filter-tabs{display:flex;gap:8px;margin:18px 0}.filter-tabs a{padding:9px 14px;background:#fff;border:1px solid var(--border);border-radius:999px;color:var(--text);text-decoration:none;font-weight:800}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;background:#edf0f3}.badge.pagado,.badge.atendido{background:#d4f5e6;color:#087047}.badge.pendiente,.badge.reservado{background:#fff4b8;color:#725f00}.badge.rechazado,.badge.no_vino{background:#fae0e0;color:#9c2828}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.total,.amount{font-size:34px;font-weight:950}.inline-form,.actions-inline,.withdraw-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.withdraw-form{margin:22px 0;padding:18px;background:#f5f6f2;border-radius:14px}.transaction,.status-panel{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid var(--border)}.payment-card{max-width:560px;margin:auto;text-align:center}.payment-qr{display:block;max-width:280px;max-height:280px;margin:20px auto;border-radius:14px}.qr-thumb{width:120px;height:120px;object-fit:contain;border:1px solid var(--border);border-radius:12px}.success-card{text-align:center}.success-icon{display:grid;place-items:center;margin:0 auto;width:64px;height:64px;background:#d7f4e6;color:#087047;border-radius:50%;font-size:32px;font-weight:900}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.layout,.route-grid{grid-template-columns:1fr}.stats-grid.four{grid-template-columns:repeat(2,1fr)}.main{padding:24px 16px}}@media(max-width:560px){.stats-grid,.stats-grid.four{grid-template-columns:1fr}.public-page{padding:20px 12px}.hero{padding:25px}.page-heading h1,.hero h1{font-size:36px}.table th,.table td{padding:11px}.filter-bar{display:block}.filter-bar>*{margin-bottom:10px;width:100%}}

/* Contraste de formularios clínicos sobre fondos blancos */
.card .page-title,
.calendar-card .page-title,
.card h1,.card h2,.card h3,.card h4,
.calendar-card h1,.calendar-card h2,.calendar-card h3,.calendar-card h4{
    color:#172036!important;
    background:none!important;
    -webkit-background-clip:initial!important;
    background-clip:initial!important;
    -webkit-text-fill-color:#172036!important;
    text-shadow:none!important;
}
.card label,.calendar-card label,.card legend{
    color:#4f5869!important;
    -webkit-text-fill-color:#4f5869!important;
}
.form-section{
    border-top-color:#e2e5ea!important;
}
.form-section h3{
    color:#756f00!important;
    -webkit-text-fill-color:#756f00!important;
}
.check-group label{
    color:#263044!important;
    -webkit-text-fill-color:#263044!important;
    background:#f8f9f6!important;
    border-color:#dce1e8!important;
}
.check-group label:hover{
    border-color:#aaa400!important;
    background:#fffef0!important;
}
.check-group label:has(input:checked){
    color:#151900!important;
    -webkit-text-fill-color:#151900!important;
    background:#fffbd1!important;
    border-color:#b7b000!important;
    box-shadow:0 0 0 3px rgba(190,183,0,.12)!important;
}
.history-box{
    background:#fbfcfa!important;
    border-color:#dde2e8!important;
}
.history-box summary,.history-box summary *{
    color:#172036!important;
    -webkit-text-fill-color:#172036!important;
}
.history-content,.history-content *{
    color:#30394c!important;
    -webkit-text-fill-color:#30394c!important;
}
.history-content .form-section h3{
    color:#756f00!important;
    -webkit-text-fill-color:#756f00!important;
}
.history-box .badge.warn{
    color:#665800!important;
    -webkit-text-fill-color:#665800!important;
    background:#fff0ad!important;
}
.nav-link-card{
    color:#202a3c!important;
    -webkit-text-fill-color:#202a3c!important;
    background:#f2f4f1!important;
    border:1px solid #e0e4e8!important;
}
.nav-link-card:hover{
    background:#fffbd0!important;
    border-color:#bdb600!important;
}
.field-help,.card .subtitle,.calendar-card .subtitle{
    color:#687080!important;
    -webkit-text-fill-color:#687080!important;
}

/* Texto exclusivo de la tarjeta negra de Criptomonedas */
.hero .route-card.dark h2{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}
.hero .route-card.dark p{
    color:#d8ddd7!important;
    -webkit-text-fill-color:#d8ddd7!important;
}
.hero .route-card.dark strong{
    color:#f3eb00!important;
    -webkit-text-fill-color:#f3eb00!important;
}

/* Estado lleno en todos los calendarios */
.day.full{
    background:#f7dada!important;
    color:#982b2b!important;
    border-color:#e7abab!important;
}
.day.full:hover{background:#f2c4c4!important}
.hour-box.busy small{font-size:0!important}.hour-box.busy small:after{content:'Reservado';font-size:12px!important}
.whatsapp-toast{position:fixed;z-index:50;right:24px;top:24px;max-width:520px;padding:18px;background:#fff;border:2px solid #d8d000;border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.2);color:#172036}.whatsapp-toast strong{display:block;margin-bottom:12px}.whatsapp-toast .actions{display:flex;gap:8px;flex-wrap:wrap}
.clinic-charge-box{margin:28px 0;padding:24px;border:2px solid #d6cf00;border-radius:16px;background:#fffef0}.clinic-charge-box h2{margin:6px 0 8px!important}.charge-summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px;margin:14px 0;background:#fff;border:1px solid #e2e5e9;border-radius:12px}.charge-summary>strong{font-size:28px}
.payment-steps{text-align:left;margin:20px 0;padding:18px;background:#f5f6f2;border-radius:14px}.payment-steps ol{margin:12px 0 0;padding-left:22px}.payment-steps li{margin:8px 0;color:#4f5869}.withdraw-panel{margin:24px 0;padding:22px;border:2px solid #d6cf00;border-radius:16px;background:#fffef0}.withdraw-panel h3{margin-top:0!important}
