/* ============================================================
   Календарь — сетка планирования неделя / месяц / лента.
   Турниры читаются teal-ом, кэш — золотом, живые события светятся зелёным.
   Токены общие (/shared/styles/tokens.css).
   ============================================================ */

/* ---------- toolbar ---------- */
.cal-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 6px}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav .cal-range{font-size:16px;font-weight:800;letter-spacing:-.3px;min-width:150px;text-align:center}
.cal-nav .navbtn{width:36px;height:36px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:var(--lg);border:1px solid var(--lg-brd);box-shadow:var(--spec);color:var(--text);cursor:pointer;transition:.15s}
.cal-nav .navbtn:hover{background:rgba(255,255,255,.09)}
.cal-today{font-size:12.5px;font-weight:700;color:var(--teal);padding:8px 12px;border-radius:11px;
  background:rgba(45,226,197,.12);border:1px solid rgba(45,226,197,.25);cursor:pointer;white-space:nowrap}
.cal-spring{flex:1}
.cal-filters{display:inline-flex;gap:6px;flex-wrap:wrap}
.cal-fchip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:7px 11px;border-radius:10px;
  background:rgba(255,255,255,.05);border:1px solid var(--lg-brd);color:var(--muted);cursor:pointer;transition:.15s;user-select:none}
.cal-fchip .sw{width:9px;height:9px;border-radius:3px}
.cal-fchip.on.f-tour{color:var(--teal);border-color:rgba(45,226,197,.4);background:rgba(45,226,197,.1)}
.cal-fchip.on.f-cash{color:var(--gold);border-color:rgba(255,194,75,.4);background:rgba(255,194,75,.1)}
.cal-fchip.on.f-mtt{color:var(--purple);border-color:rgba(124,92,255,.42);background:rgba(124,92,255,.12)}
.cal-fchip.off{opacity:.5}

/* ---------- week grid ---------- */
.cal-weekscroll{overflow-x:auto;scrollbar-width:none;margin-top:12px}
.cal-weekscroll::-webkit-scrollbar{display:none}
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:720px}
.cal-daycol{background:var(--lg);border:1px solid var(--lg-brd);border-radius:16px;box-shadow:var(--spec);
  padding:6px;display:flex;flex-direction:column;min-height:280px;cursor:pointer;transition:border-color .14s}
.cal-daycol:hover{border-color:rgba(45,226,197,.32)}
.cal-daycol.today{border-color:rgba(45,226,197,.45);background:linear-gradient(180deg,rgba(45,226,197,.07),var(--lg))}
.cal-daycol.past{opacity:.62}
.cal-dayhead{text-align:center;padding:7px 0 9px}
.cal-dayhead .dn{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);font-weight:800}
.cal-dayhead .dd{font-size:17px;font-weight:800;margin-top:1px;font-family:var(--num)}
.cal-daycol.today .dayhead,.cal-daycol.today .dd{color:var(--teal)}
.cal-daybody{flex:1;display:flex;flex-direction:column;gap:6px}

/* ---------- occurrence chip ---------- */
.cal-ev{border-radius:11px;padding:7px 9px;background:rgba(255,255,255,.05);border:1px solid var(--lg-brd);
  border-left:3px solid var(--dim);cursor:pointer;transition:.14s;position:relative}
