/* Content Calendar — extends the design tokens in css/styles.css */

.cal-not-configured{max-width:1280px;margin:0 auto 22px;padding:22px 24px;border-radius:var(--radius);border:1px solid rgba(255,138,31,.25);background:rgba(255,138,31,.06)}
.cal-not-configured h3{margin:8px 0;font-size:18px}
.cal-not-configured p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.cal-not-configured code{background:rgba(255,255,255,.08);padding:2px 6px;border-radius:6px;font-size:12px}

:root{
  --plat-tiktok:#e2264d;--plat-facebook:#3b82f6;--plat-instagram:#e0447b;--plat-youtube:#ff4d4d;
  --status-scheduled:#5aa9ff;--status-publishing:var(--orange2);--status-published:var(--green);
  --status-failed:#f87171;--status-muted:var(--muted2);
}

.cal-layout{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:22px;align-items:start}
.cal-layout[hidden]{display:none}
.cal-side{display:grid;gap:22px;align-content:start}

/* Channels panel */
.cal-channels-panel{padding:20px}
.cal-channels-head{display:flex;align-items:center;justify-content:space-between}
.cal-channels-head h2{margin:0;font-size:17px}
.cal-create-post-btn{margin-top:14px;width:100%}
.cal-channel-list{display:grid;gap:8px;margin-top:16px}
.cal-channel-row{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:13px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.026);cursor:pointer;text-align:left;color:var(--text);transition:.15s ease}
.cal-channel-row:hover{background:rgba(255,255,255,.045)}
.cal-channel-row.inactive{opacity:.4}
.cal-channel-badge{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex:0 0 auto;color:#fff}
.cal-channel-row strong{flex:1;font-size:12.5px;font-weight:700}
.cal-channel-check{width:18px;height:18px;border-radius:6px;border:1.5px solid rgba(255,255,255,.22);display:grid;place-items:center;flex:0 0 auto;font-size:11px;color:transparent}
.cal-channel-row.active .cal-channel-check{background:linear-gradient(180deg,#ff9a3c,var(--orange));border-color:transparent;color:#111827}
.cal-channels-note{margin:14px 0 0;color:var(--muted2);font-size:10.5px;line-height:1.55}

.cal-grid-panel{padding:22px}
.cal-grid-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.cal-grid-head-nav{flex:1;display:flex;align-items:center;gap:10px;min-width:200px}
.cal-nav-arrow{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);color:var(--text);font-size:14px;display:grid;place-items:center}
.cal-nav-arrow:hover{background:rgba(255,255,255,.07)}
.cal-month-title{flex:1;font-family:"Space Grotesk",Inter,sans-serif;font-size:17px;font-weight:600;text-align:center;white-space:nowrap}
.cal-view-toggle{display:inline-flex;padding:4px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);gap:2px}
.cal-view-btn{border:0;background:none;color:var(--muted);font-size:12px;font-weight:800;padding:8px 14px;border-radius:9px}
.cal-view-btn.active{background:linear-gradient(180deg,#ff9a3c,var(--orange));color:#111827}

.cal-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:8px}
.cal-weekday-row span{text-align:center;color:var(--muted2);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(96px,auto);gap:8px}
.cal-grid[hidden]{display:none}
.cal-day{border:1px solid var(--line);border-radius:14px;padding:8px;background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:6px;min-height:96px;max-height:170px;overflow:hidden}
.cal-day:hover{background:rgba(255,255,255,.035)}
.cal-day.outside{opacity:.32}
.cal-day.today{border-color:rgba(255,138,31,.5);background:rgba(255,138,31,.06)}
.cal-day-number{font-size:12px;font-weight:800;color:var(--muted)}
.cal-day.today .cal-day-number{color:var(--orange2)}
.cal-day-posts{display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.cal-chip{display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:9px;font-size:10.5px;font-weight:700;border:1px solid transparent;text-align:left;color:var(--text);background:rgba(255,255,255,.05);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-chip:hover{filter:brightness(1.15)}
.cal-chip .cal-chip-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto}
.cal-chip[data-status="scheduled"] .cal-chip-dot,.cal-chip[data-status="ready"] .cal-chip-dot{background:var(--status-scheduled)}
.cal-chip[data-status="publishing"] .cal-chip-dot,.cal-chip[data-status="processing"] .cal-chip-dot{background:var(--status-publishing)}
.cal-chip[data-status="published"] .cal-chip-dot{background:var(--status-published)}
.cal-chip[data-status="failed"] .cal-chip-dot,.cal-chip[data-status="action_required"] .cal-chip-dot{background:var(--status-failed)}
.cal-chip[data-status="cancelled"] .cal-chip-dot,.cal-chip[data-status="draft"] .cal-chip-dot{background:var(--status-muted)}

/* Day / Week time-grid view */
.cal-time-grid{overflow-x:auto}
.cal-time-grid[hidden]{display:none}
.cal-time-head{display:grid;gap:1px;background:var(--line);border-radius:12px 12px 0 0;overflow:hidden;position:sticky;top:0;z-index:2}
.cal-time-head-cell{background:#0d1726;padding:10px 8px;text-align:center}
.cal-time-head-cell span{display:block;color:var(--muted2);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.cal-time-head-cell strong{display:block;margin-top:4px;font-size:15px;font-weight:700}
.cal-time-head-cell.today strong{color:var(--orange2)}
.cal-time-body{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;overflow:hidden}
.cal-time-hour-label{background:#0a1220;padding:6px 8px;color:var(--muted2);font-size:10px;text-align:right}
.cal-time-cell{background:#0a1220;padding:4px;display:flex;flex-direction:column;gap:4px;min-height:52px}
.cal-time-cell.today-col{background:rgba(255,138,31,.045)}
.cal-time-cell.past-hour{background:rgba(0,0,0,.18)}

.cal-event{display:flex;flex-direction:column;gap:3px;padding:6px 7px;border-radius:9px;text-align:left;border:1px solid transparent;color:var(--text);background:rgba(255,255,255,.06)}
.cal-event:hover{filter:brightness(1.12)}
.cal-event-badges{display:flex;align-items:center;gap:4px}
.cal-event-platform{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;font-size:8px;font-weight:900;color:#fff;flex:0 0 auto}
.cal-event-status{font-size:8px;font-weight:800;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.cal-event-title{font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-event[data-status="scheduled"],.cal-event[data-status="ready"]{background:rgba(255,138,31,.14);border-color:rgba(255,138,31,.28)}
.cal-event[data-status="scheduled"] .cal-event-status,.cal-event[data-status="ready"] .cal-event-status{background:rgba(90,169,255,.18);color:var(--status-scheduled)}
.cal-event[data-status="publishing"]{background:rgba(255,173,91,.16);border-color:rgba(255,173,91,.32)}
.cal-event[data-status="publishing"] .cal-event-status{background:rgba(255,173,91,.2);color:var(--status-publishing)}
.cal-event[data-status="published"]{background:rgba(66,211,146,.12);border-color:rgba(66,211,146,.28)}
.cal-event[data-status="published"] .cal-event-status{background:rgba(66,211,146,.18);color:var(--status-published)}
.cal-event[data-status="failed"]{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.28)}
.cal-event[data-status="failed"] .cal-event-status{background:rgba(248,113,113,.18);color:var(--status-failed)}
.cal-event[data-status="cancelled"],.cal-event[data-status="draft"]{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);opacity:.7}
.cal-event[data-status="cancelled"] .cal-event-status,.cal-event[data-status="draft"] .cal-event-status{background:rgba(255,255,255,.08);color:var(--status-muted)}
.cal-show-more{border:0;background:none;color:var(--orange2);font-size:10px;font-weight:800;text-align:left;padding:2px 4px}

.plat-tiktok{background:var(--plat-tiktok)}
.plat-facebook{background:var(--plat-facebook)}
.plat-instagram{background:linear-gradient(135deg,#f9ce34,#ee2a7b,#6228d7)}
.plat-youtube{background:var(--plat-youtube)}

.plat-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:10.5px;font-weight:800;color:#fff;letter-spacing:.02em}

.cal-nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--orange);color:#111827;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.cal-nav-badge[hidden]{display:none}
.cal-nav-badge-alert{margin-left:4px;background:var(--status-failed);color:#3a0a0a}

.cal-ready-panel{padding:20px 20px 18px;border-color:rgba(255,138,31,.3);background:rgba(255,138,31,.045)}
.cal-ready-panel[hidden]{display:none}
.cal-ready-panel h2{display:flex;align-items:center;gap:8px}
.cal-ready-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--orange);color:#111827;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.cal-ready-count[hidden]{display:none}
.cal-ready-list{display:grid;gap:10px;margin-top:14px}
.cal-ready-item{display:grid;gap:8px;padding:12px;border-radius:13px;border:1px solid rgba(255,138,31,.22);background:rgba(255,255,255,.03);text-align:left;cursor:pointer}
.cal-ready-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-ready-item-head small{color:var(--muted2);font-size:10.5px}
.cal-ready-item-caption{margin:0;font-size:12px;color:var(--text);line-height:1.5;max-height:3.2em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cal-ready-item-actions{display:flex;flex-wrap:wrap;gap:8px}
.cal-ready-item-actions a,.cal-ready-item-actions button{width:auto}

.cal-action-required-panel{padding:20px 20px 18px;border-color:rgba(248,113,113,.32);background:rgba(248,113,113,.05)}
.cal-action-required-panel[hidden]{display:none}
.cal-action-required-panel h2{display:flex;align-items:center;gap:8px}
.cal-action-required-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--status-failed);color:#3a0a0a;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.cal-action-required-count[hidden]{display:none}
.cal-action-required-list{display:grid;gap:10px;margin-top:14px}
.cal-action-required-item{display:grid;gap:8px;padding:12px;border-radius:13px;border:1px solid rgba(248,113,113,.28);background:rgba(255,255,255,.03);text-align:left;cursor:pointer}
.cal-action-required-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-action-required-reason{margin:0;font-size:12px;color:#fecaca;line-height:1.5}

.cal-tiktok-settings{display:grid;gap:12px;padding:14px;border-radius:14px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.02)}
.cal-tiktok-settings[hidden]{display:none}
.cal-tiktok-settings-head{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted2)}
.cal-tiktok-connection{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.03);font-size:12px;color:var(--muted)}
.cal-tiktok-connection.connected{color:#8de0b1}
.cal-tiktok-checks{display:flex;flex-wrap:wrap;gap:14px}
.cal-checkbox{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text)}
.cal-checkbox input{width:auto}
#tiktokDirectPostFields[hidden]{display:none}
#tiktokDirectPostFields{display:grid;gap:12px}

.cal-upcoming-panel,.cal-library-panel{padding:20px 20px 18px}
.cal-upload-row{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.cal-upload-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}
.cal-upload-btn.busy{opacity:.6;pointer-events:none}
#videoUploadMessage:empty{display:none}
#videoUploadMessage{margin-top:8px}
.cal-upcoming-list,.cal-library-list{display:grid;gap:10px;margin-top:14px}
.cal-upcoming-empty,.library-empty{margin-top:14px}

.cal-upcoming-item{display:grid;grid-template-columns:8px 1fr;gap:10px;padding:11px;border-radius:13px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.026);text-align:left;color:var(--text)}
.cal-upcoming-item .dot{width:8px;height:8px;border-radius:50%;margin-top:5px;background:#5aa9ff}
.cal-upcoming-item[data-status="published"] .dot{background:var(--green)}
.cal-upcoming-item[data-status="failed"] .dot{background:#f87171}
.cal-upcoming-item strong{display:block;font-size:12px}
.cal-upcoming-item small{display:block;margin-top:3px;color:var(--muted2);font-size:11px}

.cal-library-item{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:11px;border-radius:13px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.026)}
.cal-library-thumb{width:44px;height:44px;border-radius:11px;background:#18263a;display:grid;place-items:center;color:var(--orange2);font-size:18px}
.cal-library-item strong{display:block;font-size:12px}
.cal-library-item small{display:block;margin-top:3px;color:var(--muted2);font-size:11px}

/* Modals */
.cal-modal[hidden]{display:none}
.cal-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;overflow-y:auto}
.cal-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,12,.78);backdrop-filter:blur(10px)}
.cal-modal-card{position:relative;z-index:1;width:min(100%,560px);max-height:calc(100vh - 40px);overflow-y:auto;padding:28px;border:1px solid rgba(255,255,255,.11);border-radius:24px;background:linear-gradient(145deg,#142137,#0b1422);box-shadow:0 30px 100px rgba(0,0,0,.55);margin:auto}
.cal-modal-card h2{margin:8px 36px 16px 0;font-size:22px}

.cal-form{display:grid;gap:14px}
.cal-form label{display:grid;gap:7px;color:#d9e4f2;font-size:12px;font-weight:700}
.cal-form input,.cal-form select,.cal-form textarea{width:100%;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:#07111f;color:white;padding:12px 13px;font:inherit;outline:none}
.cal-form input:focus,.cal-form select:focus,.cal-form textarea:focus{border-color:rgba(255,142,45,.8);box-shadow:0 0 0 3px rgba(255,142,45,.12)}
.cal-form textarea{resize:vertical;min-height:78px}
.cal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cal-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.cal-form-message{font-size:12px;line-height:1.5;min-height:1px}
.cal-form-message.error{color:#ff9d9d}
.cal-form-message.success{color:#8de0b1}

.cal-post-detail{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.cal-post-detail .phone-frame{width:150px;aspect-ratio:9/16;max-height:none}
.cal-post-fields{display:grid;gap:14px}
.cal-post-field span{display:block;color:var(--muted2);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.cal-post-field strong{font-size:13px}
.cal-post-field p{margin:0;font-size:13px;color:var(--text);line-height:1.55;white-space:pre-wrap}
.cal-post-error{color:#fecaca}
.cal-post-actions{display:flex;flex-wrap:wrap;gap:8px}
.cal-post-actions button{width:auto;min-height:40px;padding:0 14px;font-size:12px}

@media(max-width:1080px){
  .cal-layout{grid-template-columns:1fr}
  .cal-grid-panel{order:-1}
  .cal-post-detail{grid-template-columns:1fr}
  .cal-post-detail .phone-frame{width:min(100%,220px);margin:0 auto}
}
@media(max-width:760px){
  .cal-not-configured{margin-left:14px;margin-right:14px;padding:18px}
  .cal-form-row{grid-template-columns:1fr}
  .cal-form-actions{grid-template-columns:1fr}
  .cal-grid-panel{padding:16px}
  .cal-day{min-height:78px}
  .cal-grid-head{flex-direction:column;align-items:stretch}
  .cal-view-toggle{justify-content:center}

  /* Bottom-sheet presentation, matching the native pass in styles.css */
  .cal-modal{align-items:flex-end;padding:0}
  .cal-modal-card{
    width:100%;max-width:none;border-radius:22px 22px 0 0;
    max-height:min(88vh,100%);
    padding:14px 20px calc(env(safe-area-inset-bottom) + 22px);
    animation:sheet-up .32s cubic-bezier(.32,.72,0,1)
  }
  .cal-modal-card::before{
    content:'';display:block;width:36px;height:5px;border-radius:999px;
    background:rgba(255,255,255,.22);margin:2px auto 16px
  }
}
