/* buah. — planificador, estadísticas, competidores e informes */

.nav-section{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:14px 12px 4px;}
.nav-section:first-child{padding-top:4px;}

/* ---------- barra de herramientas ---------- */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.toolbar .spacer{flex:1;}
.toolbar .period{font-size:17px;font-weight:800;letter-spacing:-.3px;min-width:150px;text-transform:capitalize;}
.toolbar .segmented{width:auto;}
.toolbar .segmented button{flex:none;padding:0 14px;}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;}
.tabs button{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:none;background:none;color:var(--text-dim);font-weight:700;font-size:13.5px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabs button.active{color:var(--text);border-bottom-color:var(--orange);}
.tabs button:disabled{opacity:.4;cursor:not-allowed;}

/* ---------- planificador ---------- */
.planner{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start;}
.cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.cal-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border);}
.cal-head div{padding:10px 10px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.cal-cell{position:relative;min-height:128px;padding:6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:background .12s;min-width:0;}
.cal-cell:nth-child(7n){border-right:none;}
.cal-cell:hover{background:rgba(255,255,255,.02);}
.cal-cell.other{background:rgba(0,0,0,.25);}
.cal-cell.other .cal-num{color:var(--text-faint);opacity:.6;}
.cal-cell.past{background:rgba(0,0,0,.18);}
.cal-cell.drop{background:var(--orange-soft);box-shadow:inset 0 0 0 2px var(--orange-line);}
.cal-num{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:700;color:var(--text-dim);padding:2px 4px;}
.cal-cell.today .cal-num span{background:var(--orange);color:#120700;border-radius:7px;padding:1px 7px;}
.cal-add{opacity:0;color:var(--text-faint);transition:opacity .12s;display:inline-flex;}
.cal-cell:hover .cal-add{opacity:1;}
.cal-item{display:flex;align-items:center;gap:6px;padding:4px 6px 4px 4px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--text-faint);font-size:11.5px;font-weight:600;min-width:0;cursor:pointer;transition:border-color .12s,transform .12s;}
.cal-item:hover{border-color:var(--border-strong);transform:translateY(-1px);}
.cal-item[draggable="true"]{cursor:grab;}
.cal-item .ci-thumb{width:22px;height:22px;border-radius:5px;background:var(--surface-3);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);}
.cal-item .ci-thumb img{width:100%;height:100%;object-fit:cover;}
.cal-item .ci-time{color:var(--text-dim);flex-shrink:0;}
.cal-item .ci-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);}
.cal-item .ci-nets{display:flex;gap:2px;color:var(--text-faint);flex-shrink:0;}
.cal-item .ci-nets .icon{width:12px;height:12px;}
.cal-more{font-size:11px;color:var(--text-faint);font-weight:600;padding:0 4px;}
.st-scheduled{border-left-color:var(--orange)!important;}
.st-publishing{border-left-color:var(--blue)!important;}
.st-published{border-left-color:var(--green)!important;}
.st-partial{border-left-color:#e8b339!important;}
.st-failed{border-left-color:var(--red)!important;}
.st-draft{border-left-color:var(--text-faint)!important;border-style:dashed;}
.st-external{border-left-color:#3f3f46!important;opacity:.75;}
.st-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:7px;font-size:12px;font-weight:700;background:var(--surface-3);color:var(--text-dim);white-space:nowrap;}
.st-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;}
.st-pill.scheduled{background:var(--orange-soft);color:var(--orange-2);}
.st-pill.publishing{background:rgba(79,140,255,.12);color:var(--blue);}
.st-pill.published{background:var(--green-soft);color:var(--green);}
.st-pill.partial{background:rgba(232,179,57,.12);color:#e8b339;}
.st-pill.failed{background:var(--red-soft);color:var(--red);}
.st-pill.external{background:var(--surface-3);color:var(--text-faint);}

.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;}
.week-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:420px;display:flex;flex-direction:column;min-width:0;}
.week-col.today{border-color:var(--orange-line);}
.week-col.drop{background:var(--orange-soft);}
.week-col-head{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.week-col-head b{font-size:13px;text-transform:capitalize;}
.week-col-head span{font-size:12px;color:var(--text-faint);}
.week-col-body{padding:8px;display:flex;flex-direction:column;gap:8px;flex:1;cursor:pointer;}
.wk-card{border-radius:10px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--text-faint);overflow:hidden;cursor:pointer;}
.wk-card .wk-img{aspect-ratio:4/5;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:var(--text-faint);}
.wk-card .wk-img img{width:100%;height:100%;object-fit:cover;display:block;}
.wk-card .wk-meta{padding:7px 8px;font-size:11.5px;}
.wk-card .wk-meta b{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;}
.wk-card .wk-meta p{color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}

