/* ============================================================
   Fidel Habte Portfolio — Design System CSS
   Geist font loaded via Google Fonts / CDN in layout
   ============================================================ */

/* ── TOKENS ─────────────────────────────────────────────── */
:root {
  --neutral-0:    #ffffff;
  --neutral-50:   #f8f8fa;
  --neutral-100:  #f1f1f4;
  --neutral-150:  #e9e9ee;
  --neutral-200:  #e3e3e8;
  --neutral-300:  #d2d2da;
  --neutral-400:  #a7a7b3;
  --neutral-500:  #8a8a96;
  --neutral-600:  #66666f;
  --neutral-700:  #4a4a52;
  --neutral-800:  #2c2c31;
  --neutral-850:  #1d1d21;
  --neutral-900:  #141417;
  --neutral-950:  #0d0d0f;
  --neutral-1000: #08080a;

  --blue-50:  #eef2ff;
  --blue-300: #94aaff;
  --blue-400: #6685ff;
  --blue-500: #3d63ff;
  --blue-600: #2b4ce6;
  --blue-700: #2240bd;

  --cyan-300: #7fe3ff;
  --cyan-400: #38c8f5;
  --cyan-500: #11a8df;
  --cyan-600: #0c87b6;

  --green-400: #3ecf8e;
  --green-500: #21b378;
  --amber-400: #f5b54b;
  --amber-500: #e09a25;
  --red-400:   #f87171;
  --red-500:   #e5484d;

  /* Semantic — LIGHT */
  --bg:              var(--neutral-0);
  --bg-subtle:       var(--neutral-50);
  --bg-sunken:       var(--neutral-100);
  --surface:         var(--neutral-0);
  --surface-card:    var(--neutral-0);
  --surface-overlay: rgba(255,255,255,0.72);

  --text:            var(--neutral-950);
  --text-2:          var(--neutral-600);
  --text-3:          var(--neutral-500);
  --text-on-accent:  #fff;

  --border-1:  var(--neutral-150);
  --border-2:  var(--neutral-200);
  --border-3:  var(--neutral-300);
  --focus:     var(--blue-500);

  --accent:        var(--blue-500);
  --accent-h:      var(--blue-600);
  --accent-a:      var(--blue-700);
  --accent-soft:   var(--blue-50);
  --accent-text:   var(--blue-600);

  --ai:        var(--cyan-500);
  --ai-soft:   #e5f8ff;
  --ai-text:   var(--cyan-600);

  --ok:   var(--green-500);
  --warn: var(--amber-500);
  --bad:  var(--red-500);

  --glass-bg:     rgba(255,255,255,0.66);
  --glass-border: rgba(20,20,23,0.08);

  --mesh-1: rgba(61,99,255,0.18);
  --mesh-2: rgba(17,168,223,0.14);
  --mesh-3: rgba(61,99,255,0.06);

  /* Radius */
  --r-xs:   4px;
  --r-sm:   6px;
  --r-md:   8px;
  --r-lg:   12px;
  --r-xl:   16px;
  --r-2xl:  22px;
  --r-3xl:  32px;
  --r-full: 999px;

  /* Shadow */
  --sh-xs: 0 1px 2px rgba(13,13,15,.05);
  --sh-sm: 0 1px 2px rgba(13,13,15,.05),0 2px 6px rgba(13,13,15,.04);
  --sh-md: 0 2px 4px rgba(13,13,15,.04),0 6px 16px rgba(13,13,15,.06);
  --sh-lg: 0 4px 8px rgba(13,13,15,.04),0 14px 36px rgba(13,13,15,.10);
  --sh-xl: 0 8px 16px rgba(13,13,15,.06),0 28px 64px rgba(13,13,15,.14);
  --glow:  0 6px 24px rgba(61,99,255,.34);

  /* Motion */
  --ease:        cubic-bezier(.22,1,.36,1);
  --ease-io:     cubic-bezier(.65,0,.35,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --fast: 120ms; --base: 220ms; --slow: 420ms; --slower: 720ms;

  /* Fonts */
  --sans: 'Geist', 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --mono: 'Geist Mono', 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Layout */
  --max-w:   1200px;
  --max-w-p: 720px;
  --gutter:  clamp(1.25rem,4vw,2.5rem);
  --sec-y:   clamp(4rem,9vw,8rem);

  color-scheme: light;
}

/* ── DARK MODE ───────────────────────────────────────────── */
[data-theme="dark"] {
  --bg:              var(--neutral-1000);
  --bg-subtle:       var(--neutral-950);
  --bg-sunken:       var(--neutral-900);
  --surface:         #121215;
  --surface-card:    #121215;
  --surface-overlay: rgba(18,18,21,0.72);

  --text:   #f4f4f6;
  --text-2: var(--neutral-400);
  --text-3: var(--neutral-500);

  --border-1: rgba(255,255,255,.06);
  --border-2: rgba(255,255,255,.10);
  --border-3: rgba(255,255,255,.16);
  --focus:    var(--blue-400);

  --accent:      var(--blue-500);
  --accent-h:    var(--blue-400);
  --accent-a:    var(--blue-300);
  --accent-soft: rgba(61,99,255,.14);
  --accent-text: var(--blue-300);

  --ai:      var(--cyan-400);
  --ai-soft: rgba(17,168,223,.12);
  --ai-text: var(--cyan-300);

  --ok:   var(--green-400);
  --warn: var(--amber-400);
  --bad:  var(--red-400);

  --glass-bg:     rgba(20,20,23,.56);
  --glass-border: rgba(255,255,255,.08);

  --mesh-1: rgba(61,99,255,.22);
  --mesh-2: rgba(17,168,223,.16);
  --mesh-3: rgba(61,99,255,.08);

  --sh-xs: 0 1px 2px rgba(0,0,0,.40);
  --sh-sm: 0 1px 2px rgba(0,0,0,.40),0 2px 6px rgba(0,0,0,.32);
  --sh-md: 0 2px 6px rgba(0,0,0,.40),0 8px 24px rgba(0,0,0,.44);
  --sh-lg: 0 6px 16px rgba(0,0,0,.46),0 20px 48px rgba(0,0,0,.52);
  --sh-xl: 0 10px 28px rgba(0,0,0,.52),0 36px 80px rgba(0,0,0,.60);
  --glow:  0 6px 28px rgba(61,99,255,.45);

  color-scheme: dark;
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{font-family:var(--sans);font-size:1rem;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background var(--base) var(--ease),color var(--base) var(--ease);}
h1,h2,h3,h4,h5{line-height:1.2;letter-spacing:-.018em;font-weight:600;color:var(--text);text-wrap:balance;}
p{text-wrap:pretty;}
a{color:inherit;text-decoration:none;}
img,svg,video{display:block;max-width:100%;}
button,input,textarea,select{font:inherit;color:inherit;}
::selection{background:var(--accent-soft);color:var(--accent-text);}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs);}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