.cal-ev:hover{background:rgba(255,255,255,.09);transform:translateY(-1px)}
.cal-ev.k-tour{border-left-color:var(--teal)}
.cal-ev.k-cash{border-left-color:var(--gold)}
.cal-ev.k-mtt{border-left-color:var(--purple)}
.cal-ev.live{border-color:rgba(48,209,88,.5);background:linear-gradient(180deg,rgba(48,209,88,.12),rgba(255,255,255,.03));border-left-color:var(--green)}
.cal-ev.done{opacity:.55}
.cal-ev .ev-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.cal-ev .ev-time{font-size:11px;font-weight:700;color:var(--muted);font-family:var(--num)}
.cal-ev .ev-rep{font-size:12px;color:#cfc6ff}
.cal-ev .ev-live{font-size:9px;font-weight:800;color:#5be08a;background:rgba(48,209,88,.16);padding:1px 5px;border-radius:5px;letter-spacing:.3px}
.cal-ev .ev-open{font-size:9px;font-weight:800;color:var(--gold);background:rgba(255,194,75,.16);padding:1px 5px;border-radius:5px}
.cal-ev .ev-title{font-size:12.5px;font-weight:800;line-height:1.25;margin-top:2px;letter-spacing:-.2px;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cal-ev .ev-sub{font-size:11px;margin-top:2px}
.cal-ev.k-tour .ev-sub{color:var(--teal)}
.cal-ev.k-cash .ev-sub{color:var(--gold)}
.cal-ev.k-mtt .ev-sub{color:var(--purple)}
.cal-ev .ev-bar{height:3px;border-radius:2px;background:rgba(255,255,255,.12);margin-top:5px;overflow:hidden}
.cal-ev .ev-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--blue))}
.cal-ev.live .ev-bar>i{background:var(--green)}

/* add-in-slot affordance */
.cal-add{border:1px dashed rgba(255,255,255,.14);border-radius:10px;padding:6px;text-align:center;color:var(--dim);
  font-size:15px;cursor:pointer;transition:.14s;margin-top:auto}
.cal-add:hover{border-color:rgba(45,226,197,.5);color:var(--teal);background:rgba(45,226,197,.06)}

/* ---------- month grid ---------- */
.cal-month{margin-top:12px;border:1px solid var(--lg-brd);border-radius:18px;overflow:hidden;background:var(--lg);box-shadow:var(--spec)}
.cal-mrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-mrow.mhead>div{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);font-weight:800;
  text-align:center;padding:9px 0;background:rgba(255,255,255,.02);border-bottom:1px solid var(--lg-brd)}
.cal-mcell{min-height:104px;padding:6px 7px;border-right:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);
  cursor:pointer;transition:.12s;display:flex;flex-direction:column;gap:3px}
