@import url('https://fonts.googleapis.com/css2?family=Almendra:wght@700&family=Gantari:wght@400;500;600;700;800&display=swap');
:root{--blue:#0b4c84;--blue2:#1976a8;--orange:#f47b42;--cream:#fff8e9;--aqua:#e8f7f4;--ink:#263b46;--muted:#6d7a80;--line:#dfe8e8;--white:#fff;--green:#278873;--red:#c94e58;--shadow:0 14px 34px rgba(18,65,92,.09)}
*{box-sizing:border-box}body{margin:0;background:#f5f8f8;color:var(--ink);font-family:Gantari,system-ui,sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:linear-gradient(180deg,#073d6c,#0b4c84 58%,#126d72);color:#fff;padding:28px 18px;display:flex;flex-direction:column;z-index:20}.logo{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.logo>span{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#f7c846,var(--orange));display:grid;place-items:center;font-size:24px}.logo b{display:block;font-family:Almendra,serif;font-size:22px;letter-spacing:.03em}.logo small{opacity:.72}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:rgba(255,255,255,.78);text-decoration:none;border-radius:13px;padding:12px 14px;font-weight:650;transition:.2s}.sidebar nav a:hover,.sidebar nav a.on{background:rgba(255,255,255,.14);color:#fff}.userbox{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding:18px 10px 0}.userbox b,.userbox small{display:block}.userbox small{opacity:.7;margin:3px 0 10px}.userbox a{color:#ffd39d;font-size:13px}.content{margin-left:245px;padding:34px;max-width:1600px}.content>header{display:flex;align-items:center;gap:16px;margin-bottom:28px}.content header h1{font-family:Almendra,serif;color:var(--blue);font-size:36px;margin:2px 0}.eyebrow{color:var(--orange);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin:0}.today{margin-left:auto;background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:12px;font-weight:700}.menu{display:none;border:0;background:var(--blue);color:#fff;border-radius:10px;font-size:20px;padding:8px 11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stats article:after{content:'';position:absolute;width:70px;height:70px;border-radius:50%;right:-25px;top:-25px;background:#dff4f1}.stats article.warn:after{background:#ffe7db}.stats span,.stats small{display:block;color:var(--muted)}.stats b{display:block;color:var(--blue);font-size:31px;margin:8px 0}.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow);margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-head h2,.panel h2{font-family:Almendra,serif;color:var(--blue);margin:0;font-size:24px}.panel-head a{color:var(--blue);font-weight:700}.list{display:grid}.list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #edf1f1}.list-row:first-child{border-top:0}.list-row>div{min-width:0;flex:1}.list-row b,.list-row small{display:block}.list-row small{color:var(--muted);margin-top:3px}.datebox,.avatar{width:46px;height:46px;border-radius:14px;background:var(--aqua);color:var(--blue);display:grid;place-items:center;text-align:center;font-weight:800}.datebox small{font-size:9px;margin-top:-12px}.avatar{border-radius:50%;font-size:20px}.mini-date{font-weight:700;color:var(--orange)}.badge{display:inline-flex;padding:6px 9px;border-radius:99px;background:#edf2f3;color:#5d6b70;font-size:11px;font-weight:800;white-space:nowrap}.badge.enrolled,.badge.attended,.badge.present{background:#dff5ec;color:#24745e}.badge.trial_scheduled,.badge.scheduled{background:#e5effb;color:#2c6091}.badge.no_show,.badge.absent,.badge.inactive,.badge.cancelled{background:#fce4e5;color:#a43d49}.badge.rescheduled,.badge.late{background:#fff0cf;color:#936a19}.badge.justified{background:#eee8fa;color:#6d4ca2}.alert{padding:13px 16px;border-radius:13px;margin-bottom:18px;font-weight:650}.alert.success{background:#dff5ec;color:#216b57}.alert.error{background:#fde3e5;color:#a23e49}.form-panel summary{cursor:pointer;color:var(--blue);font-weight:800;font-size:18px}.form-panel[open] summary{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid label,.stack label{display:grid;gap:6px;color:#45585f;font-size:12px;font-weight:700}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #ccd9db;border-radius:11px;padding:11px 12px;background:#fff;color:var(--ink);font:500 14px Gantari,sans-serif;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue2);box-shadow:0 0 0 3px rgba(25,118,168,.1)}.btn{border:0;border-radius:11px;padding:11px 15px;background:#e9f0f3;color:var(--blue);font-weight:800;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--orange),#f39a4b);color:#fff;box-shadow:0 8px 18px rgba(244,123,66,.2)}.btn.danger{background:#fbe1e3;color:#9f3541}.form-grid>.btn{align-self:end}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:#7c898e;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:11px;border-bottom:1px solid var(--line)}td{padding:13px 11px;border-bottom:1px solid #edf1f1;font-size:13px}td small{display:block;color:var(--muted);margin-top:4px}.inline-action summary{color:var(--red);cursor:pointer;font-weight:700}.inline-action form{display:flex;gap:6px;margin-top:8px}.inline-action input{min-width:140px}.inline-action .btn{padding:8px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.trial-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.trial-top{display:flex;justify-content:space-between;gap:12px}.trial-card h3{margin:4px 0;color:var(--blue);font-size:21px}.trial-card p,.trial-card small{color:var(--muted)}.trial-card a{color:var(--blue)}.inline-form{display:grid;grid-template-columns:1fr 1.5fr auto;gap:8px}.commission-hero{background:linear-gradient(135deg,var(--blue),#167a78);color:#fff;border-radius:25px;padding:32px;margin-bottom:20px;box-shadow:var(--shadow)}.commission-hero h2{font-family:Almendra,serif;font-size:29px;margin:5px 0}.commission-hero>b{font-size:48px}.commission-hero p:last-child{opacity:.78}.empty{color:var(--muted);text-align:center;padding:28px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#ddf6f0,transparent 30%),linear-gradient(135deg,var(--cream),#fff)}.login-card{width:min(430px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:28px;padding:38px;box-shadow:0 30px 70px rgba(11,76,132,.14)}.brand-mark{width:58px;height:58px;background:linear-gradient(135deg,#f6c949,var(--orange));border-radius:18px;display:grid;place-items:center;font-size:29px;margin-bottom:22px}.login-card h1{font-family:Almendra,serif;color:var(--blue);font-size:37px;margin:5px 0}.muted{color:var(--muted)}.stack{display:grid;gap:15px;margin-top:26px}.login-note{display:block;text-align:center;color:#8a969a;margin-top:20px}
.badge.paid,.badge.renewed{background:#dff5ec;color:#24745e}.badge.credited{background:#e5effb;color:#2c6091}.badge.pending,.badge.not_renewed{background:#fff0cf;color:#936a19}.badge.paused,.badge.waived{background:#edf2f3;color:#5d6b70}.badge.withdrawn,.badge.discarded{background:#fce4e5;color:#a43d49}
/* Agenda semanal exclusiva para Dirección */
.week-planner{display:grid;grid-template-columns:repeat(7,minmax(220px,1fr));gap:12px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x proximity}.day-column{background:#eef4f5;border:1px solid var(--line);border-radius:19px;min-height:310px;overflow:hidden;scroll-snap-align:start}.day-column.today-column{border:2px solid var(--orange);background:#fff8ee}.day-head{padding:15px 16px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.day-head div{display:flex;align-items:baseline;gap:8px}.day-head span{font-weight:800;color:var(--blue)}.day-head b{font-size:25px;color:var(--orange)}.day-head small{color:var(--muted)}.day-visits{padding:10px;display:grid;gap:10px}.visit-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;box-shadow:0 7px 18px rgba(18,65,92,.06)}.visit-card-top{display:flex;justify-content:space-between;gap:8px}.visit-card time{color:var(--orange);font-size:12px;font-weight:800}.visit-card h3{margin:4px 0;color:var(--blue);font-size:17px}.visit-card p{margin:0;color:var(--muted);font-size:12px}.visit-meta{display:grid;gap:4px;border-top:1px solid #edf1f1;margin-top:10px;padding-top:9px;font-size:11px;color:var(--muted)}.visit-meta a{color:var(--blue);font-weight:700}.visit-form{display:grid;gap:8px;margin-top:11px}.visit-form label{display:grid;gap:4px;color:#596970;font-size:10px;font-weight:800}.visit-form select,.visit-form textarea{padding:8px;font-size:12px}.visit-form .btn{padding:8px 10px}.empty-day{text-align:center;color:#97a3a7;font-size:12px;padding:36px 8px}.agenda-stats article:nth-child(2):after{background:#dff5ec}
.director-comment{margin-top:10px;padding:9px 10px;border-radius:10px;background:#f5f8f8}.director-comment small{display:block;color:var(--blue);font-weight:800;margin-bottom:4px}.director-comment p{font-size:12px}.role-note{color:var(--blue)}
.compact-stats{grid-template-columns:repeat(2,minmax(220px,1fr));max-width:700px}.roster-tools{display:flex;justify-content:space-between;align-items:end;gap:20px}.roster-tools label{display:grid;gap:5px;min-width:280px;font-size:12px;font-weight:700}.overdue-row{background:#fff8f5}.renewal-action>summary{color:var(--blue)}.renewal-form{display:grid!important;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px!important;min-width:360px;padding:12px;background:#f7fafb;border-radius:12px}.renewal-form label{display:grid;gap:4px;font-size:10px;font-weight:700}.renewal-form .btn{align-self:end}.payment-form{margin-top:8px;background:#fff8e9}.btn.mini{display:inline-flex;text-decoration:none;padding:7px 9px;margin:2px;font-size:11px}.trial-payment{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--cream);margin:12px 0}.trial-payment span{color:var(--ink);font-size:13px}.quick-payment{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin:10px 0;padding:10px;background:#fff8e9;border-radius:12px}
@media(max-width:1050px){.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.week-planner{grid-template-columns:repeat(7,minmax(250px,1fr))}}
@media(max-width:760px){.sidebar{transform:translateX(-102%);transition:.25s;width:250px}.menu-open .sidebar{transform:none}.content{margin-left:0;padding:20px}.menu{display:block}.content header h1{font-size:28px}.today{display:none}.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.inline-form,.quick-payment{grid-template-columns:1fr}.panel{padding:17px}.week-planner{grid-template-columns:repeat(7,minmax(82vw,1fr))}.roster-tools{align-items:stretch;flex-direction:column}.roster-tools label{min-width:0;width:100%}.renewal-form{min-width:280px;grid-template-columns:1fr}}
@media(max-width:480px){.stats{grid-template-columns:1fr}.content{padding:15px}.stats b{font-size:27px}.login-card{padding:28px 23px}}