/* ── LAYOUT ─────────────────────────────────────────────── */
.wrap{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-top:var(--sec-y);padding-bottom:var(--sec-y);}
.section--alt{background:var(--bg-subtle);}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
@media(max-width:768px){.two-col{grid-template-columns:1fr;gap:2.5rem;}}

/* ── EYEBROW ─────────────────────────────────────────────── */
.eyebrow{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);}

/* ── SECTION LABEL ───────────────────────────────────────── */
.section-label{display:flex;flex-direction:column;gap:.75rem;max-width:640px;}
.section-label__title{font-size:clamp(1.6rem,2.6vw,2.25rem);font-weight:700;letter-spacing:-.022em;}
.section-label__desc{font-size:1.0625rem;color:var(--text-2);line-height:1.65;}
.section-label--center{text-align:center;max-width:100%;align-items:center;}

/* ── GLASS ───────────────────────────────────────────────── */
.glass{background:var(--glass-bg);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border:1px solid var(--glass-border);}

/* ── MESH ────────────────────────────────────────────────── */
.mesh{background:radial-gradient(60% 50% at 18% 12%,var(--mesh-1),transparent 70%),radial-gradient(50% 45% at 86% 8%,var(--mesh-2),transparent 70%),radial-gradient(70% 60% at 50% 100%,var(--mesh-3),transparent 75%);}

