:root{--bg:#070707;--panel:#131313;--line:#34312a;--gold:#e1ad43;--text:#f5f5f5;--muted:#aaa}*{box-sizing:border-box}body{background:radial-gradient(circle at top,rgba(225,173,67,.08),transparent 35%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}.admin-nav{background:#0e0e0e;border-bottom:1px solid var(--line)}.admin-nav .navbar-brand{font-weight:800;letter-spacing:.05em}.admin-nav img{width:42px;height:42px;border-radius:50%;object-fit:cover;margin-right:10px}.admin-container{width:min(1180px,calc(100% - 24px));margin:auto;padding:32px 0}.admin-card{background:linear-gradient(145deg,#171717,#0e0e0e);border:1px solid var(--line);border-radius:16px;overflow:hidden}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-size:.78rem}.stat strong{font-size:2rem;color:var(--gold)}.admin-title{font-weight:800}.form-control,.form-select{background:#111;border-color:#3b3b3b;color:#fff;border-radius:9px}.form-control:focus,.form-select:focus{background:#111;color:#fff;border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(225,173,67,.12)}.form-control::placeholder{color:#777}.table{--bs-table-bg:transparent;--bs-table-color:#eee;--bs-table-border-color:#303030}.table thead th{background:#1b1b1b;color:var(--gold);border:0;padding:15px}.table td{padding:14px}.btn-gold{background:var(--gold);color:#111;border:0;font-weight:800}.btn-gold:hover{background:#f1c766;color:#111}.btn-outline-gold{border-color:var(--gold);color:var(--gold)}.btn-outline-gold:hover{background:var(--gold);color:#111}.badge-status{padding:.55em .8em;border-radius:99px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);padding:30px}.login-logo{width:110px;height:110px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 18px}.back-link{color:var(--gold);text-decoration:none}.section-card{padding:24px}.nav-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:800px){.stat-grid{grid-template-columns:1fr 1fr}.admin-container{padding-top:20px}.table-responsive{font-size:.85rem}}@media(max-width:430px){.stat-grid{grid-template-columns:1fr}.stat strong{font-size:1.6rem}}

/* ===== Agenda diaria en tarjetas ===== */
.daily-dashboard{width:min(1240px,calc(100% - 24px))}.dashboard-heading{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:24px}.date-picker-form{width:min(260px,100%)}.small-label{letter-spacing:.12em;font-weight:800}.top-stats{margin-bottom:24px}.day-panel{background:linear-gradient(145deg,#151515,#0c0c0c);border:1px solid var(--line);border-radius:20px;padding:22px}.day-panel-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.day-title{font-size:1.35rem;font-weight:800}.day-summary{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:8px}.summary-chip{appearance:none;border:1px solid #383838;background:#111;color:#eee;border-radius:12px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;transition:.2s ease;text-align:left}.summary-chip span{font-size:.74rem;color:#aaa}.summary-chip strong{font-size:1.12rem}.summary-chip.pending strong{color:#e1ad43}.summary-chip.completed strong{color:#57d38c}.summary-chip.cancelled strong{color:#ff6b6b}.summary-chip.active{border-color:var(--gold);background:rgba(225,173,67,.09);box-shadow:0 0 0 1px rgba(225,173,67,.15)}.appointment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.search-field{display:flex;align-items:center;gap:10px;min-height:46px;width:min(440px,100%);padding:0 14px;background:#0b0b0b;border:1px solid #343434;border-radius:12px;color:#a9a9a9}.search-field:focus-within{border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(225,173,67,.1)}.search-field input{border:0;outline:0;background:transparent;color:#fff;width:100%;font-size:.95rem}.search-field input::placeholder{color:#777}.toolbar-note{color:#777;font-size:.82rem}.appointment-list{display:grid;gap:12px}.appointment-card{display:grid;grid-template-columns:150px minmax(0,1fr) 250px;align-items:stretch;background:#111;border:1px solid #303030;border-left:5px solid #777;border-radius:16px;overflow:hidden;transition:transform .18s ease,border-color .18s ease,opacity .2s ease}.appointment-card:hover{transform:translateY(-1px);border-color:#454545}.appointment-card[hidden]{display:none!important}.appointment-card.status-pending{border-left-color:var(--gold)}.appointment-card.status-completed{border-left-color:#38b875;background:linear-gradient(90deg,rgba(56,184,117,.07),#111 28%)}.appointment-card.status-cancelled{border-left-color:#d94e4e;background:linear-gradient(90deg,rgba(217,78,78,.06),#101010 28%);opacity:.78}.appointment-time-block{padding:18px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #2d2d2d;background:rgba(255,255,255,.015)}.time-label{font-size:.66rem;letter-spacing:.12em;color:#777;font-weight:800;margin-bottom:3px}.appointment-time-block strong{font-size:1.72rem;color:var(--gold);line-height:1}.appointment-time-block>span:last-child{font-size:.78rem;color:#aaa;margin-top:6px}.appointment-main{padding:17px 20px;display:flex;flex-direction:column;justify-content:center;min-width:0}.appointment-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.appointment-title-row h3{font-size:1.12rem;font-weight:800;margin:0 0 3px;overflow-wrap:anywhere}.service-line{margin:0;color:#b7b7b7;font-size:.9rem}.phone-link{color:#64d69a;text-decoration:none;display:inline-flex;align-items:center;gap:7px;margin-top:9px;width:max-content;max-width:100%}.phone-link:hover{color:#8eeab5}.state-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:99px;font-size:.72rem;font-weight:800;white-space:nowrap}.state-pending{background:rgba(225,173,67,.13);color:#e9bd62}.state-completed{background:rgba(56,184,117,.14);color:#65d99a}.state-cancelled{background:rgba(217,78,78,.13);color:#ff7b7b}.appointment-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px;border-left:1px solid #2d2d2d;align-items:center}.action-btn{border:0;border-radius:12px;min-height:54px;padding:9px 10px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:.16s ease}.action-btn span:first-child{font-size:1.3rem;line-height:1}.complete-btn{background:#1f9d61;color:#fff}.complete-btn:hover{background:#28b873;transform:translateY(-1px)}.cancel-btn{background:#3a2020;color:#ff9696;border:1px solid #6e3030}.cancel-btn:hover{background:#512626;color:#fff;transform:translateY(-1px)}.finished-label{grid-column:1/-1;text-align:center;color:#888;font-size:.86rem;font-weight:700}.empty-appointments{text-align:center;padding:54px 20px;color:#999;border:1px dashed #373737;border-radius:16px}.empty-appointments h3{color:#eee;font-size:1.15rem}.empty-appointments p{margin:0}.empty-icon{font-size:2.2rem;color:var(--gold);margin-bottom:10px}.status-message{display:none;margin-bottom:12px;padding:11px 14px;border-radius:11px;font-weight:700}.status-message.show{display:block}.status-message.success{background:rgba(56,184,117,.12);border:1px solid rgba(56,184,117,.35);color:#79e2aa}.status-message.error{background:rgba(217,78,78,.12);border:1px solid rgba(217,78,78,.35);color:#ff8c8c}.confirm-overlay{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.76);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px}.confirm-overlay[hidden]{display:none}.confirm-dialog{width:min(420px,100%);background:#121212;border:1px solid #3c3c3c;border-radius:20px;padding:26px;text-align:center;box-shadow:0 20px 70px rgba(0,0,0,.55)}.confirm-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;font-size:1.8rem;font-weight:900;background:rgba(225,173,67,.12);color:var(--gold)}.confirm-icon.complete{background:rgba(56,184,117,.13);color:#68dc9d}.confirm-icon.cancel{background:rgba(217,78,78,.13);color:#ff7777}.confirm-dialog h2{font-size:1.35rem;font-weight:800}.confirm-dialog p{color:#aaa}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.dialog-open{overflow:hidden}

@media(max-width:1000px){.day-panel-header{align-items:flex-start;flex-direction:column}.day-summary{width:100%}.appointment-card{grid-template-columns:130px minmax(0,1fr) 210px}.appointment-actions{padding:10px}.action-btn{font-size:.82rem}}
@media(max-width:760px){.daily-dashboard{width:min(100% - 16px,760px);padding:18px 0}.dashboard-heading{align-items:stretch;flex-direction:column;margin-bottom:18px}.date-picker-form{width:100%}.top-stats{grid-template-columns:repeat(4,1fr);gap:7px}.top-stats .stat{padding:12px 9px}.top-stats .stat span{font-size:.6rem}.top-stats .stat strong{font-size:1.4rem}.day-panel{padding:13px;border-radius:16px}.day-summary{grid-template-columns:1fr 1fr}.summary-chip{padding:8px 10px}.appointment-toolbar{align-items:stretch;flex-direction:column;gap:7px}.search-field{width:100%}.toolbar-note{display:none}.appointment-card{grid-template-columns:92px minmax(0,1fr);border-radius:14px}.appointment-time-block{padding:13px 10px}.appointment-time-block strong{font-size:1.35rem}.appointment-time-block>span:last-child{font-size:.66rem}.appointment-main{padding:13px}.appointment-title-row{display:block}.state-pill{margin-top:8px}.appointment-actions{grid-column:1/-1;border-left:0;border-top:1px solid #2d2d2d;padding:9px;grid-template-columns:1fr 1fr}.action-btn{min-height:46px;flex-direction:row;gap:6px}.action-btn span:first-child{font-size:1.1rem}}
@media(max-width:430px){.admin-nav .container-fluid{align-items:flex-start}.admin-nav .navbar-brand{font-size:.85rem}.admin-nav img{width:34px;height:34px}.nav-actions{width:100%;margin-top:8px;display:grid;grid-template-columns:repeat(3,1fr)}.nav-actions .btn{font-size:.68rem;padding:.35rem .3rem}.top-stats{grid-template-columns:1fr 1fr}.day-title{font-size:1.12rem}.summary-chip span{font-size:.66rem}.appointment-card{grid-template-columns:78px minmax(0,1fr)}.appointment-time-block strong{font-size:1.2rem}.appointment-main{padding:12px 10px}.appointment-title-row h3{font-size:1rem}.service-line,.phone-link{font-size:.8rem}.confirm-dialog{padding:22px 17px}.confirm-actions{grid-template-columns:1fr}}
