/* Templates library + PSD editor (uses the lic.css tokens) */
.ttabs{margin:6px 0 4px}
.ttabs .tcount{margin-left:8px;font-size:12px;color:var(--muted);font-weight:800}
.ttabs a.on .tcount{color:var(--accent)}
.tsearch{margin:10px 0 6px}
.tsearch input{font-size:16px;min-height:46px}
.tcats{margin:8px 0 14px}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin:0 0 18px}
.tcard{display:flex;flex-direction:column;overflow:hidden;padding:0}
.tcard[hidden],tr[hidden]{display:none}
.tcard .tpic{display:flex;align-items:center;justify-content:center;aspect-ratio:2/3;margin:10px;border-radius:12px;overflow:hidden}
.tcard .tpic img{max-width:100%;max-height:100%;object-fit:contain;display:block;border-radius:4px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.tcard .tbody{padding:2px 14px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tcard h2{margin:0;font-size:15.5px;line-height:1.25;overflow-wrap:anywhere}
.tcard .row{margin-top:4px}
.tcard .badge{min-height:22px;padding:0 9px;font-size:10.5px}
.tsub{margin:22px 0 10px;font-size:18px}
.edlg.wide .dlg{max-width:min(1100px,calc(100vw - 32px));width:100%;max-height:calc(100vh - 48px);overflow:auto}
.vgroup h3{margin:14px 0 10px;font-size:14px;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.vcard{margin:0;padding:10px;border-radius:14px;display:flex;flex-direction:column;gap:10px;align-items:center}
.vcard img{width:100%;aspect-ratio:2/3;object-fit:contain;display:block}
.vcard.f10l img{aspect-ratio:3/2}
.vcard.wel{grid-column:span 2;flex-direction:row;align-items:flex-start}
.vcard.wel img{width:46%;aspect-ratio:3/4}
.vcard figcaption{width:100%;display:flex;flex-direction:column;gap:8px}
.vcard .row{flex-wrap:wrap;gap:6px}
.vcard .btn.sm{min-height:34px;padding:0 12px}
.vcard .btn.icon{width:34px;padding:0;display:inline-grid;place-items:center}
.tnone{margin:8px 0 18px}
/* editor */
.pcwrap{position:relative;padding:0;overflow:hidden;height:calc(100vh - 210px);min-height:520px;border-radius:var(--r1,18px)}
.pcwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#262626}
.pcmsg{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);max-width:calc(100% - 32px);padding:10px 16px;border-radius:999px;
  background:rgba(20,21,24,.88);color:#f3f4f6;font-size:14px;line-height:1.35;box-shadow:0 10px 30px rgba(0,0,0,.35);pointer-events:none;text-align:center}
.pcmsg[hidden]{display:none}
.pcmsg.ok{color:#9be3b5}
.pcmsg.err{color:#ffb4a8}
@media (max-width:720px){
  .tcards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vcard.wel{grid-column:span 2}
  .pcwrap{height:calc(100vh - 170px);min-height:420px}
}

/* My templates table: never scroll sideways, the actions wrap (v2) */
.tsec[data-sec=mine] .tbl{overflow-x:visible}
.tsec[data-sec=mine] table{table-layout:auto}
#mineRows td{overflow-wrap:anywhere}
#mineRows td:last-child{width:38%}
#mineRows .tplacts{flex-wrap:wrap;gap:6px;justify-content:flex-start}
#mineRows .tplacts .btn.sm{padding:0 12px;white-space:nowrap}
#mineRows .tplcell .row{flex-wrap:wrap;gap:6px;margin-top:6px}
#mineRows .badge{min-height:22px;padding:0 9px;font-size:10.5px;white-space:nowrap}
@media (max-width:1100px){
  .tsec[data-sec=mine] thead{display:none}
  .tsec[data-sec=mine] table,.tsec[data-sec=mine] tbody{display:block}
  #mineRows tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:14px 16px;border-bottom:1px solid var(--line)}
  #mineRows tr:last-child{border-bottom:0}
  #mineRows td{display:block;padding:0;border:0}
  #mineRows td:nth-child(1){grid-column:1/-1}
  #mineRows td:nth-child(2),#mineRows td:nth-child(3){font-size:13.5px;color:var(--soft)}
  #mineRows td:nth-child(4){grid-column:1/-1}
  #mineRows td:nth-child(4) .row{flex-wrap:wrap;gap:6px}
  #mineRows td:last-child{grid-column:1/-1;width:auto}
  #mineRows tr.empty td{grid-column:1/-1}
}

/* row actions: one line of icon buttons (v3) */
#mineRows td:last-child{width:1%}
#mineRows .tplacts{flex-wrap:nowrap;gap:6px}
#mineRows .tplacts form{display:flex}
#mineRows .tib{width:40px;height:40px;min-height:40px;padding:0;display:inline-grid;place-items:center;flex:0 0 auto}
#mineRows .tib svg{display:block}
#mineRows .tib.danger{color:var(--warn)}
@media (max-width:1100px){#mineRows td:last-child{width:auto}}

/* icon buttons everywhere (v4) */
.tacts{flex-wrap:nowrap !important;gap:6px}
.tacts form{display:flex}
.tcard .tib,.vcard .tib{width:38px;height:38px;min-height:38px;padding:0;display:inline-grid;place-items:center;flex:0 0 auto}
.tib svg{display:block}
.tib.danger{color:var(--warn)}
.tib.busy{opacity:.6;cursor:progress}
.tib.busy svg{animation:tibspin 1s linear infinite}
@keyframes tibspin{to{transform:rotate(360deg)}}
/* tvis · library visibility: one switch in the header */
.seg.tvis{margin:0;align-items:center;flex-wrap:nowrap}
.seg.tvis .tvl{padding:0 6px 0 12px;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.seg.tvis button{flex:0 0 auto;padding:0 16px;min-height:38px;border:1px solid transparent;border-radius:999px;background:none;color:var(--soft);font:inherit;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}
.seg.tvis button:hover{color:var(--text)}
.seg.tvis button.on{background:var(--g-raise);color:var(--accent-ink,var(--accent));box-shadow:var(--e1),inset 0 1px 0 var(--hi);border-color:var(--stroke)}
.tmeta{margin:0 0 10px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.tmeta button.link{width:auto;min-height:36px;padding:6px 8px;font-size:inherit;color:var(--accent-ink,var(--accent));text-decoration:underline;text-underline-offset:3px}
/* admin design meta form */
.tmetaf{max-width:860px;gap:16px}
.tmetag{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tmetag .tmetat{grid-column:1/-1}
.tmetab{gap:14px;flex-wrap:nowrap}
.tmetab .grow{min-width:0}
@media (max-width:560px){.tmetag{grid-template-columns:1fr}.tmetab{flex-wrap:wrap}.tmetab .grow{order:3;flex-basis:100%}}
