/* Leynivinur components. Design tokens come from the theme;
   sensible fallbacks make the plugin usable with any theme. */
.lv{
  --lv-bg:var(--bg,#131C36);--lv-surface:var(--surface,#1B2749);
  --lv-raised:var(--raised,#243158);--lv-line:var(--line,#2E3C68);
  --lv-ink:var(--ink,#F3F1E9);--lv-muted:var(--muted,#9AA3C0);
  --lv-primary:var(--primary,#E8A24B);--lv-primary-ink:var(--primary-ink,#251A05);
  --lv-accent:var(--accent,#E8A24B);--lv-success:var(--success,#5FBF9B);
  --lv-danger:var(--danger,#D96A5B);--lv-radius:14px;
  --lv-band:var(--band,none);--lv-band-h:var(--band-h,12px);
  color:var(--lv-ink);max-width:1060px;margin:0 auto;padding:34px 22px 90px;
}
.lv-narrow{max-width:760px}
.lv-hidden{display:none!important}
.lv-kicker{color:var(--lv-accent);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px}
.lv-title{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800;margin:0 0 26px;line-height:1.12}
.lv-card{background:var(--lv-surface);border:1px solid var(--lv-line);border-radius:var(--lv-radius);padding:26px;margin-bottom:18px}
.lv-card h2{font-size:1.4rem;margin:0 0 4px}
.lv-sub{color:var(--lv-muted);font-size:.94rem;margin:0 0 18px}
.lv-f{display:block;font-weight:600;font-size:.88rem;margin:14px 0 6px}
.lv input[type=text],.lv input[type=email],.lv input[type=date],.lv input[type=number],.lv select,.lv textarea{
  width:100%;background:var(--lv-bg);border:1px solid var(--lv-line);border-radius:10px;
  color:var(--lv-ink);padding:11px 13px;font:inherit;font-size:.96rem}
.lv textarea{min-height:96px;resize:vertical}
.lv-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lv-btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;border:0;border-radius:11px;
  padding:11px 20px;font-weight:700;font-size:.98rem;text-decoration:none;cursor:pointer;font-family:inherit;
  transition:transform .12s ease,filter .12s ease}
.lv-btn:active{transform:translateY(1px)}
.lv-btn-primary{background:var(--lv-primary);color:var(--lv-primary-ink)}
.lv-btn-primary:hover{filter:brightness(1.08)}
.lv-btn-ghost{background:transparent;color:var(--lv-ink);border:1px solid var(--lv-line)}
.lv-btn-quiet{background:var(--lv-raised);color:var(--lv-ink);border:1px solid var(--lv-line)}
.lv-btn-danger{background:transparent;color:var(--lv-danger);border:1px solid var(--lv-danger)}
.lv-btn-sm{padding:7px 13px;font-size:.85rem;border-radius:9px}
.lv :focus-visible{outline:2px solid var(--lv-accent);outline-offset:2px}
/* wizard */
.lv-wizbar{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}
.lv-wizstep{flex:1;min-width:120px;background:var(--lv-surface);border:1px solid var(--lv-line);border-radius:10px;
  padding:9px 13px;font-size:.82rem;font-weight:600;color:var(--lv-muted)}
.lv-wizstep.on{border-color:var(--lv-primary);color:var(--lv-ink)}
.lv-wn{color:var(--lv-accent);font-weight:800;margin-right:6px}
.lv-wizfoot{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.lv-addrow{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.lv-addrow input,.lv-addrow select{flex:1;min-width:140px}
.lv-mid{align-self:center}
.lv-people{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.lv-person{display:inline-flex;align-items:center;gap:8px;background:var(--lv-raised);border:1px solid var(--lv-line);
  border-radius:99px;padding:6px 8px 6px 13px;font-weight:600;font-size:.9rem}
.lv-person .lv-pair{font-size:.72rem;color:var(--lv-accent)}
.lv-person button{background:none;border:0;color:var(--lv-muted);font-size:1rem;line-height:1;padding:2px 6px;cursor:pointer}
.lv-person button:hover{color:var(--lv-danger)}
.lv-rule{display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:center;margin-top:10px}
.lv-not{font-weight:700;color:var(--lv-danger);font-size:.85rem;white-space:nowrap}
.lv-switches{margin-top:20px}
.lv-switchrow{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-top:1px solid var(--lv-line)}
.lv-switchrow:first-child{border-top:0}
.lv-switchrow input{width:auto;margin-top:4px;accent-color:var(--lv-primary);transform:scale(1.25)}
.lv-switchrow b{display:block;font-size:.95rem}
.lv-switchrow span{color:var(--lv-muted);font-size:.86rem}
.lv-testbox{border:1px solid var(--lv-success);border-radius:10px;padding:16px;margin-top:16px}
.lv-testbox.bad{border-color:var(--lv-danger)}
.lv-testbox h4{margin:0 0 6px}
.lv-testbox p{color:var(--lv-muted);font-size:.9rem;margin:0}
.lv-linklist{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.lv-linkrow{display:flex;align-items:center;gap:12px;background:var(--lv-bg);border:1px solid var(--lv-line);
  border-radius:10px;padding:11px 14px;flex-wrap:wrap}
.lv-linkrow .lv-nm{font-weight:700;min-width:90px}
.lv-linkrow code{color:var(--lv-muted);font-size:.82rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none}
.lv-sharebtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;align-items:center}
.lv-savebox{border:1px solid var(--lv-primary);border-radius:10px;padding:18px;margin-top:20px}
.lv-disclosure{color:var(--lv-muted);font-size:.8rem;margin-top:12px}
/* reveal */
.lv-reveal-stage{display:grid;place-items:center;padding:26px 0}
.lv-giftcard{width:min(400px,100%);height:250px;perspective:1200px;cursor:pointer;border:0;background:none;padding:0}
.lv-inner{position:relative;display:block;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.lv-giftcard.open .lv-inner{transform:rotateY(180deg)}
.lv-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px}
.lv-front{background:var(--lv-raised);border:1px solid var(--lv-primary)}
.lv-kb{width:100%;height:var(--lv-band-h);background-image:var(--lv-band);background-repeat:repeat-x;position:absolute;top:20px}
.lv-kb-b{top:auto;bottom:20px}
.lv-em{font-size:2.4rem}
.lv-tap{font-weight:700;color:var(--lv-primary);font-size:1.05rem}
.lv-back{background:var(--lv-primary);color:var(--lv-primary-ink);transform:rotateY(180deg)}
.lv-who{font-weight:800;font-size:2.2rem}
.lv-lbl{font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}
/* wishes + messages */
.lv-wish{display:flex;align-items:flex-start;gap:12px;background:var(--lv-bg);border:1px solid var(--lv-line);
  border-radius:10px;padding:12px 14px;margin-top:10px}
.lv-wish .lv-t{flex:1}
.lv-wish .lv-t b{display:block;font-size:.96rem}
.lv-wish .lv-t a{font-size:.83rem;color:var(--lv-accent)}
.lv-wish.bought{opacity:.55}
.lv-wish.bought .lv-t b{text-decoration:line-through}
.lv-tabs{display:flex;gap:8px;margin-bottom:8px}
.lv-tab{background:var(--lv-raised);border:1px solid var(--lv-line);color:var(--lv-muted);border-radius:99px;
  padding:6px 14px;font-weight:600;font-size:.85rem;cursor:pointer;font-family:inherit}
.lv-tab.on{border-color:var(--lv-primary);color:var(--lv-ink)}
.lv-qa{margin-top:10px}
.lv-msg{max-width:82%;border-radius:12px;padding:9px 13px;margin-top:8px;font-size:.92rem}
.lv-msg.them{background:var(--lv-raised);border:1px solid var(--lv-line)}
.lv-msg.me{background:var(--lv-primary);color:var(--lv-primary-ink);margin-left:auto}
.lv-msg .lv-whol{display:block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-bottom:2px}
/* dashboard */
.lv-dash-grid{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.lv-table{width:100%;border-collapse:collapse;margin-top:10px}
.lv-table th,.lv-table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--lv-line);font-size:.92rem}
.lv-table th{color:var(--lv-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.09em}
.lv-status{font-size:.75rem;font-weight:700;border-radius:99px;padding:3px 10px}
.lv-status.seen{color:var(--lv-success);background:rgba(95,191,155,.15)}
.lv-status.wait{color:var(--lv-muted);background:var(--lv-raised)}
.lv-danger-card{border-color:var(--lv-danger)}
/* monetization */
.lv-ad-slot{border:1px dashed var(--lv-line,#2E3C68);border-radius:10px;background:var(--lv-raised,#243158);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--lv-muted,#9AA3C0);
  min-height:100px;margin:14px 0;padding:10px}
.lv-ad-box{min-height:250px}
.lv-ad-tag{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.lv-ad-dim{font-size:.85rem}
.lv-shop-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
.lv-shop-card{background:var(--lv-surface,#1B2749);border:1px solid var(--lv-line,#2E3C68);border-radius:14px;
  padding:16px;text-decoration:none;color:var(--lv-ink,#F3F1E9);display:block;transition:border-color .15s}
.lv-shop-card:hover{border-color:var(--lv-accent,#E8A24B)}
.lv-shop-card h3{font-size:.97rem;margin:8px 0 3px}
.lv-shop-card p{color:var(--lv-muted,#9AA3C0);font-size:.83rem;margin:0 0 6px}
.lv-store{font-size:.75rem;color:var(--lv-muted,#9AA3C0);text-transform:uppercase;letter-spacing:.08em}
.lv-price{color:var(--lv-accent,#E8A24B);font-weight:700;font-size:.9rem}
.lv-donate{background:var(--lv-surface,#1B2749);border:1px solid var(--lv-primary,#E8A24B);border-radius:14px;
  padding:28px;display:flex;gap:22px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin:14px 0}
.lv-donate h3{font-size:1.3rem;margin:0 0 6px}
.lv-donate p{color:var(--lv-muted,#9AA3C0);max-width:52ch;margin:0}
/* toast */
.lv-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:70;background:var(--lv-ink,#F3F1E9);
  color:var(--lv-bg,#131C36);font-weight:700;font-size:.9rem;border-radius:10px;padding:10px 18px;
  box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .2s;max-width:88vw;text-align:center}
.lv-toast.show{opacity:1}
@media (max-width:860px){.lv-row,.lv-dash-grid{grid-template-columns:1fr}.lv-shop-strip{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.lv-shop-strip{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.lv *{transition-duration:.001s!important}}
.lv-badge{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:7px;padding:0 5px;
  border-radius:99px;background:var(--lv-danger,#D96A5B);color:#fff;font-size:.7rem;font-weight:800;line-height:1}