.agenda{display:flex;flex-direction:column;gap:18px;}
.agenda-day h4{font-size:12.5px;font-weight:700;color:var(--text-dim);text-transform:capitalize;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.agenda-day h4.today{color:var(--orange-2);}
.ag-item{display:flex;gap:12px;align-items:center;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-faint);margin-bottom:8px;cursor:pointer;}
.ag-item:hover{border-color:var(--border-strong);}
.ag-item .ag-thumb{width:52px;height:64px;border-radius:9px;background:var(--surface-3);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);}
.ag-item .ag-thumb img{width:100%;height:100%;object-fit:cover;}
.ag-item .ag-body{flex:1;min-width:0;}
.ag-item .ag-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;font-weight:700;}
.ag-item .ag-text{font-size:13px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;}
.net-ico{display:inline-flex;align-items:center;gap:3px;color:var(--text-faint);}
.net-ico .icon{width:14px;height:14px;}

.pl-side{display:flex;flex-direction:column;gap:16px;}
.pl-side .card{padding:16px;}
.draft-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;border:1px dashed var(--border-strong);margin-bottom:8px;cursor:pointer;}
.draft-item:hover{border-color:var(--orange-line);}
.draft-item .ag-thumb{width:36px;height:44px;border-radius:7px;background:var(--surface-3);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);}
.draft-item .ag-thumb img{width:100%;height:100%;object-fit:cover;}
.draft-item .dt{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quota{height:8px;border-radius:8px;background:var(--surface-3);overflow:hidden;margin-top:10px;}
.quota i{display:block;height:100%;background:var(--orange);border-radius:8px;}
.slot-chips{display:flex;flex-wrap:wrap;gap:6px;}
.slot-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;}
.slot-chip:hover{border-color:var(--orange);}
.slot-chip small{color:var(--text-faint);font-weight:600;}

