/* approvals.css - client approval page (studio/approvals.js). Uses the
   studio tokens, so light/dark follows the app. Classes are prefixed ap-. */
.ap-head{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:14px;flex-wrap:wrap}
.ap-head img,.ap-ph{width:46px;height:46px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--border);flex-shrink:0}
.ap-hm{flex:1;min-width:160px}
.ap-hn{font-size:19px;font-weight:800;letter-spacing:-.3px}
.ap-hs{font-size:12.5px;color:var(--text3);margin-top:2px}
.ap-badge{background:rgba(255,149,0,.14);color:var(--orange);font-size:12.5px;font-weight:700;border-radius:20px;padding:6px 12px}
.ap-badge.done{background:var(--gl);color:var(--green)}
.ap-lang{display:flex;gap:2px;background:var(--card2);border-radius:9px;padding:2px}
.ap-lang button{border:none;background:none;color:var(--text3);font-weight:700;font-size:11.5px;padding:5px 8px;border-radius:7px;cursor:pointer}
.ap-lang button.on{background:var(--card);color:var(--text)}
.ap-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;background:var(--card2);color:var(--text);font:600 13px var(--font);padding:9px 14px;border-radius:10px;cursor:pointer}
.ap-btn:disabled{opacity:.5;cursor:default}
.ap-btn.ok{background:var(--green);color:#fff}
.ap-btn.no{background:var(--rl);color:var(--red)}
.ap-iconbtn{width:32px;height:32px;border-radius:9px;border:none;background:var(--card2);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.ap-iconbtn:disabled{opacity:.35;cursor:default}
.ap-ic{display:inline-flex}
.ap-ic svg{width:16px;height:16px}
.ap-ic.sm svg{width:13px;height:13px;opacity:.7}
.ap-link{border:none;background:none;color:var(--accent);font:600 13px var(--font);cursor:pointer;padding:4px 6px}
.ap-grow{flex:1}

/* toolbar */
.ap-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ap-seg{display:inline-flex;background:var(--card2);border-radius:10px;padding:3px}
.ap-seg button{display:inline-flex;align-items:center;gap:6px;border:none;background:none;font:600 13px var(--font);color:var(--text3);padding:6px 12px;border-radius:8px;cursor:pointer}
.ap-seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.ap-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--border);background:var(--card);color:var(--text2);font:600 13px var(--font);padding:6px 11px;border-radius:9px;cursor:pointer}
.ap-chip.on{border-color:var(--accent);color:var(--accent);background:var(--al)}
.ap-count{font-size:12.5px;color:var(--text3)}
.ap-pop{position:fixed;z-index:960;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;min-width:220px;max-height:60vh;overflow:auto}
.ap-opt{display:flex;align-items:center;gap:9px;width:100%;border:none;background:none;color:var(--text);font:500 13.5px var(--font);padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}
.ap-opt:hover{background:var(--card2)}
.ap-opt.cur{background:var(--al);color:var(--accent)}
.ap-opt input{width:16px;height:16px;accent-color:var(--accent)}