/* ── CARD ────────────────────────────────────────────────── */
.card{background:var(--surface-card);border:1px solid var(--border-2);border-radius:var(--r-xl);box-shadow:var(--sh-sm);padding:1.5rem;}
.card--interactive{cursor:pointer;transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease),border-color var(--base) var(--ease);}
.card--interactive:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:var(--border-3);}
.card--ai{background-image:radial-gradient(120% 90% at 100% 0%,var(--ai-soft),transparent 55%);}

/* ── BADGE ───────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-full);font-size:.75rem;font-weight:500;line-height:1;}
.badge--default{background:var(--bg-sunken);color:var(--text-2);border:1px solid var(--border-2);}
.badge--accent{background:var(--accent-soft);color:var(--accent-text);border:1px solid transparent;}
.badge--ai{background:var(--ai-soft);color:var(--ai-text);border:1px solid transparent;}
.badge--ok{background:rgba(33,179,120,.12);color:var(--ok);border:1px solid transparent;}
.badge--warn{background:rgba(224,154,37,.12);color:var(--warn);border:1px solid transparent;}
.badge--dot::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;}

/* ── TAG ─────────────────────────────────────────────────── */
.tag{display:inline-block;padding:3px 10px;border-radius:var(--r-lg);background:var(--bg-sunken);color:var(--text-2);font-family:var(--mono);font-size:.75rem;font-weight:500;border:1px solid var(--border-2);}

/* ── BUTTON ──────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--r-md);font-family:var(--sans);font-weight:500;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:background var(--fast) var(--ease),box-shadow var(--base) var(--ease),transform var(--fast) var(--ease),border-color var(--fast) var(--ease);}
.btn:active{transform:translateY(.5px) scale(.985);}
.btn--sm{height:34px;padding:0 12px;font-size:.875rem;}
.btn--md{height:42px;padding:0 18px;font-size:.875rem;}
.btn--lg{height:52px;padding:0 26px;font-size:1rem;border-radius:var(--r-lg);}
.btn--primary{background:var(--accent);color:#fff;border:1px solid transparent;box-shadow:var(--sh-xs);}
.btn--primary:hover{background:var(--accent-h);box-shadow:var(--glow);}
.btn--secondary{background:var(--bg-subtle);color:var(--text);border:1px solid var(--border-2);}
.btn--secondary:hover{background:var(--bg-sunken);}
.btn--ghost{background:transparent;color:var(--text-2);border:1px solid transparent;}
.btn--ghost:hover{background:var(--bg-subtle);}
.btn--outline{background:transparent;color:var(--text);border:1px solid var(--border-3);}
.btn--outline:hover{background:var(--bg-subtle);}
.btn--ai{background:transparent;color:var(--ai-text);border:1px solid var(--ai);}
.btn--ai:hover{background:var(--ai-soft);}
.btn--full{width:100%;}
.btn--danger{background:var(--bad);color:#fff;border:1px solid transparent;}
.btn--danger:hover{opacity:.9;}

/* ── INPUT ───────────────────────────────────────────────── */
.field{display:flex;flex-direction:column;gap:.375rem;}
.label{font-size:.875rem;font-weight:500;color:var(--text);}
.input,.textarea{width:100%;padding:.625rem .875rem;background:var(--bg);border:1px solid var(--border-2);border-radius:var(--r-md);font-size:.875rem;color:var(--text);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease);}
.input:focus,.textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(61,99,255,.18);}
.textarea{resize:vertical;line-height:1.6;}
.hint{font-size:.8125rem;color:var(--text-3);}

