
/* ==== Round 5 · covers made with ✦ (additions) ====================================
   Tokens first; aliases on :root and every [data-theme] so they re-resolve in dark. */
:root,[data-theme]{
--cv-group:var(--paper-raised);--cv-group-head:var(--paper);--cv-group-edge:var(--line);
--cv-on:var(--kopi-soft);--cv-sel:var(--kopi);--cv-off:var(--ink-3);
--cv-chip:var(--glass);--cv-mark:var(--helper-spark);
--r-cover:16px;
}
:root{--on-cover:#FBF8F2;--cover-shade:rgba(20,24,20,.62);--cv-grid:rgba(251,248,242,.55)}
[data-theme="dark"]{--on-cover:#FBF8F2;--cover-shade:rgba(0,0,0,.66);--cv-grid:rgba(251,248,242,.4)}
/* the 3:2 frame: every cover, option, wait and crop uses it */
.frame32{aspect-ratio:3/2;width:100%;border-radius:var(--r-cover);overflow:hidden;position:relative;display:block;flex:none;padding:0;text-align:left}
.frame32>.img{position:absolute;inset:0;height:auto}
.frame32>.sk{position:absolute;inset:0;border-radius:0}
.frame32>.mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font:600 17px var(--font-body);color:var(--ink-2)}
/* picker: two paths, reusing .svc; the "needs OpenRouter" path is dashed, not hidden */
.svc.need{background:transparent;border-style:dashed;cursor:default}
.svc.need .n{color:var(--ink-2)}
.svc.need .d{color:var(--ink)}
/* the list: one closed group, headed by our mark */
.picked{border:1px solid var(--cv-group-edge);border-radius:var(--r-card);background:var(--cv-group);overflow:hidden}
.picked-h{display:flex;align-items:center;gap:8px;padding:10px 14px;font:600 14px/1.2 var(--font-body);color:var(--ink);background:var(--cv-group-head);border-bottom:1px solid var(--cv-group-edge)}
.mdl{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;width:100%;min-height:var(--tap);text-align:left;color:var(--ink);border-top:1px solid var(--cv-group-edge)}
.picked-h+.mdl{border-top:0}
.mdl .n{font:600 16px/1.3 var(--font-body);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.mdl .d{font-size:var(--t-sub);color:var(--ink-2);line-height:1.4;display:flex;gap:6px;align-items:flex-start}
.mdl .d .ic{margin-top:1px}
.mdl.on{background:var(--cv-on)}
.mdl.off{color:var(--cv-off);cursor:default}
.mdl.off .n{color:var(--cv-off)}
.mdl.off .radio{border-style:dashed}
.mdl.off .tag{opacity:.55}
/* two options */
.opts{display:grid;gap:12px}
.opts.side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.opt{outline:3px solid transparent;outline-offset:3px;transition:outline-color var(--dur-tap)}
.opt.on{outline-color:var(--cv-sel)}
.opt .optn,.opt .ck{position:absolute;top:10px;z-index:2;height:28px;min-width:28px;border-radius:14px;display:grid;place-items:center}
.opt .optn{left:10px;padding:0 9px;background:var(--cv-chip);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-edge);font:700 13px var(--font-body);color:var(--ink)}
.opt .ck{right:10px;background:var(--cv-sel);color:var(--on-kopi)}
/* crop preview: thirds grid, the name as it will sit */
.crop:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent calc(33.33% - .5px),var(--cv-grid) 0 calc(33.33% + .5px),transparent 0 calc(66.66% - .5px),var(--cv-grid) 0 calc(66.66% + .5px),transparent 0),linear-gradient(0deg,transparent calc(33.33% - .5px),var(--cv-grid) 0 calc(33.33% + .5px),transparent 0 calc(66.66% - .5px),var(--cv-grid) 0 calc(66.66% + .5px),transparent 0)}
.crop:after{content:"";position:absolute;inset:38% 0 0;z-index:1;background:linear-gradient(transparent,var(--cover-shade));pointer-events:none}
.cvname{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;color:var(--on-cover);display:flex;flex-direction:column;gap:2px}
.cvname b{font:500 28px/1.1 var(--font-display);letter-spacing:-.01em}
.cvname span{font:500 14px/1.3 var(--font-body)}
/* the made-with-✦ corner mark (settings only, never the invite) */
.cvmark{position:absolute;right:10px;bottom:10px;z-index:2;width:30px;height:30px;border-radius:15px;background:var(--cv-chip);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-edge);display:grid;place-items:center;color:var(--cv-mark)}
.cvmark:before{content:"";position:absolute;inset:-7px}
.cvmark.pressed{background:var(--paper-raised)}
/* admin: order number beside each model */
.ordn{width:26px;height:26px;border-radius:13px;border:1.5px solid var(--line-strong);display:grid;place-items:center;font:600 13px var(--font-body);color:var(--ink-2);flex:none}
.li.dim .a,.li.dim .ordn{color:var(--ink-3)}
/* a locked photo this phone can't open yet (the key hand-over hasn't reached it) */
.locked-wait{background-image:none}
