/* Suite de views.css : base de données, calendrier */

/* ── Base de données ── */
.db-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.db-actions{margin-left:auto}
.db-wrap{overflow:auto;max-height:calc(100vh - 220px);border:1px solid var(--line);border-radius:var(--r);background:var(--s1)}
.db-tbl{font-size:12px;border-collapse:separate;border-spacing:0}
.db-tbl thead th{position:sticky;top:0;z-index:2;cursor:pointer;padding:9px 12px}
.db-tbl thead tr.db-groups th{cursor:default;color:var(--text);font-size:10px;letter-spacing:.8px;text-align:center;border-bottom:1px solid var(--line)}
.db-tbl thead tr:nth-child(2) th{top:33px}
.db-tbl tbody td{padding:8px 12px;vertical-align:middle;border-bottom:1px solid var(--line)}
.db-tbl tbody tr{border-bottom:none}
.db-tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.db-tbl thead .g1,.db-tbl tbody .g1{background:rgba(0,0,0,.018)}
.db-tbl thead .g1{background:#efefef}
.db-tbl .stk{position:sticky;background:var(--s1);z-index:1}
.db-tbl thead .stk{background:var(--s2);z-index:3}
.db-tbl .stk-1{left:0;min-width:128px}
.db-tbl .stk-2{left:128px;min-width:240px;max-width:240px;border-right:1px solid var(--line2)}
.db-tbl tbody tr:hover td{background:var(--s2)}
.db-tbl .stk-2 .n-text{max-width:220px}
.db-tbl .stk-2 .n-input{width:220px}
.db-date{font-weight:600;white-space:nowrap}
.db-date .sd-tag{margin-left:6px}
.db-row-actions{white-space:nowrap}
.db-row-actions .icon-btn{min-width:28px;height:28px;padding:0 6px;font-size:12px}
.icon-btn.danger:hover:not(:disabled){background:rgba(255,69,58,.12);border-color:rgba(255,69,58,.3)}
a.btn{text-decoration:none;display:inline-block}

/* ── Calendrier ── */
body.cal-active .wrap{padding-bottom:16px}
.cal-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.cal-nav{display:flex;align-items:center;gap:6px}
.cal-title{font-size:19px;font-weight:800;letter-spacing:-.4px;min-width:150px;text-align:center}

/* Vue année : 12 mois sur 3 lignes, dans la hauteur de l'écran */
.cal-year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;height:var(--cal-h,auto)}
.cal-month{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--s1);transition:border-color .2s,box-shadow .2s}
.cal-month:hover{border-color:var(--line2);box-shadow:0 4px 14px rgba(0,0,0,.05)}
.cal-month.empty .cal-month-head b{color:var(--t3)}
.cal-month-head{display:flex;justify-content:space-between;align-items:baseline;width:100%;border:none;background:none;cursor:pointer;padding:0 2px 6px;font:inherit;color:var(--text)}
.cal-month-head b{font-size:13px;font-weight:800}
.cal-month-head b small{font-weight:500;color:var(--t3)}
.cal-month-head span{font-size:11px;color:var(--t2);font-weight:600}
.cal-month-head:hover b{color:var(--orange)}
.cal-mini{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(6,minmax(0,1fr));gap:2px}
.cal-mini small{text-align:center;font-size:9px;font-weight:700;color:var(--t3);padding-bottom:1px}
.cal-d{display:flex;align-items:center;justify-content:center;min-height:0;border-radius:7px;font-size:10.5px;color:var(--t3);font-variant-numeric:tabular-nums;border:none;background:none;font-family:inherit;padding:0}
.cal-d.today{box-shadow:inset 0 0 0 1.5px var(--orange);color:var(--orange);font-weight:700}
.cal-d.live{color:#fff;background:#b0b0b0;font-weight:800;cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s}
.cal-d.live.bg-t5{background:#22a046}.cal-d.live.bg-t4{background:#7cb342}.cal-d.live.bg-t2{background:#f59e0b}.cal-d.live.bg-t1{background:#e5484d}
.cal-d.live:hover{transform:scale(1.15);box-shadow:0 2px 8px rgba(0,0,0,.18);position:relative;z-index:1}

/* Vue mois : grille épurée + liste des émissions */
.cal-zoom{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:14px;height:var(--cal-h,auto)}
.cal-zgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-height:0;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--s1)}
.cal-zgrid>small{text-align:center;font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.6px;padding-bottom:4px}
.cal-zd{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:0;overflow:hidden;padding:6px 8px;border-radius:10px;border:none;background:none;font-family:inherit;text-align:left;color:var(--text)}
.cal-zd.out{opacity:.3}
.cal-zn{font-size:12px;font-weight:600;color:var(--t3);font-variant-numeric:tabular-nums}
.cal-zd.today .cal-zn{background:var(--orange);color:#fff;border-radius:10px;padding:0 7px}
.cal-zd.live{cursor:pointer;background:var(--s2);transition:transform .15s var(--ease),box-shadow .15s}
.cal-zd.live .cal-zn{color:var(--text);font-weight:800}
.cal-zd.live.bg-t5{background:var(--tn5-bg)}.cal-zd.live.bg-t4{background:var(--tn4-bg)}.cal-zd.live.bg-t2{background:var(--tn2-bg)}.cal-zd.live.bg-t1{background:var(--tn1-bg)}
.cal-zd.live:hover,.cal-zd.linked{transform:translateY(-1px);box-shadow:0 0 0 2px var(--orange)}
.cal-zname{font-size:11.5px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cal-side{overflow-y:auto;min-height:0;align-self:stretch}
.cal-li.linked{background:var(--orange-bg)}
.cal-li-day{display:flex;flex-direction:column;align-items:center;width:34px;flex-shrink:0;line-height:1.1}
.cal-li-day b{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.cal-li-day small{font-size:10px;color:var(--t3);text-transform:uppercase;font-weight:700}

.anim-zoom{animation:calZoom .3s var(--ease)}
.anim-unzoom{animation:calUnzoom .3s var(--ease)}
.anim-next{animation:calNext .28s var(--ease)}
.anim-prev{animation:calPrev .28s var(--ease)}
@keyframes calZoom{from{opacity:0;transform:scale(.96)}}
@keyframes calUnzoom{from{opacity:0;transform:scale(1.03)}}
@keyframes calNext{from{opacity:0;transform:translateX(24px)}}
@keyframes calPrev{from{opacity:0;transform:translateX(-24px)}}

@media(max-width:1100px){.cal-year{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.cal-zoom{grid-template-columns:1fr;height:auto}.cal-zgrid{min-height:420px}}
@media(max-width:700px){
  .cal-year{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;height:auto;gap:8px}
  .cal-mini{grid-template-rows:auto;grid-auto-rows:26px}
  .cal-zname{display:none}.cal-zd{padding:4px}
}