/* pills */
.ap-pill{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11.5px;font-weight:700;white-space:nowrap}
.ap-pill.wait{background:rgba(255,149,0,.15);color:#c26a00}
.ap-pill.rev{background:rgba(175,82,222,.14);color:#8a3ab9}
.ap-pill.ok{background:var(--gl);color:#1f8a3b}
.ap-pill.no{background:var(--rl);color:var(--red)}
[data-theme="dark"] .ap-pill.wait{color:#ffb340}
[data-theme="dark"] .ap-pill.rev{color:#d59cf5}
[data-theme="dark"] .ap-pill.ok{color:var(--green)}
.ap-plat{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11.5px;font-weight:600;background:var(--card2);color:var(--text2);white-space:nowrap}

/* gallery: 4-5 per row on a laptop, 1-2 on a phone */
/* At most 5 per row however wide the screen; never narrower than 240px. */
.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(240px,calc((100% - 64px) / 5)),1fr));gap:16px}
.ap-card{display:flex;flex-direction:column;text-align:left;border:1px solid var(--border2);background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;padding:0;color:var(--text);font-family:var(--font);transition:transform .12s,box-shadow .12s}
.ap-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.ap-cover{position:relative;aspect-ratio:4/5;background:var(--card2);display:flex;align-items:center;justify-content:center;color:var(--text3);overflow:hidden}
.ap-cover img{width:100%;height:100%;object-fit:cover}
.ap-cover.vid{background:#1c1c24;color:#d6d8e0}
.ap-play svg{width:54px;height:54px}
.ap-n{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:700;border-radius:10px;padding:2px 8px}
.ap-nov{font-size:13px}
.ap-cb{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}
.ap-ct{font-weight:700;font-size:15px;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.ap-cd{font-size:12.5px;color:var(--text3)}
.ap-cp{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ap-cc{font-size:12.5px;color:var(--text2);line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:pre-line}
.ap-cc.empty{color:var(--text3);font-style:italic}
.ap-empty{padding:60px 16px;text-align:center;color:var(--text3)}
.ap-foot{text-align:center;color:var(--text3);font-size:12px;margin-top:26px}

/* calendar */
.ap-calwrap{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px}
.ap-calhead{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.ap-caltitle{font-size:18px;font-weight:800;margin-left:8px}
.ap-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border2);border-left:1px solid var(--border2)}
.ap-wd{font-size:11.5px;font-weight:700;color:var(--text3);text-transform:uppercase;padding:7px 8px;border-right:1px solid var(--border2);border-bottom:1px solid var(--border2);background:var(--card2)}
.ap-day{min-height:118px;padding:5px;border-right:1px solid var(--border2);border-bottom:1px solid var(--border2);display:flex;flex-direction:column;gap:4px;min-width:0}
.ap-day.out{background:var(--card2)}
.ap-day.out .ap-dn{opacity:.45}
.ap-dn{font-size:12px;font-weight:700;color:var(--text2);padding:1px 3px}
.ap-day.today .ap-dn{color:#fff;background:var(--accent);border-radius:10px;align-self:flex-start;padding:0 7px}
.ap-ev{display:flex;align-items:center;gap:6px;border:none;border-left:3px solid var(--text3);background:var(--card2);border-radius:7px;padding:3px 6px;cursor:pointer;color:var(--text);font:500 11.5px var(--font);text-align:left;min-width:0}
.ap-ev img{width:24px;height:24px;border-radius:5px;object-fit:cover;flex-shrink:0}
.ap-evdot{width:8px;height:8px;border-radius:50%;background:var(--text3);flex-shrink:0}
.ap-evt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ap-ev.wait{border-left-color:var(--orange)}
.ap-ev.rev{border-left-color:var(--purple)}
.ap-ev.ok{border-left-color:var(--green)}
.ap-ev.no{border-left-color:var(--red)}
.ap-more{border:none;background:none;color:var(--accent);font:600 11.5px var(--font);text-align:left;padding:2px 4px;cursor:pointer}

/* detail */
.ap-ov{position:fixed;inset:0;z-index:950;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:22px}
.ap-modal{background:var(--card);border-radius:20px;box-shadow:var(--shadow-lg);width:min(1080px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}
.ap-mhead{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}
.ap-mpos{font-size:12.5px;color:var(--text3)}
.ap-mbody{display:flex;min-height:0;overflow:auto}
.ap-mleft{flex:1.15;min-width:0;background:#0d0d12;display:flex;flex-direction:column}
.ap-media{position:relative;flex:1;min-height:360px;max-height:72vh;display:flex;align-items:center;justify-content:center;color:#ccc}
.ap-media img{max-width:100%;max-height:72vh;object-fit:contain}
.ap-vid{text-align:center;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:10px}
.ap-mnav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ap-mnav.l{left:12px}
.ap-mnav.r{right:12px}
.ap-thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto}
.ap-thumbs button{width:52px;height:52px;flex-shrink:0;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#222;padding:0;cursor:pointer;color:#ccc;display:flex;align-items:center;justify-content:center}
.ap-thumbs button.on{border-color:#fff}
.ap-thumbs img{width:100%;height:100%;object-fit:cover}
.ap-mright{flex:1;min-width:280px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;overflow:auto}
.ap-mt{font-size:19px;font-weight:800;letter-spacing:-.3px}
.ap-md{font-size:13px;color:var(--text3)}
.ap-cap{white-space:pre-wrap;font-size:14px;line-height:1.55;background:var(--card2);border-radius:12px;padding:12px 14px;max-height:34vh;overflow:auto;word-break:break-word}
.ap-cap.empty{color:var(--text3);font-style:italic}
.ap-mright textarea{width:100%;min-height:84px;resize:vertical;padding:10px 12px;border-radius:11px;border:1.5px solid var(--border);background:var(--card);color:var(--text);font:14px var(--font);line-height:1.45;outline:none}
.ap-mright textarea:focus{border-color:var(--accent)}
.ap-mright textarea.need{border-color:var(--red)}
.ap-acts{display:flex;flex-wrap:wrap;gap:8px}
.ap-msg{font-size:13px;min-height:18px}
.ap-msg.ok{color:var(--green)}
.ap-msg.err{color:var(--red)}

@media (max-width:760px){
  .ap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ap-ct{font-size:13.5px}
  .ap-cc{display:none}
  .ap-ov{padding:0}
  .ap-modal{border-radius:0;height:100%}
  .ap-mbody{flex-direction:column}
  .ap-media{min-height:280px;max-height:55vh}
  .ap-day{min-height:70px}
  .ap-ev img,.ap-evt{display:none}
  .ap-ev{padding:4px;border-left-width:4px}
}
@media (max-width:420px){.ap-grid{grid-template-columns:1fr}}
/* carousel arrows on cards + the conversation inside the detail view */
.ap-cnav{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;display:none;align-items:center;justify-content:center;cursor:pointer}
.ap-cnav.l{left:8px}.ap-cnav.r{right:8px}
.ap-cnav svg{width:15px;height:15px}
.ap-card:hover .ap-cnav{display:flex}
.ap-thread{width:auto !important;border-left:none !important;border:1px solid var(--border) !important;border-radius:12px;margin-top:10px;max-height:420px;min-height:260px}
.ap-thread .rp-clist{max-height:260px}

/* Client switcher + print (14 Oct 2026) */
.ap-switch{border:1px solid var(--border);background:var(--card2);color:var(--text);border-radius:9px;padding:7px 9px;font:inherit;font-size:13px;font-weight:600;max-width:220px}
a.ap-link{text-decoration:none}
@media print{
  .cs-side,.cs-top,.ap-bar button,.ap-bar a,.ap-lang,.ap-head .ap-btn,.ap-switch,.cc-banner,.toast{display:none !important}
  .cs-shell,.cs-main,.cs-scroll,.cs-cshell{display:block !important;height:auto !important;overflow:visible !important}
  body{background:#fff !important}
  .ap-card{break-inside:avoid}
}