/* ── WYSIWYG (Quill) ─────────────────────────────────────── */
.wysiwyg{background:var(--bg);}
.ql-toolbar.ql-snow{border:1px solid var(--border-2);border-radius:var(--r-md) var(--r-md) 0 0;background:var(--bg-subtle);}
.ql-container.ql-snow{border:1px solid var(--border-2);border-top:none;border-radius:0 0 var(--r-md) var(--r-md);font-family:var(--sans);font-size:.875rem;color:var(--text);}
.ql-editor{min-height:110px;line-height:1.6;}
.ql-snow .ql-stroke{stroke:var(--text-2);}
.ql-snow .ql-fill{fill:var(--text-2);}
.ql-snow .ql-picker{color:var(--text-2);}
.ql-editor.ql-blank::before{color:var(--text-3);font-style:normal;}

/* ── RICH TEXT (rendered WYSIWYG content) ────────────────── */
.rich-text p{margin:0 0 .5em;}
.rich-text p:last-child{margin-bottom:0;}
.rich-text ul,.rich-text ol{margin:0 0 .5em;padding-left:1.25em;}
.rich-text a{color:var(--accent-text);text-decoration:underline;}

/* ── PROFICIENCY BAR ─────────────────────────────────────── */
.prof-bar{display:flex;flex-direction:column;gap:.375rem;}
.prof-bar__header{display:flex;align-items:center;justify-content:space-between;}
.prof-bar__name{font-size:.875rem;font-weight:500;}
.prof-bar__label{font-family:var(--mono);font-size:.75rem;color:var(--text-3);}
.prof-bar__track{height:5px;border-radius:999px;background:var(--bg-sunken);overflow:hidden;}
.prof-bar__fill{height:100%;border-radius:999px;background:var(--accent);transition:width 1s var(--ease);}
.prof-bar__fill--ai{background:var(--ai);}

/* ── STAT COUNTER ────────────────────────────────────────── */
.stat{display:flex;flex-direction:column;gap:.25rem;}
.stat__value{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;letter-spacing:-.03em;line-height:1;}
.stat__label{font-size:.875rem;color:var(--text-2);}

/* ── AVATAR ──────────────────────────────────────────────── */
.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-full);font-weight:600;font-size:.875rem;background:var(--accent-soft);color:var(--accent-text);flex-shrink:0;}
.avatar--sm{width:32px;height:32px;font-size:.75rem;}
.avatar--md{width:40px;height:40px;}
.avatar--lg{width:52px;height:52px;font-size:1rem;}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;}

/* ── NAV ─────────────────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:50;}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 var(--gutter);border-bottom:1px solid var(--glass-border);}
.nav__links{display:flex;align-items:center;gap:4px;}
.nav__link{padding:8px 12px;font-size:.875rem;font-weight:500;color:var(--text-2);border-radius:var(--r-md);transition:color var(--fast) var(--ease),background var(--fast) var(--ease);}
.nav__link:hover{color:var(--text);background:var(--bg-subtle);}
.nav__actions{display:flex;align-items:center;gap:.625rem;}
.nav__logo{height:26px;}
.nav__mobile-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--text);padding:8px;}
@media(max-width:768px){
  .nav__links{display:none;}
  .nav__mobile-toggle{display:flex;align-items:center;}
  .nav--open .nav__links{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:var(--glass-bg);backdrop-filter:blur(18px);padding:1rem;border-bottom:1px solid var(--glass-border);z-index:49;}
}

/* ── HERO ────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding:6rem 0;}
.hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:4rem;align-items:center;}
.hero__copy{display:flex;flex-direction:column;gap:1.5rem;}
.hero__display{font-size:clamp(2.75rem,6vw,5rem);font-weight:700;letter-spacing:-.03em;line-height:1.05;}
.hero__headline{font-size:1.25rem;font-weight:500;color:var(--text-2);}
.hero__sub{font-size:1.125rem;line-height:1.65;color:var(--text-2);max-width:540px;}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.75rem;}
.hero__stats{display:flex;gap:2.5rem;margin-top:.5rem;flex-wrap:wrap;}
.hero__photo{position:relative;}
.hero__photo-frame{aspect-ratio:4/5;border-radius:var(--r-3xl);overflow:hidden;background:linear-gradient(160deg,var(--bg-sunken),var(--surface-card));border:1px solid var(--border-2);box-shadow:var(--sh-xl);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.75rem;}
.hero__photo-frame img{width:100%;height:100%;object-fit:cover;}
.hero__photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--text-3);}
.hero__float{position:absolute;bottom:-1rem;left:-1rem;padding:.75rem 1rem;border-radius:var(--r-lg);box-shadow:var(--sh-lg);display:flex;align-items:center;gap:.625rem;}
.particle{position:absolute;border-radius:50%;opacity:.4;animation:floatY var(--dur,8s) ease-in-out var(--delay,0s) infinite;}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr;}.hero__photo{display:none;}}

/* ── SKILLS GRID ─────────────────────────────────────────── */
.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;}
@media(max-width:640px){.skills-grid{grid-template-columns:1fr;}}

