:root{--bg:#f5f7fb;--panel:#fff;--text:#162033;--muted:#6f7b91;--primary:#6756ff;--primary2:#8b5cf6;--border:#e8ebf2;--sidebar:#121827;--success:#1e9e6a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:linear-gradient(180deg,#111827,#171d31);padding:22px 16px;color:#fff;z-index:1040;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand-mark,.auth-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary),#d65aff);color:#fff;font-weight:800;font-size:22px;box-shadow:0 8px 22px #6756ff55}.brand small,.user-chip small,.file-card small{display:block;color:#93a1b8}.sidebar nav a{display:flex;gap:12px;align-items:center;color:#b9c2d4;text-decoration:none;padding:11px 12px;border-radius:10px;margin:3px 0;font-weight:600;font-size:14px}.sidebar nav a:hover{background:#ffffff10;color:#fff}.nav-label{color:#707c94;font-size:10px;font-weight:800;letter-spacing:.12em;margin:22px 12px 8px}.main{margin-left:245px}.topbar{height:78px;background:#ffffffdd;backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:12px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1030}.topbar h1{font-size:22px;margin:0}.user-chip{display:flex;align-items:center;gap:10px}.avatar,.mini-avatar,.brand-card-icon,.social-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eceafd;color:var(--primary);font-weight:800}.content{padding:26px}.panel,.metric-card,.auth-card,.file-card,.payment-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 24px rgba(23,32,51,.04)}.panel{padding:22px}.panel h3{font-size:18px}.panel-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.panel-head h3{margin:0}.metric-card{padding:18px;min-height:128px;display:flex;flex-direction:column;justify-content:center}.metric-card i{color:var(--primary);font-size:21px}.metric-card span{color:var(--muted);font-size:13px;margin:6px 0}.metric-card strong{font-size:24px}.notice-banner{display:flex;gap:13px;align-items:center;padding:14px 18px;border:1px solid #f1df9e;background:#fff8d9;border-radius:14px;color:#5d5014}.notice-banner i{font-size:24px}.notice-banner span{display:block;font-size:13px}.quick-actions{display:grid;gap:10px}.quick-actions a,.admin-action{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);background:#fafbfe}.quick-actions i{color:var(--primary)}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef1f6;font-size:12px;text-transform:capitalize}.brand-card-icon{width:54px;height:54px;font-size:22px;margin-bottom:15px}.post-preview{border:1px solid var(--border);border-radius:14px;padding:16px;background:#fbfcff}.preview-media{height:160px;border-radius:12px;background:#edf0f6;display:grid;place-items:center;font-size:32px;color:#9aa5b7}.wizard-nav{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:14px}.wizard-nav button{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px 7px;font-size:12px}.wizard-nav button.active{background:var(--primary);border-color:var(--primary);color:#fff}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.option-card{border:1px solid var(--border);padding:12px;border-radius:12px;cursor:pointer}.option-card input{margin-right:8px}.audience-box{height:100%;padding:12px 16px;border-radius:12px;background:#f2f0ff}.audience-box strong{display:block;font-size:20px;color:var(--primary)}.review-card{display:flex;gap:14px;padding:18px;background:#f8f7ff;border:1px solid #ddd8ff;border-radius:14px;margin:18px 0}.review-card i{font-size:24px;color:var(--primary)}.payment-card{padding:22px;background:linear-gradient(135deg,#171d31,#27304b);color:#fff;min-height:160px}.payment-number{font-size:20px;letter-spacing:.05em;margin:30px 0 20px}.file-card{overflow:hidden}.file-card img,.file-placeholder{width:100%;height:170px;object-fit:cover;background:#edf0f6}.file-placeholder{display:grid;place-items:center;font-size:42px;color:#8b95a8}.admin-action{height:150px;flex-direction:column;align-items:flex-start;justify-content:center}.admin-action i{font-size:24px;color:var(--primary)}.admin-action span{color:var(--muted);font-size:13px}.max-form{max-width:900px}.auth-bg{min-height:100vh;background:radial-gradient(circle at 10% 10%,#e6e3ff,transparent 30%),radial-gradient(circle at 90% 20%,#fde6ff,transparent 30%),#f5f7fb}.max-auth{max-width:460px}.auth-card{padding:34px;margin-top:6vh}.auth-logo{margin-bottom:20px}.form-control,.form-select{border-radius:10px;border-color:#dfe3eb;padding:.72rem .82rem}.btn{border-radius:10px}.btn-primary{background:var(--primary);border-color:var(--primary)}.table>:not(caption)>*>*{padding:.9rem .7rem;border-color:#eef0f4}a{color:var(--primary)}@media(max-width:991px){.sidebar{transform:translateX(-102%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.content{padding:16px}.topbar{padding:10px 16px}.user-chip>div:not(.avatar){display:none}.wizard-nav{grid-template-columns:repeat(3,1fr)}}@media(max-width:575px){.wizard-nav{grid-template-columns:repeat(2,1fr)}.content{padding:12px}.panel{padding:15px}.topbar h1{font-size:18px}.metric-card strong{font-size:20px}}.brand-logo-wrap{width:42px;height:42px;border-radius:13px;background:#fff;display:grid;place-items:center;overflow:hidden;padding:4px;box-shadow:0 8px 22px #00000022}.brand-logo-wrap img{max-width:100%;max-height:100%;object-fit:contain}.auth-logo-image{width:76px;height:76px;border-radius:18px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;overflow:hidden;padding:8px;margin-bottom:20px;box-shadow:0 8px 22px #0000000f}.auth-logo-image img{max-width:100%;max-height:100%;object-fit:contain}.branding-settings{display:grid;grid-template-columns:1fr 150px;gap:24px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fafbfe}.branding-preview{display:grid;place-items:center;min-height:110px;border-left:1px solid var(--border)}.branding-preview img{max-width:120px;max-height:90px;object-fit:contain}.social-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.social-check{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--border);border-radius:12px;background:#fafbfe;cursor:pointer}.social-check span{display:flex;align-items:center;gap:7px;font-weight:600}.status-published{background:#e9f8f1;color:#13754f}.status-scheduled{background:#eef1ff;color:#4c43b8}.status-draft{background:#f1f3f6;color:#687386}@media(max-width:575px){.social-check-grid{grid-template-columns:1fr}.branding-settings{grid-template-columns:1fr}.branding-preview{border-left:0;border-top:1px solid var(--border);padding-top:18px}}

/* v3: publicaciones, calendario y filtros */
.facebook-preview{border:1px solid #dfe3e8;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 5px 18px rgba(24,32,51,.06)}.facebook-preview-head{display:flex;align-items:center;gap:10px;padding:14px 16px}.facebook-preview-head small{display:block;color:#7a8593}.facebook-preview-copy{padding:0 16px 6px;white-space:pre-wrap;color:#1c1e21}.facebook-preview-tags{padding:0 16px 12px;color:#166fe5;font-size:14px}.facebook-preview .preview-media{min-height:260px;background:#f0f2f5;border-radius:0;display:grid;place-items:center;overflow:hidden}.facebook-preview .preview-media img,.facebook-preview .preview-media video{width:100%;max-height:430px;object-fit:contain;background:#111}.preview-media-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#87919d}.preview-media-placeholder i{font-size:42px}.facebook-preview-actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e6e9ed;padding:8px}.facebook-preview-actions span{text-align:center;padding:6px;color:#656f7c;font-size:13px;font-weight:600}.post-list-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;background:#eef1f5;flex:0 0 48px}.post-list-thumb.video{display:grid;place-items:center;font-size:20px}.calendar-event-content{display:flex;align-items:center;gap:6px;min-width:0}.calendar-event-content img,.calendar-event-video{width:24px;height:24px;border-radius:5px;object-fit:cover;flex:0 0 24px}.calendar-event-video{display:grid;place-items:center;background:#222;color:#fff}.calendar-event-content span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc .fc-daygrid-event{padding:3px 5px;border-radius:7px}.calendar-post-modal{border:0;border-radius:16px;overflow:hidden}.calendar-platform-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2f7;color:#516173;font-size:12px;font-weight:700}.calendar-platform-badge.platform-facebook{background:#e8f1ff;color:#0866ff}.calendar-platform-badge.platform-instagram{background:#fff0f5;color:#c13584}.calendar-platform-badge.platform-tiktok{background:#f0f0f0;color:#111}.post-detail-meta{display:flex;gap:10px;color:#7a8593;font-size:13px;margin-bottom:18px}.post-detail-meta span+span:before{content:'•';margin-right:10px}.calendar-post-copy{font-size:16px;line-height:1.55;white-space:pre-wrap;margin-bottom:8px}.calendar-post-tags{color:#166fe5;margin-bottom:16px}.calendar-post-media{border-radius:12px;overflow:hidden;background:#f1f3f6;min-height:220px;display:grid;place-items:center}.calendar-post-media img,.calendar-post-media video{width:100%;max-height:560px;object-fit:contain;background:#111}.calendar-media-empty{display:flex;flex-direction:column;gap:8px;align-items:center;color:#8a95a3}.calendar-media-empty i{font-size:40px}.dashboard-filters{padding-top:18px;padding-bottom:18px}@media(max-width:575px){.facebook-preview-actions span{font-size:0}.facebook-preview-actions i{font-size:17px}.calendar-post-media{min-height:150px}}
.facebook-preview .preview-media{height:auto}


/* v3.1: contención de imágenes en publicaciones y calendario */
.facebook-preview{width:100%;max-width:100%;overflow:hidden}
.facebook-preview .preview-media{width:100%;max-width:100%;height:auto;min-height:220px;max-height:380px;overflow:hidden;position:relative}
.facebook-preview .preview-media img,.facebook-preview .preview-media video{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:380px!important;object-fit:contain!important;margin:0 auto!important}
#calendar{max-width:100%;overflow:hidden}
.fc .fc-view-harness,.fc .fc-scrollgrid,.fc .fc-daygrid-body,.fc .fc-daygrid-body table{max-width:100%}
.fc .fc-daygrid-event{overflow:hidden;max-width:100%}
.fc .fc-event-main{overflow:hidden;max-width:100%}
.calendar-event-content{width:100%;max-width:100%;overflow:hidden;display:flex;align-items:center;gap:6px}
.calendar-event-content img{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;min-width:28px!important;min-height:28px!important;object-fit:cover!important;border-radius:6px!important;display:block!important;flex:0 0 28px!important}
.calendar-event-video{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;flex:0 0 28px!important}
.calendar-event-content>span:last-child{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-post-modal{max-width:100%;overflow:hidden}
#calendarPostModal .modal-dialog{width:auto;max-width:820px;margin-left:auto;margin-right:auto}
#calendarPostModal .modal-body{max-height:78vh;overflow-y:auto;overflow-x:hidden}
.calendar-post-media{width:100%;max-width:100%;min-height:180px;max-height:460px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.calendar-post-media img,.calendar-post-media video{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:440px!important;object-fit:contain!important;margin:0 auto!important}
@media(max-width:767px){
  .facebook-preview .preview-media{min-height:180px;max-height:320px}
  .facebook-preview .preview-media img,.facebook-preview .preview-media video{max-height:320px!important}
  #calendarPostModal .modal-dialog{margin:.5rem;max-width:calc(100% - 1rem)}
  #calendarPostModal .modal-body{max-height:82vh}
  .calendar-post-media{min-height:140px;max-height:340px}
  .calendar-post-media img,.calendar-post-media video{max-height:320px!important}
}

/* Dashboard charts v3.2 */
.dashboard-chart-wrap{position:relative;height:360px;min-height:320px;width:100%;overflow:hidden}.dashboard-chart-wrap canvas{width:100%!important;height:100%!important}.dashboard-chart-empty{height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:14px;background:#fafbfe}.dashboard-chart-empty i{font-size:34px;color:var(--primary)}.dashboard-chart-empty strong{color:var(--text);font-size:15px}.dashboard-chart-empty span{font-size:13px}@media(max-width:767px){.dashboard-chart-wrap{height:320px;min-height:280px}}
.campaign-chart-wrap{position:relative;height:340px;min-height:300px;width:100%;overflow:hidden}.campaign-chart-wrap canvas{width:100%!important;height:100%!important}@media(max-width:767px){.campaign-chart-wrap{height:310px;min-height:270px}}