.cal-mcell:hover{background:rgba(255,255,255,.03)}
.cal-mcell:nth-child(7n){border-right:0}
.cal-mcell.oth{opacity:.4}
.cal-mcell.today .mnum{color:#04222b;background:var(--teal)}
.cal-mcell .mnum{font-size:12px;font-weight:800;font-family:var(--num);width:24px;height:22px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;align-self:flex-start}
.cal-mchip{font-size:10.5px;font-weight:700;padding:2px 5px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border-left:3px solid var(--dim);background:rgba(255,255,255,.06)}
.cal-mchip.k-tour{border-left-color:var(--teal);color:#bff3e8}
.cal-mchip.k-cash{border-left-color:var(--gold);color:#ffe1a8}
.cal-mchip.k-mtt{border-left-color:var(--purple);color:#d6cbff}
.cal-mchip.live{border-left-color:var(--green);color:#9be9b3}
.cal-mmore{font-size:10px;color:var(--muted);font-weight:700;padding-left:4px}

/* ---------- agenda + series manager ---------- */
.cal-agenda{margin-top:14px;display:flex;flex-direction:column;gap:18px}
.agenda-day .ad-h{font-size:12.5px;font-weight:800;color:var(--muted);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.agenda-day .ad-h .ad-badge{font-size:10.5px;font-weight:800;color:var(--dim)}
.agenda-row{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:11px 14px;border-radius:14px;
  background:var(--lg);border:1px solid var(--lg-brd);box-shadow:var(--spec);cursor:pointer;transition:.14s;border-left:3px solid var(--dim)}
.agenda-row:hover{background:rgba(255,255,255,.05)}
.agenda-row.k-tour{border-left-color:var(--teal)}
.agenda-row.k-cash{border-left-color:var(--gold)}
.agenda-row.k-mtt{border-left-color:var(--purple)}
.agenda-row.live{border-left-color:var(--green)}
.agenda-row .ar-t{font-family:var(--num);font-weight:700;font-size:15px}
.agenda-row .ar-i b{font-size:14px;font-weight:800;display:block}
.agenda-row .ar-i small{font-size:12px;color:var(--muted)}
.agenda-row .ar-r{font-size:12px;font-weight:700;font-family:var(--num);color:var(--muted);white-space:nowrap;text-align:right}

.series-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.series-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px 15px;border-radius:15px;
  background:var(--lg);border:1px solid var(--lg-brd);box-shadow:var(--spec)}
.series-row.paused{opacity:.6}
.series-row .sr-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}
.series-row .sr-ic.tour{background:rgba(45,226,197,.16);color:var(--teal)}
.series-row .sr-ic.cash{background:rgba(255,194,75,.16);color:var(--gold)}
.series-row .sr-ic.mtt{background:rgba(124,92,255,.16);color:var(--purple)}
.series-row .sr-i{min-width:0}
.series-row .sr-i b{font-size:14.5px;font-weight:800;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.series-row .sr-i small{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.series-row .sr-acts{display:flex;gap:6px}

/* ---------- modal (create / edit / occurrence actions) ---------- */
.cal-modal-ov{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(4,3,14,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade .2s}
.cal-modal{width:100%;max-width:540px;max-height:90vh;overflow-y:auto;border-radius:24px;padding:22px;
  scrollbar-width:none;animation:fade .25s var(--ease-glass)}
.cal-modal::-webkit-scrollbar{display:none}
.cal-modal .cm-h{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.cal-modal .cm-h h3{margin:0;font-size:19px;font-weight:800;flex:1;letter-spacing:-.3px}
.cal-modal .cm-x{width:34px;height:34px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:rgba(255,255,255,.06);border:1px solid var(--lg-brd);cursor:pointer;color:var(--muted)}
.cal-modal .cm-x:hover{background:rgba(255,255,255,.12);color:var(--text)}
.cal-modal .cm-actions{display:flex;gap:10px;margin-top:18px}
.cal-modal .cm-actions .btn{flex:1}
.cm-kind{display:inline-flex;padding:4px;border-radius:14px;gap:2px;background:rgba(255,255,255,.05);border:1px solid var(--lg-brd);margin-bottom:14px;width:100%}
.cm-kind button{flex:1;border:0;background:0;color:var(--muted);font-size:13px;font-weight:800;padding:9px;border-radius:11px;cursor:pointer;transition:.18s}
.cm-kind button.on{background:var(--grad-op);color:#04222b}
.cm-kind.cash button.on{background:linear-gradient(135deg,#FFC24B,#FF9D2B);color:#3a2400}

/* weekday picker + recurrence */
.rec-seg{display:inline-flex;padding:4px;border-radius:12px;gap:2px;background:rgba(255,255,255,.05);border:1px solid var(--lg-brd)}
.rec-seg button{border:0;background:0;color:var(--muted);font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:9px;cursor:pointer}
.rec-seg button.on{background:rgba(45,226,197,.16);color:var(--teal)}
.wd-pick{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.wd-chip{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:12.5px;
  font-weight:800;background:rgba(255,255,255,.05);border:1px solid var(--lg-brd);color:var(--muted);cursor:pointer;transition:.14s;user-select:none}
.wd-chip.on{background:rgba(45,226,197,.16);border-color:rgba(45,226,197,.45);color:var(--teal)}

/* day sheet — list of a day's events */
.day-list{display:flex;flex-direction:column;gap:9px}

/* occurrence action sheet rows */
.occ-meta{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.04);
  border:1px solid var(--lg-brd);margin-bottom:14px}
.occ-meta .om-when{font-size:13px;color:var(--muted);font-family:var(--num);font-weight:700}
.occ-meta .om-series{font-size:12px;color:#cfc6ff;display:flex;align-items:center;gap:6px}
.occ-act{display:flex;flex-direction:column;gap:9px}
.occ-act .btn{width:100%}

@media (max-width:600px){
  .cal-modal{padding:18px;border-radius:20px}
  .cal-mcell{min-height:76px}
  .cal-mchip .mc-title{display:none}
}