/* ── PROJECTS GRID ───────────────────────────────────────── */
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
@media(max-width:960px){.proj-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:580px){.proj-grid{grid-template-columns:1fr;}}

/* ── TIMELINE ────────────────────────────────────────────── */
.timeline{position:relative;}
.timeline::before{content:'';position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:var(--border-2);}
.tl-item{position:relative;padding-left:56px;margin-bottom:1rem;}
.tl-dot{position:absolute;left:10px;top:18px;width:20px;height:20px;border-radius:50%;background:var(--surface-card);border:2px solid var(--border-3);z-index:1;transition:all var(--base) var(--ease);}
.tl-dot--active{background:var(--accent);border-color:var(--accent);}
.tl-card{cursor:pointer;}
.tl-expand{max-height:0;overflow:hidden;transition:max-height var(--slow) var(--ease);}
.tl-expand--open{max-height:600px;}

/* ── BLOG GRID ───────────────────────────────────────────── */
.blog-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.25rem;}
@media(max-width:768px){.blog-grid{grid-template-columns:1fr;}}

/* ── TESTIMONIALS ────────────────────────────────────────── */
.testimonial-track{position:relative;max-width:760px;margin:2.5rem auto 0;}
.testimonial-nav{display:flex;align-items:center;justify-content:center;gap:.875rem;margin-top:1.5rem;}
.testimonial-dot{width:8px;height:8px;border-radius:999px;border:none;cursor:pointer;background:var(--border-3);transition:all var(--base) var(--ease);}
.testimonial-dot--active{width:22px;background:var(--accent);}
.testimonial-stars{display:flex;justify-content:center;gap:3px;margin-bottom:1.25rem;}
.testimonial-quote{font-size:clamp(1rem,2vw,1.25rem);font-weight:500;line-height:1.4;letter-spacing:-.018em;color:var(--text);text-align:center;min-height:96px;}
.testimonial-author{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem;}

/* ── SPEAKING GRID ───────────────────────────────────────── */
.speaking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
@media(max-width:768px){.speaking-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.speaking-grid{grid-template-columns:1fr;}}
.speaking-card{display:flex;align-items:flex-start;gap:.875rem;}
.speaking-icon{width:42px;height:42px;flex-shrink:0;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;}

/* ── CONTACT GRID ────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr;gap:2.5rem;}}
.contact-link{display:flex;align-items:center;gap:.875rem;padding:.75rem .875rem;border-radius:var(--r-lg);border:1px solid var(--border-2);background:var(--surface-card);transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease);}
.contact-link:hover{border-color:var(--border-3);background:var(--bg-subtle);}

/* ── FOOTER ──────────────────────────────────────────────── */
.footer{border-top:1px solid var(--border-2);background:var(--bg);}
.footer__inner{padding:3rem 0 2rem;}
.footer__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;}
.footer__brand p{font-size:.875rem;color:var(--text-2);max-width:320px;margin-top:.75rem;}
.footer__socials{display:flex;gap:.5rem;}
.footer__social{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-md);border:1px solid var(--border-2);color:var(--text-2);transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease),background var(--fast) var(--ease);}
.footer__social:hover{color:var(--text);border-color:var(--border-3);background:var(--bg-subtle);}
.footer__divider{height:1px;background:var(--border-1);margin:2rem 0 1.25rem;}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;}
.footer__copy{font-size:.8125rem;color:var(--text-3);}
.back-top{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;cursor:pointer;font-size:.8125rem;color:var(--text-2);font-weight:500;font-family:var(--sans);}
.back-top:hover{color:var(--text);}

