:root{
  --color-primary:#18181B;
  --color-secondary:#27272A;
  --color-background:#FAFAFA;
  --color-foreground:#09090B;
  --color-muted:#E8ECF0;
  --color-border:#E4E4E7;
  --color-accent:#00A86B;
  --radius:16px;
  --shadow-sm:0 1px 2px rgba(9,9,11,.06);
  --shadow-md:0 8px 24px rgba(9,9,11,.08);
  --shadow-lg:0 20px 50px rgba(9,9,11,.14);
  --font-ar:"IBM Plex Sans Arabic","Inter",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--color-background);
  color:var(--color-foreground);
  font-family:var(--font-ar);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
h1,h2,p{margin:0}
button,a{font-family:inherit}
button{cursor:pointer;border:0;background:none;color:inherit}
a{text-decoration:none;color:inherit}
i[data-lucide]{width:17px;height:17px;stroke-width:1.75}

.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px clamp(14px,3vw,32px);
  background:rgba(250,250,250,.82);
  backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--color-border);
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.mark{
  display:grid;place-items:center;width:38px;height:38px;flex:none;
  background:var(--color-primary);color:#fff;border-radius:12px;
  font-weight:700;font-size:18px;
}
.brand h1{font-size:clamp(1rem,1.6vw,1.25rem);font-weight:700;letter-spacing:-.01em}
.brand p{font-size:.78rem;color:#71717A;margin-top:2px}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ghost{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 13px;border-radius:11px;border:1px solid var(--color-border);
  background:#fff;font-size:.82rem;font-weight:500;color:#3F3F46;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.ghost:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:#fff}
.ghost:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.solid{
  display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;
  background:var(--color-primary);color:#fff;font-size:.82rem;font-weight:600;
  transition:transform .18s ease,box-shadow .18s ease;
}
.solid:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(24,24,27,.28)}
.zoom{font-size:.8rem;font-weight:600;min-width:48px;text-align:center;color:#52525B;font-variant-numeric:tabular-nums}

.tabs{
  display:flex;gap:10px;overflow-x:auto;padding:16px clamp(14px,3vw,32px) 4px;
  scrollbar-width:thin;
}
.tab{
  flex:none;display:flex;align-items:center;gap:9px;
  padding:10px 15px;border-radius:999px;border:1px solid var(--color-border);
  background:#fff;font-size:.84rem;font-weight:500;color:#52525B;white-space:nowrap;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.tab:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.tab .num{
  display:grid;place-items:center;width:22px;height:22px;border-radius:7px;
  background:var(--color-muted);font-size:.72rem;font-weight:700;color:#52525B;
}
.tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.tab.active .num{background:rgba(255,255,255,.18);color:#fff}
.tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}

.stage{
  flex:1;display:grid;gap:18px;
  grid-template-columns:minmax(0,1fr) 320px;
  padding:14px clamp(14px,3vw,32px) 22px;
}
.canvas{
  position:relative;overflow:auto;border-radius:var(--radius);
  background:
    linear-gradient(0deg,rgba(9,9,11,.035),rgba(9,9,11,.035)),
    repeating-conic-gradient(#fff 0% 25%, #F4F4F5 0% 50%) 50%/22px 22px;
  border:1px solid var(--color-border);box-shadow:var(--shadow-sm);
  height:calc(100vh - 260px);min-height:420px;
}
.canvas img{
  display:block;margin:0 auto;transform-origin:top center;
  transition:width .2s ease;image-rendering:auto;
}
.canvas.grabbing{cursor:grabbing}
.hint{
  position:absolute;bottom:14px;right:14px;display:flex;align-items:center;gap:8px;
  padding:9px 13px;border-radius:11px;font-size:.74rem;color:#3F3F46;
  background:rgba(255,255,255,.92);border:1px solid var(--color-border);
  backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);pointer-events:none;
}
.side{
  display:flex;flex-direction:column;gap:14px;
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow-sm);height:fit-content;
}
.side h2{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
.meta{font-size:.76rem;color:#71717A;margin-top:4px!important;font-weight:500}
.desc{font-size:.85rem;line-height:1.75;color:#3F3F46;margin-top:10px!important}

.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.thumb{
  padding:0;border:1.5px solid var(--color-border);border-radius:10px;overflow:hidden;
  background:#fff;aspect-ratio:1/1.06;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.thumb.active{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(24,24,27,.08)}
.thumb:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.note{
  display:flex;gap:10px;align-items:flex-start;margin-top:auto;padding:12px 13px;
  border-radius:12px;background:#F4F4F5;font-size:.74rem;line-height:1.7;color:#52525B;
}
.note i{flex:none;margin-top:2px;color:#71717A}
.foot{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:16px clamp(14px,3vw,32px) 26px;border-top:1px solid var(--color-border);
  font-size:.74rem;color:#71717A;
}
@media (max-width:1024px){
  .stage{grid-template-columns:1fr}
  .canvas{height:62vh}
  .side{order:-1}
  .thumbs{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:560px){
  .brand p{display:none}
  .ghost span,.solid span{display:none}
  .side{padding:16px}
  .thumbs{grid-template-columns:repeat(5,1fr);gap:6px}
  .hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
