@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Space+Mono:wght@400&display=swap');
  /* ===== Toy Syndicate Design System — tokens (gallery-wall B&W + Signal Orange ≤5%) ===== */
  :root{
    --ts-ink:#0A0A0A; --ts-paper:#FFFFFF; --ts-signal:#FF3B0E;
    --ts-signal-100:#FFE7E0; --ts-signal-400:#FF6A45; --ts-signal-500:#FF3B0E; --ts-signal-600:#E42F05; --ts-signal-700:#BF2604; --ts-signal-wash:#FFF0EA;
    --ts-neutral-50:#F7F7F5; --ts-neutral-100:#F0F0EE; --ts-neutral-200:#E2E2DE; --ts-neutral-300:#D6D6D2; --ts-neutral-500:#9A9A96; --ts-neutral-700:#4A4A47;
    --ts-hairline:#ECEBE5; --ts-line:#DEDDD7; --ts-ink-2:#1A1A1A; --ts-ink-3:#161616; --ts-ink-hair:#333333;
    --ts-success:#2E9E5B; --ts-warning:#E0A100; --ts-error:#D61F1F; --ts-info:#6E6E6A;
    --surface-page:var(--ts-paper); --surface-card:var(--ts-paper); --surface-sunken:var(--ts-neutral-50); --surface-ink:var(--ts-ink); --surface-ink-raised:var(--ts-ink-2);
    --text-primary:var(--ts-ink); --text-secondary:#6E6E6A; --text-subtle:var(--ts-neutral-500); --text-on-ink:var(--ts-paper); --text-on-ink-muted:#CFCFCC; --text-accent:var(--ts-signal);
    --border-default:var(--ts-line); --border-hair:var(--ts-hairline); --border-on-ink:var(--ts-ink-hair); --border-focus:var(--ts-signal);
    --accent:var(--ts-signal); --accent-hover:var(--ts-signal-600); --accent-wash:var(--ts-signal-wash);
    --font-display:"Space Grotesk","Inter",sans-serif; --font-body:"Inter",sans-serif; --font-mono:"Space Mono",monospace;
    --fs-display:44px; --fs-h2:32px; --fs-h3:24px; --fs-lede:20px; --fs-body:16px; --fs-body-sm:14px; --fs-label:12px; --fs-micro:10px;
    --ls-display:-0.025em; --ls-heading:-0.015em; --ls-mono:0.08em; --ls-mono-wide:0.16em;
    --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px;
    --grid-unit:88px; --ease-standard:cubic-bezier(0.2,0,0,1); --dur-fast:0.18s; --dur-med:0.35s;
  }
  /* ===== App aliases remapped to the DS (whole-app adoption) ===== */
  :root{
    --background:#FFFFFF;
    --surface:#F7F7F5;
    --foreground:#0A0A0A;
    --card:#FFFFFF;
    --muted:#F0F0EE;
    --muted-foreground:#6E6E6A;
    --border:#DEDDD7;
    --border-strong:#C9C7C0;
    --primary:#FF3B0E;            /* Signal Orange — the single accent (≤5%) */
    --primary-strong:#E42F05;
    --primary-foreground:#ffffff;
    --ink:#0A0A0A;
    --ring:rgba(255,59,14,.42);
    --success:#2E9E5B;
    --ink-fg:#FFFFFF;            /* text on --ink surfaces */
    --ink-fg-dim:#CFCFCC;
    --ink-fg-muted:#9A9A96;
    --av-bg:#E2E2DE;             /* avatar/banner placeholder */
    --radius:0;
    --shadow-sm:0 1px 0 rgba(10,10,10,.03);
    --shadow:0 6px 18px rgba(10,10,10,.09);
    --shadow-lg:0 12px 30px rgba(10,10,10,.10), 0 2px 0 rgba(10,10,10,.04);
    --sans:var(--font-body);
    --display:var(--font-display);
    --mono:var(--font-mono);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);color:var(--foreground);background:var(--surface);line-height:1.55;
    -webkit-font-smoothing:antialiased;letter-spacing:-0.011em;text-wrap:pretty}
  h1,h2,h3,h4,h5,.display,.eyebrow{text-wrap:balance}
  a{color:inherit;text-decoration:none}
  img,svg{display:block}
  ::selection{background:rgba(255,77,46,.18)}
  .wrap{width:100%;max-width:1680px;margin:0 auto;padding:0 clamp(20px,2.6vw,44px)}
  .display{font-family:var(--display);font-weight:720;line-height:1.04;letter-spacing:-0.038em}
  .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground)}
  .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
  .tnum{font-variant-numeric:tabular-nums}

  /* primitives */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:2.6rem;padding:0 1.05rem;
    border-radius:0;font-size:.9rem;font-weight:550;cursor:pointer;border:1px solid transparent;
    transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;white-space:nowrap}
  .btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
  .btn-primary{background:#1c1917;color:#fff;box-shadow:var(--shadow-sm)}
  .btn-primary:hover{background:#000;box-shadow:var(--shadow)}
  .btn-outline{background:var(--card);border-color:var(--border-strong);color:var(--foreground)}
  .btn-outline:hover{background:var(--muted)}
  .btn-ghost{background:transparent;color:var(--foreground)}
  .btn-ghost:hover{background:var(--muted)}
  .btn-sm{height:2.2rem;padding:0 .8rem;font-size:.84rem}
  .btn-icon{width:2.6rem;padding:0}
  .btn-icon.btn-sm{width:2.2rem}
  .btn:disabled{opacity:.45;cursor:default;pointer-events:none}
  .btn-danger{color:var(--primary-strong)}
  .btn-danger:hover{background:rgba(255,77,46,.08);color:var(--primary-strong)}

  .badge{display:inline-flex;align-items:center;gap:.35rem;height:1.5rem;padding:0 .6rem;border-radius:0;
    font-size:.72rem;font-weight:600;border:1px solid var(--border)}
  .badge .badge-ic{font-size:1.35em;line-height:1}   /* glyph icons (♛/★) read larger than the label */
  .badge-muted{background:var(--muted);color:var(--muted-foreground)}
  .badge-accent{background:rgba(255,77,46,.1);color:var(--primary-strong);border-color:rgba(255,77,46,.22)}
  .badge-creator{background:linear-gradient(135deg,#b8860b,#e0b64a 55%,#8a6a12);color:#fff;border:none;font-weight:700;box-shadow:0 1px 3px rgba(138,106,18,.4)}
  .badge-dark{background:rgba(255,255,255,.08);color:#fafaf9;border-color:rgba(255,255,255,.16)}
  .badge-green{background:#dcfce7;color:var(--success);border-color:#bbf7d0}
  .badge-pending{background:#fef3c7;color:#b45309;border-color:#fde68a}
  .badge-dot::before{content:"";width:.4rem;height:.4rem;border-radius:0;background:currentColor}
  .verified-ic{color:var(--primary);display:inline-flex;align-items:center;line-height:0;flex:none;padding:0 3px}
  .verified-ic svg{width:1.3em;height:1.3em;display:block}

  .card{background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-sm)}

  .input{display:flex;align-items:center;gap:.55rem;height:2.6rem;padding:0 .9rem;background:var(--card);
    border:1px solid var(--border-strong);border-radius:0;box-shadow:var(--shadow-sm)}
  .input:focus-within{box-shadow:0 0 0 3px var(--ring);border-color:var(--primary)}
  .input input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent;font-family:var(--sans)}

  /* app shell — logged-in (sidebar + topbar) */
  .brand{display:flex;align-items:center;gap:.55rem;font-family:var(--display);font-size:1.3rem;font-weight:730;letter-spacing:-0.04em}
  .brand .mark{width:26px;height:26px;border-radius:0;background:var(--ink);display:grid;place-items:center;color:#fff}
  .brand .mark svg{width:16px;height:16px}
  .brand-logo-link{gap:0}
  .brand-logo{width:auto;height:auto;max-width:100%;max-height:28px;display:block}

  /* ===== Sidebar — matched to the handoff design (pages.css .sb-*) ===== */
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:248px;z-index:60;background:var(--surface-page);
    border-right:1px solid var(--border-default);display:flex;flex-direction:column;padding:0 16px 18px;
    overflow-y:auto;scrollbar-width:thin}
  .sidebar .brand{height:62px;display:flex;align-items:center;margin-bottom:10px;padding:0;flex:0 0 auto}
  .side-sec{font-family:var(--mono);font-size:11.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;
    color:var(--text-primary);margin:30px 10px 10px}
  .side-sec:first-of-type{margin-top:0}
  .side-nav{display:flex;flex-direction:column;gap:.1rem}
  .side-nav a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:0;
    border-left:3px solid transparent;margin-left:-3px;
    font-size:14px;color:var(--text-secondary);transition:background var(--dur-fast),color var(--dur-fast)}
  .side-nav a:hover{background:var(--surface-sunken);color:var(--text-primary)}
  .side-nav a.active{background:var(--accent-wash);color:var(--text-primary);font-weight:600;border-left-color:var(--accent)}
  .side-nav a.soon{opacity:.5;cursor:default;pointer-events:none}
  .soon-badge{margin-left:auto;font-size:.58rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;
    background:var(--muted);color:var(--muted-foreground);padding:.12rem .42rem;border-radius:0;line-height:1.4}
  .side-new{margin-left:auto;font-family:var(--mono);font-size:9px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;
    background:var(--accent);color:#fff;padding:2px 5px;border-radius:0;line-height:1.4}
  .side-count{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--text-subtle)}
  /* Submit + Request a feature pin to the bottom as a pair, directly above the footer links */
  .side-util{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:2px}
  .side-submit{margin:auto 0 0;width:100%;justify-content:center;
    background:var(--ts-ink)!important;border-color:var(--ts-ink)!important;color:#fff!important;
    font-family:var(--mono);text-transform:uppercase;font-weight:400;letter-spacing:.05em;font-size:13.5px}
  .side-submit:hover{background:var(--ts-ink-2)!important;border-color:var(--ts-ink-2)!important;color:#fff!important}
  /* Request a feature: secondary button directly below Submit, same Space Mono all-caps treatment */
  .side-reqfeat{width:100%;justify-content:center;margin:6px 0 16px;font-family:var(--mono);text-transform:uppercase;font-weight:400;letter-spacing:.05em;font-size:13px}
  .side-foot{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:0;
    font-size:13px;color:var(--text-subtle);transition:color .15s}
  .side-foot:hover{color:var(--accent);background:none}
  .side-dot{width:14px;flex:none;text-align:center;color:inherit;line-height:1}
  .side-discord{color:var(--text-subtle)}
  .side-discord:hover{color:var(--accent);background:none}

  /* sticky footer: .content is a flex column min-height = viewport, so <main> grows to push footer down on short pages */
  .content{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}
  .content>main{flex:1 0 auto}
  .content>footer{flex:0 0 auto}
  /* signed-in footer: white, minimal — just copyright + privacy / terms / about / contact */
  body.signed-in footer{background:var(--card);color:var(--muted-foreground);border-top:1px solid var(--border)}
  body.signed-in footer .foot{display:none}
  body.signed-in footer .foot-bot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:18px 0;font-size:.85rem;color:var(--muted-foreground);border-top:none}
  body.signed-in footer .foot-bot a{color:var(--muted-foreground);text-decoration:none}
  body.signed-in footer .foot-bot a:hover{color:var(--foreground)}
  body.signed-in footer .foot-bot .ft-links{display:flex;gap:1.2rem}
  .topbar{position:sticky;top:0;z-index:50;height:64px;display:flex;align-items:center;gap:.9rem;padding:0 clamp(20px,2.6vw,44px);
    background:var(--card);border-bottom:1px solid var(--border)}
  .topbar .nav-search{flex:1;max-width:460px;margin:0}
  .topbar .spacer{flex:1}
  .nav-right{display:flex;align-items:center;gap:.5rem}
  .hamburger{display:none}

  .scrim{position:fixed;inset:0;background:rgba(12,10,9,.45);z-index:55;display:none}
  .scrim.show{display:block}

  .av{border-radius:0;border:0;display:grid;place-items:center;color:#fff;font-weight:700;
    background:linear-gradient(150deg,#ff4d2e,#f59e0b);flex:none}
  .nav-av{width:2.2rem;height:2.2rem;font-size:.8rem;cursor:pointer;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--border)}
  .nav-av.has-img{padding:0;overflow:hidden;background:#f5f3f1;color:transparent}
  .nav-av.has-img img{width:100%;height:100%;object-fit:cover;display:block}

  /* cover + header */
  .cover{height:220px;position:relative;overflow:hidden;
    background:radial-gradient(120% 160% at 80% 0%,#ffd9cf 0%,#fde68a 38%,#fafaf9 78%)}
  .pwrap{position:relative}
  /* identity + actions anchor below the cover with the SAME top padding (the avatar
     still overlaps the cover via its negative margin) */
  .phead-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
  .phead-id{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .85rem;padding-top:18px}
  .phead-id .pbadges{margin-top:0}   /* centered inline with the name; row-gap covers the wrapped state */
  /* user profiles: handle is primary with the full name stacked below, both compact */
  .ph-idc{display:flex;flex-direction:column;gap:2px;min-width:0}
  .ph-idr{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem}
  .ph-h1{font-size:1.55rem}
  .ph-fullname{font-size:.8rem;font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}
  .phead-id h1.display{margin:0}
  .phandle{font-size:1.25rem;font-weight:550;color:var(--muted-foreground);letter-spacing:-.005em}
  .ameta:empty{display:none}
  .avatar-lg{width:132px;height:132px;border-radius:0;font-size:2.6rem;border:4px solid #fff;
    overflow:hidden;box-shadow:var(--shadow-lg);margin-top:-66px}   /* avatar overlaps cover by 50%; clip images to the radius */
  .avatar-lg img{width:100%;height:100%;display:block}
  .phead-top .acts{display:flex;gap:.5rem;padding-top:18px}
  .id{margin-top:28px}
  .id .nm{display:flex;align-items:center;gap:.5rem}
  .id h1{font-size:1.85rem}
  .id .hl{color:var(--muted-foreground);font-size:.95rem;margin-top:.1rem}

  .pmeta{display:flex;flex-wrap:wrap;gap:1.3rem;margin:18px 0 0;color:var(--muted-foreground);font-size:.9rem}
  .pmeta span{display:inline-flex;align-items:center;gap:.4rem}
  .pmeta svg{opacity:.8}
  .pbadges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
  .pbio{margin-top:14px;font-size:1rem;max-width:62ch;color:#44403c}

  /* stat row */
  .pstats{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--border);
    border:1px solid var(--border);border-radius:0;overflow:hidden;margin:24px 0 0}
  .pstats .s{background:var(--card);padding:16px 18px}
  .pstats .n{font-family:var(--display);font-weight:720;font-size:1.4rem;letter-spacing:-0.03em;line-height:1}
  .pstats .l{font-size:.78rem;color:var(--muted-foreground);margin-top:.35rem}
  .pstats .s.accent .n{color:var(--primary-strong)}

  /* layout */
  .layout{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 0 64px;align-items:start}

  /* tabs — shadcn segmented control, consistent with chips/badges/cards */
  .tabs{display:inline-flex;gap:.25rem;max-width:100%;background:var(--muted);
    border:1px solid var(--border);border-radius:0;padding:.3rem;margin-bottom:22px}
  .tab{border:none;background:transparent;cursor:pointer;font-family:var(--sans);
    display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;
    padding:.5rem .8rem;border-radius:0;
    font-size:.86rem;font-weight:550;color:var(--muted-foreground);
    transition:background .15s,color .15s,box-shadow .15s}
  .tab:hover{color:var(--foreground)}
  .tab.active{background:var(--card);color:var(--foreground);font-weight:600;box-shadow:var(--shadow-sm)}
  .tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring)}
  .tab .count{font-size:.7rem;font-weight:600;background:rgba(12,10,9,.06);color:var(--muted-foreground);
    padding:.05rem .4rem;border-radius:0;transition:background .15s,color .15s}
  .tab.active .count{background:rgba(255,77,46,.12);color:var(--primary-strong)}
  .tab-insights{color:#7c3aed;display:inline-flex;align-items:center;gap:.34rem}
  .tab-insights svg{width:14px;height:14px}
  .tab-insights:hover{color:#6d28d9}
  .tab-insights.active{color:#6d28d9;background:var(--card)}

  /* toolbar */
  .toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:18px}
  .chips{display:flex;gap:.4rem;flex-wrap:wrap}
  .chip{height:2rem;padding:0 .8rem;border-radius:0;border:1px solid var(--border-strong);background:var(--card);
    font-size:.82rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center}
  .chip:hover{background:var(--muted)}
  .chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
  .toolbar .right{margin-left:auto;display:flex;align-items:center;gap:.6rem}
  .select{height:2.2rem;padding:0 .7rem;border:1px solid var(--border-strong);border-radius:0;
    background:var(--card);font-size:.84rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}

  /* collection grid — responds to its OWN width (not viewport), so it works inside
     the filtered layout too. Max 4 columns; cards never narrower than ~232px. */
  .grid{display:grid;gap:18px;
    grid-template-columns:repeat(auto-fill,minmax(max(232px,(100% - 3*18px)/4),1fr))}
  .item{overflow:hidden;min-width:0;cursor:pointer;transition:transform .16s,box-shadow .16s;position:relative}
  .item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
  .item .stretch{position:absolute;inset:0;z-index:3}        /* whole card -> item page */
  .item .iph{aspect-ratio:1/1;display:flex;align-items:flex-end;justify-content:center;padding:18px;position:relative}
  .item .iph .toy{width:50%;filter:drop-shadow(0 10px 12px rgba(28,25,23,.2))}
  .item .grade{position:absolute;top:9px;right:9px;font-family:var(--mono);font-weight:400;font-size:.68rem;
    background:#dcfce7;color:#15803d;padding:.12rem .4rem;border-radius:0}
  .item .flag{position:absolute;top:9px;left:9px}
  .item .flags{position:absolute;top:9px;left:9px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;z-index:2}
  .item .flags .flag{position:static}
  .item .bd{padding:12px 13px 14px;display:flex;flex-direction:column;min-height:134px}
  .item .type{font-size:.64rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
    color:var(--muted-foreground);margin-bottom:.3rem}
  .item .nm{font-size:.9rem;font-weight:600;line-height:1.28;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .item .ar{display:block;position:relative;z-index:4;width:fit-content;max-width:100%;
    font-size:.78rem;color:var(--muted-foreground);margin:0 0 .7rem;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .item .ar:hover{color:var(--foreground);text-decoration:underline}
  .item .buy{position:relative;z-index:4;margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.35rem;width:100%;
    height:2.15rem;border-radius:0;border:1px solid var(--border-strong);background:var(--card);
    color:var(--foreground);font-size:.82rem;font-weight:600;cursor:pointer;
    transition:background .15s,border-color .15s,color .15s}
  .item .buy:hover{background:var(--ink);border-color:var(--ink);color:#fff}
  .item .buy .p{font-family:var(--mono);font-variant-numeric:tabular-nums}
  /* category as a top eyebrow tag (bordered pill, sits above the name) */
  .item .item-tag{align-self:flex-start;max-width:100%;display:inline-flex;align-items:center;height:1.5rem;padding:0 .5rem;margin-bottom:.4rem;
    background:var(--muted);border:1px solid var(--border);color:var(--muted-foreground);
    font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;font-size:.6rem;font-weight:400;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .item .nolist{margin-top:auto;display:flex;align-items:center;gap:.4rem;height:2.15rem;
    font-size:.8rem;font-weight:500;color:var(--muted-foreground)}
  .item .nolist svg{opacity:.7}
  .item .rr{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;
    margin-top:auto;padding-top:.7rem}
  .item .ed{font-size:.72rem;color:var(--muted-foreground)}
  .item .val{font-family:var(--mono);font-weight:400;font-size:.95rem}

  /* sidebar cards */
  .aside{display:grid;gap:20px;position:sticky;top:84px}
  .scard{padding:20px}
  .scard h3{font-size:.95rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .scard h3 a{font-size:.78rem;font-weight:500;color:var(--primary-strong)}

  .status-card{padding:22px;border-radius:0;background:var(--ink);color:#fafaf9}
  .status-card .who{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem}
  .status-card .who .av{width:40px;height:40px;font-size:.85rem}
  .status-card .who .nm{font-weight:650;font-size:.95rem}
  .status-card .who .tier{font-size:.76rem;color:#a8a29e}
  .status-card .lvl{display:flex;justify-content:space-between;font-size:.78rem;color:#d6d3d1;margin-bottom:.45rem}
  .status-card .lvl b{color:#fafaf9}
  .bar{height:.5rem;border-radius:0;background:rgba(255,255,255,.12);overflow:hidden;margin-bottom:.55rem}
  .bar i{display:block;height:100%;width:68%;border-radius:0;background:linear-gradient(90deg,#ff4d2e,#f59e0b)}
  .status-card .rank{font-size:.78rem;color:#a8a29e}
  .status-card .rank b{color:#fafaf9}

  .badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .bcard{text-align:center}
  .medal{width:46px;height:46px;border-radius:0;margin:0 auto 6px;display:grid;place-items:center;color:#fff;
    box-shadow:inset 0 -2px 4px rgba(0,0,0,.18),0 4px 10px -3px rgba(28,25,23,.3)}
  .medal svg{width:21px;height:21px}
  .bcard .bn{font-size:.66rem;color:var(--muted-foreground);line-height:1.2}
  .bcard.locked .medal{background:var(--muted)!important;color:var(--border-strong);box-shadow:inset 0 -2px 4px rgba(0,0,0,.05)}

  .series li{list-style:none;display:flex;align-items:center;gap:.7rem;padding:.45rem 0}
  .series li .sn{font-size:.84rem;flex:1}
  .series li .pb{width:84px;height:.45rem;border-radius:0;background:var(--muted);overflow:hidden}
  .series li .pb i{display:block;height:100%;background:var(--primary);border-radius:0}
  .series li .fr{font-family:var(--mono);font-size:.74rem;color:var(--muted-foreground);width:2.4rem;text-align:right}
  .series li.done .pb i{background:#22c55e}

  .port{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
  .port .pv{font-family:var(--display);font-weight:720;font-size:1.6rem;letter-spacing:-0.03em;line-height:1}
  .port .ch{font-size:.78rem;color:#15803d;font-weight:600;margin-top:.3rem}
  .spark{display:flex;align-items:flex-end;gap:3px;height:40px}
  .spark i{width:6px;background:var(--primary);border-radius:0;opacity:.85;display:block}

  .feed li{list-style:none;display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--border);font-size:.84rem}
  .feed li:last-child{border-bottom:none}
  .feed .fi{width:30px;height:30px;border-radius:0;flex:none;display:grid;place-items:center;background:var(--muted);color:var(--foreground)}
  .feed .fi.acc{background:rgba(255,77,46,.12);color:var(--primary-strong)}
  .feed .ft{color:var(--muted-foreground);font-size:.74rem;margin-top:.1rem}
  .feed b{font-weight:600}

  /* tab panels */
  .tabs{overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .panel[hidden]{display:none}
  .panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:18px}
  .panel-head p{font-size:.88rem;color:var(--muted-foreground)}

  /* display — masonry shelfies */
  .masonry{column-count:3;column-gap:14px}
  .shot{break-inside:avoid;margin-bottom:14px;border-radius:0;overflow:hidden;border:1px solid var(--border);
    background:var(--card);box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .16s;cursor:pointer}
  .shot:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
  .scene{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:7px;padding:0 16px}
  .scene .shelf{position:absolute;left:0;right:0;bottom:0;height:9px;background:rgba(0,0,0,.18)}
  .scene .toy{filter:drop-shadow(0 8px 8px rgba(0,0,0,.28));position:relative;bottom:9px}
  .shot .cap{padding:11px 13px 13px}
  .shot .cap p{font-size:.82rem;line-height:1.4}
  .shot .eng{display:flex;gap:1rem;margin-top:.55rem;font-size:.75rem;color:var(--muted-foreground);align-items:center}
  .shot .eng .t{margin-left:auto}

  /* sale & trade listings */
  .lst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
  .lst{display:flex;gap:12px;padding:12px}
  .lst .th{width:80px;height:94px;border-radius:0;flex:none;display:flex;align-items:flex-end;justify-content:center;padding:8px;position:relative}
  .lst .th .toy{width:62%;filter:drop-shadow(0 6px 7px rgba(28,25,23,.2))}
  .lst .th .grade{position:absolute;top:5px;right:5px;font-family:var(--mono);font-weight:400;font-size:.62rem;
    background:#dcfce7;color:#15803d;padding:.05rem .3rem;border-radius:0}
  .lst .info{flex:1;min-width:0;display:flex;flex-direction:column}
  .lst .nm{font-size:.9rem;font-weight:600;line-height:1.2}
  .lst .meta{font-size:.74rem;color:var(--muted-foreground);margin:.15rem 0 .35rem}
  .lst .seek{font-size:.74rem;color:var(--foreground)}
  .lst .seek b{color:var(--primary-strong)}
  .lst .pr{display:flex;align-items:baseline;gap:.5rem;margin-top:auto}
  .lst .pr .p{font-family:var(--mono);font-weight:400;font-size:1.02rem}
  .lst .pr .ref{font-size:.7rem;color:var(--muted-foreground);font-family:var(--mono)}
  .lst .acts{display:flex;gap:.4rem;margin-top:.5rem}

  /* reviews */
  .rev-summary{display:grid;grid-template-columns:auto 1fr;gap:28px;padding:22px;align-items:center;margin-bottom:20px}
  .rev-big{text-align:center;padding-right:24px;border-right:1px solid var(--border)}
  .rev-big .score{font-family:var(--display);font-weight:720;font-size:3rem;line-height:1;letter-spacing:-0.04em}
  .rev-big .stars{color:#f59e0b;font-size:1rem;margin-top:.25rem;letter-spacing:.06em}
  .rev-big .cnt{font-size:.76rem;color:var(--muted-foreground);margin-top:.4rem}
  .rev-bars{display:grid;gap:.4rem}
  .rbar{display:flex;align-items:center;gap:.7rem;font-size:.76rem}
  .rbar .lab{width:2.4rem;color:var(--muted-foreground)}
  .rbar .track{flex:1;height:.5rem;background:var(--muted);border-radius:0;overflow:hidden}
  .rbar .track i{display:block;height:100%;background:#f59e0b;border-radius:0}
  .rbar .pct{width:2.4rem;text-align:right;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
  .rev-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin:18px 0 4px}
  .review{display:flex;gap:13px;padding:18px 2px;border-bottom:1px solid var(--border)}
  .review:last-child{border-bottom:none}
  .review .ra{width:40px;height:40px;font-size:.78rem}
  .review .rb{flex:1}
  .review .rh{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
  .review .rh .who{font-weight:600;font-size:.9rem}
  .review .stars{color:#f59e0b;font-size:.82rem;letter-spacing:.04em}
  .review .rd{font-size:.74rem;color:var(--muted-foreground)}
  .review p{font-size:.88rem;margin-top:.4rem;color:#44403c}
  .review .ctx{display:inline-flex;align-items:center;gap:.4rem;font-size:.74rem;color:var(--muted-foreground);margin-top:.55rem}

  /* real product images */
  .item .iph,.lst .th,.scene{position:relative;background:#f5f3f1!important;
    align-items:stretch!important;justify-content:stretch!important;padding:0!important;overflow:hidden}
  img.toy{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;
    filter:none!important;z-index:1}
  /* card thumbnails: square box, never crop — tall images fit height, wide images fit width */
  .item .iph{background:#fff!important}
  .item .iph img.toy{object-fit:contain;object-position:center;padding:12px}
  .flag,.grade,.obj-tag,.obj-cap,.count,.heart{z-index:2}
  .scene .toy ~ .toy{display:none!important}   /* one photo per shot */
  .scene .shelf{display:none!important}
  .cover{background:linear-gradient(135deg,#efedea,#e3e0dc)!important}
  .cover-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:.45rem;color:#a8a29e}
  .cover-ph svg{display:none}
  .cover-ph::after{content:"";position:absolute;inset:0;background:url("nav-wordmark.svg?v=1") center no-repeat;background-size:min(300px,52%);opacity:.07}
  .cover-ph span{font-size:.78rem;font-weight:500;letter-spacing:.01em}

  /* footer */
  footer{background:var(--ink);color:#a8a29e;border-top:1px solid rgba(255,255,255,.08);margin-top:0}
  .foot{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding:56px 0 36px}
  .foot .brand{color:#fafaf9}.foot .brand .mark{background:var(--primary)}
  .foot p.tag{margin-top:1rem;font-size:.88rem;max-width:30ch}
  .foot h5{color:#fafaf9;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem}
  .foot a{display:block;font-size:.88rem;padding:.28rem 0;color:#a8a29e}
  .foot a:hover{color:#fafaf9}
  .foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
    padding:20px 0;border-top:1px solid rgba(255,255,255,.08);font-size:.8rem}

  @media(max-width:980px){
    .layout{grid-template-columns:1fr}
    .aside{position:static;grid-template-columns:repeat(2,1fr);display:grid}
    .pstats{grid-template-columns:repeat(3,1fr)}
    .foot{grid-template-columns:1fr 1fr}
    .masonry{column-count:2}
    .sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg);width:268px}
    .sidebar.open{transform:none}
    .content{margin-left:0}
    /* top-bar hamburger removed on mobile: the "More" tab is the drawer surface (admin keeps its own) */
  }
  @media(max-width:620px){
    .phead-top{flex-wrap:wrap;gap:14px}
    .phead-top .acts{padding-bottom:0}
    .aside{grid-template-columns:1fr}
    .pstats{grid-template-columns:repeat(2,1fr)}
    .foot{grid-template-columns:1fr}
    .masonry{column-count:1}
    .rev-summary{grid-template-columns:1fr;gap:18px}
    .rev-big{border-right:none;border-bottom:1px solid var(--border);padding:0 0 18px}
  }
  @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* ============================================================
   SHARED PAGE COMPONENTS (added for full app build)
   ============================================================ */
/* page scaffold */
/* app content: vertical padding only — keep .wrap's horizontal gutter so content lines
   up with the topbar (search bar on the left, account menu on the right); full-width. */
.page-pad{padding-top:32px;padding-bottom:72px;max-width:none}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;margin-bottom:26px}
.page-head .pt{font-family:var(--display);font-weight:720;letter-spacing:-0.035em;font-size:1.9rem;line-height:1.05}
.page-head .ps{font-size:.98rem;color:var(--muted-foreground);margin-top:.35rem;max-width:64ch}
.page-head .ha{display:flex;gap:.5rem;flex-wrap:wrap}
.eyebrow-sm{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground)}

/* two-column app layout (filters + results) */
.split-page{display:grid;grid-template-columns:248px 1fr;gap:28px;align-items:start}
/* filters: sticky, independently scrollable panel — hovering + scrolling scrolls the
   filters (not the page), and overscroll-behavior keeps the scroll from chaining out. */
.facets{position:sticky;top:84px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0;
  align-content:start;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;
  padding:2px 6px 12px 2px;scrollbar-width:thin}
.facets::-webkit-scrollbar{width:8px}
.facets::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:0}
.facet{min-width:0}
.facet{padding:16px 18px}
.facet h4{font-size:.9rem;margin-bottom:.7rem}
.facet label{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--foreground);padding:.28rem 0;cursor:pointer}
.facet input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary);flex:none}
.facet .count{margin-left:auto;font-size:.76rem;color:var(--muted-foreground)}
/* real catalog facet checkboxes */
.flink{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--foreground);padding:.3rem 0;cursor:pointer}
.flink input[type=checkbox]{width:1rem;height:1rem;flex:none;accent-color:var(--primary);cursor:pointer;margin:0}
.flink .flabel{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flink:hover .flabel{color:var(--primary-strong)}
.flink:has(input:checked) .flabel{font-weight:600;color:var(--primary-strong)}
.flink .count{margin-left:auto;font-size:.76rem;color:var(--muted-foreground)}
.fmore{margin-top:2px}        /* expands inline; the whole .facets panel scrolls */
.fmore[hidden]{display:none}
.fshow{margin-top:.55rem;background:none;border:none;padding:.15rem 0;color:var(--primary-strong);font-size:.82rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.facet-clear{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);border-radius:0}
.facet-clear[hidden]{display:none}
.facet-clear .fc-n{font-size:.8rem;font-weight:600;color:var(--primary-strong)}
.facet-clear .fc-x{font-size:.8rem;color:var(--primary-strong);text-decoration:underline;text-underline-offset:2px;background:none;border:none;cursor:pointer;padding:0}
.range{display:flex;align-items:center;gap:.5rem}

/* results toolbar / count */
.res-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:18px}
.res-bar .n{font-size:.9rem;color:var(--muted-foreground)}
.res-bar .n b{color:var(--foreground)}

/* generic data table */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:0;background:var(--card);box-shadow:var(--shadow-sm)}
table.tbl{width:100%;border-collapse:collapse;font-size:.9rem;min-width:680px}
table.tbl th{text-align:left;font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);
  font-weight:600;padding:13px 16px;border-bottom:1px solid var(--border);background:var(--surface)}
table.tbl td{padding:13px 16px;border-bottom:1px solid var(--border);vertical-align:middle}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tbody tr:hover{background:var(--surface)}
.cell-item{display:flex;align-items:center;gap:11px}
.cell-thumb{width:46px;height:46px;border-radius:0;flex:none;overflow:hidden;background:#f5f3f1;position:relative}
.cell-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cell-item .ci-nm{font-weight:600;line-height:1.2}
.cell-item .ci-sub{font-size:.78rem;color:var(--muted-foreground)}
.status{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:600;padding:.18rem .55rem;border-radius:0}
.status.ok{background:#dcfce7;color:#15803d}
.status.pending{background:#fef3c7;color:#b45309}
.status.info{background:#dbeafe;color:#1d4ed8}
.status.muted{background:var(--muted);color:var(--muted-foreground)}

/* forms / settings */
.form-grid{display:grid;gap:22px;max-width:640px}
.field{display:grid;gap:.4rem}
.field[hidden]{display:none}   /* the hidden attr must win over .field's display:grid */
.pw-wrap{position:relative;display:flex;align-items:center}
.pw-wrap input{width:100%;padding-right:2.7rem}
.pw-toggle{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;
  width:2rem;height:2rem;background:none;border:none;border-radius:0;color:var(--muted-foreground);cursor:pointer}
.pw-toggle:hover{color:var(--foreground);background:var(--muted)}
.pw-toggle svg{width:18px;height:18px}
.field label{font-size:.85rem;font-weight:600}
.field .hint{font-size:.78rem;color:var(--muted-foreground)}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=url],.field textarea,.field select{
  width:100%;height:2.7rem;padding:0 .85rem;border:1px solid var(--border-strong);border-radius:0;
  font-family:var(--sans);font-size:.92rem;background:var(--card);color:var(--foreground)}
.field textarea{height:auto;padding:.7rem .85rem;resize:vertical;min-height:90px}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:18px 0;border-bottom:1px solid var(--border)}
.settings-row:last-child{border-bottom:none}
.settings-row .sr-t{font-weight:600;font-size:.95rem}
.settings-row .sr-d{font-size:.85rem;color:var(--muted-foreground);margin-top:.2rem;max-width:48ch}
/* Toggle switch — sharp corners per brand; box-sizing:border-box so the 1px border sits inside.
   Off: neutral track + defined border (readable). On: signal orange. Knob travels flush edge-to-edge. */
.switch{box-sizing:border-box;width:46px;height:26px;border-radius:0;background:var(--muted);border:1px solid var(--border-strong);position:relative;flex:none;cursor:pointer;padding:0;transition:background .16s ease,border-color .16s ease}
.switch.on{background:var(--primary);border-color:var(--primary)}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:0;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.28);transition:left .16s ease}
.switch.on::after{left:22px}
.switch:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.settings-nav{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:24px}

/* item detail gallery */
/* gallery scales with viewport (image fills its track), capped at 750px; 48px gap stays constant */
.detail{display:grid;grid-template-columns:clamp(300px,52%,750px) minmax(0,1fr);gap:48px;align-items:start}
.gallery{display:grid;gap:12px;position:sticky;top:84px;max-width:750px}
/* item breadcrumb — DATABASE › ARTIST › ITEM, all one consistent style */
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:18px;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground)}
.crumb a,.crumb .cur{color:var(--muted-foreground);text-decoration:none}
.crumb a:hover{color:var(--foreground)}
.crumb .sep{opacity:.5}
/* square image, whole picture always visible (fit height or width) — matches card thumbs */
.gallery .main-img{aspect-ratio:1/1;border-radius:0;overflow:hidden;background:#fff;position:relative;border:1px solid var(--border)}
.gallery .main-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:20px}
.gallery .thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.gallery .thumbs .t{aspect-ratio:1/1;border-radius:0;overflow:hidden;background:#fff;position:relative;border:1px solid var(--border);cursor:pointer}
.gallery .thumbs .t.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}
.gallery .thumbs .t img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px}

/* item page — Trampt-style detail column */
.itm-preview-banner{display:flex;align-items:center;gap:9px;margin:0 0 18px;padding:11px 14px;border-radius:0;background:rgba(255,168,38,.12);border:1px solid rgba(255,168,38,.4);color:var(--foreground);font-size:.9rem;font-weight:500;line-height:1.35}
.itm-preview-banner svg{flex:none;color:#b7791f}
.itm-ctas{display:flex;gap:10px;flex-wrap:wrap;margin:1.2rem 0 .3rem}
.itm-ctas #btnHave,.itm-ctas #btnWant{gap:.6rem}
.itm-ctas #btnHave .ico,.itm-ctas #btnWant .ico{display:inline-flex;align-items:center;justify-content:center}
.itm-ctas #btnHave .ico svg,.itm-ctas #btnWant .ico svg{width:17px;height:17px;display:block}
.itm-ctas .btn.have-on{background:#1a8a4a;border-color:#1a8a4a;color:#fff}
.itm-ctas .btn.have-on:hover{background:#16773f;border-color:#16773f;color:#fff}
.itm-ctas .btn.want-on{background:#e5484d;border-color:#e5484d;color:#fff}
.itm-ctas .btn.want-on:hover{background:#d23b40;border-color:#d23b40;color:#fff}
.loadmore-wrap{display:flex;justify-content:center;margin:34px 0 8px;grid-column:1/-1}
.loadmore-wrap[hidden]{display:none}
/* filter chip with a small count badge inside */
/* in-page (collection / wishlist) compact search input */
.input.coll-search{display:inline-flex;align-items:center;gap:.45rem;height:2.2rem;padding:0 .7rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);min-width:220px}
.input.coll-search input{border:none;outline:none;background:transparent;font:inherit;flex:1;min-width:0;color:var(--foreground)}
.input.coll-search:focus-within{border-color:var(--foreground);box-shadow:0 0 0 3px var(--ring)}
.chip .ct{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:0;background:rgba(28,25,23,.08);color:var(--muted-foreground);font-size:.7rem;font-weight:700;line-height:1}
.chip.on .ct{background:rgba(255,255,255,.18);color:#fff}
/* Display tab: user-uploaded showcase photos */
.display-grid{columns:4;column-gap:14px}
.display-grid>*{width:100%;margin:0 0 14px;break-inside:avoid;-webkit-column-break-inside:avoid}
@media(max-width:980px){ .display-grid{columns:2} }
.display-tile{position:relative;border-radius:0;overflow:hidden;background:#f5f3f1;border:1px solid var(--border);display:block}
.display-tile img{display:block;width:100%;height:auto}
.display-tile figcaption{position:absolute;left:0;right:0;bottom:0;padding:8px 12px;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent);color:#fff;font-size:.85rem;font-weight:600;line-height:1.25}
/* display photo management: add / edit / delete + zoom */
.display-tile img[data-zoom]{cursor:zoom-in}
.display-tile .dt-actions{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .12s;z-index:2}
.display-tile:hover .dt-actions,.display-tile:focus-within .dt-actions{opacity:1}
/* Display action buttons — mirror the Have/Want (.ha-btn) treatment */
.dt-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:0;background:rgba(255,255,255,.94);backdrop-filter:saturate(140%) blur(4px);-webkit-backdrop-filter:saturate(140%) blur(4px);color:#1c1917;display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 6px 14px rgba(28,25,23,.12);transition:background .12s,color .12s,transform .1s}
.dt-btn svg{width:16px;height:16px;display:block}
.dt-btn:hover{background:#1c1917;color:#fff;transform:translateY(-1px)}
.dt-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring),0 6px 14px rgba(28,25,23,.12)}
.dt-btn.dt-del:hover{background:#b91c1c;color:#fff;border-color:transparent}
/* persistent tag-count badge / owner "Tag items" nudge (bottom-right of a tile) */
.display-tile .dt-tags{position:absolute;bottom:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:5px;border:none;border-radius:0;background:rgba(0,0,0,.64);color:#fff;font:inherit;font-size:.72rem;font-weight:600;line-height:1;padding:5px 8px;cursor:pointer;box-shadow:var(--shadow-sm)}
.display-tile .dt-tags .ph{font-size:13px;line-height:1}
.display-tile .dt-tags:hover{background:rgba(0,0,0,.82)}
.display-tile .dt-tags-add{background:rgba(0,0,0,.44)}
.display-tile:hover .dt-tags-add,.display-tile:focus-within .dt-tags-add{background:var(--accent)}
.dt-del:hover{color:var(--primary-strong)}
.dt-edit{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:12px;background:linear-gradient(0deg,rgba(0,0,0,.75),rgba(0,0,0,.28))}
.dt-edit .dt-cap{width:100%;height:2.3rem;border:1px solid var(--border-strong);border-radius:0;padding:0 .7rem;font:inherit;font-size:.88rem;background:#fff;color:var(--foreground)}
.dt-edit .dt-cap:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.dt-edit-btns{display:flex;gap:8px}
.dt-edit-btns .btn{flex:1}
.display-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:4/3;border:2px dashed var(--border-strong);border-radius:0;background:var(--surface);color:var(--muted-foreground);cursor:pointer;font:inherit;font-weight:600;font-size:.9rem;transition:border-color .12s,color .12s,background .12s}
.display-add:hover{border-color:var(--primary);color:var(--primary-strong);background:#fff}
.display-add:disabled{opacity:.7;cursor:default}
.display-add .da-ic{display:grid;place-items:center}
.display-add .da-ic svg{width:20px;height:20px}
.disp-lightbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:32px;background:rgba(12,10,9,.86);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.disp-lightbox.open{display:flex}
.disp-lightbox .dl-fig{margin:0;max-width:92vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.disp-lightbox .dl-fig img{max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.disp-lightbox .dl-fig figcaption{color:#fff;font-size:.95rem;font-weight:600;text-align:center;max-width:70ch}
.disp-lightbox .dl-close{position:absolute;top:18px;right:22px;width:2.6rem;height:2.6rem;border:none;border-radius:0;background:rgba(255,255,255,.14);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.disp-lightbox .dl-close:hover{background:rgba(255,255,255,.26)}
/* shared photo zoom + item pins (photo-tags.js) */
.pz{position:fixed;inset:0;z-index:200;display:none;background:rgba(12,10,9,.88);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);--pzside:320px}
.pz.open{display:block}
html.pz-noscroll{overflow:hidden}
.pz-layout{position:absolute;top:0;left:0;bottom:0;right:var(--pzside);display:flex;align-items:center;justify-content:center;padding:28px}
.pz-main{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;max-width:100%}
.pz-side{position:fixed;top:0;right:0;bottom:0;width:var(--pzside);height:100vh;overflow:auto;background:var(--card);border-left:1px solid var(--border);box-shadow:-12px 0 40px rgba(0,0,0,.28);z-index:2}
.pz-side-hd{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:16px 14px 12px;background:var(--card);border-bottom:1px solid var(--border);font-family:var(--display);font-weight:720;font-size:1rem}
.pz-side-n{display:inline-grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .4rem;border-radius:0;background:var(--muted);color:var(--muted-foreground);font-size:.78rem;font-weight:700}
.pz-side-empty{padding:14px 12px;color:var(--muted-foreground);font-size:.86rem;line-height:1.45}
.pz-side-list{display:flex;flex-direction:column;gap:2px;padding:6px}
.pz-side-row{display:flex;align-items:center;border-radius:0;transition:background .12s,box-shadow .12s}
.pz-side-row:hover,.pz-side-row.hl{background:var(--muted)}
.pz-side-row.hl{box-shadow:inset 3px 0 0 var(--foreground)}
.pz-side-link{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;text-decoration:none;color:var(--foreground)}
.pz-side-th{flex:none;width:44px;height:44px;border-radius:0;overflow:hidden;background:var(--muted);display:grid;place-items:center}
.pz-side-th img{width:100%;height:100%;object-fit:cover}
.pz-side-nm{flex:1;min-width:0;font-size:.88rem;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pz-side-del{flex:none;width:1.9rem;height:1.9rem;margin-right:6px;border:none;background:none;color:var(--muted-foreground);font-size:1.3rem;line-height:1;cursor:pointer;border-radius:0}
.pz-side-del:hover{background:var(--card);color:var(--primary-strong)}
.pz-stage{position:relative;display:inline-block;line-height:0}
.pz-stage.tagging{cursor:crosshair}
.pz-img{display:block;max-width:100%;max-height:74vh;width:auto;height:auto;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.pz-pins{position:absolute;inset:0;pointer-events:none}
.pz-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;z-index:2}
.pz-dot{display:block;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.5);border:2px solid rgba(0,0,0,.45);box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:pointer;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);transition:transform .12s,background .12s,box-shadow .12s}
.pz-dot:hover,.pz-pin.show .pz-dot,.pz-pin.hl .pz-dot{transform:scale(1.18);background:rgba(255,255,255,.92)}
.pz-pin.hl .pz-dot{box-shadow:0 0 0 4px rgba(255,255,255,.55),0 1px 4px rgba(0,0,0,.35)}
.pz-pop{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);min-width:150px;max-width:240px;display:none;flex-direction:column;gap:6px;padding:10px 12px;background:#fff;color:var(--foreground);border-radius:0;box-shadow:var(--shadow-lg);text-align:left;line-height:normal}
.pz-pin.show .pz-pop{display:flex}
.pz-pop:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff}
.pz-pop-nm{font-weight:700;font-size:.9rem;line-height:1.25}
.pz-pop-link{font-size:.82rem;font-weight:600;color:var(--primary-strong);text-decoration:none}
.pz-pop-link:hover{text-decoration:underline}
.pz-pop-del{align-self:flex-start;border:none;background:none;padding:0;font:inherit;font-size:.8rem;color:var(--muted-foreground);cursor:pointer;text-decoration:underline}
.pz-pop-del:hover{color:var(--primary-strong)}
.pz-cap{color:#fff;font-size:.95rem;font-weight:600;text-align:center;max-width:70ch}
.pz-toolbar{display:flex;align-items:center;gap:12px;min-height:2.2rem}
.pz-tagbtn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.32);color:#fff}
.pz-tagbtn:hover{background:rgba(255,255,255,.2)}
.pz-tagbtn.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pz-hint{color:rgba(255,255,255,.82);font-size:.85rem}
.pz-prompt{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px;padding:10px 12px;background:var(--accent);color:#fff;font-size:.86rem;line-height:1.35;border-radius:0}
.pz-prompt .ph{font-size:16px;flex:none;margin-top:1px}
.pz-close{position:absolute;top:16px;right:calc(var(--pzside) + 16px);width:2.6rem;height:2.6rem;border:none;border-radius:0;background:rgba(255,255,255,.14);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;z-index:3}
.pz-close:hover{background:rgba(255,255,255,.26)}
.pz-picker{position:absolute;top:0;right:0;bottom:0;width:min(360px,90vw);z-index:6;background:var(--card);box-shadow:-12px 0 40px rgba(0,0,0,.4);display:flex;flex-direction:column}
.pz-picker[hidden]{display:none}
.pz-picker-hd{display:flex;gap:8px;padding:14px;border-bottom:1px solid var(--border)}
.pz-picker-hd input{flex:1;height:2.4rem;border:1px solid var(--border-strong);border-radius:0;padding:0 .7rem;font:inherit;font-size:.9rem;background:var(--card);color:var(--foreground)}
.pz-picker-hd input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.pz-picker-x{width:2.4rem;height:2.4rem;flex:none;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted-foreground);font-size:1.4rem;line-height:1;cursor:pointer}
.pz-picker-x:hover{background:var(--muted);color:var(--foreground)}
.pz-picker-list{flex:1;overflow:auto;padding:8px}
.pz-pick{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;background:none;border-radius:0;cursor:pointer;text-align:left;font:inherit}
.pz-pick:hover{background:var(--muted)}
.pz-pick-th{flex:none;width:44px;height:44px;border-radius:0;overflow:hidden;background:var(--muted);display:grid;place-items:center}
.pz-pick-th img{width:100%;height:100%;object-fit:cover}
.pz-pick-nm{flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pz-empty{padding:24px 12px;text-align:center;color:var(--muted-foreground);font-size:.88rem}
@media(max-width:820px){.pz{--pzside:240px}}
@media(max-width:560px){.pz{--pzside:172px}.pz-layout{padding:12px}}
@media(max-width:560px){.pz-picker{width:100vw}}
/* skeleton card grid (replaces static mockups while data loads) */
.sk-card{background:transparent;border:1px solid var(--border);border-radius:0;overflow:hidden}
.sk-card .sk-ph{aspect-ratio:1/1;background:#ece9e6;position:relative;overflow:hidden}
.sk-card .sk-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:sksh 1.2s infinite}
.sk-card .sk-bd{padding:12px 14px 14px}
.sk-card .sk-bd .sk-line{height:10px;margin:6px 0;background:#ece9e6;border-radius:0;display:block;position:relative;overflow:hidden}
.sk-card .sk-bd .sk-line::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:sksh 1.2s infinite}

/* hover-action icons on Database cards (item: want/have · entity: follow) */
.item.card .hover-actions{position:absolute;top:10px;right:10px;display:flex;gap:7px;opacity:0;transform:translateY(-2px);transition:opacity .14s,transform .14s;z-index:5;pointer-events:none}
.item.card:hover .hover-actions,.item.card:focus-within .hover-actions{opacity:1;transform:translateY(0);pointer-events:auto}
.item.card .ha-btn{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.94);border:1px solid var(--border);backdrop-filter:saturate(140%) blur(4px);-webkit-backdrop-filter:saturate(140%) blur(4px);color:#1c1917;display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 6px 14px rgba(28,25,23,.12);transition:background .12s,color .12s,transform .1s}
.item.card .ha-btn svg{width:16px;height:16px;display:block}
.item.card .ha-btn:hover{background:#1c1917;color:#fff;transform:translateY(-1px)}
.item.card .ha-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring),0 6px 14px rgba(28,25,23,.12)}
.item.card .ha-btn.want.active{background:var(--primary);color:#fff;border-color:transparent}
.item.card .ha-btn.want.active svg{fill:#fff;stroke:#fff}
.item.card .ha-btn.have.active{background:#16a34a;color:#fff;border-color:transparent}
.item.card .ha-btn.follow.active{background:#1c1917;color:#fff;border-color:transparent}
.item.card:has(.ha-btn.active) .hover-actions{opacity:1;pointer-events:auto;transform:translateY(0)}
/* Follow stat (artist/platform/maker pages — sits next to the Follow button) */
.phead-top .acts{align-items:center}
.follow-stat{display:inline-flex;flex-direction:column;align-items:center;line-height:1.1;margin-right:14px;color:var(--foreground)}
.follow-stat .n{font-size:1.2rem;font-weight:700}
.follow-stat .l{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600;margin-top:1px}
/* Follow line on user profile (inline followers · following) */
.follow-line{display:flex;align-items:baseline;gap:.55rem;color:var(--muted-foreground);font-size:.95rem;margin:.4rem 0 .6rem}
.follow-line b{color:var(--foreground);font-weight:700;margin-right:4px}
.follow-line .dot{opacity:.5}

/* ===== Topbar: notification bell (rounded, sized to match the avatar) ===== */
.nav-right .notif-btn{width:2.4rem;height:2.4rem;border-radius:50%;padding:0;position:relative}
.nav-right .notif-btn svg{width:19px;height:19px}
.nav-right .nav-av{width:2.4rem;height:2.4rem}
.notif-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:0;background:var(--primary);color:#fff;font-size:.66rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;border:2px solid var(--card);font-family:var(--sans)}
.notif-badge[hidden]{display:none}

/* ===== Notifications drawer (right edge) ===== */
html.notif-open{overflow:hidden}
.notif-scrim{position:fixed;inset:0;background:rgba(28,25,23,.34);z-index:140;opacity:0;transition:opacity .24s ease}
.notif-scrim.open{opacity:1}
.notif-scrim[hidden]{display:none}
.notif-drawer{position:fixed;top:0;right:0;bottom:0;width:min(410px,94vw);max-height:none;background:var(--card);border-left:1px solid var(--border);box-shadow:-24px 0 60px rgba(28,25,23,.18);z-index:150;display:flex;flex-direction:column;overflow:hidden;transform:translateX(102%);transition:transform .26s cubic-bezier(.4,0,.2,1);border-radius:0}
.notif-drawer.open{transform:translateX(0)}
.notif-drawer[hidden]{display:none}
.nf-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);flex:none}
.nf-head h3{font-family:var(--display);font-size:1.1rem;font-weight:700;margin:0}
.nf-mark{background:none;border:none;color:var(--primary-strong);font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:0}
.nf-head-acts{display:flex;align-items:center;gap:2px}
.nf-x{background:none;border:none;color:var(--muted-foreground);cursor:pointer;width:2rem;height:2rem;border-radius:0;display:grid;place-items:center;flex:none}
.nf-x svg{width:17px;height:17px}
.nf-x:hover{background:var(--muted);color:var(--foreground)}
.nf-mark:hover{background:rgba(255,77,46,.08)}
.nf-clear{background:none;border:none;color:var(--muted-foreground);font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:0}
.nf-clear:hover{background:var(--muted);color:var(--foreground)}
.nf-scroll{overflow-y:auto;flex:1;min-height:0}
.nf-list{padding:4px 0}
.nf-empty{padding:48px 20px;text-align:center;color:var(--muted-foreground);font-size:.92rem}
.nf-all{display:block;text-align:center;padding:14px;border-top:1px solid var(--border);color:var(--primary-strong);font-weight:600;font-size:.88rem;text-decoration:none;flex:none}
.nf-all:hover{background:rgba(255,77,46,.06)}

/* Rich notification row — shared by drawer + full page */
.notif-item{display:flex;align-items:flex-start;gap:12px;padding:13px 18px;border-left:3px solid transparent}
.notif-item.unread{background:rgba(255,77,46,.045);border-left-color:var(--primary)}
.notif-av,.notif-ic{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;overflow:hidden}
.notif-av{background:var(--av-bg)}
.notif-av img{width:100%;height:100%;object-fit:cover;display:block}
.notif-av.is-ic{background:rgba(255,77,46,.1)}
.notif-ic{background:rgba(255,77,46,.1);color:var(--primary-strong)}
.notif-ic svg{width:19px;height:19px}
.notif-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.notif-line{font-size:.92rem;line-height:1.4;color:var(--foreground)}
.notif-line a{color:inherit;text-decoration:none}
.notif-u{font-weight:700;color:var(--foreground)}
.notif-u:hover{color:var(--primary-strong);text-decoration:underline}
.notif-e{font-weight:700;color:var(--primary-strong)}
.notif-e:hover{text-decoration:underline}
.notif-time{font-size:.74rem;font-weight:550;color:var(--muted-foreground)}
.notif-qa{flex:none;align-self:center}
.notif-qa .btn{white-space:nowrap}
.notif-del{flex:none;align-self:flex-start;width:1.75rem;height:1.75rem;margin:-2px -6px 0 0;padding:0;border:none;background:none;border-radius:0;color:var(--muted-foreground);cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity .12s,background .12s,color .12s}
.notif-del svg{width:14px;height:14px}
.notif-item:hover .notif-del,.notif-del:focus-visible{opacity:1}
.notif-del:hover{background:var(--muted);color:var(--foreground)}
.notif-del:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
@media(pointer:coarse){.notif-del{opacity:1;width:2.25rem;height:2.25rem}}

/* ===== Full Notifications page ===== */
.notif-filters{display:flex;gap:8px;margin:0 0 18px}
.notif-filter{display:inline-flex;align-items:center;gap:7px;height:2.1rem;padding:0 .95rem;border-radius:0;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);font-family:var(--sans);font-size:.86rem;font-weight:600;cursor:pointer}
.notif-filter:hover{border-color:var(--foreground)}
.notif-filter.active{background:var(--foreground);color:#fff;border-color:var(--foreground)}
.notif-filter-n{min-width:1.15rem;height:1.15rem;padding:0 5px;border-radius:0;background:var(--primary);color:#fff;font-size:.68rem;display:inline-flex;align-items:center;justify-content:center}
.notif-filter.active .notif-filter-n{background:#fff;color:var(--foreground)}
.notif-filter-n[hidden]{display:none}
.notif-wrap{max-width:900px}
.notif-page{display:flex;flex-direction:column;min-height:60vh}
.notif-page-loading{padding:40px 0;color:var(--muted-foreground);margin:auto}
.notif-list-lg{background:var(--card);border:1px solid var(--border);border-radius:0;overflow:hidden}
.notif-list-lg .notif-item{border-bottom:1px solid var(--border)}
.notif-list-lg .notif-item:last-child{border-bottom:none}
.notif-daysec{padding:12px 18px 6px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);background:var(--muted);border-bottom:1px solid var(--border)}
.notif-more-wrap{padding:16px;text-align:center;border-top:1px solid var(--border)}
.notif-empty-lg{max-width:520px;margin:auto;text-align:center;padding:48px 24px;background:var(--card);border:1px solid var(--border);border-radius:0}
.notif-empty-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.notif-empty-ic{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:rgba(255,77,46,.1);color:var(--primary-strong);display:grid;place-items:center}
.notif-empty-ic svg{width:30px;height:30px}
.notif-empty-lg h3{font-family:var(--display);font-size:1.25rem;margin:0 0 8px}
.notif-empty-lg p{color:var(--muted-foreground);margin:0 0 16px;line-height:1.5}

/* ===== Public collector profile (u.html) ===== */
.pp-loading,.pp-missing{padding:48px 0;color:var(--muted-foreground)}
.pp-missing{max-width:520px}
.pp-banner{height:200px;background-size:cover;background-position:center;background-color:var(--av-bg)}
.pp-banner-empty{background:linear-gradient(120deg,#f3efe9,#e9e2d8 60%,#efe7db)}
.pp-wrap{position:relative}
.pp-head{display:flex;align-items:flex-start;gap:20px;padding-top:16px;flex-wrap:wrap}
.pp-av{width:112px;height:112px;margin-top:-72px;border-radius:50%;flex:none;background:var(--primary);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:2.4rem;border:4px solid var(--card);overflow:hidden;box-shadow:0 6px 20px rgba(28,25,23,.14)}
.pp-actions{margin-left:auto}
.pp-av.has-img{background:var(--av-bg);color:transparent}
.pp-av img{width:100%;height:100%;object-fit:cover;display:block}
.pp-id{flex:1;min-width:200px;padding-bottom:4px}
.pp-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pp-name{font-family:var(--display);font-size:1.7rem;font-weight:800;margin:0;line-height:1.1}
.pp-handle{color:var(--muted-foreground);font-weight:600;margin-top:2px}
.pp-bio{margin:10px 0 0;line-height:1.5;max-width:60ch}
.pp-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}
.pp-meta-i{display:inline-flex;align-items:center;gap:6px;color:var(--muted-foreground);font-size:.85rem;text-decoration:none}
a.pp-meta-i:hover{color:var(--primary-strong)}
.pp-meta-i svg{width:15px;height:15px}
.pp-actions{padding-bottom:6px}
.pp-stats{display:flex;gap:30px;margin:22px 0 6px;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.pp-stat{display:flex;flex-direction:column;gap:1px}
.pp-stat b{font-family:var(--display);font-size:1.3rem;font-weight:800}
.pp-stat span{font-size:.78rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}
.pp-sec{margin-top:30px}
.pp-sec-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.pp-sec-head h2{font-family:var(--display);font-size:1.15rem;margin:0}
.pp-sec-n{color:var(--muted-foreground);font-size:.82rem}
.pp-coll{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.pp-cc{display:block;text-decoration:none;color:inherit}
.pp-cc-img{display:block;aspect-ratio:1;background:#f0eeec;border-radius:0;overflow:hidden;border:1px solid var(--border)}
.pp-cc-img img{width:100%;height:100%;object-fit:cover;display:block}
.pp-cc-name{display:block;margin-top:7px;font-size:.84rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pp-cc:hover .pp-cc-name{color:var(--primary-strong)}
.pp-empty{margin-top:24px;padding:36px;text-align:center;color:var(--muted-foreground);background:var(--card);border:1px dashed var(--border);border-radius:0}
.badge-admin{background:var(--foreground);color:#fff;border:none}
.badge-mod{background:#2563eb;color:#fff;border:none}
/* Curator (blue) + Maintainer (green) role badges — match the Creator badge's DS treatment (see .badge-creator override below): filled pill, Space Mono, UPPERCASE. */
.badge-curator{background:#2563eb!important;border:1px solid #2563eb!important;color:#fff!important;box-shadow:none!important;font-family:var(--mono);font-weight:400;text-transform:uppercase;font-size:.82rem;height:auto;padding:5px 11px;letter-spacing:.05em}
.badge-maintainer{background:#15803d!important;border:1px solid #15803d!important;color:#fff!important;box-shadow:none!important;font-family:var(--mono);font-weight:400;text-transform:uppercase;font-size:.82rem;height:auto;padding:5px 11px;letter-spacing:.05em}
.badge-artist{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border:none}
@media(max-width:640px){.pp-av{width:92px;height:92px;margin-top:-58px;font-size:2rem}.pp-actions{margin-left:0;width:100%}.pp-stats{gap:20px}}

/* ===== Search autocomplete dropdown ===== */
.search-dd{position:absolute;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 24px 60px rgba(28,25,23,.18);z-index:130;max-width:560px;max-height:70vh;overflow:hidden;display:flex;flex-direction:column}
.sd-group{padding:6px 0;border-bottom:1px solid var(--border)}
.sd-group:last-of-type{border-bottom:none}
.sd-ghd{padding:7px 14px 4px;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground)}
.sd-row{display:flex;align-items:center;gap:11px;padding:8px 14px;color:inherit;text-decoration:none;cursor:pointer}
.sd-row:hover,.sd-row.sel{background:#f5f3f1}
.sd-row[data-href="#"]{cursor:default}
.sd-th{width:40px;height:40px;border-radius:0;flex:none;background:#fff;border:1px solid var(--border);overflow:hidden;display:grid;place-items:center;color:var(--muted-foreground);position:relative}
.sd-th img{width:100%;height:100%;object-fit:contain;padding:3px;background:#fff}
.sd-th-artist,.sd-th-user{border-radius:50%}
.sd-th-artist img,.sd-th-user img{object-fit:cover;padding:0}
.sd-th-artist,.sd-th-user{background:var(--primary)}
.sd-ini{font-size:.78rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.02em}
.sd-th-brand,.sd-th-platform,.sd-th-toy{background:#fff}
.sd-th-brand .sd-ini,.sd-th-platform .sd-ini,.sd-th-toy .sd-ini{color:var(--muted-foreground)}
.sd-meta{display:flex;flex-direction:column;min-width:0;flex:1}
.sd-name{font-weight:600;font-size:.93rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-sub{color:var(--muted-foreground);font-size:.79rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-empty{padding:18px 16px;color:var(--muted-foreground);font-size:.9rem;text-align:center}
.sd-foot{display:block;padding:10px 14px;font-size:.85rem;font-weight:600;color:var(--primary-strong);text-decoration:none;border-top:1px solid var(--border);background:#fafaf9}
.sd-foot:hover{background:#f5f3f1}
/* profile tab list rows (contributions / reviews) */
.plist{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:0;overflow:hidden}
.plist-row{display:flex;align-items:center;gap:12px;background:var(--card);padding:14px 16px}
.plist-row .pl-main{flex:1 1 auto;min-width:0;font-weight:550}
.plist-row .pl-sub{display:block;font-weight:400;color:var(--muted-foreground);font-size:.82rem;margin-top:3px;line-height:1.35}
.plist-row .pl-stars{color:var(--primary);letter-spacing:1px;flex:none}
.plist-row .pl-date{color:var(--muted-foreground);font-size:.82rem;flex:none}
/* item loading skeleton (prevents wrong-content flash) */
.sk{background:#ece9e6;border-radius:0;position:relative;overflow:hidden}
.sk::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:translateX(-100%);animation:sksh 1.2s infinite}
@keyframes sksh{100%{transform:translateX(100%)}}
.sk-line{height:14px;margin:.45rem 0;display:block}
.owners{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.owner-chip{position:relative;display:inline-flex}
.owner-chip:hover{z-index:8}
.owner-chip .oav{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.82rem;font-weight:700;flex:none;border:2px solid var(--card);box-shadow:0 1px 3px rgba(28,25,23,.14)}
.owner-chip .oav img{width:100%;height:100%;object-fit:cover}
.owner-chip .onm{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(4px);background:#1c1917;color:#fff;padding:5px 10px;border-radius:0;font-size:.78rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s,transform .14s;z-index:9}
.owner-chip .onm .oh{opacity:.6;font-weight:500;margin-left:3px}
.owner-chip .onm::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#1c1917}
.owner-chip:hover .onm{opacity:1;transform:translateX(-50%) translateY(0)}
.owner-more{margin-left:6px;height:36px;min-width:36px;padding:0 11px;border-radius:0;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);font-size:.82rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
.owner-more:hover{background:#1c1917;color:#fff;border-color:#1c1917}

/* collectors modal */
.cmodal-scrim{position:fixed;inset:0;background:rgba(28,25,23,.45);opacity:0;pointer-events:none;transition:opacity .15s;z-index:120}
.cmodal-scrim.show{opacity:1;pointer-events:auto}
.cmodal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%);width:min(440px,92vw);max-height:80vh;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 24px 60px rgba(28,25,23,.28);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:121}
.cmodal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.cmodal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}
.cmodal-head h3{font-family:var(--display);font-size:1.05rem;font-weight:700}
.cmodal-x{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted-foreground);padding:0 2px}
.cmodal-x:hover{color:var(--foreground)}
.cmodal-body{overflow:auto;padding:8px}
.cmodal-load{padding:28px 12px;text-align:center;color:var(--muted-foreground)}
.crow{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:0}
.crow:hover{background:#f5f3f1}
.crow .oav{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.85rem;font-weight:700;flex:none}
.crow .oav img{width:100%;height:100%;object-fit:cover}
.crow .cmeta{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.crow .cn{font-weight:600}
.crow .ch{color:var(--muted-foreground);font-size:.85rem}
.itm-sec-h{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground);font-weight:700;margin:1.7rem 0 .8rem}
/* divider above a section header (e.g. Production details, below the About accordions) */
.itm-sec-h.sep{border-top:1px solid var(--border);padding-top:1.2rem}
.idetails{display:grid;gap:.6rem}
.idetails .row{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:baseline;font-size:.95rem}
.idetails .row .k{font-weight:700}
.idetails .row .v{color:var(--foreground);min-width:0}
.idetails .row .v a{color:var(--primary);font-weight:400;text-decoration:none}
.idetails .row .v a:hover{text-decoration:underline}
.about-box{border-top:1px solid var(--border);margin-top:1.7rem}
/* accordion module: clickable header toggles its own body */
.about-box .acc-head{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;background:none;border:0;padding:1.1rem 0 .35rem;margin:0;cursor:pointer;text-align:left;color:inherit;font:inherit;-webkit-appearance:none}
.about-box .acc-chev{width:18px;height:18px;flex:none;color:var(--muted-foreground);transition:transform .25s ease}
.about-box .acc-head:hover .acc-chev{color:var(--foreground)}
.about-box.open .acc-chev{transform:rotate(180deg)}
.about-box .acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.about-box.open .acc-body{grid-template-rows:1fr}
.about-box .acc-inner{overflow:hidden}
.about-box .ab-text{color:#44403c;margin:0;padding-bottom:1.1rem;line-height:1.55;max-width:none}
@media (prefers-reduced-motion:reduce){.about-box .acc-body,.about-box .acc-chev{transition:none}}
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:0;overflow:hidden;margin-top:.6rem}
.prod-grid .cell{background:var(--card);padding:16px 16px}
.prod-grid .cell .k{font-weight:700;font-size:.9rem;margin-bottom:4px}
.prod-grid .cell .val{color:var(--muted-foreground);font-family:var(--mono);font-size:.95rem}
.prod-grid .cell .val .na{opacity:.6}
.detail .dh h1{font-family:var(--display);font-weight:720;letter-spacing:-0.035em;font-size:2rem;line-height:1.05}
.detail .dh .by{color:var(--muted-foreground);margin:.3rem 0 1rem}
.spec-rows{margin:1.4rem 0}
.spec-rows .rrow{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);font-size:.9rem}
.spec-rows .rrow:last-child{border-bottom:none}
.spec-rows .k{color:var(--muted-foreground)}.spec-rows .v{font-weight:600}

/* pagination */
.pager{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:40px}
.pager button{font-family:var(--mono);font-size:13px;min-width:38px;height:38px;padding:0 .55rem;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border-default);border-radius:0;background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:border-color .12s,color .12s,background .12s}
.pager button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}
.pager button.on{background:var(--ts-ink);color:var(--text-on-ink);border-color:var(--ts-ink)}
.pager button:disabled{opacity:.4;cursor:default}
.pager .pg-gap{color:var(--text-subtle);padding:0 2px}

/* empty / callout */
.empty{text-align:center;padding:64px 24px;border:1px dashed var(--border-strong);border-radius:0;color:var(--muted-foreground)}
.empty .ic{width:48px;height:48px;margin:0 auto 14px;color:var(--border-strong)}
.empty h3{color:var(--foreground);font-size:1.1rem;margin-bottom:.4rem}

/* section card (rewards tiers etc) */
.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.callout{display:flex;gap:1rem;align-items:center;padding:18px 20px;border-radius:0;background:rgba(255,77,46,.07);border:1px solid rgba(255,77,46,.18)}
.callout .ci{width:40px;height:40px;flex:none;border-radius:0;display:grid;place-items:center;background:var(--primary);color:#fff}

@media(max-width:980px){
  .split-page,.detail{grid-template-columns:1fr}
  .facets,.gallery{position:static}
  .facets{max-height:none;overflow:visible;overscroll-behavior:auto}
}

/* functional sort control */
.sortbox{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--muted-foreground);white-space:nowrap}
.sortsel{height:2.2rem;padding:0 1.8rem 0 .7rem;border:1px solid var(--border-strong);border-radius:0;
  background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .6rem center;
  font:inherit;font-size:.84rem;font-weight:500;color:var(--foreground);cursor:pointer;appearance:none;-webkit-appearance:none}
.sortsel:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 16%,transparent)}

/* ===== artist / profile hero meta + links drawer ===== */
.ameta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.5rem}
.aloc{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--muted-foreground)}
.aloc svg{width:15px;height:15px;opacity:.8}
.adesc{margin-top:.8rem;font-size:.98rem;line-height:1.5;color:#44403c;max-width:80ch;
  white-space:pre-line}   /* preserve the paragraphs/line breaks typed in the bio field */
.adesc-p{display:block}
.adesc-p + .adesc-p{margin-top:.2em}   /* compact paragraph spacing (instead of a full blank line) */
/* max-height clamp (not -webkit-line-clamp: that can't clamp the block-level
   paragraph spans inside bios) — ~3 lines visible, fading out at the cut */
.adesc.clamp{max-height:6em;overflow:hidden;position:relative}   /* holds ~4 lines → at least 3 before "+ more" */
.adesc.clamp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5em;
  background:linear-gradient(to bottom,rgba(250,250,249,0),var(--surface))}
.adesc-more{margin-top:.55rem}
.alinks{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:.9rem}
.alink{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:550;color:var(--primary-strong)}
.alink svg{width:15px;height:15px}
.alink:hover{text-decoration:underline}

.ldrawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;z-index:70;background:var(--card);
  border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;
  padding:20px;transform:translateX(100%);transition:transform .22s ease}
.ldrawer.open{transform:none}
.ldrawer-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.ldrawer-hd h3{font-size:1.05rem}
.ldrawer-link{display:flex;align-items:center;gap:.7rem;padding:.8rem .85rem;border-radius:0;
  border:1px solid var(--border);margin-bottom:.55rem;font-size:.9rem;font-weight:500}
.ldrawer-link:hover{background:var(--muted)}
.ldrawer-link svg{width:18px;height:18px;flex:none;color:var(--muted-foreground)}
.ldrawer-link .lk-sub{margin-left:auto;color:var(--muted-foreground);font-size:.8rem;font-weight:400}
.ldrawer-scrim{position:fixed;inset:0;background:rgba(12,10,9,.45);z-index:65;display:none}
.ldrawer-scrim.show{display:block}

/* ===== subtle page-enter on app pages (opacity only -> safe with sticky/fixed) ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes ts-page-in{from{opacity:0}to{opacity:1}}
  .content > main{animation:ts-page-in .4s ease both}
}

/* live-data card image placeholder (when a record has no real image yet) */
.ph-ph{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;color:#b6b0a9}
.ph-ph svg{width:44px;height:44px}

/* catalog retail price (shown on cards with no active listing) */
.item .retail{margin-top:auto;padding-top:.7rem;display:flex;align-items:baseline;gap:.3rem;
  font-size:.82rem;font-weight:600;color:var(--muted-foreground)}
.item .retail .p{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ===== shared confirm/alert dialog (window.tsConfirm / tsAlert) ===== */
.ts-dialog-wrap{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px}
.ts-dialog-scrim{position:absolute;inset:0;background:rgba(12,10,9,.5);backdrop-filter:blur(2px)}
.ts-dialog{position:relative;width:min(400px,100%);background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);padding:22px}
.ts-dialog-t{font-family:var(--display);font-size:1.15rem;font-weight:720;letter-spacing:-.02em;margin-bottom:.4rem}
.ts-dialog-b{color:var(--muted-foreground);font-size:.92rem;margin-bottom:18px}
.ts-dialog-foot{display:flex;justify-content:flex-end;gap:8px}
.ts-dialog-danger{background:var(--primary-strong)}
.ts-dialog-danger:hover{background:var(--primary)}
/* feedback / feature-proposal form modal */
.ts-dialog.ts-form{width:min(460px,100%);text-align:left}
.ts-form-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.4rem}
.ts-form-ta{width:100%;min-height:120px;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font-family:var(--sans);font-size:.92rem;padding:.7rem .85rem;color:var(--foreground);resize:vertical;line-height:1.45}
.ts-form-ta:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.ts-form-msg{font-size:.85rem;color:var(--muted-foreground);margin-top:8px;min-height:1.1em}
/* Submit-an-item modal: compact form inputs + autocomplete + sidebar button */
.ts-dialog.ts-submit{max-height:88vh;overflow-y:auto}
.ts-form-in{width:100%;height:2.6rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font-family:var(--sans);font-size:.92rem;padding:0 .8rem;color:var(--foreground)}
.ts-form-in:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.ts-form.ts-submit .ts-form-label{margin-top:14px}
.ts-form.ts-submit .ts-form-label:first-of-type{margin-top:0}
.ts-submit .ts-si-desc{min-height:64px}
.ts-submit .ts-si-photo{margin-top:2px}
.ts-req{color:var(--primary-strong)}
.ts-ac{position:relative}
.ts-ac-drop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);max-height:200px;overflow:auto;padding:6px}
.ts-ac-opt{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:.9rem;padding:.5rem .6rem;border-radius:0;cursor:pointer;color:var(--foreground)}
.ts-ac-opt:hover{background:var(--muted)}
.side-util .side-submit{width:100%;justify-content:center;margin:auto 0 0}
.ts-form-err{color:var(--primary-strong);font-weight:600}

/* ===== auth modal + account menu ===== */
.auth-scrim{position:fixed;inset:0;background:rgba(12,10,9,.5);backdrop-filter:blur(2px);z-index:90;display:none}
.auth-scrim.show{display:block}
.auth-modal{position:fixed;z-index:91;top:50%;left:50%;transform:translate(-50%,-46%) scale(.97);opacity:0;visibility:hidden;
  width:min(400px,92vw);background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);
  padding:28px;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.auth-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.auth-x{position:absolute;top:14px;right:14px;width:2rem;height:2rem;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;border-radius:0;display:grid;place-items:center}
.auth-x:hover{background:var(--muted);color:var(--foreground)}
.auth-mark{width:40px;height:40px;border-radius:0;background:var(--ink);color:#fff;display:grid;place-items:center;margin-bottom:14px}
.auth-mark svg{width:22px;height:22px}
.auth-title{font-family:var(--display);font-weight:720;font-size:1.4rem;letter-spacing:-0.03em}
.auth-sub{color:var(--muted-foreground);font-size:.9rem;margin:.2rem 0 1.2rem}
#authForm .field{margin-bottom:.9rem}
.auth-err{color:#c5330f;font-size:.82rem;min-height:1rem;margin-bottom:.3rem}
.auth-alt{text-align:center;font-size:.84rem;color:var(--muted-foreground);margin-top:1rem}
.auth-alt a{color:var(--primary-strong);font-weight:600}
.btn-block{width:100%}   /* full-width buttons (Google SSO + Sign in) — match the input fields */
/* wide Toy Syndicate wordmark, centered, replacing the old icon + "Welcome back" title */
.auth-logo{display:block;margin:0 auto 18px;max-width:190px;width:auto;height:auto}
.auth-modal .auth-sub{text-align:center}
/* Google SSO button (Google brand: white, colored G) + "or" divider */
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;border:1px solid var(--border-strong,#c9c4bd);font-weight:600}
.btn-google:hover{background:#f6f5f3;color:#1f1f1f}
.btn-google:disabled{opacity:.6;cursor:default}
.btn-google .g-logo{flex:none;display:block}
/* Auth-modal buttons — scoped (0,2,0) so they beat the landing page's inline .btn / .btn-primary
   (which are vermilion + transparent-bordered). Black primary, white Google w/ gray outline, all Space Mono caps. */
.auth-modal .btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;font-weight:400}
.auth-modal .btn-primary{background:var(--ts-ink,#0A0A0A);border-color:var(--ts-ink,#0A0A0A);color:#fff;box-shadow:none}
.auth-modal .btn-primary:hover{background:#000;border-color:#000;color:#fff}
.auth-modal .btn-google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}
.auth-modal .btn-google:hover{background:#f6f5f3;color:#1f1f1f}
.auth-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--muted-foreground);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--border)}
.auth-menu{position:fixed;z-index:91;width:248px;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);padding:8px;display:none}
.auth-menu.open{display:block}
.am-head{display:flex;gap:.6rem;align-items:center;padding:8px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}
a.am-head{border-radius:0;cursor:pointer;transition:background .12s}
a.am-head:hover{background:var(--muted)}
.am-av-img{width:40px;height:40px;border-radius:50%;overflow:hidden;background:#f5f3f1;flex:none;padding:0;color:transparent}   /* circle — matches the topbar avatar + every other small user avatar */
.am-av-img img{width:100%;height:100%;object-fit:cover;display:block}
.am-name{font-weight:600;font-size:.9rem}
.am-email{font-size:.78rem;color:var(--muted-foreground)}
.am-role{padding:0 8px 8px}
.am-item{display:block;width:100%;text-align:left;padding:.55rem .6rem;border-radius:0;font-size:.88rem;font-weight:500;color:var(--foreground);background:none;border:none;cursor:pointer}
.am-item:hover{background:var(--muted)}
.am-signout{color:var(--primary-strong);margin-top:4px}
.am-signout:hover{background:rgba(255,77,46,.08);border-color:var(--primary-strong);color:var(--primary-strong)}

/* ===== Admin console ===== */
/* .badge-outline is shared by admin status pills */
.badge-outline{background:transparent;border:1px solid var(--border);color:var(--muted-foreground)}

.auth-ok{font-size:.85rem;color:var(--primary-strong);background:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:0;padding:.6rem .7rem;margin-bottom:.6rem}

/* ===== Settings page ===== */
.set-grid{display:grid;grid-template-columns:1fr;gap:20px;max-width:640px}
.set-card{padding:22px 24px}
.set-h{font-size:1.05rem;margin-bottom:1rem}
.set-card .field{margin-bottom:.9rem}
.set-hint{font-size:.78rem;color:var(--muted-foreground)}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:14px 0;border-bottom:1px solid var(--border)}
.set-row:first-of-type{padding-top:0}
.set-row-t{font-weight:600;font-size:.92rem}
.set-row-s{font-size:.82rem;color:var(--muted-foreground);margin-top:.15rem}
.set-actions{display:flex;align-items:center;gap:.9rem;margin-top:1rem}
.set-status{font-size:.85rem;color:var(--muted-foreground)}
.set-status.ok{color:var(--primary-strong);font-weight:600}
.set-status.err{color:#b91c1c}
.field input:disabled{opacity:.6;cursor:not-allowed}

/* sign-up handle field */
.handle-wrap{display:flex;align-items:center;height:2.7rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);overflow:hidden}
.handle-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.handle-wrap .handle-at{padding:0 .15rem 0 .7rem;color:var(--muted-foreground);font-size:.92rem;flex:none}
.field .handle-wrap input[type=text]{flex:1;width:auto;height:100%;border:none;background:transparent;border-radius:0;
  padding:0 .85rem 0 .1rem;box-shadow:none}
.field .handle-wrap input[type=text]:focus{box-shadow:none;border:none}
.handle-status{display:block;margin-top:.3rem;font-size:.78rem;color:var(--muted-foreground);min-height:1em}
.handle-status.ok{color:#15803d;font-weight:600}
.handle-status.err{color:#b91c1c}

/* settings: locked handle + change button */
.handle-locked{display:flex;align-items:center;gap:.5rem}
.handle-locked input{flex:1}
.handle-locked .btn{flex:none}

/* edit-profile: avatar upload */
.ep-photo{display:flex;align-items:center;gap:1.2rem}
.ep-avatar{width:96px;height:96px;border-radius:0;font-size:2rem;flex:none;box-shadow:var(--shadow-sm)}
.ep-photo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
.ep-photo-actions .set-hint{margin-top:.1rem}

/* edit-profile: cover preview */
.ep-cover{height:150px;border-radius:0;border:1px solid var(--border);background:#f5f3f1 center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);font-size:.85rem;margin-bottom:.9rem;overflow:hidden}

/* image framer modal */
.framer-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center}   /* above the admin editor (z 130/131) */
.framer-scrim{position:absolute;inset:0;background:rgba(12,10,9,.55)}
.framer-modal{position:relative;background:var(--card);border-radius:0;box-shadow:var(--shadow-lg);
  padding:24px;max-width:92vw;display:flex;flex-direction:column;align-items:center;gap:14px}
.framer-modal .auth-title{font-size:1.25rem;text-align:center}
.framer-modal .auth-sub{text-align:center;margin-top:-6px}
.framer-stage{position:relative;border-radius:0;overflow:hidden;background:#1c1917;max-width:100%}
.framer-stage.circle{border-radius:50%}
.framer-canvas{display:block;touch-action:none;cursor:grab}
.framer-canvas:active{cursor:grabbing}
.framer-mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 9999px rgba(28,25,23,.45);pointer-events:none}
.framer-zoom{width:100%;accent-color:var(--primary);cursor:pointer}
.framer-actions{display:flex;gap:.6rem;width:100%}
.framer-actions .btn{flex:1}

/* edit-profile: multi-link editor */
.lk-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.6rem}
.field .lk-row{display:flex;gap:.5rem;align-items:center}
.field .lk-row input{width:auto;height:2.4rem;flex:1 1 auto;min-width:0;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font:inherit;font-size:.9rem;padding:0 .7rem;color:var(--foreground)}
.field .lk-row .lk-label{flex:0 0 36%}
.field .lk-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.field .lk-row.primary .lk-label{border-color:var(--primary)}
.lk-del{flex:none;width:2.3rem;height:2.4rem;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted-foreground);cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center}
.lk-del:hover{color:var(--primary-strong);border-color:var(--primary)}

/* ===== Super-admin inline record editing (admin-edit.js) ===== */
.aed-edit{gap:.4rem}
.aed-edit svg{width:15px;height:15px}
.aed-fab{position:fixed;right:20px;bottom:20px;z-index:80;box-shadow:var(--shadow-lg);background:var(--card)}
.aed-scrim{position:fixed;inset:0;background:rgba(12,10,9,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .16s;z-index:130}
.aed-scrim.show{opacity:1;pointer-events:auto}
.aed-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.98);width:min(620px,94vw);max-height:88vh;max-height:88svh;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .16s,transform .16s;z-index:131}
.aed-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.aed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 16px;border-bottom:1px solid var(--border)}
.aed-head h3{font-family:var(--display);font-size:1.25rem;font-weight:720;letter-spacing:-.02em;margin-top:2px}
.aed-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-strong)}
.aed-x{background:none;border:none;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--muted-foreground);width:2.2rem;height:2.2rem;padding:0;border-radius:0;display:grid;place-items:center;flex:none}
.aed-x:hover{background:var(--muted);color:var(--foreground)}
.aed-body{overflow:auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}
/* section header between record sections (item + production details) */
.aed-sec-title{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground);padding-top:16px;border-top:1px solid var(--border)}
.aed-body>.aed-sec-title:first-child{padding-top:0;border-top:none}
.aed-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
/* sub-section header inside a grid (e.g. Images) */
.aed-group{grid-column:1/-1;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground);margin-top:4px;padding-top:16px;border-top:1px solid var(--border)}
.aed-field{min-width:0}
.aed-req{color:var(--primary-strong)}
/* label row with a "Write with AI" action (description/bio fields) */
.aed-field-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.aed-field-hd label{margin:0}
.aed-ai svg{width:14px;height:14px;flex:none}
.aed-ai .is-loading,.aed-ai.is-loading{opacity:.7}
/* AI actions use the app's purple accent (text + sparkle follow currentColor) */
.aed-ai{color:#7c3aed;border-color:color-mix(in srgb,#7c3aed 34%,var(--border))}
.aed-ai:hover{background:color-mix(in srgb,#7c3aed 9%,transparent);border-color:color-mix(in srgb,#7c3aed 55%,var(--border))}
/* modal header actions ("Fill with AI" + close) */
.aed-head-actions{display:flex;align-items:center;gap:.5rem;flex:none}
@media(max-width:520px){.aed-ai-fill span{display:none}.aed-ai-fill{padding-left:.5rem;padding-right:.5rem}}
/* inputs match the design-system .field component exactly (2.7rem / .92rem / .85rem) */
.aed-field input[type=text],.aed-field input[type=number],.aed-field input[type=date],.aed-field textarea,.aed-field select{
  width:100%;height:2.7rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);
  font-family:var(--sans);font-size:.92rem;padding:0 .85rem;color:var(--foreground)}
.aed-field textarea{height:auto;padding:.7rem .85rem;resize:vertical;line-height:1.45;min-height:90px}
.aed-field textarea.mono{font-family:var(--mono);font-size:.82rem}
.aed-field input:focus,.aed-field textarea:focus,.aed-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.aed-field.full,.aed-field:has(textarea),.aed-field:has(.aed-img),.aed-field:has(.aed-imgs),.aed-field:has(.aed-links),.aed-field:has(.aed-tags),.aed-field:has(.aed-refs){grid-column:1/-1}
/* fixed "USD" unit adornment on the Retail price field */
.aed-money{position:relative}
.aed-field .aed-money input[type=number]{padding-right:3.1rem}
.aed-money-suf{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);font-size:.72rem;font-weight:500;color:var(--muted-foreground);pointer-events:none}
.aed-check{display:flex;align-items:center;gap:.5rem;height:2.7rem;font-size:.92rem;cursor:pointer}
.aed-check input{width:1.1rem;height:1.1rem;accent-color:var(--primary)}
.aed-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-top:1px solid var(--border)}
.aed-btns{display:flex;gap:.6rem;flex:none}
.aed-msg{font-size:.85rem;color:var(--muted-foreground);min-height:1.2em}
.aed-msg.aed-err{color:var(--primary-strong);font-weight:600}
.aed-msg.aed-ok{color:var(--success);font-weight:600}
@media(max-width:560px){.aed-grid{grid-template-columns:1fr}.aed-foot{flex-wrap:wrap}.aed-btns{width:100%}.aed-btns .btn{flex:1}}
/* image upload fields in the editor */
.aed-img{display:flex;flex-direction:row;align-items:flex-start;gap:14px;flex-wrap:wrap}
.aed-imgs{display:flex;flex-direction:column;gap:10px}
.aed-img-side{display:flex;flex-direction:column;gap:8px;flex:1 1 160px;min-width:0}
.aed-img-prev{width:110px;height:110px;border-radius:0;border:1px solid var(--border);background:var(--muted);display:grid;place-items:center;overflow:hidden;color:var(--muted-foreground);font-size:.78rem;flex:none}
.aed-img[data-frame="circle"] .aed-img-prev{border-radius:50%}
.aed-img[data-frame="banner"] .aed-img-prev{width:100%;max-width:340px;height:108px}
.aed-img-prev.has{background:#fff}
.aed-img-prev img{width:100%;height:100%;object-fit:cover}
.aed-img-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aed-img-btns [hidden]{display:none}
.aed-up,.aed-up-multi{cursor:pointer}
.aed-img-msg{font-size:.8rem;color:var(--muted-foreground);min-height:1.1em}
.aed-img-msg.aed-err{color:var(--primary-strong);font-weight:600}
.aed-img-msg.aed-ok{color:var(--success);font-weight:600}
.aed-imgs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.aed-imgs-empty{grid-column:1/-1;padding:16px;text-align:center;color:var(--muted-foreground);font-size:.82rem;border:1px dashed var(--border);border-radius:0}
.aed-thumb{position:relative;border:1px solid var(--border);border-radius:0;overflow:hidden;background:#fff}
.aed-thumb.primary{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}
.aed-thumb>img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.aed-thumb-pri{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:4px;justify-content:center;padding:3px;font-size:.68rem;font-weight:600;background:rgba(255,255,255,.9);cursor:pointer}
.aed-thumb.primary .aed-thumb-pri{background:var(--primary);color:#fff}
.aed-thumb-pri input{accent-color:var(--primary)}
.aed-thumb-del{position:absolute;top:4px;right:4px;width:1.4rem;height:1.4rem;border-radius:0;border:none;background:rgba(12,10,9,.6);color:#fff;font-size:1rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.aed-thumb-del:hover{background:var(--primary-strong)}
/* ===== admin editor: tag + link widgets ===== */
.aed-tags{border:1px solid var(--border-strong);border-radius:0;padding:8px;background:var(--card)}
.aed-tags-chips{display:flex;flex-wrap:wrap;gap:6px}
.aed-tags-chips:not(:empty){margin-bottom:8px}
.aed-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;border-radius:0;background:var(--muted);border:1px solid var(--border);font-size:.82rem;font-weight:600}
.aed-tag-x{border:0;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--muted-foreground);padding:0 2px}
.aed-tag-x:hover{color:var(--foreground)}
.aed-tags{min-height:2.7rem}
.aed-tags .aed-tag-in{width:100%;border:0;outline:none;background:transparent;font:inherit;font-size:.92rem;padding:4px 2px}
.aed-links-rows{display:grid;gap:8px}
.aed-links-rows:not(:empty){margin-bottom:10px}
.aed-linkrow2{display:grid;grid-template-columns:150px 1fr auto;gap:8px;align-items:center}
.aed-linkrow2 input{height:2.7rem;border:1px solid var(--border-strong);border-radius:0;padding:0 .7rem;font-family:var(--sans);font-size:.92rem;background:var(--card);color:var(--foreground);min-width:0}
.aed-linkrow2 input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
/* entity-connection multi-select (platform → artists / makers) — mirrors the tag field */
.aed-refs{display:block}
.aed-refs-chips{display:flex;flex-wrap:wrap;gap:6px}
.aed-refs-chips:not(:empty){margin-top:8px}
.aed-refs-empty{color:var(--muted-foreground);font-size:.85rem}
.aed-ref-search{position:relative}
.aed-ref-in{width:100%;height:2.7rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font-family:var(--sans);font-size:.92rem;padding:0 .85rem;color:var(--foreground)}
.aed-ref-in:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.aed-ref-in:disabled{background:var(--muted);color:var(--muted-foreground);cursor:not-allowed}
/* single/multi-value tip next to a field title */
.aed-hint{display:inline-block;font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border);border-radius:0;padding:1px 7px;margin-left:6px;vertical-align:middle}
.aed-ref-drop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);max-height:220px;overflow:auto;padding:6px}
.aed-ref-opt{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:.9rem;padding:.5rem .6rem;border-radius:0;cursor:pointer;color:var(--foreground)}
.aed-ref-opt:hover{background:var(--muted)}
.aed-ref-none{color:var(--muted-foreground);cursor:default}
.aed-ref-create{color:var(--primary-strong);font-weight:600;border-top:1px solid var(--border);border-radius:0}

/* ===== Filter bar: dropdown multi-selects with per-dropdown search (data.js) ===== */
/* toolbar row: filters on the left, sort pinned to the right — same level */
.dbtools{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 12px}
.dbtools .filter-bar{flex:1 1 auto;margin:0}
.dbtools .sortbox{margin-left:auto;flex:none}
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 20px}
.fb-loading{color:var(--muted-foreground);font-size:.9rem}
.fdrop{position:relative}
.fdrop-btn{display:inline-flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 .5rem 0 .9rem;border:1px solid var(--border-strong);border-radius:0;
  background:var(--card);color:var(--foreground);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:border-color .12s,background .12s,box-shadow .12s}
.fdrop-btn:hover{background:var(--muted)}
.fdrop.open .fdrop-btn{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.fdrop.has-sel .fdrop-btn{border-color:var(--primary);color:var(--primary-strong)}
.fdrop-badge{display:inline-grid;place-items:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;border-radius:0;background:var(--primary);color:#fff;font-size:.72rem;font-weight:700;line-height:1}
.fdrop-caret{width:16px;height:16px;color:var(--muted-foreground);transition:transform .15s;flex:none}
.fdrop.open .fdrop-caret{transform:rotate(180deg)}
.fdrop-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:288px;max-width:88vw;background:var(--card);border:1px solid var(--border);
  border-radius:0;box-shadow:var(--shadow-lg);overflow:hidden}
.fdrop-search{padding:10px;border-bottom:1px solid var(--border)}
.fdrop-search input{width:100%;height:2.3rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font:inherit;font-size:.88rem;padding:0 .7rem;color:var(--foreground)}
.fdrop-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.fdrop-list{max-height:302px;overflow:auto;padding:6px;overscroll-behavior:contain}
.fdrop-list .flink{display:flex;align-items:center;gap:.55rem;padding:.42rem .5rem;border:0;border-radius:0;cursor:pointer;font-size:.9rem}
.fdrop-list .flink:hover{background:var(--muted)}
.fdrop-list .fchk{width:1rem;height:1rem;accent-color:var(--primary);flex:none;margin:0}
.fdrop-list .flabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fdrop-list .count{color:var(--muted-foreground);font-size:.8rem;font-variant-numeric:tabular-nums;flex:none}
.fdrop-empty{padding:20px 12px;text-align:center;color:var(--muted-foreground);font-size:.86rem}
.fclear{height:2.5rem;padding:0 .4rem;border:0;background:none;color:var(--primary-strong);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.fclear[hidden]{display:none}
@media(max-width:560px){.filter-bar .fdrop{flex:1 1 42%}.fdrop-btn{width:100%;justify-content:space-between}.fdrop-panel{width:min(320px,92vw)}}

/* ===================== Immersive Admin console ===================== */
.adm-side{position:fixed;top:0;left:0;bottom:0;width:248px;z-index:60;background:var(--ink);color:var(--ink-fg);display:flex;flex-direction:column;padding:16px 14px;overflow-y:auto}
.adm-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 4px;text-decoration:none;color:#fff}
.adm-brand .brand-logo{height:26px;width:auto;filter:invert(1)}
.adm-brand-tag{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-foreground);background:var(--primary);padding:2px 7px;border-radius:0}
.adm-nav{display:flex;flex-direction:column;gap:.15rem;margin-top:18px}
.adm-nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .65rem;border-radius:0;color:var(--ink-fg-dim);text-decoration:none;font-size:.92rem;font-weight:500}
.adm-nav a svg{width:18px;height:18px;flex:none;opacity:.85}
.adm-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.adm-nav a.active{background:var(--primary);color:var(--primary-foreground);font-weight:600}
.adm-nav a.active svg{opacity:1}
.adm-nav-badge{margin-left:auto;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:0;background:var(--primary);color:var(--primary-foreground);font-size:.72rem;font-weight:700;display:inline-grid;place-items:center}
.adm-nav-badge[hidden]{display:none}
.adm-nav a.active .adm-nav-badge{background:#fff;color:var(--primary-strong)}
/* "Back to app" = a secondary utility button at the TOP of the sidebar, visually subordinate to nav */
.adm-exit{display:flex;align-items:center;justify-content:center;gap:8px;margin:12px 0 2px;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.24);border-radius:0;background:transparent;color:var(--ink-fg);text-decoration:none;font-size:.82rem;font-weight:600;transition:background .15s ease,border-color .15s ease}
.adm-exit svg{width:17px;height:17px}
.adm-exit:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.45);color:#fff}
.adm-shell{margin-left:248px;min-height:100vh;display:flex;flex-direction:column;background:var(--surface)}
.adm-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;height:64px;padding:0 32px;background:var(--card);border-bottom:1px solid var(--border)}
.adm-topbar .hamburger{display:none}
.adm-crumb{font-weight:640;font-size:.95rem}
.adm-main{flex:1;padding:32px 32px 60px;width:100%;max-width:1600px;margin-inline:auto}
.adm-loading{padding:40px 4px;color:var(--muted-foreground)}
.adm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.adm-h1{font-family:var(--display);font-size:1.7rem;font-weight:720;letter-spacing:-.035em;line-height:1.05}
.adm-sub{color:var(--muted-foreground);font-size:.98rem;max-width:64ch;margin-top:4px}
.adm-head-actions{display:flex;align-items:center;gap:8px;flex:none}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-bottom:26px}
.adm-stats>.adm-loading,.adm-stats>.adm-empty{grid-column:1/-1}
.adm-stat{display:block;background:var(--card);border:1px solid var(--border);border-radius:0;padding:16px;text-decoration:none;color:inherit;transition:border-color .12s,transform .12s,box-shadow .12s}
a.adm-stat:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.adm-stat-n{font-family:var(--display);font-size:1.7rem;font-weight:720;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.adm-stat-l{color:var(--muted-foreground);font-size:.82rem;margin-top:4px}
.adm-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px}
.adm-cols+.adm-cols{margin-top:16px}
.adm-panel{background:var(--card);border:1px solid var(--border);border-radius:0;overflow:hidden}
.adm-panel-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:640;font-size:.95rem}
.adm-panel-bd{padding:8px}
.adm-invite-new{margin-bottom:26px}
.adm-link{font-size:.82rem;font-weight:600;color:var(--primary-strong);text-decoration:none}
.adm-link:hover{text-decoration:underline}
.mem-artist-cell{font-size:.85rem}
.mem-artist-cell .btn{margin-left:6px}
/* shared admin modal shell (artist-link, confirm dialogs) — matches the aed editor */
.adm-modal-wrap{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px}
.adm-modal-scrim{position:absolute;inset:0;background:rgba(12,10,9,.5);backdrop-filter:blur(2px)}
.adm-modal{position:relative;width:min(520px,100%);max-height:86vh;max-height:86svh;overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}
.adm-modal-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--border)}
.adm-modal-hd h3{font-family:var(--display);font-size:1.25rem;font-weight:720;letter-spacing:-.02em;margin:0}
.adm-modal-x{background:none;border:none;font-size:1.1rem;line-height:1;color:var(--muted-foreground);cursor:pointer;width:2.2rem;height:2.2rem;border-radius:0;display:grid;place-items:center;flex:none}
.adm-modal-x:hover{background:var(--muted);color:var(--foreground)}
.adm-modal-bd{padding:18px 22px}
.adm-modal-bd .adm-sub{margin:0 0 14px}
.adm-modal-field{margin-bottom:14px}
.adm-modal-empty{padding:10px 12px;font-size:.85rem;color:var(--muted-foreground)}
.adm-modal-bd .input.coll-search{width:100%}
.adm-modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.adm-current{margin-bottom:14px;padding:10px 12px;background:var(--muted);border-radius:0;font-size:.86rem}
.adm-modal-list{border:1px solid var(--border);border-radius:0;max-height:230px;overflow:auto}
.adm-modal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border)}
.adm-modal-row:last-child{border-bottom:none}
.adm-modal-row-name{font-size:.9rem;font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-modal-or{display:flex;align-items:center;text-align:center;color:var(--muted-foreground);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin:16px 0}
.adm-modal-or::before,.adm-modal-or::after{content:"";flex:1;height:1px;background:var(--border)}
.adm-modal-or span{padding:0 12px}
/* artist owner-edit modal fields */
.ae-avatar{display:flex;align-items:center;gap:14px}
.ae-av{width:72px;height:72px;border-radius:50%;background:var(--av-bg);display:grid;place-items:center;overflow:hidden;font-family:var(--display);font-weight:700;font-size:1.4rem;color:var(--muted-foreground)}
.ae-av img{width:100%;height:100%;object-fit:cover}
.ae-linkrow{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600;margin-top:12px}
.ae-linkrow>span{color:var(--muted-foreground)}
.ae-linkrow .adm-input{width:100%;min-width:0}
.adm-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:0}
.adm-row:hover{background:var(--muted)}
.adm-row-main{flex:1;min-width:0;font-size:.9rem;font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-row-date{color:var(--muted-foreground);font-size:.8rem;flex:none}
.adm-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.adm-toolbar .input.coll-search{min-width:240px}
.adm-toolbar .adm-toolbar-end{margin-left:auto}
.adm-arch{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted-foreground);cursor:pointer;user-select:none}
.adm-arch input{cursor:pointer;margin:0}
.adm-main .chips{margin-bottom:18px}
.adm-input{height:2.5rem;padding:0 .8rem;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font:inherit;font-size:.9rem;color:var(--foreground)}
.adm-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.adm-hint{color:var(--muted-foreground);font-size:.85rem}
.adm-note{padding:8px 14px 10px;text-align:center;color:var(--muted-foreground);font-size:.85rem}
.adm-tablewrap{background:var(--card);border:1px solid var(--border);border-radius:0;overflow:auto}
.adm-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:680px}
.adm-table th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
.adm-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.adm-table tr:last-child td{border-bottom:none}
.adm-td-trunc{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* pinned "founder" contribution row on a profile */
.adm-table tr.pf-pinned td{background:rgba(184,134,11,.08)}
.adm-table tr.pf-pinned td:first-child{box-shadow:inset 3px 0 0 #b8860b;font-weight:700}
.pf-crown{color:#b8860b;margin-right:6px}
/* column-width steps for admin tables (used on <col>) */
.adm-table .w10{width:10%}.adm-table .w12{width:12%}.adm-table .w13{width:13%}.adm-table .w14{width:14%}.adm-table .w16{width:16%}.adm-table .w18{width:18%}.adm-table .w22{width:22%}.adm-table .w34{width:34%}.adm-table .w36{width:36%}.adm-table .w40{width:40%}
.adm-muted{color:var(--muted-foreground)}
.adm-cell{width:100%;height:2.2rem;border:1px solid var(--border);border-radius:0;background:var(--card);font:inherit;font-size:.9rem;padding:0 .5rem;color:var(--foreground)}
.adm-cell:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}
.adm-num{max-width:5rem}
.adm-select{cursor:pointer}
.adm-rowacts{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap;white-space:nowrap}
.adm-rowacts .btn{white-space:nowrap}
.adm-roles{display:flex;gap:12px;font-size:.82rem;color:var(--muted-foreground)}
.adm-roles label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.adm-roles input{accent-color:var(--primary)}
.adm-ok{color:var(--success)!important;border-color:var(--success)!important}
.adm-err{color:var(--primary-strong)!important;border-color:var(--primary-strong)!important}
.adm-empty{padding:28px 14px;text-align:center;color:var(--muted-foreground)}
/* Maintenance — Scale Automatic Sweep */
.adm-panel{border:1px solid var(--border-strong);background:var(--card);padding:20px 22px;max-width:760px}
.adm-panel-hd{margin-bottom:16px}
.adm-h2{font-family:var(--sans);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;margin:0 0 6px}
.ss-opt{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--foreground);margin:0 0 16px;cursor:pointer}
.ss-opt input{width:16px;height:16px;accent-color:var(--primary);flex:none}
.ss-stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.ss-stat{flex:1 1 150px;border:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.ss-stat-n{font-family:var(--mono);font-size:1.7rem;font-weight:700;line-height:1;color:var(--foreground);font-variant-numeric:tabular-nums}
.ss-stat:first-child .ss-stat-n{color:var(--primary)}
.ss-stat-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}
.ss-chips{display:flex;flex-wrap:wrap;gap:8px}
.ss-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);padding:4px 10px;font-size:.85rem;color:var(--muted-foreground)}
.ss-chip b{font-family:var(--mono);color:var(--foreground);font-variant-numeric:tabular-nums}
.ss-actions:empty{display:none}
.ss-actions{margin-top:18px}
.ss-done{font-size:1rem;color:var(--foreground);padding:6px 0}
.ss-sample{margin-top:14px;border:1px solid var(--border)}
.ss-sample>summary{cursor:pointer;padding:9px 12px;font-size:.85rem;font-weight:600;color:var(--foreground);user-select:none}
.ss-sample[open]>summary{border-bottom:1px solid var(--border)}
.ss-sample-list{list-style:none;margin:0;padding:6px 0;max-height:280px;overflow-y:auto}
.ss-sample-list li{display:flex;align-items:baseline;gap:10px;padding:4px 12px;font-size:.86rem}
.ss-sample-scale{flex:none;min-width:52px;font-family:var(--mono);font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
.ss-sample-name{color:var(--foreground)}
/* Syndicate Rewards — Contribution Points */
.rw-loading{padding:26px 4px;color:var(--muted-foreground);list-style:none}
.rw-top{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:stretch;margin-bottom:40px}
.rw-earn{padding:22px}
.rw-earn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rw-earn-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:11px 0;border-bottom:1px solid var(--border)}
.rw-earn-list li:last-child{border-bottom:0}
.rw-earn-l{display:flex;flex-direction:column;gap:2px}
.rw-earn-l small{color:var(--muted-foreground);font-size:.8rem}
.rw-lb-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.rw-tabs{display:flex;gap:4px}
.rw-tab{font-family:var(--sans);font-size:.88rem;font-weight:600;padding:7px 12px;border:1px solid var(--border-strong);background:var(--card);color:var(--muted-foreground);cursor:pointer}
.rw-tab.active{background:var(--foreground);color:var(--card);border-color:var(--foreground)}
.rw-periods{display:flex;gap:2px;margin-left:auto}
.rw-per{font-family:var(--mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;padding:6px 10px;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer}
.rw-per.active{color:var(--primary);border-color:var(--primary)}
.rw-board{list-style:none;margin:0;padding:6px}
.rw-row{display:flex;align-items:center;gap:14px;padding:10px 12px;border-bottom:1px solid var(--border)}
.rw-row:last-child{border-bottom:0}
.rw-row-me{background:var(--accent-wash,rgba(255,59,14,.07))}
.rw-rank{flex:none;width:30px;text-align:center;font-family:var(--mono);font-weight:700;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.rw-row:nth-child(1) .rw-rank,.rw-row:nth-child(2) .rw-rank,.rw-row:nth-child(3) .rw-rank{color:var(--primary)}
.rw-user{display:flex;align-items:center;gap:11px;flex:1;min-width:0;color:var(--foreground);text-decoration:none}
.rw-av{width:38px;height:38px;flex:none;font-size:.85rem}
.rw-name{display:flex;flex-direction:column;min-width:0}
.rw-name b{font-weight:650;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-name small{color:var(--muted-foreground);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-user:hover .rw-name b{color:var(--primary)}
.rw-score{flex:none;font-size:.82rem;color:var(--muted-foreground);white-space:nowrap}
.rw-score b{font-size:1rem;color:var(--foreground);font-variant-numeric:tabular-nums}
.rw-follow{flex:none}
.rw-you{flex:none;font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);padding:0 6px}
.rw-recent{list-style:none;margin:0;padding:4px 20px}
.rw-recent li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:11px 0;border-bottom:1px solid var(--border);font-size:.9rem}
.rw-recent li:last-child{border-bottom:0}
.rw-recent-r{display:flex;align-items:center;gap:14px}
.rw-when{color:var(--muted-foreground);font-size:.8rem}
.rw-recent-r b{font-variant-numeric:tabular-nums}
.rw-empty{padding:26px 6px;text-align:center;color:var(--muted-foreground);list-style:none}
.pf-stat-pts b{color:var(--primary)}
a.pf-stat-pts{text-decoration:none}
#tsToastHost{position:fixed;left:0;right:0;bottom:24px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:9999;pointer-events:none}
.ts-toast{background:var(--foreground);color:var(--card);font-family:var(--sans);font-size:.9rem;font-weight:600;padding:11px 18px;box-shadow:0 6px 24px rgba(0,0,0,.18);opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease;max-width:90vw;text-align:center}
.ts-toast.in{opacity:1;transform:translateY(0)}
.ts-toast-pts{background:var(--primary);color:var(--primary-foreground)}
@media (max-width:720px){.rw-top{grid-template-columns:1fr}.rw-periods{margin-left:0;width:100%}}
/* Rewards — tier showcase */
.rw-tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:820px){.rw-tiers{grid-template-columns:repeat(2,1fr)}}
@media(max-width:440px){.rw-tiers{grid-template-columns:1fr}}
.rw-tier{border:1px solid var(--border-strong);background:var(--card);display:flex;flex-direction:column;overflow:hidden}
.rw-tier-current{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.rw-tier-locked{opacity:.72}
.rw-tier-top{aspect-ratio:1/1;background:#f3f1ec;display:grid;place-items:center;border-bottom:1px solid var(--border);overflow:hidden}
.rw-tier-illus .rw-tier-top{background:#0a0a0a;border-bottom-color:#0a0a0a}
.rw-tier-art{width:100%;height:100%;object-fit:cover;display:block}
.rw-tier-emblem{color:var(--muted-foreground)}
.rw-tier-emblem .ph{font-size:2.4rem}
.rw-tier-body{padding:12px 13px;display:flex;flex-direction:column;gap:5px}
.rw-tier-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rw-tier-hd b{font-size:1rem}
.rw-tier-thr{font-size:.72rem;color:var(--muted-foreground);letter-spacing:.02em}
.rw-tier-blurb{margin:2px 0 0;font-size:.82rem;color:var(--muted-foreground);line-height:1.45}
.rw-tchip{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border:1px solid var(--border);color:var(--muted-foreground);white-space:nowrap;flex:none}
.rw-tchip-cur{color:var(--primary);border-color:var(--primary)}
.rw-tchip-done{color:var(--success);border-color:var(--success)}
/* Custodian artwork on a top-tier member's status block */
.rw-cust-hero{position:relative;margin:-22px -22px 16px;overflow:hidden;background:#0a0a0a;border-bottom:1px solid rgba(255,255,255,.14)}
.rw-cust-hero img{display:block;width:100%;height:210px;object-fit:cover;object-position:62% 26%}
.rw-cust-tag{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--primary-foreground);background:var(--primary);padding:3px 8px}
/* Tutorial CTA (on the Help page) + Tutorial page */
.tut-cta{display:flex;align-items:center;gap:14px;max-width:860px;margin:0 0 26px;padding:15px 18px;border:1px solid var(--border-strong);background:var(--card);text-decoration:none;color:var(--foreground)}
.tut-cta:hover{border-color:var(--primary)}
.tut-cta-ic{flex:none;width:42px;height:42px;display:grid;place-items:center;background:var(--primary);color:var(--primary-foreground)}
.tut-cta-ic .ph{font-size:1.35rem}
.tut-cta b{display:block;font-size:1rem}
.tut-cta small{display:block;color:var(--muted-foreground);font-size:.85rem;margin-top:2px}
.tut-cta-go{margin-left:auto;color:var(--muted-foreground);font-size:1.15rem}
.tut-cta:hover .tut-cta-go{color:var(--primary)}
.tut-layout{display:grid;grid-template-columns:230px 1fr;gap:44px;align-items:start;max-width:1040px}
.tut-toc{position:sticky;top:84px;align-self:start}
.tut-toc-hd{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin:0 0 10px;padding:0 10px}
.tut-toc a{display:block;padding:7px 10px;font-size:.9rem;color:var(--muted-foreground);text-decoration:none;border-left:2px solid transparent}
.tut-toc a:hover{color:var(--foreground)}
.tut-toc a.active{color:var(--primary);border-left-color:var(--primary);font-weight:600}
.tut-main{min-width:0}
.tut-filter{position:relative;margin-bottom:8px;max-width:640px}
.tut-filter input{width:100%;height:2.8rem;border:1px solid var(--border-strong);background:var(--card);padding:0 .9rem 0 2.5rem;font-family:var(--sans);font-size:.95rem;color:var(--foreground)}
.tut-filter input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.tut-filter>.ph{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground)}
.tut-count{font-size:.82rem;color:var(--muted-foreground);margin:0 0 8px}
.tut-sec{padding:26px 0;border-top:1px solid var(--border);scroll-margin-top:80px}
.tut-sec-hd{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.tut-sec-ic{flex:none;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--border-strong);color:var(--primary)}
.tut-sec-ic .ph{font-size:1.2rem}
.tut-sec h3{font-size:1.15rem;margin:0}
.tut-ch{display:flex;align-items:baseline;gap:12px;margin:48px 0 2px;scroll-margin-top:80px}
.tut-ch:first-of-type{margin-top:6px}
.tut-ch h2{font-size:1.5rem;letter-spacing:-.01em;margin:0}
.tut-ch-n{font-family:var(--mono);font-size:.9rem;font-weight:700;color:var(--primary)}
.tut-chip{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;padding:3px 7px;border:1px solid var(--border);color:var(--muted-foreground)}
.tut-chip-soon{color:var(--primary);border-color:var(--primary)}
.tut-intro{color:var(--muted-foreground);margin:0 0 14px;max-width:68ch}
.tut-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;max-width:68ch}
.tut-steps li{counter-increment:step;position:relative;padding-left:40px;line-height:1.55}
.tut-steps li::before{content:counter(step);position:absolute;left:0;top:1px;width:27px;height:27px;display:grid;place-items:center;background:var(--foreground);color:var(--card);font-family:var(--mono);font-size:.8rem;font-weight:700}
.tut-tips{margin:16px 0 0;padding:12px 15px;border:1px solid var(--border);background:#fafaf9;max-width:68ch}
.tut-tips>b{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}
.tut-tips ul{margin:7px 0 0;padding-left:18px;color:var(--foreground);font-size:.92rem;display:flex;flex-direction:column;gap:5px}
.tut-empty{padding:34px 6px;color:var(--muted-foreground)}
@media (max-width:860px){.tut-layout{grid-template-columns:1fr;gap:0}.tut-toc{display:none}}
.adm-gate{max-width:520px;margin:64px auto}
.adm-gate .btn{margin-top:1.2rem}
.adm-form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.adm-form-col{display:flex;flex-direction:column;gap:12px}
.adm-field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600}
/* admin: Feature Planning kanban board */
.kb-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.kb-col{background:var(--muted);border:1px solid var(--border);border-radius:0;padding:10px;display:flex;flex-direction:column;gap:10px;min-height:140px}
.kb-col-hd{display:flex;align-items:center;justify-content:space-between;padding:2px 4px}
.kb-col-nm{font-weight:700;font-size:.9rem}
.kb-col-n{font-size:.72rem;font-weight:700;color:var(--muted-foreground);background:var(--card);border:1px solid var(--border);border-radius:0;min-width:22px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.kb-col-body{display:flex;flex-direction:column;gap:8px;min-height:44px;border-radius:0;transition:background .12s,outline-color .12s}
.kb-col-body.kb-over{background:rgba(255,77,46,.07);outline:2px dashed var(--primary);outline-offset:2px}
.kb-empty{color:var(--muted-foreground);font-size:.8rem;text-align:center;padding:16px 0}
.kb-card{background:var(--card);border:1px solid var(--border);border-radius:0;padding:10px 11px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:box-shadow .13s ease,border-color .13s ease,transform .13s ease}
.kb-card:hover{border-color:var(--border-strong);box-shadow:0 6px 16px -6px rgba(0,0,0,.16);transform:translateY(-1px)}
.kb-card.kb-dragging,.kb-card.kb-dragging:hover{transform:none;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.kb-card:active{cursor:grabbing}
.kb-card.kb-dragging{opacity:.45}
.kb-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.kb-title{font-size:.92rem;font-weight:650;margin:0;line-height:1.3;word-break:break-word}
.kb-desc{font-size:.82rem;color:var(--muted-foreground);margin:6px 0 0;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.kb-pri{font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .44rem;border-radius:0}
.kb-pri-high{background:#fee2e2;color:#b91c1c}
.kb-pri-medium{background:#fef3c7;color:#92400e}
.kb-pri-low{background:#e0f2fe;color:#075985}
.kb-edit{border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;width:26px;height:26px;border-radius:0;display:grid;place-items:center;padding:0;flex:none}
.kb-edit:hover{background:var(--muted);color:var(--foreground)}
.kb-edit svg{width:15px;height:15px}
.kb-copy.is-copied{color:#15803d}   /* copy-to-clipboard confirmation: icon flips to a green check */
.kb-add{border:1px dashed var(--border-strong);background:transparent;color:var(--muted-foreground);border-radius:0;padding:.5rem;font-size:.82rem;font-weight:600;cursor:pointer}
.kb-add:hover{border-color:var(--primary);color:var(--primary)}
/* Archive tab — a responsive grid of archived (non-draggable) feature cards with a Restore action */
.fp-archive{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-items:start}
.kb-card-arch{cursor:pointer}
.kb-arch-acts{display:inline-flex;align-items:center;gap:6px;flex:none}
.kb-restore{flex:none;white-space:nowrap}
.kb-arch-meta{margin:8px 0 0;font-size:.72rem;color:var(--muted-foreground)}
.kb-arch-empty{margin-top:4px}
/* Resolved tab — shipped+documented features in a masonry (CSS multi-column) layout */
.fp-resolved{columns:260px;column-gap:12px}
.fp-resolved>.kb-card{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 12px}
/* Impacted user roles — multi-select dropdown (editor) + role chips (card) */
.fp-roles{position:relative}
.fp-roles-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;cursor:pointer}
.fp-roles-btn>span{color:var(--foreground)}
.fp-roles-btn i{flex:none;font-size:.9rem;color:var(--muted-foreground)}
.fp-roles-menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--border);box-shadow:0 8px 24px -8px rgba(0,0,0,.25);max-height:240px;overflow:auto;display:flex;flex-direction:column;padding:4px}
.fp-roles-menu[hidden]{display:none}   /* author display:flex would otherwise beat the UA [hidden] rule */
.fp-roles-opt{display:flex;align-items:center;gap:8px;padding:7px 8px;cursor:pointer;font-size:.9rem}
.fp-roles-opt:hover{background:var(--muted)}
.fp-roles-opt span{color:var(--foreground)}
.fp-roles-opt input{width:15px;height:15px;flex:none;accent-color:var(--primary);cursor:pointer}
.kb-roles{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.kb-roles-lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-right:2px}
.kb-role{font-size:.64rem;font-weight:700;padding:.1rem .42rem;background:var(--muted);color:var(--foreground);border:1px solid var(--border)}
@media(max-width:860px){
  .kb-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .kb-col{scroll-snap-align:start}
}
.adm-field span{color:var(--muted-foreground)}
.adm-field .adm-input{min-width:150px}
.adm-field-grow{flex:1 1 220px}
.adm-field-grow .adm-input{width:100%;min-width:0}
.adm-msg{margin-top:10px;font-size:.85rem;min-height:1.1em}
.adm-invite-url{font-family:var(--mono);font-size:.8rem;background:var(--muted);padding:3px 7px;border-radius:0;word-break:break-all;display:inline-block}
.adm-invite-note{display:block;margin-top:4px;font-size:.8rem}
.adm-bars{display:flex;flex-direction:column;gap:8px;padding:6px 8px}
.adm-bar-row{display:flex;align-items:center;gap:10px}
.adm-bar-k{flex:0 0 34%;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-bar-track{flex:1;height:8px;background:var(--muted);border-radius:0;overflow:hidden}
.adm-bar-fill{display:block;height:100%;background:var(--primary);border-radius:0}
.adm-bar-n{flex:0 0 auto;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);min-width:3rem;text-align:right}
/* SEO route */
.adm-check{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.35rem 8px}
.adm-check-detail{color:var(--muted-foreground);font-size:.85rem;min-width:0;overflow-wrap:anywhere}
.adm-list{display:flex;flex-direction:column;padding:2px 0}
.adm-list .adm-link{display:block;padding:.35rem 8px;border-radius:0;font-size:.88rem}
.adm-list .adm-link:hover{background:var(--muted);text-decoration:none}
.adm-tablewrap-flush{background:none;border:none;border-radius:0;overflow-x:auto}
.adm-tablewrap-flush .adm-table{min-width:520px}
.adm-tablewrap-flush .adm-table th,.adm-tablewrap-flush .adm-table td{padding-left:8px;padding-right:8px}
.adm-more{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:14px}
/* focus parity for controls the .btn rule doesn't cover */
.chip:focus-visible,.adm-modal-x:focus-visible,.aed-x:focus-visible,.aed-thumb-del:focus-visible,.aed-tag-x:focus-visible{outline:2px solid transparent;outline-offset:1px;box-shadow:0 0 0 3px var(--ring)}
body.adm-locked .adm-side{display:none}body.adm-locked .adm-shell{margin-left:0}
@media(max-width:980px){
  .adm-side{transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow-lg);width:268px}
  .adm-side.open{transform:none}
  .adm-shell{margin-left:0}
  .adm-topbar .hamburger{display:inline-flex}
  /* keep form-control text ≥16px so iOS Safari doesn't zoom on focus */
  .adm-input,.adm-cell,.adm-toolbar .input.coll-search input,.aed-field input,.aed-field select,.aed-field textarea,.aed-field textarea.mono,.aed-tags .aed-tag-in{font-size:16px}
}
@media(max-width:560px){
  .adm-main{padding:20px 16px 48px}
  .adm-topbar{padding:0 16px}
  .aed-linkrow2{grid-template-columns:110px 1fr auto}
}
@media(pointer:coarse){
  .adm-topbar .hamburger,.adm-modal-x,.aed-x{width:2.75rem;height:2.75rem}
  .adm-rowacts .btn-sm{height:2.75rem}
  .adm-main .chip{height:2.75rem}
  .adm-cell{height:2.5rem}
  .aed-thumb-del{width:2rem;height:2rem}
  .aed-tag-x{padding:6px}
}

/* ===================== Info / doc pages ===================== */
.doc-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--surface)}
.doc-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;height:64px;padding:0 24px;background:var(--card);border-bottom:1px solid var(--border)}
.doc-brand{display:flex;align-items:center;text-decoration:none}
.doc-brand .brand-logo{height:26px;width:auto;display:block}
.doc-main{flex:1;padding:40px 24px 72px}
.doc{max-width:760px;margin:0 auto}
.doc-back{display:inline-block;color:var(--muted-foreground);font-size:.86rem;font-weight:600;text-decoration:none;margin-bottom:18px}
.doc-back:hover{color:var(--primary-strong)}
.doc-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary-strong)}
.doc-h1{font-family:var(--display);font-size:2.1rem;font-weight:740;letter-spacing:-.02em;margin:6px 0 6px}
.doc-updated{color:var(--muted-foreground);font-size:.84rem;margin-bottom:22px}
.doc-lead{font-size:1.08rem;line-height:1.6;margin-bottom:24px}
.doc h2{font-family:var(--display);font-size:1.25rem;font-weight:700;letter-spacing:-.01em;margin:30px 0 8px}
.doc h3{font-size:1rem;font-weight:700;margin:18px 0 4px}
.doc p{line-height:1.65;color:#44403c;margin:0 0 12px}
.doc ul,.doc ol{margin:0 0 14px;padding-left:1.3rem;line-height:1.65;color:#44403c}
.doc li{margin:4px 0}
.doc a{color:var(--primary-strong);font-weight:560}
.doc-card{background:var(--card);border:1px solid var(--border);border-radius:0;padding:18px 20px;margin:0 0 14px}
.doc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:8px 0 20px}
.doc-card h3{margin-top:0}
.faq{border:1px solid var(--border);border-radius:0;background:var(--card);margin:0 0 10px;overflow:hidden}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:640;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted-foreground);font-size:1.3rem;line-height:1}
.faq[open] summary::after{content:"–"}
.faq .faq-bd{padding:0 16px 15px;color:#44403c;line-height:1.65}
.doc-foot{border-top:1px solid var(--border);background:var(--card);padding:22px 24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--muted-foreground)}
.doc-foot a{color:var(--muted-foreground);text-decoration:none;margin-left:1.1rem}
.doc-foot a:first-child{margin-left:0}
.doc-foot a:hover{color:var(--foreground)}
.doc-form{display:grid;gap:12px;max-width:540px;background:var(--card);border:1px solid var(--border);border-radius:0;padding:20px}
.doc-form label{display:grid;gap:5px;font-size:.85rem;font-weight:600}
.doc-form input,.doc-form textarea,.doc-form select{border:1px solid var(--border-strong);border-radius:0;padding:.6rem .75rem;font:inherit;font-size:.92rem;background:var(--card);color:var(--foreground)}
.doc-form textarea{min-height:120px;resize:vertical}
.doc-form input:focus,.doc-form textarea:focus,.doc-form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.doc-msg{font-size:.85rem;min-height:1.1em;color:#15803d;font-weight:600}
@media(max-width:560px){.doc-main{padding:28px 16px 56px}.doc-h1{font-size:1.7rem}.doc-topbar{padding:0 16px}}

/* ===== profile header (shared: My Profile + public /user/<handle>) ===== */
.pbadges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pf-stats{display:flex;gap:.6rem;flex-wrap:wrap}
.pf-stat{display:inline-flex;align-items:baseline;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border);border-radius:0;background:var(--card);cursor:pointer;font:inherit;color:var(--foreground);transition:border-color .12s,box-shadow .12s}
.pf-stat:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.pf-stat:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.pf-stat b{font-family:var(--display);font-weight:720;font-size:1.15rem;letter-spacing:-.02em;line-height:1}
.pf-stat span{color:var(--muted-foreground);font-size:.85rem;font-weight:500}
.pf-cover-act{position:absolute;top:14px;right:16px;z-index:2}
.id .adesc{margin-top:1.15rem}
.pf-meta{gap:.5rem .9rem;margin-top:1rem}
.pf-sep{color:var(--border-strong);user-select:none}
.pf-links{display:inline-flex;align-items:center;gap:.55rem}
.pf-more{display:inline-flex;align-items:center;height:1.85rem;padding:0 .7rem;background:var(--card);border:1px solid var(--border-strong);border-radius:0;color:var(--foreground);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:400;cursor:pointer}
.pf-more:hover{background:var(--muted)}
/* followers / following modal rows — avatar + handle only */
#followList{display:flex;flex-direction:column;gap:2px}
.pf-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .4rem;border-radius:0;text-decoration:none;color:var(--foreground)}
.pf-row:hover{background:var(--muted)}
.pf-row .pf-av{width:36px;height:36px;flex:none;border-radius:50%;overflow:hidden;background:var(--muted);display:grid;place-items:center;color:var(--muted-foreground);font-weight:700;font-size:.72rem;text-transform:uppercase}
.pf-row .pf-av img{width:100%;height:100%;object-fit:cover;display:block}
.pf-row .pf-h{font-weight:600;font-size:.95rem}
.pf-empty{padding:2.25rem 1rem;text-align:center;color:var(--muted-foreground)}

/* ===== unified dropdown chevron — every styled <select> gets the same caret with
   consistent breathing room from the edge (placed last so it wins on source order) ===== */
.field select,.aed-field select,.aed-linkrow2 select,.adm-select,select.adm-input,.doc-form select,.msg-cat-select,.side-admin-sel{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .75rem center;
  padding-right:2.25rem;
}
.aed-linkrow2 select{height:2.7rem;border:1px solid var(--border-strong);border-radius:0;background-color:var(--card);font-family:var(--sans);font-size:.92rem;color:var(--foreground);padding-left:.7rem;cursor:pointer}
.aed-linkrow2 select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}


/* ===================== Messaging (user page + admin inbox) ===================== */
.msg-page{max-width:none}
.msg-loading,.msg-empty{color:var(--muted-foreground);padding:2rem 0;text-align:center}
.msg-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:0;overflow:hidden;background:var(--card)}
.msg-listrow{display:flex;align-items:center;gap:14px;padding:14px 16px;border:0;border-bottom:1px solid var(--border);background:none;text-align:left;cursor:pointer;width:100%;font:inherit}
.msg-listrow:last-child{border-bottom:none}
.msg-listrow:hover{background:var(--muted)}
.msg-listrow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.msg-listrow-top{display:flex;align-items:center;gap:8px}
.msg-listrow-prev{font-size:.9rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-listrow.unread .msg-listrow-prev{color:var(--foreground);font-weight:560}
.msg-listrow-time{flex:none;font-size:.75rem;color:var(--muted-foreground)}
.msg-cat{font-weight:600}
.msg-dot{width:.5rem;height:.5rem;border-radius:0;background:var(--primary);flex:none;display:inline-block}
.msg-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.msg-back{margin-right:auto}
.msg-thread{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:0;background:var(--card);min-height:220px;max-height:56vh;overflow:auto}
.msg-bubble-row{display:flex;flex-direction:column;max-width:min(78%,620px)}
.msg-bubble-row.me{align-self:flex-end;align-items:flex-end}
.msg-bubble-row.them{align-self:flex-start;align-items:flex-start}
.msg-who{font-size:.72rem;font-weight:700;color:var(--muted-foreground);margin-bottom:3px}
.msg-bubble{padding:9px 13px;border-radius:0;font-size:.92rem;line-height:1.45;word-break:break-word}
.msg-bubble-row.them .msg-bubble{background:var(--muted);color:var(--foreground);border-radius:0}
.msg-bubble-row.me .msg-bubble{background:var(--primary);color:#fff;border-radius:0}
.msg-meta{font-size:.7rem;color:var(--muted-foreground);margin-top:3px}
.msg-reply{display:flex;gap:8px;align-items:flex-end;margin-top:12px}
.msg-reply-ta{flex:1;min-height:2.7rem;max-height:160px;border:1px solid var(--border-strong);border-radius:0;background:var(--card);font:inherit;font-size:.92rem;padding:.6rem .85rem;color:var(--foreground);resize:vertical;line-height:1.45}
.msg-reply-ta:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.msg-cat-select{width:100%;height:2.7rem;border:1px solid var(--border-strong);border-radius:0;background-color:var(--card);font-family:var(--sans);font-size:.92rem;padding:0 2.25rem 0 .85rem;color:var(--foreground)}
.msg-cat-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.side-count{margin-left:auto;min-width:1.15rem;height:1.15rem;padding:0 .32rem;border-radius:0;background:var(--primary);color:#fff;font-size:.68rem;font-weight:400;display:inline-grid;place-items:center}
.side-count[hidden]{display:none}
/* admin conversation view */
.adm-msgview-hd{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.adm-msg-thread{max-height:52vh}
.adm-clickrow{cursor:pointer}
.adm-clickrow.unread td:first-child{font-weight:700}
/* screenshot attachments — thumbnails in bubbles + the uploader widget */
.msg-atts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.msg-bubble-row.me .msg-atts{justify-content:flex-end}
.msg-atts a{display:block;line-height:0}
.msg-atts img{width:132px;height:99px;object-fit:cover;border-radius:0;border:1px solid var(--border);background:var(--muted)}
.ts-shots{margin:2px 0 2px}
.ts-shots .ts-shot-add{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;width:auto;justify-self:start}
.ts-shot-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ts-shot{position:relative}
.ts-shot img{width:96px;height:72px;object-fit:cover;border-radius:0;border:1px solid var(--border);display:block}
.ts-shot-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:0;border:1px solid var(--border);background:var(--card);color:var(--foreground);font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-sm,0 1px 2px rgba(0,0,0,.12))}
.ts-shot-x:hover{background:var(--muted)}
.ts-shot-msg{font-size:.8rem;color:var(--muted-foreground);margin-top:8px}
.ts-shot-msg.ts-form-err{color:var(--destructive,#dc2626)}
.ts-shot-msg:empty{display:none}

/* ===================== Profile · Insights tab ===================== */
.ins{display:flex;flex-direction:column;gap:18px}
.ins-hero{border:1px solid var(--border);border-radius:0;background:linear-gradient(135deg,rgba(124,58,237,.07),rgba(168,85,247,.02));padding:22px 24px}
.ins-hero-top{display:flex;align-items:center;gap:14px}
.ins-emoji{font-size:2.3rem;line-height:1}
.ins-hero-name{font-family:var(--display);font-weight:740;font-size:1.5rem;letter-spacing:-.02em}
.ins-hero-blurb{color:#44403c;line-height:1.55;margin:12px 0 0;max-width:64ch}
.ins-dna{margin-top:10px;font-size:.9rem;color:var(--muted-foreground)}
.ins-dna b{color:#6d28d9;font-weight:600}
.ins-traits{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:14px}
.ins-trait{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;padding:.28rem .62rem;border-radius:0;background:rgba(124,58,237,.1);color:#6d28d9}
.ins-stats{display:flex;flex-wrap:wrap;gap:.6rem}
.ins-stat{flex:1 1 120px;min-width:110px;border:1px solid var(--border);border-radius:0;padding:12px 14px;background:var(--card)}
.ins-stat-n{font-family:var(--display);font-weight:720;font-size:1.4rem;line-height:1.1}
.ins-stat-k{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);font-weight:700;margin-top:3px}
.ins-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.ins-card{border:1px solid var(--border);border-radius:0;background:var(--card);padding:18px 20px}
.ins-card-wide{grid-column:1/-1}
.ins-card-h{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground);font-weight:700;margin:0 0 12px}
.ins-card-sub{font-size:.85rem;color:var(--muted-foreground);margin-top:10px;line-height:1.5}
.ins-card-sub b{color:#6d28d9;font-weight:600}
.ins-row{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:.9rem}
.ins-row .rk{flex:0 0 1.1rem;color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.78rem}
.ins-row .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ins-row .lbl a{color:inherit;text-decoration:none}
.ins-row .lbl a:hover{color:var(--primary-strong)}
.ins-track{flex:0 0 34%;height:7px;border-radius:0;background:var(--muted);overflow:hidden}
.ins-fill{display:block;height:100%;border-radius:0;background:linear-gradient(90deg,#7c3aed,#a855f7)}
.ins-row .val{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--muted-foreground);font-size:.82rem;font-weight:600}
.ins-big{font-family:var(--display);font-weight:720;font-size:1.7rem;line-height:1.1}
.ins-gauge-track{position:relative;height:10px;border-radius:0;background:var(--muted);margin:14px 0 8px;overflow:hidden}
.ins-gauge-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0;background:linear-gradient(90deg,#c084fc,#6d28d9)}
.ins-gauge-ends{display:flex;justify-content:space-between;font-size:.74rem;color:var(--muted-foreground)}
.ins-catbar{display:flex;height:14px;border-radius:0;overflow:hidden;margin:4px 0 12px;background:var(--muted)}
.ins-catseg{height:100%}
.ins-catleg{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.8rem}
.ins-catleg span{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted-foreground)}
.ins-dot{width:.6rem;height:.6rem;border-radius:0;flex:none}
.ins-spark{display:flex;align-items:flex-end;gap:2px;height:56px;margin:4px 0 10px}
.ins-spark-b{flex:1 1 auto;min-width:2px;background:linear-gradient(180deg,#a855f7,#7c3aed);border-radius:0}
.ins-twonum{display:flex;gap:2rem;margin-top:2px}
/* 3-up card rows */
.ins-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.ins-cols3 .ins-card{display:flex;flex-direction:column}
.ins-cols3 .ins-spark{flex:1 1 auto}
@media(max-width:1024px){.ins-cols3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.ins-cols3{grid-template-columns:1fr}}
.ins-subsep{height:1px;background:var(--border);margin:16px 0}
.ins-catlabel{font-size:.8rem;font-weight:600;color:var(--muted-foreground);margin-bottom:8px}
/* full-width standout highlight */
.ins-standout-hero{display:flex;gap:22px;align-items:stretch;border:1px solid #e9d5ff;border-radius:0;background:linear-gradient(135deg,rgba(124,58,237,.07),rgba(168,85,247,.02));padding:20px 22px}
.ins-standout-img{flex:none;width:170px;align-self:stretch;min-height:160px;border-radius:0;overflow:hidden;background:#fff;border:1px solid var(--border);display:block;position:relative}
.ins-standout-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12px}
.ins-standout-body{min-width:0;display:flex;flex-direction:column;justify-content:center}
.ins-standout-nm{font-family:var(--display);font-weight:720;font-size:1.35rem;line-height:1.15;margin:2px 0 0}
.ins-standout-meta{display:flex;flex-wrap:wrap;gap:16px 48px;margin:14px 0 18px}
.ins-meta-f{display:flex;flex-direction:column;gap:3px}
.ins-meta-k{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);font-weight:700}
.ins-meta-v{font-size:.92rem;font-weight:560}
.ins-price-v{font-family:var(--display);font-weight:720;font-size:1.15rem;color:#6d28d9}
.ins-standout-body .btn{align-self:flex-start}
@media(max-width:560px){.ins-standout-hero{flex-direction:column;align-items:stretch}.ins-standout-img{width:100%;height:210px;align-self:auto}}
/* crossover band */
.ins-band{border:1px solid #e9d5ff;border-radius:0;background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(168,85,247,.02));padding:20px 22px}
.ins-band-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ins-band-title{font-family:var(--display);font-weight:720;font-size:1.25rem;letter-spacing:-.01em}
.ins-match{display:flex;align-items:center;gap:12px;flex:none}
.ins-match-big{font-family:var(--display);font-weight:760;font-size:2.7rem;line-height:1;color:#6d28d9}
.ins-match-max{font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--muted-foreground)}
.ins-match-meta{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.ins-match-cap{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);font-weight:700}
.ins-match-badge{font-size:.74rem;font-weight:700;color:#6d28d9;background:rgba(124,58,237,.12);border-radius:0;padding:.24rem .62rem}
.ins-xg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(max-width:640px){.ins-xg{grid-template-columns:1fr}}
.ins-xsec{border:1px solid var(--border);border-radius:0;background:var(--card);padding:14px 16px;min-width:0}
.ins-xsec-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.ins-xcount{font-size:.7rem;font-weight:700;background:rgba(124,58,237,.1);color:#6d28d9;border-radius:0;padding:.05rem .42rem;letter-spacing:0}
.ins-xmatch-nm{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--foreground);text-decoration:none;display:block}
a.ins-xmatch-nm:hover{color:var(--primary-strong)}
.ins-xmatch-sub{font-size:.82rem;color:var(--muted-foreground);margin-top:5px}
.ins-thread{color:#44403c;font-size:.92rem}
.ins-thread b{color:#6d28d9}
.ins-car-nav{margin-left:auto;display:flex;gap:6px}
.ins-car-arw{width:24px;height:24px;border-radius:0;border:1px solid var(--border);background:var(--card);cursor:pointer;display:grid;place-items:center;font-size:15px;line-height:1;color:var(--foreground);padding:0}
.ins-car-arw:hover{background:var(--muted);color:var(--primary-strong)}
.ins-car-arw[hidden]{display:none}
.ins-carousel{position:relative}
.ins-carousel-track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none}
.ins-carousel-track::-webkit-scrollbar{display:none}
/* fill the section width: 4 tiles per view (fewer stretch to fill, capped; more overflow → arrows) */
.ins-thumb{flex:1 0 calc((100% - 30px)/4);max-width:150px;min-width:0;text-decoration:none;color:inherit;scroll-snap-align:start}
.ins-thumb-img{display:block;width:100%;aspect-ratio:1/1;border-radius:0;overflow:hidden;background:#fff;border:1px solid var(--border);position:relative}
.ins-thumb-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8px}
.ins-thumb-nm{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.72rem;margin-top:6px;line-height:1.22;color:var(--muted-foreground)}

/* ===================== The Feed ===================== */
#feedRoot .page-head{margin-bottom:16px}
.feed-loading{color:var(--muted-foreground);padding:2.5rem 0;text-align:center}
.feed-empty{text-align:center;padding:3rem 1rem;border:1px dashed var(--border);border-radius:0;color:var(--muted-foreground)}
.feed-empty h3{margin:0 0 .4rem;color:var(--foreground)}
.feed-empty p{margin:0 0 1rem}
.feed-newwrap{position:sticky;top:76px;z-index:20;height:0;text-align:center}
.feed-new{position:relative;top:-4px;display:inline-flex;align-items:center;background:var(--primary);color:#fff;border-radius:0;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.feed-new[hidden]{display:none}
.feed-new-lbl{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:inherit;font:inherit;font-weight:600;font-size:.82rem;padding:.5rem .45rem .5rem 1rem;cursor:pointer;border-radius:0}
.feed-new-lbl svg{width:15px;height:15px}
.feed-new-lbl:hover{opacity:.92}
.feed-new-x{border:none;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;padding:.4rem .85rem .4rem .35rem;border-radius:0;opacity:.85}
.feed-new-x:hover{opacity:1}
/* infinite-scroll sentinel spinner */
.feed-more{min-height:1px}
.feed-spin{display:flex;justify-content:center;gap:6px;padding:22px 0}
.feed-spin span{width:8px;height:8px;border-radius:0;background:var(--border-strong);animation:feedSpin 1s infinite ease-in-out}
.feed-spin span:nth-child(2){animation-delay:.15s}
.feed-spin span:nth-child(3){animation-delay:.3s}
@keyframes feedSpin{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.feed-layout{display:grid;grid-template-columns:minmax(0,680px) 320px;gap:28px;align-items:start;justify-content:center}
.feed-main{min-width:0}
@media(max-width:960px){.feed-layout{grid-template-columns:minmax(0,680px);justify-content:center}.feed-rail{display:none}}
/* composer */
.card.composer{margin-bottom:16px;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:0}
.cmp-top{display:flex;gap:12px;align-items:center}
.cmp-open{flex:1;text-align:left;background:var(--muted);border:none;border-radius:0;padding:.7rem 1rem;color:var(--muted-foreground);font:inherit;font-size:.95rem;cursor:pointer}
.cmp-open:hover{background:var(--border)}
.cmp-ta-wrap{position:relative;flex:1;min-width:0;display:flex}
.cmp-ta{flex:1;width:100%;border:none;background:transparent;font:inherit;font-size:1.05rem;resize:none;min-height:3.4rem;color:var(--foreground);outline:none;padding:.4rem 2.2rem .2rem 0}
.cmp-ta-emoji{position:absolute;right:2px;bottom:2px;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;width:30px;height:30px;border-radius:0;display:grid;place-items:center;padding:0}
.cmp-ta-emoji:hover{background:var(--muted);color:var(--foreground)}
.cmp-ta-emoji svg{width:19px;height:19px}
.cmp-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.cmp-tool{display:inline-flex;align-items:center;gap:.4rem;border:none;background:transparent;border-radius:0;padding:.5rem .7rem;font:inherit;font-size:.88rem;font-weight:560;color:var(--muted-foreground);cursor:pointer}
.cmp-tool:hover{background:var(--muted);color:var(--foreground)}
.cmp-tool.on{background:rgba(255,77,46,.1);color:var(--primary-strong)}
.cmp-ic{font-size:1rem;line-height:1}
.cmp-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--muted);border-radius:0;padding:.3rem .35rem .3rem .7rem;font-size:.85rem;margin-top:8px}
.cmp-chipx{border:none;background:transparent;cursor:pointer;font-size:1.1rem;line-height:1;color:var(--muted-foreground)}
.cmp-feelings{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cmp-feelings[hidden]{display:none}
.cmp-feel{border:1px solid var(--border);background:var(--card);border-radius:0;padding:.3rem .7rem;font:inherit;font-size:.85rem;cursor:pointer}
.cmp-feel:hover{background:var(--muted)}
.cmp-row{display:flex;align-items:center;gap:.5rem;margin-top:10px}
.cmp-input{width:100%;border:1px solid var(--border-strong);border-radius:0;padding:.55rem .8rem;font:inherit;font-size:.92rem;background:var(--card);color:var(--foreground)}
.cmp-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.cmp-imgs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cmp-img{position:relative;width:92px;height:92px;border-radius:0;overflow:hidden;border:1px solid var(--border);background:#fff}
.cmp-img img{width:100%;height:100%;object-fit:cover}
.cmp-imgx{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:0;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center}
.cmp-img-add{width:92px;height:92px;border-radius:0;border:1.5px dashed var(--border-strong);background:transparent;color:var(--muted-foreground);font-size:1.6rem;font-weight:300;cursor:pointer;display:grid;place-items:center}
.cmp-img-add:hover{border-color:var(--primary);color:var(--primary)}
.cmp-poll{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:0}
.cmp-addopt{align-self:flex-start;border:none;background:transparent;color:var(--primary-strong);font:inherit;font-weight:600;font-size:.85rem;cursor:pointer;padding:.2rem 0}
.cmp-foot{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:12px}
.cmp-msg{margin-right:auto;font-size:.82rem;color:var(--muted-foreground)}
.cmp-msg.err{color:var(--ts-error)}
/* emoji picker — one floating popover shared by the composer + comment box */
.emoji-pop{position:fixed;z-index:300;width:320px;max-height:288px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 14px 44px rgba(0,0,0,.24);padding:10px}
.emoji-pop[hidden]{display:none}
.emoji-cat{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);font-weight:700;margin:10px 4px 5px}
.emoji-cat:first-child{margin-top:0}
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}
.emoji-cell{border:none;background:transparent;cursor:pointer;font-size:1.2rem;line-height:1;padding:6px 0;border-radius:0}
.emoji-cell:hover{background:var(--muted)}
.fi-emojibtn{border:none;background:transparent;cursor:pointer;font-size:1.15rem;line-height:1;padding:.35rem .45rem;border-radius:0;flex:none}
.fi-emojibtn:hover{background:var(--muted)}
/* :shortcode autocomplete dropdown */
.emoji-auto{position:fixed;z-index:320;max-height:232px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 12px 34px rgba(0,0,0,.2);padding:5px}
.emoji-auto[hidden]{display:none}
.ea-item{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;cursor:pointer;font:inherit;font-size:.86rem;color:var(--foreground);padding:.4rem .55rem;border-radius:0;text-align:left}
.ea-item.active,.ea-item:hover{background:var(--muted)}
.ea-em{font-size:1.15rem;line-height:1;width:1.5em;text-align:center;flex:none}
.ea-code{color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* @-mention autocomplete rows */
.ma-item{gap:8px}
.ma-av{width:26px;height:26px;border-radius:0;object-fit:cover;flex:none;background:var(--muted)}
.ma-av-ph{display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--muted-foreground);text-transform:uppercase}
.ma-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.ma-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ma-sub{color:var(--muted-foreground);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ma-type{flex:none;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border);border-radius:0;padding:1px 7px}
/* rendered mention links in posts/comments */
.fi-mention{color:var(--primary-strong);font-weight:600;text-decoration:none}
.fi-mention:hover{text-decoration:underline}
/* hover preview popover for a mentioned user/platform/maker/artist */
.mention-pop{position:fixed;z-index:400;width:280px;max-width:calc(100vw - 16px);background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 14px 40px rgba(0,0,0,.18);overflow:hidden;animation:mpFade .12s ease-out}
.mention-pop[hidden]{display:none}
@keyframes mpFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.mp-inner{display:block;padding:13px 14px;text-decoration:none;color:var(--foreground)}
.mp-inner-na{cursor:default}
.mp-head{display:flex;align-items:center;gap:11px}
.mp-av{width:42px;height:42px;border-radius:0;object-fit:cover;flex:none;background:var(--muted)}
.mp-av-round{border-radius:50%}
.mp-av-ph{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:var(--muted-foreground);text-transform:uppercase}
.mp-txt{min-width:0}
.mp-name{font-weight:700;font-size:.95rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-sub{color:var(--muted-foreground);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* user hover card: @handle is the primary line, display name secondary in Space Mono caps */
.mp-user .mp-name{font-size:1rem}
.mp-user .mp-sub{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;font-weight:400;font-size:.7rem;margin-top:1px}
.mp-desc{margin-top:9px;color:var(--muted-foreground);font-size:.82rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mp-cta{margin-top:11px;font-size:.78rem;font-weight:600;color:var(--primary-strong)}
.mp-inner:hover .mp-cta{text-decoration:underline}
.mp-load{padding:16px 14px;color:var(--muted-foreground);font-size:.85rem}
/* filters */
.feed-filters{display:flex;gap:24px;border-bottom:1px solid var(--border);margin-bottom:18px}
.feed-chip{font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:400;color:var(--text-subtle);background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:0 0 12px;margin-bottom:-1px;cursor:pointer;transition:color var(--dur-fast)}
.feed-chip:hover{color:var(--text-primary)}
.feed-chip.active{color:var(--text-primary);border-bottom-color:var(--accent)}
/* feed buttons: Space Mono UPPERCASE (Follow, Browse the Database, Post/Cancel, empty-state) */
#feedRoot .btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;font-weight:400}
/* feed items as cards */
.feed-list{display:flex;flex-direction:column;gap:14px}
.feed-item{position:relative;background:var(--card);border:1px solid var(--border);border-radius:0;padding:16px 18px}
/* per-post 3-dot options menu */
.feed-item.fi-post .fi-head{padding-right:26px}
.fi-menu-wrap{position:absolute;top:12px;right:12px;z-index:30}
.fi-menu-btn{border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;width:30px;height:30px;border-radius:0;display:grid;place-items:center;padding:0}
.fi-menu-btn:hover{background:var(--muted);color:var(--foreground)}
.fi-menu-btn svg{width:18px;height:18px}
.fi-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:168px;background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:0 12px 34px rgba(0,0,0,.18);padding:6px}
.fi-menu[hidden]{display:none}
.fi-menu-item{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;cursor:pointer;font:inherit;font-size:.9rem;font-weight:500;color:var(--foreground);padding:.55rem .6rem;border-radius:0;text-align:left}
.fi-menu-item:hover{background:var(--muted)}
.fi-menu-item svg{width:16px;height:16px;flex:none;opacity:.85}
.fi-menu-item.danger{color:var(--ts-error)}
.fi-menu-item.danger:hover{background:rgba(214,31,31,.09)}
/* report modal link line (reuses the shared .ts-dialog / .ts-form styles) */
.rep-link{display:flex;flex-direction:column;gap:3px;background:var(--muted);border-radius:0;padding:8px 12px;margin:2px 0 14px;font-size:.85rem;word-break:break-all}
.rep-link-lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);font-weight:700}
.rep-link a{color:var(--primary-strong);text-decoration:none}
.rep-link a:hover{text-decoration:underline}
.fi-hd{display:flex;gap:12px;align-items:flex-start}
.fi-avwrap{position:relative;flex:none}
.fi-av{display:block;width:44px;height:44px;border-radius:0;overflow:hidden;background:var(--muted);color:var(--muted-foreground)}
.fi-av.sq{border-radius:0;background:#fff;border:1px solid var(--border)}
.fi-av.sm{width:34px;height:34px}
.fi-av img{width:100%;height:100%;object-fit:cover}
.fi-av.sq img{object-fit:contain;padding:6px}
/* feed: official Toy Syndicate posts (staff posting from the TS profile) */
.fi-av-ts{display:flex;align-items:center;justify-content:center;background:#fff;color:#000;border:1px solid var(--border);border-radius:0}
.fi-av-ts svg{width:100%;height:100%}
.fi-ts-name{font-weight:800}
.fi-official-chip{display:inline-block;margin-left:2px;padding:.08rem .48rem;border-radius:0;background:var(--primary);color:#fff;font-size:.64rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;vertical-align:1px}
.feed-item.fi-featured{border-color:#1c1917;background:#1c1917;box-shadow:0 10px 26px rgba(28,25,23,.25)}
.feed-item.fi-featured .fi-av-ts{border-color:transparent}
.feed-item.fi-featured .fi-kic{color:var(--primary)}
.feed-item.fi-featured .fi-who,.feed-item.fi-featured .fi-ts-name{color:#fff}
.feed-item.fi-featured .fi-postmeta,.feed-item.fi-featured .fi-time{color:rgba(255,255,255,.6)}
.feed-item.fi-featured .fi-posttext{color:#f5f5f4;font-family:var(--mono);font-weight:400;font-size:.94rem;line-height:1.62}
.feed-item.fi-featured .fi-mention{color:var(--ts-signal-400)}
.feed-item.fi-featured .fi-menu-btn{color:rgba(255,255,255,.65)}
.feed-item.fi-featured .fi-bar{border-top-color:rgba(255,255,255,.14)}
.feed-item.fi-featured .fi-stat{color:rgba(255,255,255,.62)}
.feed-item.fi-featured .fi-stat.fi-like.on{color:var(--primary)}
.feed-item.fi-featured .fi-engav,.feed-item.fi-featured .fi-engmore{border-color:#1c1917}
.feed-item.fi-featured .fi-engmore{background:rgba(255,255,255,.16);color:rgba(255,255,255,.78)}
.feed-item.fi-featured .fi-poll-q{color:#fff}
.feed-item.fi-featured .fi-poll-opt{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#f5f5f4}
.feed-item.fi-featured .fi-poll-opt:hover{border-color:rgba(255,255,255,.34)}
.feed-item.fi-featured .fi-poll-opt.mine{border-color:var(--primary)}
.feed-item.fi-featured .fi-poll-fill{background:rgba(255,77,46,.26)}
.feed-item.fi-featured .fi-poll-pct,.feed-item.fi-featured .fi-poll-total{color:rgba(255,255,255,.6)}
/* feed composer: staff identity switcher */
.cmp-as{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.cmp-as-lbl{font-size:.78rem;color:var(--muted-foreground);font-weight:600}
.cmp-as-opt{display:inline-flex;align-items:center;gap:.35rem;padding:.26rem .7rem;border-radius:0;border:1px solid var(--border);background:var(--card);font-size:.8rem;font-weight:600;cursor:pointer;color:var(--muted-foreground)}
.cmp-as-opt svg{width:14px;height:14px}
.cmp-as-opt.on{border-color:var(--primary);color:var(--primary);background:#fff7f5}
.composer.cmp-official{border-color:#1c1917}
.fi-ini{display:grid;place-items:center;width:100%;height:100%;font-weight:700;font-size:.9rem}
.fi-kic{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:0;background:var(--card);border:1px solid var(--border);display:grid;place-items:center;color:var(--muted-foreground)}
.fi-kic svg{width:12px;height:12px}
/* kind badges stay monochrome (DS: B&W + single accent) — the glyph differentiates, not colour */
.fi-head{flex:1;min-width:0;line-height:1.5;font-size:.94rem;padding-top:2px}
.fi-who{font-weight:640;color:var(--primary-strong);text-decoration:none}
.fi-who:hover{text-decoration:underline}
.fi-obj{font-weight:560;color:var(--foreground);text-decoration:none}
.fi-obj:hover{color:var(--primary-strong)}
.fi-postmeta{color:var(--muted-foreground);font-weight:400}
.fi-time{color:var(--muted-foreground);font-weight:400;font-size:.85rem;white-space:nowrap}
.fi-media{margin-top:10px;padding-left:56px}
.feed-item[data-kind=post] .fi-media{padding-left:0}
.fi-posttext{font-size:1rem;line-height:1.55;color:var(--foreground);white-space:pre-wrap;word-break:break-word}
/* Official (Toy Syndicate) post body: block layout with generous spacing + bold + bullets */
.fi-posttext.fi-ob{white-space:normal}
.fi-ob .fi-ob-p{margin:0}
.fi-ob .fi-ob-p + .fi-ob-p,
.fi-ob .fi-ob-p + .fi-ob-list,
.fi-ob .fi-ob-list + .fi-ob-p{margin-top:1rem}
.fi-ob .fi-ob-list{margin:.5rem 0 0;padding-left:1.3rem;list-style:disc}
.fi-ob .fi-ob-list li{margin:.5rem 0}
.fi-ob .fi-ob-list li::marker{color:var(--primary)}
.fi-ob strong{font-weight:700}
.feed-item.fi-featured .fi-ob strong{color:#fff}
.feed-item.fi-featured .fi-ob .fi-ob-list li::marker{color:var(--ts-signal-400)}
.fi-toy{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:0;padding:8px 14px 8px 8px;text-decoration:none;color:inherit;max-width:100%}
.fi-toy:hover{border-color:var(--border-strong);background:var(--muted)}
.fi-toy-img{flex:none;width:52px;height:52px;border-radius:0;overflow:hidden;background:#fff;border:1px solid var(--border);position:relative}
.fi-toy-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:5px}
.fi-toy-nm{font-size:.88rem;font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fi-photo{display:block;border-radius:0;overflow:hidden;position:relative;max-width:460px}
.fi-photo img{width:100%;display:block;max-height:380px;object-fit:cover}
.fi-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.62));color:#fff;font-size:.82rem;line-height:1.35}
/* post images */
.fi-images{display:grid;gap:4px;margin-top:10px;border-radius:0;overflow:hidden;cursor:pointer;max-width:100%}
.fi-images.n2,.fi-images.n3{grid-template-columns:1fr 1fr}
.fi-image{position:relative;background:var(--muted);aspect-ratio:1/1}
.fi-images.n1 .fi-image{aspect-ratio:auto}
.fi-image img{width:100%;height:100%;object-fit:cover;display:block}
.fi-images.n1 .fi-image img{max-height:480px;height:auto}
.fi-imore{position:absolute;inset:0;background:rgba(0,0,0,.5);color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:700}
/* poll */
.fi-poll{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-width:520px}
.fi-poll-q{font-weight:640;font-size:.95rem}
.fi-poll-opt{position:relative;text-align:left;border:1px solid var(--border);background:var(--card);border-radius:0;padding:.6rem .8rem;font:inherit;font-size:.9rem;cursor:pointer;overflow:hidden;display:flex;justify-content:space-between;gap:10px}
.fi-poll-opt:hover{border-color:var(--border-strong)}
.fi-poll-opt.mine{border-color:var(--primary)}
.fi-poll-fill{position:absolute;left:0;top:0;bottom:0;background:rgba(255,77,46,.12);z-index:0;transition:width .3s}
.fi-poll-lbl,.fi-poll-pct{position:relative;z-index:1}
.fi-poll-pct{color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.fi-poll-total{font-size:.8rem;color:var(--muted-foreground)}
/* engagement — small summary, full-bleed divider, compact action bar */
.fi-eng{margin:12px -18px -16px}
.fi-sum{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted-foreground);padding:2px 18px 8px}
.fi-sum-r{display:inline-flex;align-items:center;gap:5px;margin-right:auto}
.fi-heartbadge{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:0;background:var(--primary);color:#fff}
.fi-heartbadge svg{width:11px;height:11px}
.fi-sum-c{border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;font:inherit;font-size:.82rem;margin-left:auto}
.fi-sum-c:hover{text-decoration:underline}
.fi-actions{display:flex;gap:2px;border-top:1px solid var(--border);padding:4px 8px}
.fi-actbtn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;background:transparent;border-radius:0;padding:.45rem;font:inherit;font-size:.86rem;font-weight:600;color:var(--muted-foreground);cursor:pointer}
.fi-actbtn svg{width:17px;height:17px}
.fi-actbtn:hover{background:var(--muted);color:var(--foreground)}
.fi-actbtn.fi-like.on{color:var(--primary-strong)}
/* detail / comments modal */
.fm-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px}
.fm-scrim{position:fixed;inset:0;background:rgba(12,10,9,.55)}
.fm-modal{position:relative;background:var(--card);border-radius:0;width:100%;max-width:560px;max-height:calc(100vh - 80px);display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.3);overflow:hidden}
.fm-head{display:flex;align-items:center;justify-content:center;position:relative;padding:14px;border-bottom:1px solid var(--border);font-weight:700}
.fm-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:0;border:none;background:var(--muted);color:var(--foreground);font-size:20px;line-height:1;cursor:pointer}
.fm-x:hover{background:var(--border)}
.fm-body{position:relative;overflow:auto;padding:16px 18px 8px}
.fm-body .fi-media,.fm-body .fi-hd{padding-left:0}
.fm-body .fi-head{padding-right:26px}
.fm-body .fi-media{padding-left:0}
.fm-media .fi-photo,.fm-media .fi-images,.fm-media .fi-poll{max-width:none}
.fm-body .fi-eng{margin:12px 0 0}
.fm-body .fi-sum{padding-left:0;padding-right:0}
.fm-body .fi-actions{padding-left:0;padding-right:0}
.fm-comments{padding-top:12px;display:flex;flex-direction:column;gap:12px}
.fi-cnone,.fi-cload{color:var(--muted-foreground);font-size:.86rem;padding:6px 0}
.fi-comment{display:flex;gap:8px;align-items:flex-start}
.fi-cbubble{background:var(--muted);border-radius:0;padding:8px 12px;font-size:.9rem;line-height:1.45;min-width:0;max-width:100%}
.fi-cname{display:block;font-weight:640;font-size:.82rem;color:var(--primary-strong);text-decoration:none}
.fi-cname:hover{text-decoration:underline}
.fi-ctext{color:var(--foreground);word-break:break-word}
.fi-ctime{align-self:center;font-size:.72rem;color:var(--muted-foreground);white-space:nowrap;flex:none}
.fm-form{display:flex;gap:8px;align-items:flex-start;padding:12px 18px;border-top:1px solid var(--border)}
/* comment box: text on top, emoji + send inline inside the field (icons within the writing experience) */
.fi-cbox{flex:1;min-width:0;border:1px solid var(--border-strong);border-radius:0;background:var(--card)}
.fi-cbox:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.fi-cinput{width:100%;border:none;background:transparent;padding:10px 14px 4px;font:inherit;font-size:.92rem;color:var(--foreground)}
.fi-cinput:focus{outline:none}
.fi-cbar{display:flex;align-items:center;gap:2px;padding:2px 8px 6px}
.fi-cicon{border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;width:30px;height:30px;border-radius:0;display:grid;place-items:center;padding:0}
.fi-cicon:hover{background:var(--muted);color:var(--foreground)}
.fi-cicon svg{width:19px;height:19px}
.fi-csend{margin-left:auto;border:none;background:transparent;color:var(--primary-strong);cursor:pointer;width:32px;height:32px;border-radius:0;display:grid;place-items:center;padding:0}
.fi-csend:hover{background:rgba(255,77,46,.12)}
.fi-csend svg{width:19px;height:19px}
.feed-more-wrap{text-align:center;padding:22px 0}
/* rail */
.feed-rail{position:sticky;top:84px}
.rail-card{border:1px solid var(--border);border-radius:0;background:var(--card);padding:16px}
.rail-card + .rail-card{margin-top:14px}
.rail-h{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-weight:400;margin-bottom:12px}
.rail-row{display:flex;align-items:center;gap:10px;margin:10px 0}
.rail-nm{flex:1;min-width:0;font-size:.9rem;font-weight:600;color:var(--primary-strong);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-nm:hover{text-decoration:underline}
.rail-follow{flex:none}
.rail-net{display:flex;gap:1.4rem}
.rail-net > div{display:flex;flex-direction:column}
.rail-net b{font-family:var(--mono);font-weight:400;font-size:1.45rem;line-height:1.1;letter-spacing:-.02em}
.rail-net span{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);font-weight:400;margin-top:2px}
/* placeholder announcement slots — skeleton squares below Your network */
.rail-ann{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.rail-ann-box{width:100%;min-height:72px;border-radius:0;display:grid;place-items:center;background:var(--muted)}
.rail-ann-lbl{font-family:var(--mono);font-size:.58rem;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;font-weight:400;color:var(--muted-foreground);opacity:.45;text-align:center;padding:0 4px}
.fi-fresh{animation:fiFresh 2.2s ease}
@keyframes fiFresh{0%{background:rgba(255,77,46,.12)}100%{background:var(--card)}}
/* FB-style compact stats bar (heart+count · comment+count · engager avatars) */
.fi-bar{display:flex;align-items:center;gap:16px;margin:12px -18px -16px;padding:9px 18px;border-top:1px solid var(--border)}
.fi-stat{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;color:var(--muted-foreground);padding:.15rem;line-height:1}
.fi-stat svg{width:20px;height:20px}
.fi-stat:hover{color:var(--foreground)}
.fi-stat.fi-like.on{color:var(--primary-strong)}
.fi-engavatars{margin-left:auto;display:flex;align-items:center;padding-left:6px}
.fi-engav{width:26px;height:26px;border-radius:0;overflow:hidden;border:2px solid var(--card);background:var(--muted);margin-left:-8px;flex:none}
.fi-engav:first-child{margin-left:0}
.fi-engav img{width:100%;height:100%;object-fit:cover}
.fi-engav .fi-ini{font-size:.62rem}
.fi-engmore{margin-left:-8px;min-width:26px;height:26px;padding:0 6px;border-radius:0;border:2px solid var(--card);background:var(--muted);color:var(--muted-foreground);font-size:.72rem;font-weight:700;display:grid;place-items:center;flex:none}
.fm-body .fi-bar{margin:12px 0 0;padding-left:0;padding-right:0}
/* single-activity card: picture left, name + artist right */
.fi-bigcard{display:flex;align-items:stretch;min-height:132px;border:1px solid var(--border);border-radius:0;overflow:hidden;text-decoration:none;color:inherit;max-width:100%;background:var(--card)}
.fi-bigcard:hover{border-color:var(--border-strong)}
.fi-bigcard-img{flex:none;position:relative;width:140px;background:#fff;border-right:1px solid var(--border)}
.fi-bigcard-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12px}
.fi-bigcard-bd{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:16px 20px}
.fi-bigcard-nm{font-weight:660;font-size:1.05rem;line-height:1.32;overflow-wrap:anywhere;word-break:break-word}
.fi-bigcard-artist{font-size:.9rem;color:var(--muted-foreground);line-height:1.3;overflow-wrap:anywhere;word-break:break-word}
.fm-media .fi-bigcard{max-width:none}
@media(max-width:560px){
  .fi-media{padding-left:0}
  .fi-bigcard{min-height:112px}
  .fi-bigcard-img{width:104px}
  .fi-bigcard-bd{padding:14px}
}
.fi-toys{display:flex;flex-wrap:wrap;gap:8px}
.fi-toymore{align-self:stretch;min-width:96px;border:1px dashed var(--border-strong);border-radius:0;background:var(--muted);color:var(--muted-foreground);font:inherit;font-weight:600;font-size:.85rem;cursor:pointer;padding:0 14px}
.fi-toymore:hover{background:var(--border);color:var(--foreground)}
/* utility row under a record: request-an-update / mute-updates */
.pg-utility{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px;padding-top:14px;border-top:1px solid var(--border)}
.pg-utility button{background:none;border:none;cursor:pointer;font:inherit;font-size:.85rem;color:var(--muted-foreground);display:inline-flex;align-items:center;gap:.4rem;padding:0}
.pg-utility button:hover{color:var(--foreground)}
.pg-utility button[hidden]{display:none}
.pg-utility svg{flex:none}
/* admin: update-request diff (proposed next to current) */
.adm-con-diff td{background:var(--surface)}
.adm-diff-table{margin:0}
.adm-diff-table td,.adm-diff-table th{font-size:.85rem}
/* editor: multi-checkbox vocabulary field (sub-classification, material) */
.aed-checks{display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px 16px;padding:2px 0}
.aed-checks .aed-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer;height:auto;line-height:1.3;padding:.12rem 0}
.aed-checks input[type="checkbox"]{width:1rem;height:1rem;accent-color:var(--primary);cursor:pointer}
/* changelog page */
.chlog{max-width:860px}
.chlog-ver{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:44px 0 4px;padding-top:30px;border-top:1px solid var(--border)}
.chlog-ver.first{margin-top:8px;border-top:none;padding-top:0}
.chlog-ver h2{margin:0;font-size:1.3rem}
.chlog-ver .nm{color:var(--muted-foreground);font-weight:500;font-size:1.02rem}
.chlog-ver .d{margin-left:auto;color:var(--muted-foreground);font-size:.82rem;font-variant-numeric:tabular-nums}
.chlog-sec{margin:16px 0 2px;font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-foreground)}
.chlog ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.chlog li{padding-left:18px;position:relative;font-size:.92rem;line-height:1.5}
.chlog li::before{content:"";position:absolute;left:4px;top:.55em;width:6px;height:6px;border-radius:0;background:var(--border-strong)}
.chlog ul.new li::before{background:var(--primary)}
.chlog ul.imp li::before{background:#6366f1}
.chlog ul.fix li::before{background:#f59e0b}
/* Generated (data-driven) changelog: admin toolbar, Public/Private tabs, editable draft */
.chlog-tabs{margin:0 0 18px}
.chlog-admin{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px;padding:14px 16px;border:1px solid var(--border);background:var(--muted)}
.chlog-admin-hint{font-size:.8rem;color:var(--muted-foreground);flex:1 1 220px;min-width:0}
.chlog-admin-msg{font-size:.82rem;color:var(--muted-foreground)}
.chlog-admin-msg.ts-form-err{color:#b91c1c}
.chlog-gen{max-width:860px}
.chlog-gen ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.chlog-gen li{padding-left:18px;position:relative;font-size:.92rem;line-height:1.5}
.chlog-gen li::before{content:"";position:absolute;left:4px;top:.55em;width:6px;height:6px;background:var(--border-strong)}
.chlog-rel.is-draft{border:1px dashed var(--border-strong);padding:0 16px 16px;margin-top:20px;background:rgba(255,59,14,.03)}
.chlog-rel.is-draft .chlog-ver{border-top:none;padding-top:24px;margin-top:0}
.chlog-none{color:var(--muted-foreground);font-size:.9rem;margin:10px 0 0}
.chlog-gen li.cl-item{padding-left:0;display:flex;align-items:flex-start;gap:8px}
.chlog-gen li.cl-item::before{display:none}
.cl-item-text{flex:1 1 auto;min-width:0;font:inherit;font-size:.9rem;padding:6px 9px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}
.cl-vis{flex:none;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:5px 9px;border:1px solid var(--border);background:var(--card);cursor:pointer}
.cl-vis.is-pub{background:#15803d;color:#fff;border-color:#15803d}
.cl-vis.is-int{background:var(--muted);color:var(--muted-foreground)}
.cl-rm{flex:none;width:28px;height:28px;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;line-height:1}
.cl-rm:hover{border-color:#b91c1c;color:#b91c1c}
/* "Feature this item" star toggle (draft editor) */
.cl-feat{flex:none;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;line-height:1}
.cl-feat .ph,.cl-feat .ph-fill{font-size:15px}
.cl-feat:hover{border-color:var(--accent);color:var(--accent)}
.cl-feat.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
/* featured highlight — draft editor row + published list item */
.chlog-gen li.cl-item.cl-featured{background:rgba(255,59,14,.06);box-shadow:inset 3px 0 0 var(--accent);padding-left:8px;margin-left:-8px}
li.cl-featured .cl-title{color:var(--accent-strong,var(--accent))}
.cl-feat-star{color:var(--accent);font-size:.85em;vertical-align:baseline}
.cl-draft-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.cl-draft-meta{display:flex;gap:8px;flex:1 1 260px;min-width:0}
.cl-ver{flex:0 1 130px;min-width:0;font:inherit;font-size:.88rem;padding:6px 9px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}
.cl-name{flex:1 1 160px;min-width:0;font:inherit;font-size:.88rem;padding:6px 9px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}
.cl-draft-btns{display:flex;gap:8px;flex:none;margin-left:auto}
/* generated changelog items: category-colored bullets (feature=orange, improvement=blue, fix=yellow) + bold title + muted short description */
.chlog-gen ul.new li::before{background:var(--primary)}
.chlog-gen ul.imp li::before{background:#6366f1}
.chlog-gen ul.fix li::before{background:#f59e0b}
.chlog-gen .cl-title{font-weight:700}
.chlog-gen .cl-desc{color:var(--muted-foreground)}
/* proper padding + divider between generated release sections, matching the static entries */
.chlog-gen .chlog-rel:not(.is-draft){margin-top:40px;padding-top:34px;border-top:1px solid var(--border)}
.chlog-gen .chlog-rel:not(.is-draft):first-child{margin-top:6px;padding-top:0;border-top:none}
.chlog-gen .chlog-rel:not(.is-draft) .chlog-ver{margin:0 0 4px;padding-top:0;border-top:none}
/* editable draft item: stacked title + short-description inputs */
.cl-item-fields{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px}
.cl-item-fields .cl-item-text{flex:none;font-weight:600}
.cl-item-desc{font:inherit;font-size:.85rem;padding:6px 9px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}
/* orange "Generate changelog" primary button (the one accent action in the changelog admin bar) */
.chlog-admin .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.chlog-admin .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}

/* ---- Shareable profile card (Instagram-Stories) ---- */
.pf-cover-act{display:flex;gap:8px;align-items:center}
.pf-share{display:inline-flex;align-items:center;gap:.4rem}
/* Share card = black modal + slideshow picker on ALL sizes; mobile adds full-screen */
.share-modal{width:min(420px,92vw);max-height:90vh;background:#000;color:#fff;border:0}
.share-modal .cmodal-head{border-bottom-color:rgba(255,255,255,.08)}
.share-modal .cmodal-head h3{color:#fff}
.share-modal .cmodal-x{color:rgba(255,255,255,.7)}
.share-modal .cmodal-body{display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:2px 18px 16px}
.share-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;margin:6px 0 10px}
.share-preview{width:auto;height:auto;max-width:100%;max-height:100%;border-radius:0;box-shadow:0 20px 54px -16px rgba(0,0,0,.8);background:#000;display:block}
.share-spin{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:rgba(255,255,255,.6);font-size:.9rem}
.sc-styles{display:none}
.sc-export{display:none}
.sc-slidenav{display:flex;flex:none;align-items:center;justify-content:center;gap:14px;margin:0 0 10px}
.sc-name{font-family:var(--display);font-weight:700;font-size:1.08rem;letter-spacing:.02em;min-width:140px;text-align:center;color:#fff}
.sc-arrow{background:none;border:0;cursor:pointer;font-size:1.8rem;line-height:1;width:44px;height:44px;border-radius:0;color:#fff;opacity:.7;transition:opacity .12s,background .12s;-webkit-tap-highlight-color:transparent}
.sc-arrow:hover{opacity:1;background:rgba(255,255,255,.1)}
.sc-arrow:active{opacity:1;background:rgba(255,255,255,.16)}
.sc-dots{display:flex;flex:none;align-items:center;justify-content:center;gap:7px;padding-bottom:14px;flex-wrap:wrap}
.sc-dot{width:7px;height:7px;border-radius:0;border:0;padding:0;background:rgba(255,255,255,.28);cursor:pointer;transition:transform .15s,background .15s;-webkit-tap-highlight-color:transparent}
.sc-dot.active{background:#fff;transform:scale(1.35)}
.sc-actrow{display:flex;gap:10px;margin-top:10px}
.sc-actrow .btn{flex:1;width:auto}
.share-actions{flex:none;display:flex;flex-direction:column;gap:10px}
.share-actions .btn{justify-content:center}
.sc-primary{height:3.1rem;font-size:1rem}
.share-actions .btn-outline{background:transparent;border-color:rgba(255,255,255,.28);color:#fff;height:2.85rem}
/* Refreshed brand: share CTAs + style-name use the Space Mono all-caps label treatment */
.share-actions .btn,.share-modal .sc-actrow .btn{font-family:"Space Mono",ui-monospace,monospace;font-weight:400;text-transform:uppercase;letter-spacing:.08em}
.share-actions .sc-primary{font-size:.9rem}
.share-modal .sc-name{font-family:"Space Mono",ui-monospace,monospace;font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.82rem}
.share-hint{display:none}

/* ============================================================================
   iOS / mobile app layer  — MOBILE ONLY (<=980px). Desktop is untouched.
   Native-app patterns: safe areas, bottom tab bar, touch feel, standalone.
   ============================================================================ */
:root{ --tabbar-h:60px }

/* Global, desktop-safe touch niceties */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100% }
@media (hover:none){
  a,button,.btn,.side-nav a,.tab,[role=button]{ -webkit-tap-highlight-color:transparent }
  .btn:active,.side-nav a:active,.tab:active,.chip:active{ opacity:.6 }
}
/* Standalone (installed to Home Screen / wrapped): treat drags as app-like */
html.is-standalone,html.is-standalone body{ overscroll-behavior-y:none }
html.is-standalone{ -webkit-user-select:none; user-select:none }
html.is-standalone input,html.is-standalone textarea,html.is-standalone [contenteditable]{ -webkit-user-select:text; user-select:text }

/* Bottom tab bar — created by app.js, shown only on mobile app-shell pages when signed in */
.tabbar{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:65;
  height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));
  padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px);
  border-top:1px solid var(--border); box-shadow:0 -1px 12px rgba(28,25,23,.06) }
.tabbar a{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  text-decoration:none; color:var(--muted-foreground); font-size:.56rem; font-weight:600; letter-spacing:.01em;
  padding:8px 2px 4px; touch-action:manipulation; position:relative; -webkit-tap-highlight-color:transparent }
.tabbar a svg{ width:24px; height:24px; flex:none }
.tabbar a .tab-lbl{ line-height:1; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.tabbar a.active{ color:var(--primary-strong) }
.tabbar a:active{ opacity:.5 }
.tabbar .tab-dot{ position:absolute; top:4px; left:calc(50% + 7px); width:9px; height:9px; border-radius:0;
  background:var(--primary); border:1.5px solid #fff; display:none }
.tabbar .tab-dot.on{ display:block }

@media(max-width:980px){
  /* show the tab bar for signed-in users; keep the hamburger drawer as the "More" surface */
  body.signed-in .tabbar{ display:flex }
  body.signed-in .content{ padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom)) }
  /* the drawer + scrim must sit ABOVE the fixed tab bar (z65) so an open "More" drawer covers it
     and the scrim intercepts taps over the bar (otherwise the bar occludes the drawer's bottom rows) */
  .sidebar{ z-index:70 }
  .scrim{ z-index:66 }
  body.signed-in footer .foot-bot{ padding-bottom:calc(18px + var(--tabbar-h) + env(safe-area-inset-bottom)) }

  /* safe-area padding for the sticky top bar (notch / standalone status bar) */
  .topbar{ padding-top:env(safe-area-inset-top); height:calc(64px + env(safe-area-inset-top)) }

  /* the off-canvas drawer respects the notch + home indicator */
  .sidebar{ padding-top:calc(16px + env(safe-area-inset-top)); padding-bottom:calc(16px + env(safe-area-inset-bottom)) }

  /* kill iOS zoom-on-focus: every text control must be >=16px */
  .field input,.field textarea,.field select,
  input[type=text],input[type=email],input[type=password],input[type=url],input[type=search],input[type=tel],input[type=number],
  textarea,select,.input input,.nav-search input,.ts-ac-in,.fdrop-search input{ font-size:16px }

  /* momentum scroll + no scroll-chaining on inner scrollers */
  .facets,.fdrop-list,.pz-picker-list,.cmodal-body,.aed-body,.adm-modal,.msg-thread,.fm-body,.table-wrap,.adm-tablewrap,.adm-tablewrap-flush{ -webkit-overflow-scrolling:touch; overscroll-behavior:contain }
}

/* Touch devices have no hover — reveal affordances that were hover/focus-gated, else they're unreachable */
@media (hover:none){
  .item.card .hover-actions,.hover-actions{ opacity:1; pointer-events:auto }
  .dt-actions{ opacity:1 }
}
/* Bigger tap targets on touch (iOS 44pt min). Scoped to coarse pointers so desktop is untouched. */
@media (pointer:coarse) and (max-width:980px){
  .btn-sm{ min-height:40px }
  .btn-icon.btn-sm{ width:40px; height:40px }
  .chip{ min-height:38px }
  .side-nav a{ padding-top:.72rem; padding-bottom:.72rem }
  .tabs .tab{ min-height:42px }
}
/* item page: production details must stack instead of squeezing 3 mono columns */
@media(max-width:560px){
  .prod-grid{ grid-template-columns:1fr 1fr }
}
@media(max-width:380px){
  .prod-grid{ grid-template-columns:1fr }
}
/* auth modal could overflow a short viewport with the sign-up form — allow it to scroll */
@media(max-width:980px){
  .auth-modal{ max-height:calc(100svh - 32px); overflow-y:auto; -webkit-overflow-scrolling:touch }
}

/* ---- iOS bottom sheets: on mobile, centered dialogs slide up from the bottom edge,
   full-width with a rounded top + grabber. Desktop keeps the centered dialogs. ---- */
@keyframes ts-sheet-up{ from{ transform:translateY(100%) } to{ transform:translateY(0) } }
@media(max-width:980px){
  /* ts-dialog / confirm / form / submit-item */
  .ts-dialog-wrap{ place-items:end center; padding:0 }
  .ts-dialog{ width:100%; max-width:none; border-radius:0;
    padding-top:26px; padding-bottom:calc(22px + env(safe-area-inset-bottom));
    animation:ts-sheet-up .32s cubic-bezier(.32,.72,0,1) }
  .ts-dialog.ts-form,.ts-dialog.ts-submit{ max-height:92svh; overflow-y:auto }

  /* auth (sign in / sign up) */
  .auth-modal{ top:auto; bottom:0; left:0; right:0; width:100%; max-width:none;
    transform:translateY(100%); border-radius:0;
    padding-top:26px; padding-bottom:calc(28px + env(safe-area-inset-bottom));
    max-height:calc(100svh - 24px) }
  .auth-modal.open{ transform:translateY(0) }

  /* cmodal (item owners / follow lists) */
  .cmodal{ top:auto; bottom:0; left:0; right:0; width:100%; max-width:none;
    transform:translateY(100%); border-radius:0; max-height:88svh; padding-top:6px }
  .cmodal.open{ transform:translateY(0) }
  .cmodal-body{ padding-bottom:calc(8px + env(safe-area-inset-bottom)) }

  /* feed post detail */
  .fm-wrap{ align-items:flex-end; padding:0 }
  .fm-modal{ width:100%; max-width:none; max-height:92svh; border-radius:0;
    padding-top:12px; animation:ts-sheet-up .32s cubic-bezier(.32,.72,0,1) }

  /* grabber handle (drag zone) shared by all sheets */
  .ts-dialog::before,.auth-modal::before,.cmodal::before,.fm-modal::before{
    content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%);
    width:38px; height:5px; border-radius:0; background:var(--border-strong); z-index:3; pointer-events:none }
}

/* ---- Share card on mobile: promote the black slideshow modal to full-screen ---- */
@media(max-width:980px){
  .cmodal.share-modal{ top:0; bottom:0; height:100svh; max-height:100svh; width:100%; max-width:none; border-radius:0; padding-top:0 }
  .cmodal.share-modal::before{ display:none }
  .share-modal .cmodal-head{ padding:12px 16px 4px }
  .share-modal .cmodal-x{ font-size:1.9rem }
  .share-modal .cmodal-body{ padding:0 16px calc(12px + env(safe-area-inset-bottom)) }
  .share-modal .share-stage{ margin:2px 0 8px; touch-action:pan-y }
  .share-modal .share-preview{ border-radius:0; box-shadow:0 24px 64px -16px rgba(0,0,0,.85) }
  .share-modal .sc-primary{ height:3.3rem; font-size:1.02rem }
}

/* ---- Filters & sort → floating button + bottom drawer (MOBILE ONLY) ----
   Desktop keeps the inline .dbtools toolbar exactly as-is. On mobile the toolbar
   becomes a bottom sheet opened by a round FAB pinned bottom-right (above the tab
   bar). The injected controls default to display:none so they never touch desktop. */
.filter-fab,.filter-sheet-scrim,.filter-sheet-head{ display:none }

@media(max-width:980px){
  /* the round trigger — pinned bottom-right, clears the tab bar + home indicator */
  .filter-fab{ display:flex; align-items:center; justify-content:center;
    position:fixed; z-index:64; right:16px; bottom:calc(16px + env(safe-area-inset-bottom));
    width:56px; height:56px; border-radius:0; border:none; cursor:pointer;
    background:var(--primary); color:#fff; -webkit-tap-highlight-color:transparent;
    box-shadow:0 8px 24px -6px rgba(197,51,15,.55), 0 2px 6px rgba(0,0,0,.18);
    transition:transform .12s }
  body.has-tabbar.signed-in .filter-fab{ bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px) }
  .filter-fab:active{ transform:scale(.94) }
  .filter-fab svg{ width:24px; height:24px }
  .filter-fab-badge{ position:absolute; top:-4px; right:-4px; min-width:20px; height:20px; padding:0 5px;
    display:grid; place-items:center; border-radius:0; background:#fff; color:var(--primary-strong);
    font-size:.7rem; font-weight:700; line-height:1; border:2px solid var(--primary) }
  .filter-fab-badge[hidden]{ display:none }

  /* scrim behind the drawer */
  .filter-sheet-scrim{ display:block; position:fixed; inset:0; z-index:71;
    background:rgba(12,10,9,.45); opacity:0; visibility:hidden; transition:opacity .25s }
  body.filters-open .filter-sheet-scrim{ opacity:1; visibility:visible }
  body.filters-open{ overflow:hidden }

  /* the toolbar becomes the drawer, sliding up from the bottom edge */
  .dbtools{ position:fixed; left:0; right:0; bottom:0; z-index:72; margin:0; display:block;
    max-height:82svh; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
    background:var(--card); border-radius:0; border-top:1px solid var(--border);
    box-shadow:0 -12px 40px -12px rgba(0,0,0,.35);
    padding:26px 16px calc(18px + env(safe-area-inset-bottom));
    transform:translateY(100%); transition:transform .34s cubic-bezier(.32,.72,0,1); will-change:transform }
  body.filters-open .dbtools{ transform:translateY(0) }
  .dbtools::before{ content:""; position:absolute; top:8px; left:50%; transform:translateX(-50%);
    width:38px; height:5px; border-radius:0; background:var(--border-strong); z-index:3; pointer-events:none }

  /* injected drawer header */
  .filter-sheet-head{ display:flex; align-items:center; justify-content:space-between; gap:12px;
    margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--border) }
  .filter-sheet-head .fsh-title{ font-weight:650; font-size:1.02rem; color:var(--foreground) }
  .filter-sheet-head .fsh-done{ appearance:none; border:none; background:none; cursor:pointer;
    color:var(--primary-strong); font:inherit; font-weight:650; font-size:.95rem; padding:6px 4px;
    -webkit-tap-highlight-color:transparent }

  /* stack facets full-width; open panels inline (not an absolute overlay) so the drawer scrolls naturally */
  .dbtools .filter-bar{ display:flex; flex-direction:column; align-items:stretch; gap:10px; margin:0 }
  .dbtools .filter-bar .fdrop{ width:100%; flex:1 1 auto }
  .dbtools .filter-bar .fdrop-btn{ width:100%; height:2.85rem; justify-content:space-between }
  .dbtools .fdrop-panel{ position:static; width:100%; max-width:none; margin-top:6px;
    box-shadow:none; border:1px solid var(--border) }
  .dbtools .fdrop-list{ max-height:44svh }
  .dbtools .sortbox{ display:flex; align-items:center; gap:.6rem; margin:16px 0 0; padding-top:14px;
    border-top:1px solid var(--border); font-size:.95rem }
  .dbtools .sortbox .sortsel{ flex:1 1 auto; height:2.85rem }
  .dbtools .fclear{ margin-top:4px }
}
@media(max-width:980px) and (prefers-reduced-motion:reduce){
  .dbtools,.filter-sheet-scrim{ transition:none }
}

/* Mobile card grid: exactly two per row on phones (the auto-fill 232px min would
   otherwise collapse to a single column below ~560px). Desktop grid is untouched. */
@media(max-width:560px){
  .grid{ grid-template-columns:repeat(2,1fr)!important; gap:12px }
  .grid .item .iph{ padding:12px }
  .grid .item .bd{ padding:10px 11px 12px; min-height:118px }
}

/* ===== icon sizing/color per context (icons themselves: DS mask set, appended below) ===== */
.ph,.ph-fill{display:inline-block;width:1em;height:1em;flex:none;line-height:1;vertical-align:-0.15em;font-size:1.15em;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.verified-ic .ph{font-size:1.3em;display:block}
.brand .mark .ph{font-size:16px}
.side-nav a .ph{font-size:17px;flex:none;opacity:1}
.side-nav a.active .ph{color:var(--accent)}
.side-foot .ph{font-size:18px;opacity:.85}
.side-discord .ph{color:#5865F2}
.side-discord .ph{opacity:1}
.pmeta .ph{opacity:.8}
.tab-insights .ph{font-size:15px}
.item .nolist .ph{opacity:.7}
.medal .ph{font-size:21px}
.cover-ph .ph{display:none}
.pw-toggle .ph{font-size:18px}
.itm-preview-banner .ph{flex:none;color:#b7791f}
.itm-ctas #btnHave .ico .ph, .itm-ctas #btnWant .ico .ph{font-size:17px;display:block}
.dt-btn .ph{font-size:16px}
.display-add .da-ic .ph{font-size:26px}
.item.card .ha-btn .ph{font-size:16px;display:block}
.item.card .ha-btn.want.active .ph,.item.card .ha-btn.want.active .ph-fill{color:#fff}
.nav-right .notif-btn .ph{font-size:19px}
.nf-x .ph{font-size:17px}
.notif-ic .ph{font-size:19px}
.notif-del .ph{font-size:14px}
.notif-empty-ic .ph{font-size:30px}
.pp-meta-i .ph{font-size:15px}
.aloc .ph{font-size:15px;opacity:.8}
.alink .ph{font-size:15px}
.ldrawer-link .ph{font-size:18px;flex:none;color:var(--muted-foreground)}
.ph-ph .ph{font-size:44px}
.auth-mark .ph{font-size:22px}
.aed-edit .ph{font-size:15px}
.aed-ai .ph{font-size:14px;flex:none}
.adm-nav a .ph{font-size:18px;flex:none;opacity:.85}
.adm-nav a.active .ph{opacity:1}
.adm-exit .ph{font-size:17px}
.kb-edit .ph{font-size:15px}
.feed-new-lbl .ph{font-size:15px}
.cmp-ta-emoji .ph{font-size:19px}
.fi-menu-btn .ph{font-size:18px}
.fi-menu-item .ph{font-size:16px;flex:none;opacity:.85}
.cmp-as-opt .ph{font-size:14px}
.fi-kic .ph{font-size:12px}
.fi-heartbadge .ph{font-size:11px}
.fi-actbtn .ph{font-size:17px}
.fi-cicon .ph{font-size:19px}
.fi-csend .ph{font-size:19px}
.fi-stat .ph{font-size:20px}
.pg-utility .ph{flex:none}
.tabbar a .ph{font-size:24px;flex:none}
.filter-fab .ph{font-size:24px}
/* active want heart on catalog cards -> solid (fill weight) */

/* ============================================================================
   Brand direction (2026-07): sharp corners EVERYWHERE.
   Only true circles stay round — avatars, indicator dots, spinners.
   ============================================================================ */
.av,.fi-av,.avatar-lg,.ep-avatar,.ma-av,.mp-av,
.badge-dot::before,.msg-dot,.sc-dot,.tabbar .tab-dot,.chlog li::before,.ins-dot,
.feed-spin span{border-radius:50%}
/* buttons / toggles / decorative discs are NOT circles under the new brand */
.fi-av.sq,.item.card .ha-btn,.notif-btn,.nav-right .notif-btn,.notif-empty-ic{border-radius:0}

/* Entity-page hero avatars = sharp squares (profile / artist / maker / platform) */
.av.avatar-lg{border-radius:0}
.av.avatar-lg img{border-radius:0}

/* Feature Planning — enriched cards (size pill, plan flag) + editor field headers (copy / AI buttons) */
.kb-card-top{align-items:flex-start}
.kb-tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-width:0}
.kb-size{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.12rem .42rem;border:1px solid var(--border-strong);color:var(--muted-foreground);background:var(--card);border-radius:0}
.kb-tokens{font-family:var(--mono,ui-monospace,monospace);text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;color:#7c3aed;border-color:#ddd6fe}
.kb-size-bug{color:#b91c1c;border-color:#f0b4b4}
.kb-size-improvement{color:#075985;border-color:#a9d5ef}
.kb-size-small{color:#3f6212;border-color:#c3dda3}
.kb-size-medium{color:#78716c}
.kb-size-large{color:#92400e;border-color:#e8cfa0}
.kb-size-massive{color:#6d28d9;border-color:#c9b6f2}
.kb-size-tiny{color:#64748b;border-color:#cbd5e1}
.kb-type-bug{color:#b91c1c;border-color:#f0b4b4}
.kb-type-improvement{color:#075985;border-color:#a9d5ef}
.kb-type-feature{color:#0f766e;border-color:#99e0d5}
.kb-reqby{margin:4px 0 0;font-size:.72rem;color:var(--muted-foreground)}
/* Quick-Review capture block on a feature card */
.kb-source{margin:8px 0 0;display:flex;gap:8px;align-items:flex-start}
.kb-shot{flex:0 0 56px;width:56px;height:44px;border:1px solid var(--border);overflow:hidden;display:block;background:var(--muted)}
.kb-shot img{width:100%;height:100%;object-fit:cover;display:block}
.kb-source-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.kb-src-link{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--primary)}
.kb-owner{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--muted-foreground)}
.kb-source .ph{font-size:12px}
.fp-reqby{position:relative}
.fp-reqby-results{position:absolute;left:0;right:0;top:100%;z-index:10;background:var(--card);border:1px solid var(--border-strong);max-height:190px;overflow:auto}
.fp-reqby-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:none;padding:8px 11px;cursor:pointer;font:inherit;color:var(--foreground)}
.fp-reqby-results button:hover{background:var(--muted)}
.fp-reqby-none{padding:8px 11px;color:var(--muted-foreground);font-size:.9rem}
.chlog-credit{color:var(--primary);font-weight:600;text-decoration:none}
.chlog-credit:hover{text-decoration:underline}
.kb-planflag{display:inline-flex;align-items:center;color:var(--muted-foreground);font-size:.85rem;line-height:1}
.adm-field-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.adm-field-hd label{color:var(--muted-foreground)}
.adm-field-acts{display:flex;align-items:center;gap:6px}
.adm-field .btn span{color:inherit}
/* the three selects stay a single even 3-up row (wrap only when truly narrow) */
.adm-form-row.fp-trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end}
/* compact copy buttons only on precise pointers; touch keeps the 40px tap target */
@media (hover:hover) and (pointer:fine){
  .adm-field-hd .ts-copytext,.adm-field-acts .ts-copytext{width:2rem;height:2rem;min-height:0}
}

/* Report-a-duplicate modal (item page) + admin note truncation */
.dup-lead{font-size:.9rem;color:var(--muted-foreground);margin:0 0 12px;line-height:1.5}
.dup-note{width:100%;min-height:96px;padding:.6rem .7rem;border:1px solid var(--border-strong);border-radius:0;font:inherit;font-size:.9rem;resize:vertical;background:var(--card,#fff);color:var(--foreground)}
.dup-note:focus{outline:none;border-color:var(--ring,#1c1917)}
.dup-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px}
.dup-msg{font-size:.82rem;color:var(--muted-foreground);margin-right:auto}
.dup-msg.err{color:#b91c1c}
.dup-msg.ok{color:#1a8a4a}
.con-note{display:inline-block;max-width:26ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}

/* ===== DS: radius 0 EVERYWHERE — avatars are square too (supersedes the earlier round-avatar rule) ===== */
.av,.fi-av,.avatar-lg,.av.avatar-lg,.ep-avatar,.ma-av,.mp-av,.pp-av,
.notif-av,.notif-ic,.notif-empty-ic,.am-av-img,.ae-av,.pf-av,.pf-row .pf-av,
.mp-av-round,.owner-chip .oav,.crow .oav,.sd-th-artist,.sd-th-user{border-radius:0}

/* ===== DS: profile tabs -> underlined mono bar; metadata + follow boxes -> Space Mono ===== */
#profTabs{display:flex;width:100%;background:transparent!important;gap:26px;border:0;border-bottom:1px solid var(--border);padding:0;border-radius:0;overflow-x:auto}
#profTabs .tab{font-family:var(--mono);font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);padding:0 0 14px;border:0;border-bottom:2px solid transparent;background:none;box-shadow:none;border-radius:0}
#profTabs .tab:hover{color:var(--text-primary)}
#profTabs .tab.active{background:none!important;color:var(--text-primary);box-shadow:none;border-bottom-color:var(--accent);font-weight:400}
#profTabs .tab .count{font-family:var(--mono);color:var(--text-subtle);background:none;font-size:1em}
#profTabs .tab.active .count{background:none;color:var(--text-subtle)}
#profTabs .tab-insights,#profTabs .tab-insights.active{color:var(--accent)}
.pmeta,.pf-meta{font-family:var(--mono);font-size:.875rem;letter-spacing:.02em}
.pf-stat b{font-family:var(--mono)}
.pf-stat span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:.66rem}

/* ===== DS: faint 88px grid on the main working surface (hairline lines on sunken paper) ===== */
.content,.adm-shell{
  background-color:var(--surface-sunken);
  background-image:linear-gradient(var(--ts-hairline) 1px,transparent 1px),linear-gradient(90deg,var(--ts-hairline) 1px,transparent 1px);
  background-size:var(--grid-unit) var(--grid-unit);
}

/* ===== Toy Syndicate DS monoline icon set (mask-image; replaces Phosphor font) =====
   Grid 24, stroke 2, butt cap, miter join. 9 glyphs verbatim from the DS Icon.jsx;
   the rest drawn in the same style. Icons inherit color via background:currentColor. */
.ph-add{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H20V20H4Z'/%3E%3Cpath%20d='M12%208V16'/%3E%3Cpath%20d='M8%2012H16'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H20V20H4Z'/%3E%3Cpath%20d='M12%208V16'/%3E%3Cpath%20d='M8%2012H16'/%3E%3C/svg%3E")}
.ph-arrow-line-left{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M21%2012H6'/%3E%3Cpath%20d='M11%207L6%2012L11%2017'/%3E%3Cpath%20d='M4%205V19'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M21%2012H6'/%3E%3Cpath%20d='M11%207L6%2012L11%2017'/%3E%3Cpath%20d='M4%205V19'/%3E%3C/svg%3E")}
.ph-arrow-up{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2020V5'/%3E%3Cpath%20d='M6%2011L12%205L18%2011'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2020V5'/%3E%3Cpath%20d='M6%2011L12%205L18%2011'/%3E%3C/svg%3E")}
.ph-arrows-left-right{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M17%206L20%209L17%2012'/%3E%3Cpath%20d='M20%2015H4'/%3E%3Cpath%20d='M7%2012L4%2015L7%2018'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M17%206L20%209L17%2012'/%3E%3Cpath%20d='M20%2015H4'/%3E%3Cpath%20d='M7%2012L4%2015L7%2018'/%3E%3C/svg%3E")}
.ph-bell{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%209a6%206%200%200%201%2012%200c0%205%202%206%202%206H4s2-1%202-6z'/%3E%3Cpath%20d='M10%2020a2%202%200%200%200%204%200'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%209a6%206%200%200%201%2012%200c0%205%202%206%202%206H4s2-1%202-6z'/%3E%3Cpath%20d='M10%2020a2%202%200%200%200%204%200'/%3E%3C/svg%3E")}
.ph-bell-slash{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M18%2016V10.5C18%207.2%2015.3%204.5%2012%204.5C8.7%204.5%206%207.2%206%2010.5V16L4%2019H20L18%2016Z'/%3E%3Cpath%20d='M9.5%2019C9.8%2020.4%2010.8%2021.5%2012%2021.5C13.2%2021.5%2014.2%2020.4%2014.5%2019'/%3E%3Cpath%20d='M4%204L20%2020'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M18%2016V10.5C18%207.2%2015.3%204.5%2012%204.5C8.7%204.5%206%207.2%206%2010.5V16L4%2019H20L18%2016Z'/%3E%3Cpath%20d='M9.5%2019C9.8%2020.4%2010.8%2021.5%2012%2021.5C13.2%2021.5%2014.2%2020.4%2014.5%2019'/%3E%3Cpath%20d='M4%204L20%2020'/%3E%3C/svg%3E")}
.ph-book{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%205H16C17.1%205%2018%205.9%2018%207V20H7C5.9%2020%205%2019.1%205%2018Z'/%3E%3Cpath%20d='M5%2018C5%2016.9%205.9%2016%207%2016H18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%205H16C17.1%205%2018%205.9%2018%207V20H7C5.9%2020%205%2019.1%205%2018Z'/%3E%3Cpath%20d='M5%2018C5%2016.9%205.9%2016%207%2016H18'/%3E%3C/svg%3E")}
.ph-bug{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%2012C7%208.7%209.2%206.5%2012%206.5C14.8%206.5%2017%208.7%2017%2012V15C17%2018%2014.8%2020%2012%2020C9.2%2020%207%2018%207%2015Z'/%3E%3Cpath%20d='M12%206.5V20'/%3E%3Cpath%20d='M9.5%205L11%207'/%3E%3Cpath%20d='M14.5%205L13%207'/%3E%3Cpath%20d='M7%2011L4%209.5'/%3E%3Cpath%20d='M17%2011L20%209.5'/%3E%3Cpath%20d='M7%2014H4'/%3E%3Cpath%20d='M17%2014H20'/%3E%3Cpath%20d='M7.3%2017L4.5%2018.5'/%3E%3Cpath%20d='M16.7%2017L19.5%2018.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%2012C7%208.7%209.2%206.5%2012%206.5C14.8%206.5%2017%208.7%2017%2012V15C17%2018%2014.8%2020%2012%2020C9.2%2020%207%2018%207%2015Z'/%3E%3Cpath%20d='M12%206.5V20'/%3E%3Cpath%20d='M9.5%205L11%207'/%3E%3Cpath%20d='M14.5%205L13%207'/%3E%3Cpath%20d='M7%2011L4%209.5'/%3E%3Cpath%20d='M17%2011L20%209.5'/%3E%3Cpath%20d='M7%2014H4'/%3E%3Cpath%20d='M17%2014H20'/%3E%3Cpath%20d='M7.3%2017L4.5%2018.5'/%3E%3Cpath%20d='M16.7%2017L19.5%2018.5'/%3E%3C/svg%3E")}
.ph-calendar{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%205H20V20H4Z'/%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M8%203V6'/%3E%3Cpath%20d='M16%203V6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%205H20V20H4Z'/%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M8%203V6'/%3E%3Cpath%20d='M16%203V6'/%3E%3C/svg%3E")}
.ph-caret-down{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%209L12%2015L18%209'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%209L12%2015L18%209'/%3E%3C/svg%3E")}
.ph-catalog{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%203H20V21H4Z'/%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M4%2015H20'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%203H20V21H4Z'/%3E%3Cpath%20d='M4%209H20'/%3E%3Cpath%20d='M4%2015H20'/%3E%3C/svg%3E")}
.ph-chart-bar{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204V20H20'/%3E%3Cpath%20d='M8%2017V13'/%3E%3Cpath%20d='M12%2017V8'/%3E%3Cpath%20d='M16%2017V11'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204V20H20'/%3E%3Cpath%20d='M8%2017V13'/%3E%3Cpath%20d='M12%2017V8'/%3E%3Cpath%20d='M16%2017V11'/%3E%3C/svg%3E")}
.ph-chart-line{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204V20H20'/%3E%3Cpath%20d='M7%2015L11%2011L14%2013L19%207'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204V20H20'/%3E%3Cpath%20d='M7%2015L11%2011L14%2013L19%207'/%3E%3C/svg%3E")}
.ph-chat-circle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H20V16H10L5%2020V16H4Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H20V16H10L5%2020V16H4Z'/%3E%3C/svg%3E")}
.ph-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%2012.5L10%2017.5L19%207'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%2012.5L10%2017.5L19%207'/%3E%3C/svg%3E")}
.ph-check-circle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E")}
.ph-clock{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='8'/%3E%3Cpath%20d='M12%207V12L16%2014'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='8'/%3E%3Cpath%20d='M12%207V12L16%2014'/%3E%3C/svg%3E")}
.ph-community{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9'%20cy='9'%20r='2.6'/%3E%3Ccircle%20cx='15'%20cy='9'%20r='2.6'/%3E%3Cpath%20d='M4.5%2019C4.5%2016.2%206.5%2014.5%209%2014.5C10.2%2014.5%2011.2%2014.9%2012%2015.6'/%3E%3Cpath%20d='M12%2015.6C12.8%2014.9%2013.8%2014.5%2015%2014.5C17.5%2014.5%2019.5%2016.2%2019.5%2019'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9'%20cy='9'%20r='2.6'/%3E%3Ccircle%20cx='15'%20cy='9'%20r='2.6'/%3E%3Cpath%20d='M4.5%2019C4.5%2016.2%206.5%2014.5%209%2014.5C10.2%2014.5%2011.2%2014.9%2012%2015.6'/%3E%3Cpath%20d='M12%2015.6C12.8%2014.9%2013.8%2014.5%2015%2014.5C17.5%2014.5%2019.5%2016.2%2019.5%2019'/%3E%3C/svg%3E")}
.ph-copy{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M9%209H20V20H9Z'/%3E%3Cpath%20d='M15%209V4H4V15H9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M9%209H20V20H9Z'/%3E%3Cpath%20d='M15%209V4H4V15H9'/%3E%3C/svg%3E")}
.ph-database{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cellipse%20cx='12'%20cy='6'%20rx='7'%20ry='2.6'/%3E%3Cpath%20d='M5%206V18C5%2019.4%208.1%2020.6%2012%2020.6C15.9%2020.6%2019%2019.4%2019%2018V6'/%3E%3Cpath%20d='M5%2012C5%2013.4%208.1%2014.6%2012%2014.6C15.9%2014.6%2019%2013.4%2019%2012'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cellipse%20cx='12'%20cy='6'%20rx='7'%20ry='2.6'/%3E%3Cpath%20d='M5%206V18C5%2019.4%208.1%2020.6%2012%2020.6C15.9%2020.6%2019%2019.4%2019%2018V6'/%3E%3Cpath%20d='M5%2012C5%2013.4%208.1%2014.6%2012%2014.6C15.9%2014.6%2019%2013.4%2019%2012'/%3E%3C/svg%3E")}
.ph-discord-logo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M8%207C10%206.3%2014%206.3%2016%207C17.5%209%2018.5%2012.5%2018%2016.5L15.5%2018.5L14.3%2016.5C13%2016.8%2011%2016.8%209.7%2016.5L8.5%2018.5L6%2016.5C5.5%2012.5%206.5%209%208%207Z'/%3E%3Ccircle%20cx='10'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='14'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M8%207C10%206.3%2014%206.3%2016%207C17.5%209%2018.5%2012.5%2018%2016.5L15.5%2018.5L14.3%2016.5C13%2016.8%2011%2016.8%209.7%2016.5L8.5%2018.5L6%2016.5C5.5%2012.5%206.5%209%208%207Z'/%3E%3Ccircle%20cx='10'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='14'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E")}
.ph-dots-three{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Ccircle%20cx='5'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='19'%20cy='12'%20r='1.7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Ccircle%20cx='5'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='19'%20cy='12'%20r='1.7'/%3E%3C/svg%3E")}
.ph-dots-three-vertical{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Ccircle%20cx='12'%20cy='5'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='19'%20r='1.7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Ccircle%20cx='12'%20cy='5'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='1.7'/%3E%3Ccircle%20cx='12'%20cy='19'%20r='1.7'/%3E%3C/svg%3E")}
.ph-envelope{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%205H21V19H3Z'/%3E%3Cpath%20d='M3%206L12%2013L21%206'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%205H21V19H3Z'/%3E%3Cpath%20d='M3%206L12%2013L21%206'/%3E%3C/svg%3E")}
.ph-eye{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M2%2012C4%207%208%205%2012%205C16%205%2020%207%2022%2012C20%2017%2016%2019%2012%2019C8%2019%204%2017%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M2%2012C4%207%208%205%2012%205C16%205%2020%207%2022%2012C20%2017%2016%2019%2012%2019C8%2019%204%2017%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E")}
.ph-eye-slash{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M2%2012C4%207%208%205%2012%205C16%205%2020%207%2022%2012C20%2017%2016%2019%2012%2019C8%2019%204%2017%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3Cpath%20d='M4%204L20%2020'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M2%2012C4%207%208%205%2012%205C16%205%2020%207%2022%2012C20%2017%2016%2019%2012%2019C8%2019%204%2017%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3Cpath%20d='M4%204L20%2020'/%3E%3C/svg%3E")}
.ph-facebook-logo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M13.5%2020.5V12.5H16L16.4%209.5H13.5V7.8C13.5%206.9%2013.8%206.4%2015%206.4H16.5V3.7C16%203.6%2014.9%203.5%2013.9%203.5C11.6%203.5%2010.2%204.9%2010.2%207.4V9.5H8V12.5H10.2V20.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M13.5%2020.5V12.5H16L16.4%209.5H13.5V7.8C13.5%206.9%2013.8%206.4%2015%206.4H16.5V3.7C16%203.6%2014.9%203.5%2013.9%203.5C11.6%203.5%2010.2%204.9%2010.2%207.4V9.5H8V12.5H10.2V20.5'/%3E%3C/svg%3E")}
.ph-faders{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%204V20'/%3E%3Cpath%20d='M12%204V20'/%3E%3Cpath%20d='M18%204V20'/%3E%3Crect%20x='4'%20y='8'%20width='4'%20height='3'/%3E%3Crect%20x='10'%20y='13'%20width='4'%20height='3'/%3E%3Crect%20x='16'%20y='7'%20width='4'%20height='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%204V20'/%3E%3Cpath%20d='M12%204V20'/%3E%3Cpath%20d='M18%204V20'/%3E%3Crect%20x='4'%20y='8'%20width='4'%20height='3'/%3E%3Crect%20x='10'%20y='13'%20width='4'%20height='3'/%3E%3Crect%20x='16'%20y='7'%20width='4'%20height='3'/%3E%3C/svg%3E")}
.ph-figure{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H14L20%2010V20H4Z'/%3E%3Ccircle%20cx='8'%20cy='8'%20r='1.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H14L20%2010V20H4Z'/%3E%3Ccircle%20cx='8'%20cy='8'%20r='1.4'/%3E%3C/svg%3E")}
.ph-file-text{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%203H14L19%208V21H6Z'/%3E%3Cpath%20d='M14%203V8H19'/%3E%3Cpath%20d='M9%2012H16'/%3E%3Cpath%20d='M9%2016H16'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%203H14L19%208V21H6Z'/%3E%3Cpath%20d='M14%203V8H19'/%3E%3Cpath%20d='M9%2012H16'/%3E%3Cpath%20d='M9%2016H16'/%3E%3C/svg%3E")}
.ph-flag{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%203V21'/%3E%3Cpath%20d='M6%204H18L15%208L18%2012H6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%203V21'/%3E%3Cpath%20d='M6%204H18L15%208L18%2012H6'/%3E%3C/svg%3E")}
.ph-gear{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M10.0%202.61L14.0%202.61L14.16%205.34L15.18%205.76L17.23%203.95L20.05%206.77L18.24%208.82L18.66%209.84L21.39%2010.0L21.39%2014.0L18.66%2014.16L18.24%2015.18L20.05%2017.23L17.23%2020.05L15.18%2018.24L14.16%2018.66L14.0%2021.39L10.0%2021.39L9.84%2018.66L8.82%2018.24L6.77%2020.05L3.95%2017.23L5.76%2015.18L5.34%2014.16L2.61%2014.0L2.61%2010.0L5.34%209.84L5.76%208.82L3.95%206.77L6.77%203.95L8.82%205.76L9.84%205.34Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M10.0%202.61L14.0%202.61L14.16%205.34L15.18%205.76L17.23%203.95L20.05%206.77L18.24%208.82L18.66%209.84L21.39%2010.0L21.39%2014.0L18.66%2014.16L18.24%2015.18L20.05%2017.23L17.23%2020.05L15.18%2018.24L14.16%2018.66L14.0%2021.39L10.0%2021.39L9.84%2018.66L8.82%2018.24L6.77%2020.05L3.95%2017.23L5.76%2015.18L5.34%2014.16L2.61%2014.0L2.61%2010.0L5.34%209.84L5.76%208.82L3.95%206.77L6.77%203.95L8.82%205.76L9.84%205.34Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3.1'/%3E%3C/svg%3E")}
.ph-globe{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cellipse%20cx='12'%20cy='12'%20rx='3.6'%20ry='9'/%3E%3Cpath%20d='M3%2012H21'/%3E%3Cpath%20d='M5%207.5H19'/%3E%3Cpath%20d='M5%2016.5H19'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cellipse%20cx='12'%20cy='12'%20rx='3.6'%20ry='9'/%3E%3Cpath%20d='M3%2012H21'/%3E%3Cpath%20d='M5%207.5H19'/%3E%3Cpath%20d='M5%2016.5H19'/%3E%3C/svg%3E")}
.ph-heart{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2020C12%2020%203.5%2014.4%203.5%208.7C3.5%205.9%205.7%204%208.2%204C10%204%2011.4%205%2012%206.4C12.6%205%2014%204%2015.8%204C18.3%204%2020.5%205.9%2020.5%208.7C20.5%2014.4%2012%2020%2012%2020Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2020C12%2020%203.5%2014.4%203.5%208.7C3.5%205.9%205.7%204%208.2%204C10%204%2011.4%205%2012%206.4C12.6%205%2014%204%2015.8%204C18.3%204%2020.5%205.9%2020.5%208.7C20.5%2014.4%2012%2020%2012%2020Z'/%3E%3C/svg%3E")}
.ph-image{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%204H21V20H3Z'/%3E%3Ccircle%20cx='8.5'%20cy='9'%20r='1.8'/%3E%3Cpath%20d='M3%2017L9%2011L13.5%2015.5L17%2012L21%2016'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%204H21V20H3Z'/%3E%3Ccircle%20cx='8.5'%20cy='9'%20r='1.8'/%3E%3Cpath%20d='M3%2017L9%2011L13.5%2015.5L17%2012L21%2016'/%3E%3C/svg%3E")}
.ph-instagram-logo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7.5%203.5H16.5C18.4%203.5%2020%205.1%2020%207V17C20%2018.9%2018.4%2020.5%2016.5%2020.5H7.5C5.6%2020.5%204%2018.9%204%2017V7C4%205.1%205.6%203.5%207.5%203.5Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3.6'/%3E%3Ccircle%20cx='16.7'%20cy='7.3'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7.5%203.5H16.5C18.4%203.5%2020%205.1%2020%207V17C20%2018.9%2018.4%2020.5%2016.5%2020.5H7.5C5.6%2020.5%204%2018.9%204%2017V7C4%205.1%205.6%203.5%207.5%203.5Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3.6'/%3E%3Ccircle%20cx='16.7'%20cy='7.3'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E")}
.ph-layout{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%204H21V20H3Z'/%3E%3Cpath%20d='M3%209H21'/%3E%3Cpath%20d='M9%209V20'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%204H21V20H3Z'/%3E%3Cpath%20d='M3%209H21'/%3E%3Cpath%20d='M9%209V20'/%3E%3C/svg%3E")}
.ph-lightbulb{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M8.5%2015C7%2013.8%206.2%2012%206.2%2010C6.2%206.8%208.8%204.2%2012%204.2C15.2%204.2%2017.8%206.8%2017.8%2010C17.8%2012%2017%2013.8%2015.5%2015C14.8%2015.6%2014.5%2016.2%2014.5%2017H9.5C9.5%2016.2%209.2%2015.6%208.5%2015Z'/%3E%3Cpath%20d='M9.5%2020H14.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M8.5%2015C7%2013.8%206.2%2012%206.2%2010C6.2%206.8%208.8%204.2%2012%204.2C15.2%204.2%2017.8%206.8%2017.8%2010C17.8%2012%2017%2013.8%2015.5%2015C14.8%2015.6%2014.5%2016.2%2014.5%2017H9.5C9.5%2016.2%209.2%2015.6%208.5%2015Z'/%3E%3Cpath%20d='M9.5%2020H14.5'/%3E%3C/svg%3E")}
.ph-lightning{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M13%203L5%2013H11L10%2021L19%2010H12L13%203Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M13%203L5%2013H11L10%2021L19%2010H12L13%203Z'/%3E%3C/svg%3E")}
.ph-list{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%206H20'/%3E%3Cpath%20d='M4%2012H20'/%3E%3Cpath%20d='M4%2018H20'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%206H20'/%3E%3Cpath%20d='M4%2012H20'/%3E%3Cpath%20d='M4%2018H20'/%3E%3C/svg%3E")}
.ph-magnifying-glass{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='10'%20cy='10'%20r='6'/%3E%3Cpath%20d='M14.5%2014.5L21%2021'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='10'%20cy='10'%20r='6'/%3E%3Cpath%20d='M14.5%2014.5L21%2021'/%3E%3C/svg%3E")}
.ph-map-pin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2021C12%2021%2018%2015.5%2018%2010C18%206.7%2015.3%204%2012%204C8.7%204%206%206.7%206%2010C6%2015.5%2012%2021%2012%2021Z'/%3E%3Ccircle%20cx='12'%20cy='10'%20r='2.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%2021C12%2021%2018%2015.5%2018%2010C18%206.7%2015.3%204%2012%204C8.7%204%206%206.7%206%2010C6%2015.5%2012%2021%2012%2021Z'/%3E%3Ccircle%20cx='12'%20cy='10'%20r='2.4'/%3E%3C/svg%3E")}
.ph-package{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203L21%208V16L12%2021L3%2016V8Z'/%3E%3Cpath%20d='M3%208L12%2013L21%208'/%3E%3Cpath%20d='M12%2013V21'/%3E%3Cpath%20d='M7.5%205.5L16.5%2010.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203L21%208V16L12%2021L3%2016V8Z'/%3E%3Cpath%20d='M3%208L12%2013L21%208'/%3E%3Cpath%20d='M12%2013V21'/%3E%3Cpath%20d='M7.5%205.5L16.5%2010.5'/%3E%3C/svg%3E")}
.ph-paper-plane-tilt{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M21%204L3%2011L10%2013.5L12.5%2020.5L21%204Z'/%3E%3Cpath%20d='M10%2013.5L21%204'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M21%204L3%2011L10%2013.5L12.5%2020.5L21%204Z'/%3E%3Cpath%20d='M10%2013.5L21%204'/%3E%3C/svg%3E")}
.ph-pencil-simple{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M15.5%205L19%208.5L9.5%2018H6V14.5Z'/%3E%3Cpath%20d='M13.5%207L17%2010.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M15.5%205L19%208.5L9.5%2018H6V14.5Z'/%3E%3Cpath%20d='M13.5%207L17%2010.5'/%3E%3C/svg%3E")}
.ph-plus{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%205V19'/%3E%3Cpath%20d='M5%2012H19'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%205V19'/%3E%3Cpath%20d='M5%2012H19'/%3E%3C/svg%3E")}
.ph-question{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M9.3%209.2C9.3%207.6%2010.5%206.6%2012%206.6C13.6%206.6%2014.7%207.7%2014.7%209.1C14.7%2010.7%2013.4%2011.2%2012.6%2011.9C12.1%2012.3%2012%2012.8%2012%2013.6'/%3E%3Ccircle%20cx='12'%20cy='16.8'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M9.3%209.2C9.3%207.6%2010.5%206.6%2012%206.6C13.6%206.6%2014.7%207.7%2014.7%209.1C14.7%2010.7%2013.4%2011.2%2012.6%2011.9C12.1%2012.3%2012%2012.8%2012%2013.6'/%3E%3Ccircle%20cx='12'%20cy='16.8'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E")}
.ph-rss{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='6'%20cy='18'%20r='1.4'%20fill='%23000'%20stroke='none'/%3E%3Cpath%20d='M5%2011.5C9%2011.5%2012.5%2015%2012.5%2019'/%3E%3Cpath%20d='M5%205.5C12.5%205.5%2018.5%2011.5%2018.5%2019'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='6'%20cy='18'%20r='1.4'%20fill='%23000'%20stroke='none'/%3E%3Cpath%20d='M5%2011.5C9%2011.5%2012.5%2015%2012.5%2019'/%3E%3Cpath%20d='M5%205.5C12.5%205.5%2018.5%2011.5%2018.5%2019'/%3E%3C/svg%3E")}
.ph-seal-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E")}
.ph-search{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='10'%20cy='10'%20r='6'/%3E%3Cpath%20d='M14.5%2014.5L21%2021'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='10'%20cy='10'%20r='6'/%3E%3Cpath%20d='M14.5%2014.5L21%2021'/%3E%3C/svg%3E")}
.ph-share-network{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='6'%20cy='12'%20r='2.5'/%3E%3Ccircle%20cx='17'%20cy='6'%20r='2.5'/%3E%3Ccircle%20cx='17'%20cy='18'%20r='2.5'/%3E%3Cpath%20d='M8.2%2010.8L14.8%207.2'/%3E%3Cpath%20d='M8.2%2013.2L14.8%2016.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='6'%20cy='12'%20r='2.5'/%3E%3Ccircle%20cx='17'%20cy='6'%20r='2.5'/%3E%3Ccircle%20cx='17'%20cy='18'%20r='2.5'/%3E%3Cpath%20d='M8.2%2010.8L14.8%207.2'/%3E%3Cpath%20d='M8.2%2013.2L14.8%2016.8'/%3E%3C/svg%3E")}
.ph-shopping-bag{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%207H19L18%2020H6Z'/%3E%3Cpath%20d='M9%209V6.5C9%204.6%2010.3%203.5%2012%203.5C13.7%203.5%2015%204.6%2015%206.5V9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%207H19L18%2020H6Z'/%3E%3Cpath%20d='M9%209V6.5C9%204.6%2010.3%203.5%2012%203.5C13.7%203.5%2015%204.6%2015%206.5V9'/%3E%3C/svg%3E")}
.ph-smiley{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8.5%2014C9.4%2015.4%2010.6%2016%2012%2016C13.4%2016%2014.6%2015.4%2015.5%2014'/%3E%3Ccircle%20cx='9'%20cy='10'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='15'%20cy='10'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8.5%2014C9.4%2015.4%2010.6%2016%2012%2016C13.4%2016%2014.6%2015.4%2015.5%2014'/%3E%3Ccircle%20cx='9'%20cy='10'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='15'%20cy='10'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E")}
.ph-sparkle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203C12%207.5%2013%209%2017.5%2012C13%2015%2012%2016.5%2012%2021C12%2016.5%2011%2015%206.5%2012C11%209%2012%207.5%2012%203Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203C12%207.5%2013%209%2017.5%2012C13%2015%2012%2016.5%2012%2021C12%2016.5%2011%2015%206.5%2012C11%209%2012%207.5%2012%203Z'/%3E%3C/svg%3E")}
.ph-squares-four{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H10V10H4Z'/%3E%3Cpath%20d='M14%204H20V10H14Z'/%3E%3Cpath%20d='M4%2014H10V20H4Z'/%3E%3Cpath%20d='M14%2014H20V20H14Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4%204H10V10H4Z'/%3E%3Cpath%20d='M14%204H20V10H14Z'/%3E%3Cpath%20d='M4%2014H10V20H4Z'/%3E%3Cpath%20d='M14%2014H20V20H14Z'/%3E%3C/svg%3E")}
.ph-star{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203L14.6%209.2L21%209.8L16%2014L17.6%2020.4L12%2016.8L6.4%2020.4L8%2014L3%209.8L9.4%209.2Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M12%203L14.6%209.2L21%209.8L16%2014L17.6%2020.4L12%2016.8L6.4%2020.4L8%2014L3%209.8L9.4%209.2Z'/%3E%3C/svg%3E")}
.ph-swap{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%204V20'/%3E%3Cpath%20d='M3%208L7%204L11%208'/%3E%3Cpath%20d='M17%2020V4'/%3E%3Cpath%20d='M13%2016L17%2020L21%2016'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%204V20'/%3E%3Cpath%20d='M3%208L7%204L11%208'/%3E%3Cpath%20d='M17%2020V4'/%3E%3Cpath%20d='M13%2016L17%2020L21%2016'/%3E%3C/svg%3E")}
.ph-tag{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%203H11L21%2013L13%2021L3%2011Z'/%3E%3Ccircle%20cx='7.5'%20cy='7.5'%20r='1.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%203H11L21%2013L13%2021L3%2011Z'/%3E%3Ccircle%20cx='7.5'%20cy='7.5'%20r='1.5'/%3E%3C/svg%3E")}
.ph-trash{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%206H18L17%2021H7Z'/%3E%3Cpath%20d='M4%206H20'/%3E%3Cpath%20d='M9.5%206V4H14.5V6'/%3E%3Cpath%20d='M10%2010V17'/%3E%3Cpath%20d='M14%2010V17'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%206H18L17%2021H7Z'/%3E%3Cpath%20d='M4%206H20'/%3E%3Cpath%20d='M9.5%206V4H14.5V6'/%3E%3Cpath%20d='M10%2010V17'/%3E%3Cpath%20d='M14%2010V17'/%3E%3C/svg%3E")}
.ph-trophy{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%204H17V9C17%2012%2014.8%2014%2012%2014C9.2%2014%207%2012%207%209Z'/%3E%3Cpath%20d='M7%205.5H4V7.5C4%209.4%205.5%2010.5%207.3%2010.5'/%3E%3Cpath%20d='M17%205.5H20V7.5C20%209.4%2018.5%2010.5%2016.7%2010.5'/%3E%3Cpath%20d='M12%2014V18'/%3E%3Cpath%20d='M9%2021H15'/%3E%3Cpath%20d='M9.5%2018H14.5V21H9.5Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M7%204H17V9C17%2012%2014.8%2014%2012%2014C9.2%2014%207%2012%207%209Z'/%3E%3Cpath%20d='M7%205.5H4V7.5C4%209.4%205.5%2010.5%207.3%2010.5'/%3E%3Cpath%20d='M17%205.5H20V7.5C20%209.4%2018.5%2010.5%2016.7%2010.5'/%3E%3Cpath%20d='M12%2014V18'/%3E%3Cpath%20d='M9%2021H15'/%3E%3Cpath%20d='M9.5%2018H14.5V21H9.5Z'/%3E%3C/svg%3E")}
.ph-user{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='8'%20r='3.5'/%3E%3Cpath%20d='M5%2020C5%2016.4%208%2013.5%2012%2013.5C16%2013.5%2019%2016.4%2019%2020'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='8'%20r='3.5'/%3E%3Cpath%20d='M5%2020C5%2016.4%208%2013.5%2012%2013.5C16%2013.5%2019%2016.4%2019%2020'/%3E%3C/svg%3E")}
.ph-user-plus{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9.5'%20cy='8'%20r='3.5'/%3E%3Cpath%20d='M3%2020C3%2016.4%205.9%2013.5%209.5%2013.5C11%2013.5%2012.4%2014%2013.5%2014.8'/%3E%3Cpath%20d='M18%2013V19'/%3E%3Cpath%20d='M15%2016H21'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9.5'%20cy='8'%20r='3.5'/%3E%3Cpath%20d='M3%2020C3%2016.4%205.9%2013.5%209.5%2013.5C11%2013.5%2012.4%2014%2013.5%2014.8'/%3E%3Cpath%20d='M18%2013V19'/%3E%3Cpath%20d='M15%2016H21'/%3E%3C/svg%3E")}
.ph-users{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9'%20cy='9'%20r='2.6'/%3E%3Ccircle%20cx='15'%20cy='9'%20r='2.6'/%3E%3Cpath%20d='M4.5%2019C4.5%2016.2%206.5%2014.5%209%2014.5C10.2%2014.5%2011.2%2014.9%2012%2015.6'/%3E%3Cpath%20d='M12%2015.6C12.8%2014.9%2013.8%2014.5%2015%2014.5C17.5%2014.5%2019.5%2016.2%2019.5%2019'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='9'%20cy='9'%20r='2.6'/%3E%3Ccircle%20cx='15'%20cy='9'%20r='2.6'/%3E%3Cpath%20d='M4.5%2019C4.5%2016.2%206.5%2014.5%209%2014.5C10.2%2014.5%2011.2%2014.9%2012%2015.6'/%3E%3Cpath%20d='M12%2015.6C12.8%2014.9%2013.8%2014.5%2015%2014.5C17.5%2014.5%2019.5%2016.2%2019.5%2019'/%3E%3C/svg%3E")}
.ph-verified{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8%2012.4L11%2015.4L16.5%209'/%3E%3C/svg%3E")}
.ph-x{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%205L19%2019'/%3E%3Cpath%20d='M19%205L5%2019'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%205L19%2019'/%3E%3Cpath%20d='M19%205L5%2019'/%3E%3C/svg%3E")}
.ph-x-logo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4.5%204.5L19.5%2019.5'/%3E%3Cpath%20d='M19.5%204.5L4.5%2019.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M4.5%204.5L19.5%2019.5'/%3E%3Cpath%20d='M19.5%204.5L4.5%2019.5'/%3E%3C/svg%3E")}
.ph-youtube-logo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%208C3%206.9%203.9%206%205%206H19C20.1%206%2021%206.9%2021%208V16C21%2017.1%2020.1%2018%2019%2018H5C3.9%2018%203%2017.1%203%2016Z'/%3E%3Cpath%20d='M10.5%209.3L15.2%2012L10.5%2014.7Z'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M3%208C3%206.9%203.9%206%205%206H19C20.1%206%2021%206.9%2021%208V16C21%2017.1%2020.1%2018%2019%2018H5C3.9%2018%203%2017.1%203%2016Z'/%3E%3Cpath%20d='M10.5%209.3L15.2%2012L10.5%2014.7Z'%20fill='%23000'%20stroke='none'/%3E%3C/svg%3E")}
.ph-fill.ph-heart{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Cpath%20d='M12%2020C12%2020%203.5%2014.4%203.5%208.7C3.5%205.9%205.7%204%208.2%204C10%204%2011.4%205%2012%206.4C12.6%205%2014%204%2015.8%204C18.3%204%2020.5%205.9%2020.5%208.7C20.5%2014.4%2012%2020%2012%2020Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23000'%20stroke='none'%3E%3Cpath%20d='M12%2020C12%2020%203.5%2014.4%203.5%208.7C3.5%205.9%205.7%204%208.2%204C10%204%2011.4%205%2012%206.4C12.6%205%2014%204%2015.8%204C18.3%204%2020.5%205.9%2020.5%208.7C20.5%2014.4%2012%2020%2012%2020Z'/%3E%3C/svg%3E")}

/* ============ Profile page — DS "dossier" design ============ */
/* dark dossier banner */
.cover.pf-banner{height:260px;background:radial-gradient(120% 140% at 72% 0%,#262626 0%,#0A0A0A 70%)!important}
.pf-banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;filter:grayscale(.3) contrast(1.05)}
/* empty-state cover hint reads light on the dark banner */
.pf-banner .cover-ph{color:rgba(255,255,255,.5)}
.pf-banner .cover-ph::after{filter:invert(1);opacity:.09}
/* banner actions = solid black, Space Mono, ALL CAPS, no icon (Share / Edit); a Follow CTA stays primary orange */
.pf-banner .pf-cover-act{top:18px;right:22px}
.pf-banner .pf-cover-act .btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:400}
.pf-banner .pf-cover-act .btn-outline{background:var(--foreground);color:#fff;border-color:rgba(255,255,255,.28)}
.pf-banner .pf-cover-act .btn-outline:hover{background:#1f1f1f;border-color:rgba(255,255,255,.5);color:#fff}
/* avatar stacks above the id row, overlapping the banner, in a white (paper) frame */
.pf-av-wrap{position:relative;z-index:2;line-height:0}
.pwrap .avatar-lg{margin-top:-56px;border:3px solid var(--surface-card);box-shadow:0 6px 18px rgba(10,10,10,.14)}
/* id row: handle + badge + name  |  follow boxes */
.pwrap .phead-top{margin-top:14px;align-items:flex-start}
.pwrap .phead-id{padding-top:0}
.pwrap .phead-top .acts{padding-top:0}
.ph-h1{font-size:28px;letter-spacing:-.02em}
/* "The Creator" → DS orange-accent badge (star) */
.badge-creator{background:var(--accent)!important;border:1px solid var(--accent)!important;color:#fff!important;box-shadow:none!important;font-family:var(--mono);font-weight:400;text-transform:uppercase;font-size:.82rem;height:auto;padding:5px 11px;letter-spacing:.05em;margin-left:4px}
.badge-creator .ph{color:var(--accent);font-size:1.05rem}
/* follow boxes → DS bordered stat boxes (number stacked over label), pinned top-right of the body */
.pwrap .acts{position:absolute;top:18px;right:clamp(20px,2.6vw,44px);padding-top:0;margin:0;z-index:3}
@media(max-width:700px){ .pwrap .acts{position:static;margin-top:14px} }
.pf-stats{gap:12px}
.pf-stat{flex-direction:column;align-items:center;gap:3px;min-width:106px;padding:12px 20px}
.pf-stat b{font-size:26px;font-weight:400}
.pf-stat span{font-size:.72rem}
/* meta row: mono, spaced by gap only (pipe separators dropped in markup) */
.pf-meta{gap:8px 20px;margin-top:16px}
.pf-meta .aloc,.pf-meta .alink{font-size:.875rem}
@media(max-width:820px){ .cover.pf-banner{height:200px} .pwrap .avatar-lg{margin-top:-46px} }

/* ============ Bio rich-text editor (edit-profile) ============ */
.rt{border:1px solid var(--border-strong);border-radius:0;background:var(--card);overflow:hidden;transition:border-color .12s,box-shadow .12s}
.rt:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.rt-bar{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--surface)}
.rt-b{width:30px;height:28px;display:grid;place-items:center;border:1px solid transparent;border-radius:0;background:none;color:var(--muted-foreground);cursor:pointer;font-size:14px;line-height:1;padding:0}
.rt-b b{font-weight:800}
.rt-b i{font-style:italic}
.rt-b:hover{background:var(--muted);color:var(--foreground)}
.rt-b.on{background:var(--foreground);color:#fff;border-color:var(--foreground)}
.rt-ed{min-height:5.5em;padding:11px 13px;font:inherit;font-size:.95rem;line-height:1.55;color:var(--foreground);outline:none;overflow-wrap:anywhere;white-space:pre-wrap}
.rt-ed:empty::before{content:attr(data-ph);color:var(--muted-foreground)}
.rt-ed strong,.rt-ed b{font-weight:700}
.rt-ed em,.rt-ed i{font-style:italic}

/* ============ Database — DS polish (fonts / chase / submit) ============ */
/* 1. filter dropdowns + sort → Space Mono, UPPERCASE */
.fdrop-btn,.sortsel{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:400}
.sortbox{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--text-subtle)}
/* 2. "Submit an item" (page head) → ink + Space Mono ALL CAPS */
.page-head .ha .btn-primary{background:var(--ts-ink);border-color:var(--ts-ink);color:#fff;font-family:var(--mono);text-transform:uppercase;font-weight:400;letter-spacing:.05em;font-size:13.5px}
.page-head .ha .btn-primary:hover{background:var(--ts-ink-2);border-color:var(--ts-ink-2);color:#fff}
/* 3. cards: eyebrow = Space Mono caps, name = Space Grotesk, artist = Inter, price = mono w/ accent value */
.item .type{font-family:var(--mono);font-weight:400}
.item .nm{font-family:var(--display);font-size:1rem}
.item .ar{color:#4A4A47;font-weight:400;font-size:.84rem;margin-top:.34rem}
.item .retail{font-family:var(--mono);font-weight:400}
.item .retail .p{color:var(--accent)}
/* 6. Chase badge → orange fill + white Space Mono regular ALL CAPS */
.item .flag{background:var(--accent);color:#fff;border:none;height:auto;line-height:1;padding:4px 8px;
  font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-radius:0}

/* sidebar text darker (owner review) + nav item counts */
.side-nav a{color:#4A4A47}
.side-foot{color:#6E6E6A}
.side-num{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--text-subtle);line-height:1}
.display-add .da-t{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-weight:400}

/* ============ Item detail page — DS polish ============ */
/* CTAs (Have/Want/Share/Edit): uniform size, Space Mono ALL CAPS */
.itm-ctas .btn{font-family:var(--mono);text-transform:uppercase;font-weight:400;letter-spacing:.04em;font-size:13px;padding:11px 18px;height:auto;line-height:1.1}
.itm-ctas .btn.btn-sm{font-size:13px;padding:11px 18px}
/* section headers ("OWNED BY…", "ITEM DETAILS", "PRODUCTION DETAILS") → Space Mono regular caps */
.itm-sec-h{font-family:var(--mono);font-weight:400}
/* owner avatar: no border, image fills the container */
.owner-chip .oav{border:0}
/* item-details board → white card w/ gray outline (mirrors the production board); dividered rows */
.idetails{background:var(--card);border:1px solid var(--border);border-radius:0;padding:0;gap:0}
.idetails .row{grid-template-columns:120px 1fr;padding:13px 18px;border-bottom:1px solid var(--border-hair);align-items:center}
.idetails .row:last-child{border-bottom:0}
/* detail tags → DS Chip (Space Mono caps, hairline outline, transparent); chase = orange outline+font */
.idetails .badge{font-family:var(--mono);text-transform:uppercase;font-weight:400;font-size:11px;letter-spacing:.05em;line-height:1;background:transparent;border:1px solid var(--border-strong);color:#4A4A47;border-radius:0;padding:5px 9px;height:auto}
.idetails .badge-chase{background:transparent;border:1px solid var(--accent);color:var(--accent)}

/* ============ Item detail — review tweaks ============ */
/* eyebrow (category) → Space Mono regular ALL CAPS */
.eyebrow-sm{font-family:var(--mono);font-weight:400}
/* section titles (Owned by / Item details / Production details) → black */
.itm-sec-h{color:var(--text-primary)}
/* production board → design spec: smaller mono-caps labels, darker mono data */
.prod-grid .cell .k{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:5px}
.prod-grid .cell .val{color:var(--text-primary);font-family:var(--mono);font-size:15px;text-transform:uppercase}
.prod-grid .cell .val .na{color:var(--text-subtle);opacity:1}
/* about body copy → Inter, slightly smaller */
.about-box .ab-text{font-family:var(--sans);font-size:.94rem}
/* artist byline link → orange (clickable) */
.detail .dh .by a{color:var(--accent);font-weight:600}
.detail .dh .by a:hover{text-decoration:underline}

/* ============ Insights tab — DS redesign (orange accent + paper; BLACK archetype hero) ============ */
/* Archetype hero → black dossier with an orange registration tick */
.ins-hero{background:var(--ts-ink)!important;border-color:var(--ts-ink)!important;color:#fff;position:relative;overflow:hidden;padding:26px 28px}
.ins-hero>*{position:relative;z-index:1}
.ins-hero-name{color:#fff}
.ins-hero-blurb{color:rgba(255,255,255,.82)}
.ins-dna{color:rgba(255,255,255,.6)}
.ins-dna b{color:var(--accent)}
.ins-trait{background:var(--accent);color:#fff}
/* Stats → mono, bordered grid (design .in-stats) */
.ins-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--border);background:var(--card)}
.ins-stat{flex:none;min-width:0;border:0;border-right:1px solid var(--border-hair);border-radius:0;padding:16px 18px;background:transparent}
.ins-stat:last-child{border-right:0}
.ins-stat-n{font-family:var(--mono);font-weight:700;font-size:24px;letter-spacing:-.01em}
.ins-stat-k{font-family:var(--mono);font-weight:400;letter-spacing:.1em}
@media(max-width:1100px){.ins-stats{grid-template-columns:repeat(3,1fr)}.ins-stat:nth-child(3n){border-right:0}}
@media(max-width:640px){.ins-stats{grid-template-columns:repeat(2,1fr)}.ins-stat{border-right:1px solid var(--border-hair)}.ins-stat:nth-child(2n){border-right:0}}
/* Card labels mono; all accents orange (were purple) */
.ins-card-h,.ins-catlabel{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.08em}
.ins-card-sub b{color:var(--accent)}
.ins-fill,.ins-gauge-fill,.ins-spark-b{background:var(--accent)!important}
.ins-track,.ins-gauge-track,.ins-catbar{background:var(--surface-sunken)}
.ins-row .lbl a:hover{color:var(--accent)}
.ins-meta-k{font-family:var(--mono);font-weight:400}
.ins-price-v{color:var(--accent)}
/* Standout + bands → accent-wash + hairline (were purple) */
.ins-standout-hero,.ins-band{background:var(--accent-wash)!important;border-color:var(--border)!important}
.ins-standout-img{border-color:var(--border)!important}

/* clickable notification rows (route to profile / feed post / thread / entity) */
.notif-item.notif-clickable{cursor:pointer}
.notif-item.notif-clickable:hover{background:var(--surface-sunken)}

/* ---- Request a Feature (public, community voting board) ---- */
.rq-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}
.rq-tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin:0 24px -1px 0;padding:10px 2px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:400;color:var(--muted-foreground);cursor:pointer}
.rq-tab:hover{color:var(--foreground)}
.rq-tab.active{color:var(--foreground);border-bottom-color:var(--primary)}
.rq-tab-n{margin-left:.4em;color:var(--muted-foreground)}
.rq-tab.active .rq-tab-n{color:var(--primary)}

.rq-list{display:flex;flex-direction:column;gap:12px}
.rq-card{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--border);padding:16px 18px}
.rq-card:hover{border-color:var(--border-strong)}

.rq-vote{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:54px;padding:8px 6px;background:var(--surface);border:1px solid var(--border);color:var(--foreground);cursor:pointer;font-family:var(--mono);line-height:1}
.rq-vote .ph{font-size:15px}
.rq-vote-n{font-size:14px;font-weight:400}
.rq-vote:hover{border-color:var(--primary);color:var(--primary)}
.rq-vote.voted{background:var(--primary);border-color:var(--primary);color:#fff}

.rq-body{flex:1 1 auto;min-width:0}
.rq-title{font-family:var(--display);font-weight:640;font-size:1.05rem;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}
.rq-desc{margin:.35rem 0 0;color:var(--muted-foreground);font-size:.92rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.rq-meta{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;font-size:.8rem;color:var(--muted-foreground)}
.rq-av{position:relative;width:22px;height:22px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface);border:1px solid var(--border);font-family:var(--mono);font-size:9px;color:var(--muted-foreground)}
.rq-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rq-who{color:var(--primary-strong);text-decoration:none;font-weight:500}
.rq-who:hover{text-decoration:underline}
.rq-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:9.5px;color:var(--primary);border:1px solid var(--primary);padding:2px 6px}

.rq-admin{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.rq-hide{appearance:none;background:none;border:1px solid var(--border);color:var(--muted-foreground);width:26px;height:26px;line-height:1;cursor:pointer;font-size:12px}
.rq-hide:hover{border-color:var(--primary);color:var(--primary)}
.rq-opt{color:var(--muted-foreground);font-weight:400;text-transform:none;letter-spacing:0}
.rq-empty{padding:44px 16px;text-align:center;color:var(--muted-foreground);border:1px dashed var(--border)}

@media(max-width:640px){
  .rq-card{flex-wrap:wrap}
  .rq-admin{width:100%;margin-top:8px;justify-content:flex-end}
}

/* ===== Maintenance workflows hub ===== */
.mw-card{margin-bottom:16px}
.mw-preview{margin:2px 0 12px}
.mw-count{font-size:.95rem;color:var(--muted-foreground)}
.mw-count b{font-size:1.5rem;color:var(--foreground);margin-right:4px}
.mw-count-on b{color:var(--primary)}
.mw-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mw-done{font-weight:640;color:var(--primary)}
.mw-sample{margin-top:8px;font-size:.84rem}
.mw-sample summary{cursor:pointer;color:var(--muted-foreground)}
.mw-sample-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.mw-sample-list li{display:flex;justify-content:space-between;gap:12px}
.mw-sample-d{color:var(--muted-foreground);font-family:'Space Mono',monospace;font-size:.78rem}
.mw-sched{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.mw-sched-tog{display:flex;gap:6px;align-items:center;font-size:.85rem}
.mw-cron{max-width:220px;font-family:'Space Mono',monospace;font-size:.82rem}
.mw-sched-note{font-size:.8rem;color:var(--muted-foreground)}
.mw-sched-note.mw-ok{color:var(--primary)}
.mw-sched-note.mw-err{color:#c0392b}
.mw-dup-list{margin-top:6px}
.mw-dup{border:1px solid var(--border);padding:12px;margin-top:10px}
.mw-dup-hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.mw-dup-n{color:var(--muted-foreground);font-size:.78rem;white-space:nowrap}
.mw-dup-toys{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:5px}
.mw-dup-toys label{display:flex;gap:8px;align-items:baseline;cursor:pointer}
.mw-dup-name{font-weight:600}
.mw-dup-meta{color:var(--muted-foreground);font-size:.76rem;margin-left:auto;white-space:nowrap}
.mw-dup-done{opacity:.55}
.mw-hist{overflow-x:auto}
.mw-hist-t{width:100%;border-collapse:collapse;font-size:.84rem}
.mw-hist-t th,.mw-hist-t td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.mw-hist-t th{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);font-weight:700}
.mw-pill{display:inline-block;padding:1px 8px;border:1px solid var(--border-strong);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.mw-pill.mw-ok{color:#1a7f37;border-color:#1a7f37}
.mw-pill.mw-err{color:#c0392b;border-color:#c0392b}
.mw-pill.mw-run{color:var(--muted-foreground)}
.mw-hist-err{color:#c0392b;font-size:.75rem;margin-top:3px;max-width:340px;word-break:break-word}

/* Invite link = secondary button in the account menu, spaced to sit just above Sign out */
.am-invite{margin:8px 0 2px;height:2.4rem}
.am-invite-ok{color:var(--primary);border-color:var(--primary)}

/* Feature category: card chip + board filter bar */
.kb-cat{display:inline-block;padding:1px 7px;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--muted-foreground);background:var(--muted)}
.fp-barrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.fp-catfilter{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted-foreground)}
.fp-catfilter select{max-width:200px}
.adm-req{color:var(--primary);font-weight:700}

/* Admin topbar: keep the account cluster pinned right (the generic .topbar rule doesn't cover .adm-topbar) + admin-scoped search */
.adm-topbar .spacer{flex:1}
.adm-search{position:relative;width:min(300px,34vw)}
.adm-search-ic{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:15px;color:var(--muted-foreground);pointer-events:none}
.adm-search input{width:100%;height:2.4rem;padding:0 .7rem 0 2rem;border:1px solid var(--border-strong);border-radius:0;background:var(--muted);font:inherit;font-size:.88rem;color:var(--foreground)}
.adm-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);background:var(--card)}
.adm-search-dd{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:60;max-height:60vh;overflow:auto;padding:4px}
.adm-search-dd[hidden]{display:none}
.adm-sr{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;padding:.5rem .6rem;border:none;background:none;cursor:pointer}
.adm-sr:hover,.adm-sr.sel{background:var(--muted)}
.adm-sr-t{font-weight:600;font-size:.88rem;color:var(--foreground)}
.adm-sr-d{font-size:.76rem;color:var(--muted-foreground)}
.adm-search-empty{padding:.7rem .6rem;color:var(--muted-foreground);font-size:.84rem}
@media(max-width:720px){ .adm-search{display:none} }

/* Item preview: staff review action bar (approve/decline a pending submission inline) */
.itm-review-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;background:var(--card);border:1px solid var(--primary);box-shadow:var(--shadow-sm)}
.itm-review-bar .irb-txt{display:flex;align-items:center;gap:8px;font-weight:640;font-size:.9rem;color:var(--foreground)}
.itm-review-bar .irb-txt .ph{color:var(--primary);font-size:18px}
.itm-review-bar .irb-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.itm-review-bar.is-approved{border-color:#1a7f37}
.itm-review-bar.is-declined{border-color:var(--border-strong);opacity:.85}
.irb-done{font-weight:640;font-size:.88rem;color:var(--foreground)}
.irb-err{color:#c0392b;font-size:.8rem;margin-right:6px}

/* Feature editor multi-line fields: drop the fixed input height so they auto-grow to content (JS sets exact height) */
.adm-modal-bd textarea.adm-input{height:auto;min-height:4.75rem;padding-top:.5rem;padding-bottom:.5rem;line-height:1.5}

/* Admin console brand: TS symbol tile (self-contained black+white SVG) replacing the wordmark */
.adm-symbol{width:36px;height:36px;border-radius:0;flex:none;display:block}

/* sign-out glyph for the DS icon set (grid 24, stroke 2) — door bracket + exit arrow */
.ph-sign-out{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M9%204H5V20H9'/%3E%3Cpath%20d='M10%2012H20'/%3E%3Cpath%20d='M16%208L20%2012L16%2016'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M9%204H5V20H9'/%3E%3Cpath%20d='M10%2012H20'/%3E%3Cpath%20d='M16%208L20%2012L16%2016'/%3E%3C/svg%3E")}

/* admin search: parent-page label on a nested-section result */
.adm-sr-t{display:flex;align-items:baseline;gap:8px}
.adm-sr-parent{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);background:var(--muted);padding:1px 6px}

/* ===== Publishable pages (sandbox): hidden nav, admin Draft badge, preview banner, admin Pages list ===== */
.ts-page-hidden{display:none!important}
.nav-draft{margin-left:auto;font-family:var(--mono);font-size:9px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:#fff;padding:2px 5px;border-radius:0;line-height:1.4}
.ts-preview-bar{position:fixed;top:68px;left:50%;transform:translateX(-50%);z-index:300;max-width:min(680px,92vw);display:flex;align-items:center;gap:8px;background:var(--ts-ink,#0a0a0a);color:#fff;padding:9px 14px;font-size:.82rem;box-shadow:var(--shadow-lg)}
.ts-preview-bar .ph{color:var(--accent);flex:none;font-size:16px}
.ts-preview-bar b{font-weight:700}
.mw-pages{display:flex;flex-direction:column}
.mw-page-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--border)}
.mw-page-row:last-child{border-bottom:none}
.mw-page-info{display:flex;flex-direction:column;gap:1px;margin-right:auto;min-width:0}
.mw-page-name{font-weight:600;font-size:.92rem}
.mw-page-path{font-size:.76rem;color:var(--muted-foreground);font-family:'Space Mono',monospace}
.mw-page-state{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);min-width:88px;text-align:right}

/* Admin Console quick-switch (sidebar, above Submit; admins/maintainers only). When shown, it becomes
   the top of the bottom-pinned group so it sits directly above Submit. */
.side-admin{display:block}
.side-admin[hidden]{display:none}
.side-util .side-admin{margin-top:auto}
.side-util .side-admin:not([hidden]) ~ .side-submit{margin:6px 0 0}
/* matches the app's standard dropdown (.msg-cat-select) and the buttons' height */
.side-admin-sel{width:100%;height:2.6rem;padding:0 2.25rem 0 .85rem;border:1px solid var(--border-strong);border-radius:0;background-color:var(--card);font-family:var(--sans);font-size:.92rem;color:var(--foreground);cursor:pointer}
.side-admin-sel:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}

/* ===== Admin Quick Review & Request ===== */
.qr-arrow.is-on{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
html.qr-selecting,html.qr-selecting *{cursor:crosshair!important}
html.qr-selecting{user-select:none}
.qr-hilite{position:fixed;z-index:2147483000;pointer-events:none;background:rgba(255,59,14,.12);border:2px solid var(--accent);box-shadow:0 0 0 1px rgba(255,255,255,.4);transition:all .05s linear}
.qr-hint{position:fixed;z-index:2147483001;left:50%;top:16px;transform:translateX(-50%);pointer-events:none;display:flex;align-items:center;gap:8px;padding:8px 14px;background:#1c1917;color:#fff;font-size:.82rem;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.qr-hint kbd{font-family:var(--mono);font-size:.72rem;background:rgba(255,255,255,.16);padding:1px 6px;border-radius:0}
.qr-hint .ph{color:var(--ts-signal-400)}
html.qr-noscroll{overflow:hidden}
.qr-modal-wrap{position:fixed;inset:0;z-index:2147483002;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow:auto}
.qr-scrim{position:fixed;inset:0;background:rgba(20,18,16,.55)}
.qr-modal{position:relative;width:min(720px,100%);background:var(--card);border:1px solid var(--border-strong);box-shadow:0 24px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;max-height:92vh}
.qr-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}
.qr-hd h3{margin:0;font-size:1.02rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}
.qr-x{border:none;background:none;font-size:1.1rem;cursor:pointer;color:var(--muted-foreground);line-height:1}
.qr-x:hover{color:var(--foreground)}
.qr-bd{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.qr-capture{display:flex;gap:14px;align-items:flex-start}
.qr-shot{flex:0 0 240px;max-width:240px;border:1px solid var(--border);background:var(--muted);min-height:120px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.qr-shot img{display:block;width:100%;height:auto}
.qr-shot-ph{padding:18px 12px;font-size:.8rem;color:var(--muted-foreground);text-align:center;line-height:1.4}
.qr-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;font-size:.82rem}
.qr-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);word-break:break-all}
.qr-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qr-sel{display:block;font-family:var(--mono);font-size:.72rem;color:var(--muted-foreground);background:var(--muted);padding:5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qr-code summary{cursor:pointer;font-size:.78rem;color:var(--muted-foreground);user-select:none}
.qr-code pre{margin:6px 0 0;max-height:160px;overflow:auto;background:#1c1917;color:#e7e5e4;padding:10px;font-family:var(--mono);font-size:.72rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.qr-fields{display:flex;flex-direction:column;gap:12px}
.qr-f{display:flex;flex-direction:column;gap:5px}
.qr-f>span{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}
.qr-f input,.qr-f textarea,.qr-f select{font:inherit;font-size:.92rem;padding:8px 10px;border:1px solid var(--border-strong);border-radius:0;background:var(--card);color:var(--foreground);width:100%}
.qr-f textarea{resize:vertical;line-height:1.45}
.qr-f input:focus,.qr-f textarea:focus,.qr-f select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.qr-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.qr-roles{display:flex;flex-wrap:wrap;gap:8px 14px}
.qr-chk{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;text-transform:capitalize;cursor:pointer}
.qr-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid var(--border)}
.qr-foot-btns{display:flex;gap:8px;flex:none}
.qr-msg{font-size:.82rem;color:var(--muted-foreground)}
.qr-msg.qr-err{color:#b91c1c}
.qr-done{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 12px;text-align:center}
.qr-done .ph{font-size:2.4rem;color:#15803d}
.qr-done p{margin:0;font-size:.95rem}
@media(max-width:560px){ .qr-capture{flex-direction:column} .qr-shot{flex-basis:auto;max-width:none;width:100%} .qr-row{grid-template-columns:repeat(2,1fr)} }

/* Quick Review glyphs (DS monoline; added with the element-selector tool) */
.ph-cursor-click{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%204L6%2017.5L9.9%2013.9L12.3%2019.2L14.4%2018.3L12%2013.1L16.6%2012.7Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M6%204L6%2017.5L9.9%2013.9L12.3%2019.2L14.4%2018.3L12%2013.1L16.6%2012.7Z'/%3E%3C/svg%3E")}
.ph-robot{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%208H19V18H5Z'/%3E%3Cpath%20d='M12%204.5V8'/%3E%3Ccircle%20cx='12'%20cy='4'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='9.5'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='14.5'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Cpath%20d='M9.5%2015.5H14.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M5%208H19V18H5Z'/%3E%3Cpath%20d='M12%204.5V8'/%3E%3Ccircle%20cx='12'%20cy='4'%20r='1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='9.5'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Ccircle%20cx='14.5'%20cy='12.5'%20r='1.1'%20fill='%23000'%20stroke='none'/%3E%3Cpath%20d='M9.5%2015.5H14.5'/%3E%3C/svg%3E")}
.ph-link{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M10%2014L14%2010'/%3E%3Cpath%20d='M8.5%2011.5L7%2013C5.6%2014.4%205.6%2016.6%207%2018C8.4%2019.4%2010.6%2019.4%2012%2018L13.5%2016.5'/%3E%3Cpath%20d='M15.5%2012.5L17%2011C18.4%209.6%2018.4%207.4%2017%206C15.6%204.6%2013.4%204.6%2012%206L10.5%207.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='butt'%20stroke-linejoin='miter'%3E%3Cpath%20d='M10%2014L14%2010'/%3E%3Cpath%20d='M8.5%2011.5L7%2013C5.6%2014.4%205.6%2016.6%207%2018C8.4%2019.4%2010.6%2019.4%2012%2018L13.5%2016.5'/%3E%3Cpath%20d='M15.5%2012.5L17%2011C18.4%209.6%2018.4%207.4%2017%206C15.6%204.6%2013.4%204.6%2012%206L10.5%207.5'/%3E%3C/svg%3E")}