/* ── THEME TOGGLE ────────────────────────────────────────── */
.theme-toggle{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-md);border:1px solid var(--border-2);background:transparent;cursor:pointer;color:var(--text-2);transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease),background var(--fast) var(--ease);}
.theme-toggle:hover{background:var(--bg-subtle);color:var(--text);}
.icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-md);border:1px solid transparent;background:transparent;cursor:pointer;color:var(--text-2);transition:all var(--fast) var(--ease);}
.icon-btn:hover{background:var(--bg-subtle);color:var(--text);}

/* ── FLASH ALERT ─────────────────────────────────────────── */
.flash{padding:.875rem 1.25rem;border-radius:var(--r-lg);font-size:.875rem;margin-bottom:1.5rem;font-weight:500;}
.flash--success{background:rgba(33,179,120,.12);color:var(--ok);border:1px solid rgba(33,179,120,.24);}
.flash--error{background:rgba(229,72,77,.10);color:var(--bad);border:1px solid rgba(229,72,77,.24);}

/* ── ADMIN SHELL ─────────────────────────────────────────── */
.admin-layout{display:flex;min-height:100vh;}
.admin-sidebar{width:244px;flex-shrink:0;border-right:1px solid var(--border-2);background:var(--bg);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.admin-sidebar__brand{padding:18px 18px 14px;display:flex;align-items:center;gap:.625rem;border-bottom:1px solid var(--border-1);}
.admin-sidebar__name{font-size:.875rem;font-weight:600;line-height:1.1;}
.admin-sidebar__role{font-size:.75rem;color:var(--text-3);font-family:var(--mono);}
.admin-nav{flex:1;padding:.25rem .75rem;display:flex;flex-direction:column;gap:.125rem;overflow-y:auto;}
.admin-nav__item{display:flex;align-items:center;gap:.6875rem;width:100%;padding:9px 11px;border-radius:var(--r-md);border:none;cursor:pointer;text-align:left;font-size:.875rem;font-weight:500;background:transparent;color:var(--text-2);transition:background var(--fast) var(--ease),color var(--fast) var(--ease);text-decoration:none;}
.admin-nav__item:hover{background:var(--bg-subtle);color:var(--text);}
.admin-nav__item--active{background:var(--accent-soft);color:var(--accent-text);}
.admin-nav__item--active svg{color:var(--accent);}
.admin-nav__item svg{color:var(--text-3);flex-shrink:0;}
.admin-nav__item--active svg{color:var(--accent);}
.admin-sidebar__footer{padding:.75rem;border-top:1px solid var(--border-1);}
.admin-main{flex:1;display:flex;flex-direction:column;min-width:0;}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 1.5rem;border-bottom:1px solid var(--border-2);background:var(--surface-overlay);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20;}
.admin-topbar__title{font-size:1.25rem;font-weight:600;letter-spacing:-.018em;}
.admin-topbar__actions{display:flex;align-items:center;gap:.625rem;}
.admin-content{flex:1;padding:1.5rem;background:var(--bg-subtle);}
.admin-search{position:relative;display:flex;align-items:center;}
.admin-search__icon{position:absolute;left:11px;color:var(--text-3);pointer-events:none;}
.admin-search input{height:36px;width:200px;padding:0 12px 0 33px;font-size:.875rem;background:var(--bg-subtle);border:1px solid var(--border-2);border-radius:var(--r-md);}

/* ── KPI GRID ────────────────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr;}}
.kpi-value{font-size:clamp(1.5rem,2vw,2rem);font-weight:700;letter-spacing:-.03em;line-height:1;}

/* ── DATA TABLE ──────────────────────────────────────────── */
.data-table{width:100%;border-collapse:collapse;}
.data-table th{padding:10px 16px;text-align:left;font-family:var(--mono);font-size:.75rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-2);background:var(--bg-subtle);}
.data-table td{padding:14px 16px;font-size:.875rem;border-bottom:1px solid var(--border-1);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tr:hover td{background:var(--bg-subtle);}
.data-table-wrap{border-radius:var(--r-xl);border:1px solid var(--border-2);box-shadow:var(--sh-sm);overflow:hidden;background:var(--surface-card);}

/* ── PAGE TITLE ──────────────────────────────────────────── */
.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.page-title h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;}