/* ---------- editor de publicación ---------- */
.modal.wide.composer-modal{max-width:1060px;display:flex;flex-direction:column;overflow:hidden;max-height:92vh;}
.composer-modal .modal-head,.composer-modal .composer-foot{flex:none;}
.composer{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0;flex:1;min-height:0;overflow-y:auto;}
.composer-form{padding:20px;border-right:1px solid var(--border);min-width:0;}
.composer-prev{padding:20px;background:var(--bg);min-width:0;position:sticky;top:0;align-self:start;}
.net-pills{display:flex;gap:8px;flex-wrap:wrap;}
.net-pill{display:flex;align-items:center;gap:9px;padding:6px 12px 6px 6px;border-radius:12px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-dim);cursor:pointer;font-weight:600;font-size:13px;transition:border-color .15s,background .15s;min-width:0;}
.net-pill .avatar{width:28px;height:28px;font-size:11px;border-radius:50%;}
.net-pill .net-badge{position:relative;}
.net-pill .net-badge .nb{position:absolute;right:-4px;bottom:-4px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);}
.net-pill .net-badge .nb .icon{width:9px;height:9px;stroke-width:3;color:#fff;}
.net-pill .nb.ig{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af);}
.net-pill .nb.fb{background:#1877f2;}
.net-pill.on{border-color:var(--orange);background:var(--orange-soft);color:var(--text);}
.net-pill:disabled{opacity:.45;cursor:not-allowed;}
.net-pill span.nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;}
.type-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.type-seg button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:62px;border-radius:11px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-dim);font-weight:700;font-size:12.5px;cursor:pointer;transition:border-color .15s,background .15s,color .15s;}
.type-seg button.active{border-color:var(--orange);background:var(--orange-soft);color:var(--text);}
.type-seg button .icon{color:inherit;}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px;border-radius:12px;border:1.5px dashed var(--border-strong);background:var(--bg);color:var(--text-dim);text-align:center;cursor:pointer;transition:border-color .15s,background .15s;}
.dropzone:hover,.dropzone.over{border-color:var(--orange);background:var(--orange-soft);}
.dropzone b{color:var(--text);font-size:13.5px;}
.dropzone small{font-size:12px;color:var(--text-faint);}
.media-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.media-tile{position:relative;width:86px;height:108px;border-radius:10px;overflow:hidden;background:var(--surface-3);border:1px solid var(--border);flex-shrink:0;}
.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover;display:block;}
.media-tile .mt-badge{position:absolute;left:5px;top:5px;background:rgba(0,0,0,.65);color:#fff;font-size:10.5px;font-weight:700;border-radius:6px;padding:1px 6px;display:flex;align-items:center;gap:3px;}
.media-tile .mt-badge .icon{width:10px;height:10px;}
.media-tile .mt-x{position:absolute;right:4px;top:4px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.7);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.media-tile .mt-x .icon{width:12px;height:12px;}
.media-tile .mt-move{position:absolute;bottom:4px;left:4px;right:4px;display:flex;justify-content:space-between;}
.media-tile .mt-move button{width:22px;height:22px;border-radius:6px;border:none;background:rgba(0,0,0,.7);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.media-tile .mt-move button .icon{width:12px;height:12px;}
.media-tile .mt-prog{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;font-size:11.5px;font-weight:700;}
.media-tile .mt-prog .bar{width:70%;height:5px;border-radius:5px;background:rgba(255,255,255,.2);overflow:hidden;}
.media-tile .mt-prog .bar i{display:block;height:100%;background:var(--orange);}
.media-tile.err{border-color:var(--red);}
.media-tile .mt-err{position:absolute;inset:0;background:rgba(40,0,0,.75);color:#fff;font-size:10.5px;font-weight:600;padding:8px;display:flex;align-items:center;justify-content:center;text-align:center;}
.media-tile.num .mt-n{position:absolute;right:5px;bottom:30px;background:var(--orange);color:#120700;font-size:10.5px;font-weight:800;border-radius:6px;padding:0 6px;}
.media-tile .mt-cover{position:absolute;left:5px;right:5px;bottom:5px;height:24px;border:none;border-radius:7px;background:rgba(0,0,0,.72);color:#fff;font-size:11px;font-weight:700;cursor:pointer;}
.media-tile .mt-cover.on{background:var(--orange);color:#120700;}
.cover-box{margin-top:12px;padding:14px;border-radius:12px;border:1px solid var(--orange-line);background:var(--bg);}
.cover-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.cover-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:180px;background:#000;border-radius:10px;overflow:hidden;}
.cover-stage video.cv-live{display:block;max-width:100%;max-height:44vh;object-fit:contain;}
/* El segundo vídeo solo saca las miniaturas: oculto pero dentro de la página (iPhone lo necesita). */
.cover-stage video.cv-scan{position:absolute;left:0;top:0;width:2px;height:2px;opacity:.01;pointer-events:none;}
.cover-fine{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:6px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-dim);}
.cover-fine .btn{width:44px;padding:0;}
.cover-loading{position:absolute;inset:auto 0 10px;text-align:center;font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 3px #000;}
.cover-strip{position:relative;height:58px;margin:12px 0 8px;border-radius:9px;overflow:hidden;background:var(--surface-3);touch-action:none;cursor:pointer;user-select:none;-webkit-user-select:none;}
.cover-frames{display:flex;height:100%;}
.cover-frames img{flex:1;min-width:0;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;}
.cover-handle{position:absolute;top:0;bottom:0;left:0;width:38px;transform:translateX(-50%);border:3px solid #fff;border-radius:8px;box-shadow:0 0 0 2px rgba(0,0,0,.45),0 0 0 999px rgba(0,0,0,.38);pointer-events:none;}
.cover-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
.cover-actions .spacer{flex:1;}
.sched{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.sched .input{color-scheme:dark;}
.composer-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--border);}
.composer-foot .spacer{flex:1;}
.composer-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:13px;margin-bottom:14px;}
.composer-alert.error{background:var(--red-soft);color:#ffb4b8;border:1px solid rgba(240,82,90,.25);}
.composer-alert.info{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);}
.composer-alert .icon{flex-shrink:0;margin-top:1px;}
.fc-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--orange-2);font-weight:600;font-size:13px;cursor:pointer;padding:0;}

/* vistas previas */
.prev-tabs{display:flex;gap:6px;margin-bottom:12px;}
.prev-tabs button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--border-strong);background:transparent;color:var(--text-dim);font-weight:600;font-size:12.5px;cursor:pointer;}
.prev-tabs button.active{background:var(--text);color:var(--bg);border-color:var(--text);}
.igp{background:#000;border-radius:18px;border:1px solid #222;overflow:hidden;color:#fff;max-width:340px;margin:0 auto;}
.igp-head{display:flex;align-items:center;gap:9px;padding:10px 12px;}
.igp-head .avatar{width:30px;height:30px;font-size:12px;border-radius:50%;}
.igp-head b{font-size:13px;}
.igp-head small{display:block;font-size:11px;color:#a8a8a8;font-weight:400;}
.igp-media{position:relative;background:#111;display:flex;align-items:center;justify-content:center;color:#555;overflow:hidden;}
.igp-media img,.igp-media video{width:100%;height:100%;object-fit:cover;display:block;}
.igp-media .igp-count{position:absolute;right:10px;top:10px;background:rgba(0,0,0,.6);border-radius:12px;font-size:11px;font-weight:700;padding:3px 8px;}
.igp-media .igp-nav{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:none;background:rgba(255,255,255,.85);color:#000;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.igp-media .igp-nav .icon{width:14px;height:14px;stroke-width:2.5;}
.igp-media .igp-nav.l{left:8px;}
.igp-media .igp-nav.r{right:8px;}
.igp-dots{display:flex;justify-content:center;gap:4px;padding:8px 0 0;}
.igp-dots i{width:6px;height:6px;border-radius:50%;background:#555;}
.igp-dots i.on{background:#3897f0;}
.igp-actions{display:flex;gap:14px;padding:10px 12px 4px;}
.igp-actions .icon{width:22px;height:22px;}
.igp-actions .sp{flex:1;}
.igp-caption{padding:4px 12px 14px;font-size:12.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:hidden;}
.igp-caption b{margin-right:4px;}
.igp-caption .ht{color:#e0f1ff;}
.igp-first{padding:0 12px 14px;font-size:12px;color:#a8a8a8;white-space:pre-wrap;word-break:break-word;max-height:60px;overflow:hidden;}
.igp-tall{position:relative;aspect-ratio:9/16;background:#111;display:flex;align-items:center;justify-content:center;color:#555;}
.igp-tall img,.igp-tall video{width:100%;height:100%;object-fit:cover;display:block;}
.igp-tall .over{position:absolute;left:0;right:0;bottom:0;padding:40px 14px 16px;background:linear-gradient(transparent,rgba(0,0,0,.75));font-size:12.5px;white-space:pre-wrap;word-break:break-word;max-height:55%;overflow:hidden;}
.igp-tall .over b{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.igp-tall .over .avatar{width:26px;height:26px;font-size:10px;border-radius:50%;}
.igp-tall .top{position:absolute;left:0;right:0;top:0;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;background:linear-gradient(rgba(0,0,0,.5),transparent);}
.igp-tall .top .avatar{width:28px;height:28px;font-size:10px;border-radius:50%;}
.igp-tall .bars{position:absolute;left:8px;right:8px;top:6px;height:2px;background:rgba(255,255,255,.35);border-radius:2px;}
.igp-tall .bars i{display:block;width:35%;height:100%;background:#fff;border-radius:2px;}
.fbp{background:#fff;color:#050505;border-radius:14px;overflow:hidden;max-width:360px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;}
.fbp-head{display:flex;align-items:center;gap:9px;padding:12px;}
.fbp-head .avatar{width:38px;height:38px;border-radius:50%;font-size:14px;}
.fbp-head b{font-size:14px;display:block;}
.fbp-head small{font-size:12px;color:#65676b;}
.fbp-text{padding:0 12px 10px;font-size:14px;line-height:1.38;white-space:pre-wrap;word-break:break-word;max-height:140px;overflow:hidden;}
.fbp-grid{display:grid;gap:2px;background:#ddd;}
.fbp-grid.n1{grid-template-columns:1fr;}
.fbp-grid.n2{grid-template-columns:1fr 1fr;}
.fbp-grid.n3,.fbp-grid.n4{grid-template-columns:1fr 1fr;}
.fbp-grid div{aspect-ratio:1;background:#eee;overflow:hidden;position:relative;}
.fbp-grid.n1 div{aspect-ratio:auto;max-height:420px;}
.fbp-grid img,.fbp-grid video{width:100%;height:100%;object-fit:cover;display:block;}
.fbp-grid .more{position:absolute;inset:0;background:rgba(0,0,0,.45);color:#fff;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.fbp-actions{display:flex;justify-content:space-around;padding:8px 0;border-top:1px solid #e4e6eb;margin:0 12px;color:#65676b;font-size:13px;font-weight:600;}
.prev-cover{position:absolute;right:10px;top:10px;width:52px;border-radius:8px;overflow:hidden;border:2px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.5);background:#000;z-index:2;}
.prev-cover img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;}
.prev-cover span{display:block;text-align:center;font-size:9.5px;font-weight:800;color:#fff;background:rgba(0,0,0,.75);padding:2px 0;}
.prev-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#666;font-size:12.5px;padding:30px;text-align:center;}

/* ---------- estadísticas ---------- */
.kpis6{grid-template-columns:repeat(6,minmax(0,1fr));}
.kpi .k-delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;margin-top:6px;}
.k-delta.up{color:var(--green);}
.k-delta.down{color:var(--red);}
.k-delta.flat{color:var(--text-faint);}
.k-sub{font-size:12px;color:var(--text-faint);margin-top:6px;}
.charts2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px;}
.chart-svg{display:block;width:100%;height:auto;}
.ptable td{vertical-align:middle;}
.ptable th,.ptable td{padding:10px 9px;}
.ptable th:first-child,.ptable td:first-child{padding-left:4px;}
.show-more{display:flex;justify-content:center;margin-top:12px;}
.ptable th.sortable{cursor:pointer;user-select:none;white-space:nowrap;}
.ptable th.sortable:hover{color:var(--text);}
.ptable th.sorted{color:var(--orange-2);}
.pcell{display:flex;align-items:center;gap:10px;min-width:200px;max-width:280px;}
.pcell .pt{width:42px;height:52px;border-radius:8px;background:var(--surface-3);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);}
.pcell .pt img{width:100%;height:100%;object-fit:cover;}
.pcell .pc{flex:1;min-width:0;}
.pcell .pc p{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pcell .pc small{font-size:11.5px;color:var(--text-faint);}
.type-tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:6px;background:var(--surface-3);color:var(--text-dim);font-size:11.5px;font-weight:700;white-space:nowrap;}
.type-tag .icon{width:11px;height:11px;}
.er-tag{font-weight:800;}
.er-tag.hi{color:var(--green);}
.hbars{display:flex;flex-direction:column;gap:9px;}
.hbar{display:grid;grid-template-columns:minmax(70px,120px) minmax(0,1fr) 54px;gap:10px;align-items:center;font-size:12.5px;}
.hbar .hn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim);font-weight:600;}
.hbar .ht{height:8px;border-radius:8px;background:var(--surface-3);overflow:hidden;}
.hbar .ht i{display:block;height:100%;border-radius:8px;background:var(--orange);}
.hbar .hv{text-align:right;font-weight:700;}
.aud-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.aud-grid h5{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin-bottom:12px;}
.gender{display:flex;height:12px;border-radius:12px;overflow:hidden;background:var(--surface-3);}
.gender i{display:block;height:100%;}
.gender-legend{display:flex;gap:14px;margin-top:10px;font-size:12.5px;color:var(--text-dim);flex-wrap:wrap;}
.gender-legend b{color:var(--text);}
.heat{display:grid;grid-template-columns:34px repeat(24,minmax(0,1fr));gap:3px;font-size:10.5px;}
.heat.blocks{grid-template-columns:34px repeat(8,minmax(0,1fr));}
.heat .hl{color:var(--text-faint);font-weight:700;display:flex;align-items:center;}
.heat .hh{color:var(--text-faint);text-align:center;font-weight:600;}
.heat .hc{aspect-ratio:1;border-radius:4px;background:var(--surface-3);}
.heat.blocks .hc{aspect-ratio:auto;height:26px;}
.heat-legend{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11.5px;color:var(--text-faint);flex-wrap:wrap;}
.heat-legend i{width:14px;height:10px;border-radius:3px;display:inline-block;}
.best-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.info-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-size:13px;margin-bottom:16px;}
.info-note .icon{color:var(--orange);flex-shrink:0;margin-top:1px;}
.info-note b{color:var(--text);}

/* ---------- permisos ---------- */
.perm-list{display:flex;flex-direction:column;gap:8px;}
.perm{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--border);font-size:13px;}
.perm .pi{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.perm .pi .icon{width:13px;height:13px;stroke-width:3;}
.perm.ok .pi{background:var(--green-soft);color:var(--green);}
.perm.no .pi{background:var(--red-soft);color:var(--red);}
.perm.unk .pi{background:var(--surface-3);color:var(--text-faint);}
.perm span{flex:1;}
.perm small{color:var(--text-faint);font-size:11.5px;}

/* ---------- competidores ---------- */
.comp-add{display:flex;gap:8px;max-width:440px;}
.comp-add .input{flex:1;}
.acc-cell{display:flex;align-items:center;gap:10px;min-width:190px;}
.acc-cell .avatar{width:36px;height:36px;border-radius:50%;font-size:13px;}
.acc-cell b{display:block;font-size:13.5px;}
.acc-cell small{color:var(--text-faint);font-size:12px;}
tr.own td{background:rgba(255,90,31,.05);}
tr.own td:first-child{box-shadow:inset 3px 0 0 var(--orange);}
.you{display:inline-flex;height:18px;padding:0 6px;border-radius:5px;background:var(--orange);color:#120700;font-size:10.5px;font-weight:800;margin-left:6px;vertical-align:middle;align-items:center;}
.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;}
.recent-grid a{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;background:var(--surface-3);display:block;color:#fff;}
.recent-grid img{width:100%;height:100%;object-fit:cover;display:block;}
.recent-grid .rg-meta{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 7px;background:linear-gradient(transparent,rgba(0,0,0,.8));font-size:11.5px;font-weight:700;display:flex;gap:10px;}
.recent-grid .rg-meta span{display:inline-flex;align-items:center;gap:3px;}
.recent-grid .rg-meta .icon{width:11px;height:11px;}

/* ---------- contactos ---------- */
.ct-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.ct-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;cursor:pointer;color:var(--text);font-family:inherit;transition:border-color .15s,background .15s;}
.ct-kpi span{font-size:12.5px;color:var(--text-dim);font-weight:600;}
.ct-kpi b{font-size:26px;font-weight:800;letter-spacing:-.8px;}
.ct-kpi:hover{border-color:var(--border-strong);}
.ct-kpi.on{border-color:var(--orange);background:var(--orange-soft);}
.ct-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.ct-filters .search{flex:1;min-width:220px;max-width:none;}
.ct-filters .select{width:auto;min-width:190px;max-width:100%;}
.ct-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 10px;font-size:13px;font-weight:700;color:var(--text-dim);}
.ct-bar .spacer{flex:1;}
.ct-table tbody tr{cursor:pointer;transition:background .12s;}
.ct-table tbody tr:hover td{background:rgba(255,255,255,.025);}
.ct-tags{display:flex;flex-wrap:wrap;gap:4px;max-width:340px;}
.tag.green{background:var(--green-soft);color:var(--green);}
.tag.blue{background:rgba(79,140,255,.12);color:var(--blue);}
.ct-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;}
.ct-head .n{font-size:18px;font-weight:800;letter-spacing:-.3px;}
.ct-head .s{font-size:12.5px;color:var(--text-faint);margin-top:2px;}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;}
.ct-history{max-height:340px;overflow-y:auto;padding-right:4px;}

/* ---------- informes ---------- */
.report{background:#fbfaf7;color:#16130f;border-radius:18px;padding:40px 44px;max-width:960px;margin:0 auto;box-shadow:var(--shadow);}
.report *{border-color:#e7e2d8;}
.report .r-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px;border-bottom:2px solid #16130f;}
.report .r-logo{font-size:26px;font-weight:800;letter-spacing:-1px;}
.report .r-logo span{color:var(--orange);}
.report .r-title{font-size:30px;font-weight:800;letter-spacing:-1px;line-height:1.1;margin-top:18px;}
.report .r-title small{display:block;font-size:15px;font-weight:600;color:#6b645a;letter-spacing:0;margin-top:6px;text-transform:capitalize;}
.report .r-meta{text-align:right;font-size:12.5px;color:#6b645a;}
.report .r-meta b{display:block;color:#16130f;font-size:14px;}
.report h3{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6b645a;margin:30px 0 14px;}
.report .r-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.report .r-kpi{background:#fff;border:1px solid #e7e2d8;border-radius:12px;padding:14px 16px;}
.report .r-kpi span{font-size:12px;color:#6b645a;font-weight:600;}
.report .r-kpi b{display:block;font-size:24px;font-weight:800;letter-spacing:-.6px;margin-top:4px;}
.report .r-kpi em{font-style:normal;font-size:12px;font-weight:700;}
.report .up{color:#15803d;}
.report .down{color:#b91c1c;}
.report .flat{color:#8a8277;}
.report .r-chart{background:#fff;border:1px solid #e7e2d8;border-radius:12px;padding:14px;}
.report .r-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
.report .r-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.report .r-post{background:#fff;border:1px solid #e7e2d8;border-radius:12px;overflow:hidden;}
.report .r-post .im{aspect-ratio:4/5;background:#eee;}
.report .r-post .im img{width:100%;height:100%;object-fit:cover;display:block;}
.report .r-post .tx{padding:10px 12px;font-size:12px;}
.report .r-post .tx p{color:#6b645a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;}
.report .r-post .tx div{display:flex;gap:10px;font-weight:700;flex-wrap:wrap;}
.report table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e7e2d8;border-radius:12px;overflow:hidden;}
.report th{color:#6b645a;border-bottom:1px solid #e7e2d8;font-size:11px;}
.report td{border-bottom:1px solid #efebe3;font-size:13px;color:#16130f;}
.report .r-note{font-size:11.5px;color:#8a8277;margin-top:26px;line-height:1.5;}
.report .r-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.report .r-mini{background:#fff;border:1px solid #e7e2d8;border-radius:12px;padding:12px 14px;font-size:12.5px;color:#6b645a;}
.report .r-mini b{display:block;font-size:20px;color:#16130f;font-weight:800;}
.report .empty-r{padding:18px;background:#fff;border:1px dashed #d8d1c4;border-radius:12px;color:#8a8277;font-size:13px;}

@media print{
  @page{margin:12mm;}
  html,body{background:#fff!important;}
  .sidebar,.topbar,.toolbar,.toasts,#modalRoot,.sidebar-backdrop,.no-print{display:none!important;}
  .main{margin:0!important;}
  .view{padding:0!important;max-width:none!important;}
  .report{box-shadow:none;border-radius:0;padding:0;max-width:none;}
  .report .r-kpi,.report .r-chart,.report .r-post,.report table{break-inside:avoid;}
  .report h3{break-after:avoid;}
}

/* ---------- app instalada en el iPhone (zonas seguras: isla dinámica y barra de inicio) ---------- */
:root .sidebar-top{padding-top:calc(20px + env(safe-area-inset-top));}
:root .sidebar-bottom{padding-bottom:calc(14px + env(safe-area-inset-bottom));}
:root .toasts{bottom:calc(20px + env(safe-area-inset-bottom));}
:root .modal-overlay{padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));}
:root .auth-form{padding-top:calc(40px + env(safe-area-inset-top));}
@media (max-width:900px){
  :root .topbar{padding-top:calc(14px + env(safe-area-inset-top));}
  :root .view{padding-bottom:calc(50px + env(safe-area-inset-bottom));}
}

/* ---------- ventanas en el móvil ----------
   Con un modal abierto, el fondo no se mueve; dentro del editor solo se desplaza en vertical. */
html.modal-open,html.modal-open body{overflow:hidden;overscroll-behavior:none;}
:root .modal{overscroll-behavior:contain;}
:root .composer{overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;}
.sched .input{min-width:0;display:block;-webkit-appearance:none;appearance:none;min-height:44px;}
/* iPhone hace zoom al tocar un campo con letra de menos de 16 px (y la pantalla se va a los lados). */
@media (max-width:900px){
  :root .input,:root .textarea,:root .select,:root .chips input{font-size:16px;}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .kpis6{grid-template-columns:repeat(3,minmax(0,1fr));}
  .planner{grid-template-columns:minmax(0,1fr);}
  .pl-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
  .composer{grid-template-columns:minmax(0,1fr);}
  .composer-form{border-right:none;border-bottom:1px solid var(--border);}
  .composer-prev{position:static;}
}
.card > .legend{flex-wrap:wrap;margin-top:10px;}
@media (max-width:900px){
  .ct-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ct-grid{grid-template-columns:minmax(0,1fr);}
  .ct-filters .select{flex:1;min-width:0;}
  .charts2,.aud-grid{grid-template-columns:minmax(0,1fr);}
  .charts2 .card-head{flex-wrap:wrap;}
  .charts2 .card-head .legend{flex-wrap:wrap;}
  .kpis6{grid-template-columns:repeat(2,minmax(0,1fr));}
  .week{grid-template-columns:minmax(0,1fr);}
  .week-col{min-height:0;}
  .report{padding:22px 18px;border-radius:14px;}
  .report .r-kpis,.report .r-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .report .r-two{grid-template-columns:minmax(0,1fr);}
  .report .r-top{grid-template-columns:repeat(2,minmax(0,1fr));}
  .report .r-head{flex-direction:column;}
  .report .r-meta{text-align:left;}
  .cal-cell{min-height:74px;padding:3px;}
  .cal-item{padding:2px;justify-content:center;border-left-width:2px;}
  .cal-item .ci-time,.cal-item .ci-text,.cal-item .ci-nets{display:none;}
  .cal-head div{padding:8px 4px;text-align:center;font-size:10.5px;}
  .cal-num{justify-content:center;}
  .cal-add{display:none;}
}
@media (max-width:520px){
  .type-seg button{height:56px;font-size:11.5px;}
  .sched{grid-template-columns:minmax(0,1fr);}
  .modal.wide.composer-modal{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
  .composer-form,.composer-prev{padding:16px;}
  .composer-foot{padding:12px 16px;}
  .composer-foot .spacer{display:none;}
  .composer-foot .btn{flex:1 1 auto;}
  .composer-foot .btn-primary{flex-basis:100%;order:-1;}
  .banner{flex-wrap:wrap;}
  .banner .b-text{flex:1 1 calc(100% - 60px);}
  .banner > .btn{width:100%;}
  .heat{grid-template-columns:28px repeat(8,minmax(0,1fr));}
}