/* ── FORM CARD ───────────────────────────────────────────── */
.form-card{max-width:720px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:580px){.form-row{grid-template-columns:1fr;}}
.form-section{display:flex;flex-direction:column;gap:1.25rem;}
.form-actions{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;}

/* ── MEDIA GRID ──────────────────────────────────────────── */
.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media(max-width:900px){.media-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:580px){.media-grid{grid-template-columns:repeat(2,1fr);}}

/* ── DROPZONE ────────────────────────────────────────────── */
.dropzone{border:2px dashed var(--border-3);border-radius:var(--r-xl);padding:3rem;text-align:center;background:var(--bg-subtle);margin-bottom:1.5rem;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease);}
.dropzone:hover,.dropzone--active{border-color:var(--accent);background:var(--accent-soft);}

/* ── TOOLBAR ─────────────────────────────────────────────── */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem;}

/* ── TABS ────────────────────────────────────────────────── */
.tabs{display:flex;gap:.25rem;background:var(--bg-sunken);padding:.25rem;border-radius:var(--r-lg);width:fit-content;}
.tab{padding:7px 14px;font-size:.875rem;font-weight:500;border:none;border-radius:var(--r-md);background:transparent;cursor:pointer;color:var(--text-2);transition:all var(--fast) var(--ease);}
.tab--active{background:var(--surface-card);color:var(--text);box-shadow:var(--sh-sm);}

/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
@keyframes progressFill{from{width:0;}}
@keyframes spin{to{transform:rotate(360deg);}}
.fade-up{animation:fadeUp var(--slow) var(--ease) both;}
.fade-up-1{animation-delay:.1s;}
.fade-up-2{animation-delay:.2s;}
.fade-up-3{animation-delay:.3s;}
.fade-up-4{animation-delay:.4s;}

/* ── SCROLLBAR ───────────────────────────────────────────── */
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-3);border-radius:999px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-3);}

/* ── PROSE (blog) ────────────────────────────────────────── */
.prose{color:var(--text-2);line-height:1.8;max-width:var(--max-w-p);}
.prose h1,.prose h2,.prose h3{color:var(--text);margin:2rem 0 .75rem;}
.prose p{margin-bottom:1.25rem;}
.prose a{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px;}
.prose code{font-family:var(--mono);font-size:.875em;background:var(--bg-sunken);padding:2px 6px;border-radius:var(--r-sm);}
.prose pre{background:var(--bg-sunken);border:1px solid var(--border-2);border-radius:var(--r-lg);padding:1.25rem;overflow-x:auto;margin:1.5rem 0;}
.prose pre code{background:none;padding:0;}
.prose ul,.prose ol{margin:1rem 0 1.25rem 1.5rem;}
.prose li{margin:.4rem 0;}
.prose blockquote{border-left:3px solid var(--accent);padding-left:1.25rem;color:var(--text-3);font-style:italic;margin:1.5rem 0;}

/* ── SEO PREVIEW ─────────────────────────────────────────── */
.seo-preview{padding:1rem;border:1px solid var(--border-2);border-radius:var(--r-md);}
.seo-preview__url{font-size:.8125rem;color:var(--ok);}
.seo-preview__title{font-size:1rem;color:var(--accent-text);font-weight:500;margin:.25rem 0;}
.seo-preview__desc{font-size:.8125rem;color:var(--text-2);line-height:1.5;}

/* ── RESPONSIVE NAV ──────────────────────────────────────── */
@media(max-width:1024px){.admin-sidebar{width:200px;}}
@media(max-width:768px){.admin-sidebar{display:none;}.admin-sidebar--open{display:flex;position:fixed;left:0;top:0;bottom:0;z-index:100;}}
