:root{
    --bg:#faf7f0;
    --surface:#ffffff;
    --surface-2:#f2ece0;
    --ink:#241d15;
    --ink-dim:#6e6252;
    --red:#a63d2f;
    --red-soft:#8c3226;
    --turquoise:#2d716a;
    --gold:#a4772e;
    --line: rgba(36,29,21,0.13);
    --radius: 2px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0;
  }
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--gold);
  }
  a{color:inherit;}
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--turquoise);
    outline-offset:3px;
  }
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

  /* ---------- woven divider pattern (signature element) ---------- */
  .weave{
    width:100%;
    height:22px;
    display:block;
  }
  .weave rect{fill:transparent;}

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(250,247,240,0.92);
    backdrop-filter: blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 28px;
    max-width:1180px; margin:0 auto;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    text-decoration:none;
  }
  .header-back{
    display:flex; align-items:center; justify-content:center; gap:6px;
    height:34px; padding:0 14px 0 12px; margin-right:6px;
    background:none; border:1px solid var(--line); border-radius:17px;
    color:var(--ink-dim); cursor:pointer; transition:border-color 0.2s ease, color 0.2s ease;
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; letter-spacing:0.03em;
  }
  .header-back:hover{ border-color:var(--gold); color:var(--ink); }
  .header-back svg{ width:16px; height:16px; flex-shrink:0; }
  .brand-logo{
    height:34px; width:auto; display:block;
  }
  nav.links{
    display:flex; gap:36px; align-items:center;
    font-size:0.86rem; letter-spacing:0.04em; text-transform:uppercase;
  }
  nav.links a{
    text-decoration:none; color:var(--ink-dim);
    position:relative; padding-bottom:4px;
    transition:color 0.2s ease;
  }
  nav.links a:hover{color:var(--ink);}
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:1px; background:var(--gold);
    transition:width 0.25s ease;
  }
  nav.links a:hover::after{width:100%;}
  .lang{
    font-family:'JetBrains Mono', monospace; font-size:0.78rem;
    display:flex; gap:8px; color:var(--ink-dim);
  }
  .lang span{cursor:pointer;}
  .lang .active{color:var(--gold);}
  .burger{display:none; background:none; border:none; color:var(--ink); cursor:pointer; padding:6px;}
  .burger svg{width:24px;height:24px;}

  /* ---------- header search (butun sayt bo'ylab kod qidiruv) ---------- */
  .header-search{
    position:relative;
    display:flex; align-items:center; gap:8px;
    height:36px; padding:0 6px 0 12px;
    border:1px solid var(--line); border-radius:18px;
    background:var(--surface);
    transition:border-color 0.2s ease;
  }
  .header-search:focus-within{ border-color:var(--turquoise); }
  .header-search > svg{ width:16px; height:16px; color:var(--ink-dim); flex-shrink:0; }
  .header-search input{
    border:none; outline:none; background:none;
    font-family:'JetBrains Mono', monospace; font-size:0.78rem;
    color:var(--ink); width:118px;
  }
  .header-search input::placeholder{ color:var(--ink-dim); }
  .header-search button{
    display:flex; align-items:center; justify-content:center;
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    background:none; border:none; color:var(--ink-dim); cursor:pointer;
    transition:color 0.2s ease, background 0.2s ease;
  }
  .header-search button:hover{ color:#faf7f0; background:var(--turquoise); }
  .header-search button svg{ width:15px; height:15px; }
  @media (max-width:900px){
    .header-search input{ width:72px; }
  }
  @media (max-width:520px){
    .header-search input{ width:52px; }
  }

  /* ---------- in-page sticky search (toifa / model sahifasida) ---------- */
  .inpage-search{
    position:sticky; top:var(--header-h, 66px); z-index:40;
    background:rgba(250,247,240,0.97); backdrop-filter:blur(6px);
    border:1px solid var(--line); border-radius:var(--radius);
    padding:12px 16px; margin-bottom:28px;
    box-shadow:0 6px 16px rgba(36,29,21,0.06);
  }
  .inpage-search-inner{
    display:flex; align-items:center; gap:10px;
    max-width:440px;
  }
  .inpage-search-inner > svg{ width:18px; height:18px; color:var(--ink-dim); flex-shrink:0; }
  .inpage-search-inner input{
    flex:1; min-width:0; border:none; outline:none; background:none;
    font-family:'JetBrains Mono', monospace; font-size:0.85rem; color:var(--ink);
    padding:4px 0;
  }
  .inpage-search-inner input::placeholder{ color:var(--ink-dim); }
  .inpage-search-clear{
    background:none; border:none; color:var(--ink-dim); cursor:pointer;
    font-size:1.15rem; line-height:1; padding:2px 6px; flex-shrink:0;
  }
  .inpage-search-clear:hover{ color:var(--red); }
  .inpage-search-msg{
    font-family:'JetBrains Mono', monospace; font-size:0.75rem; color:var(--turquoise);
    margin-top:8px; min-height:1em;
  }
  .inpage-search-msg.error{ color:var(--red); }
  .product-ph.search-hide{ display:none; }

  /* ---------- qidiruv variantlari (autocomplete) ---------- */
  .search-suggestions{
    position:absolute; left:0; right:0; top:calc(100% + 8px);
    background:var(--surface); border:1px solid var(--line);
    box-shadow:0 10px 26px rgba(36,29,21,0.14);
    max-height:280px; overflow-y:auto; z-index:80;
    display:none; border-radius:var(--radius);
  }
  .search-suggestions.open{ display:block; }
  .search-suggestion-item{
    display:flex; align-items:center; gap:12px;
    padding:8px 14px; cursor:pointer;
    font-family:'JetBrains Mono', monospace; font-size:0.8rem;
    border-bottom:1px solid var(--line);
    transition:background 0.15s ease;
  }
  .search-suggestion-item:last-child{ border-bottom:none; }
  .search-suggestion-item:hover{ background:var(--surface-2); }
  .sg-thumb{
    width:38px; height:38px; object-fit:cover; flex-shrink:0;
    border:1px solid var(--line); background:var(--surface-2);
  }
  .sg-thumb-empty{ display:block; }
  .sg-text{
    display:flex; flex-direction:column; gap:2px; min-width:0; flex:1;
  }
  .search-suggestion-item .sg-code{ color:var(--ink); font-weight:600; white-space:nowrap; }
  .search-suggestion-item .sg-loc{
    color:var(--ink-dim); font-size:0.7rem; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis; min-width:0;
  }
  .search-suggestion-empty{
    padding:12px 14px; font-family:'JetBrains Mono', monospace;
    font-size:0.76rem; color:var(--ink-dim);
  }

  @media (max-width: 820px){
    /* Header'ni ixchamlaymiz */
    .nav-row{ padding:12px 16px; }
    .brand-logo{ height:30px; max-width:150px; object-fit:contain; }
    /* Mobil menyu: yopiq holatда butunlay yashiringan (display:none),
       burger bosilganda ochiladi. Eski transform usuli qisman ko'rinib
       qolayotgani uchun display bilan almashtirildi. */
    nav.links{
      display:none;
      position:fixed; left:0; right:0;
      top:var(--header-h, 58px); bottom:auto;
      max-height:calc(100vh - var(--header-h, 58px)); overflow-y:auto;
      background:var(--bg); border-top:1px solid var(--line);
      box-shadow:0 16px 32px rgba(0,0,0,0.10);
      flex-direction:column; align-items:flex-start; justify-content:flex-start;
      padding:20px; gap:20px; font-size:1.05rem;
      transform:none; z-index:60;
    }
    nav.links.open{ display:flex; }
    .burger{ display:block; }
    /* Qidiruv maydonini kichraytiramiz */
    .header-search{ height:34px; }
    .header-search input{ width:56px; }
    .nav-actions{ gap:12px; }
    /* Ichki sahifadagi "Orqaga" tugmasini faqat ikonka qilamiz (matn olib
       tashlanadi) - aks holda header gorizontal sig'may qoladi */
    .header-back{ padding:0 9px; margin-right:4px; height:32px; }
    .header-back span{ display:none; }
    /* Admin tugmasini qidiruv+til yonida QOTIRAMIZ (burger ichiga emas).
       Ixcham qilamiz - inline stillarni bosish uchun !important. */
    #adminBtn{
      display:inline-flex !important; align-items:center;
      padding:5px 9px !important; font-size:0.6rem !important;
    }
  }
  /* Admin havolasi (burger menyu ichidagi) endi kerak emas - hamma joyda yashirin */
  .nav-admin-link{ display:none !important; }
  .nav-actions{ display:flex; align-items:center; gap:20px; }
  @media (max-width:480px){
    .nav-actions{ gap:12px; }
  }
  /* Juda tor telefonlar (~360-400px): header elementlarini yanada ixchamlaymiz,
     shunda "Orqaga" tugmasi bilan ham hammasi bitta qatorga sig'adi */
  @media (max-width:400px){
    .nav-row{ padding:10px 10px; }
    .brand-logo{ max-width:96px; height:26px; }
    .header-search input{ width:30px; }
    .header-search{ padding:0 3px 0 9px; gap:5px; }
    .lang{ gap:5px; font-size:0.7rem; }
    .nav-actions{ gap:7px; }
    #adminBtn{ padding:4px 7px !important; font-size:0.56rem !important; }
    .burger{ padding:4px; }
    .burger svg{ width:20px; height:20px; }
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding:112px 0 64px;
    overflow:hidden;
    text-align:center;
  }
  .hero-rule{
    display:block; width:44px; height:1px; margin:0 auto 26px;
    background:var(--gold);
  }
  .hero h1{
    font-optical-sizing:auto;
    font-variation-settings:"opsz" 90;
    font-weight:560;
    font-size:clamp(2.6rem, 6.4vw, 4.8rem);
    line-height:1.08;
    letter-spacing:-0.015em;
    max-width:15ch;
    margin:0 auto;
  }
  .hero h1 em{
    font-style:italic;
    font-weight:500;
    color:var(--red);
  }
  .hero p{
    max-width:52ch; margin:24px auto 0;
    color:var(--ink-dim); font-size:1.08rem;
  }
  .hero-cta{
    margin-top:34px; display:inline-flex; gap:16px; flex-wrap:wrap; justify-content:center;
  }
  .btn{
    font-family:'JetBrains Mono', monospace; font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase;
    padding:14px 26px; text-decoration:none; border-radius:var(--radius);
    display:inline-block; transition: all 0.2s ease;
    cursor:pointer; background:none; margin:0;
  }
  .btn-primary{ background:var(--red); color:#faf7f0; border:1px solid var(--red);}
  .btn-primary:hover{ background:var(--red-soft); border-color:var(--red-soft);}
  .btn-ghost{ border:1px solid var(--line); color:var(--ink-dim); }
  .btn-ghost:hover{ color:var(--ink); border-color:var(--gold); }

  /* ---------- section shell ---------- */
  section{padding:88px 0;}
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:24px; margin-bottom:48px; flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(1.8rem, 3.4vw, 2.6rem);}
  .section-head p{color:var(--ink-dim); max-width:38ch; margin:10px 0 0;}
  .count{
    font-family:'JetBrains Mono', monospace; color:var(--ink-dim); font-size:0.85rem;
  }

  /* ---------- collection grid ---------- */
  .grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:2px;
    background:var(--line);
    border:1px solid var(--line);
  }
  @media (max-width:720px){ .grid{grid-template-columns:1fr;} }
  .card{
    background:var(--surface); padding:36px; position:relative;
    display:flex; flex-direction:column; gap:18px;
    transition: background 0.25s ease;
  }
  .card:hover{background:var(--surface-2);}
  .swatch{
    width:100%; aspect-ratio:16/10; border:1px solid var(--line); overflow:hidden;
    position:relative;
  }
  .swatch svg{width:100%;height:100%;}
  .swatch .cover{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover;
  }
  .cover-edit-btn{
    position:absolute; bottom:8px; right:8px; z-index:5;
    width:32px; height:32px; border-radius:50%;
    background:rgba(20,16,11,0.72); color:#faf7f0; border:none;
    font-size:0.95rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease;
  }
  .cover-edit-btn:hover{ background:var(--turquoise); }
  .card .num{
    font-family:'JetBrains Mono', monospace; font-size:0.75rem; color:var(--gold);
  }
  .card h3{font-size:1.4rem;}
  .add-model-card{ align-items:center; justify-content:center; text-align:center; }
  .add-model-card:hover{ border-color:var(--turquoise); }
  .add-model-swatch{
    display:flex; align-items:center; justify-content:center;
    border-style:dashed; color:var(--ink-dim);
  }
  .add-model-swatch svg{ width:40px; height:40px; }
  .add-model-card:hover .add-model-swatch{ color:var(--turquoise); }
  .add-model-card h3{ font-size:1.1rem; color:var(--ink-dim); }
  .add-model-card:hover h3{ color:var(--ink); }
  .card p{color:var(--ink-dim); font-size:0.95rem; margin:0; flex-grow:1;}
  .card .more{
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; letter-spacing:0.05em;
    color:var(--turquoise); text-decoration:none;
  }
  .card .more:hover{color:var(--ink);}

  /* ---------- category picker (2 toifa) ---------- */
  .cat-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:2px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:720px){ .cat-grid{grid-template-columns:1fr;} }
  .cat-card{
    text-align:left; font-family:inherit; cursor:pointer;
    border:none; margin:0; width:100%;
    text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:14px;
  }
  .cat-card .swatch{aspect-ratio:16/9;}
  .cat-card .more{background:none;border:none;padding:0;cursor:pointer;}

  /* ---------- view switching ---------- */
  .view{display:none;}
  .view.active{display:block;}

  /* ---------- gallery (bo'sh joylar, keyinchalik to'ldiriladi) ---------- */
  .gallery-head{
    display:flex; align-items:center; gap:24px; margin-bottom:40px; flex-wrap:wrap;
  }
  .gallery-head h2{font-size:clamp(1.6rem, 3vw, 2.2rem); margin-top:4px;}
  .btn-small{padding:10px 18px; font-size:0.74rem;}
  .gallery-head .count{margin-left:auto;}
  .gallery-grid{
    display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));
    gap:16px;
  }
  .product-ph{
    border:1px solid var(--line); background:var(--surface);
    display:flex; flex-direction:column; transition:border-color 0.2s ease;
    position:relative;
  }
  .product-ph:hover{border-color:var(--gold);}
  .product-ph.has-img{cursor:pointer;}
  .product-ph-empty{cursor:pointer;}
  .product-ph-empty:hover{border-color:var(--turquoise); background:var(--surface-2);}
  .product-ph-empty:hover .img-slot{color:var(--turquoise);}
  .product-ph-empty .img-slot{border-bottom:1.5px dashed var(--line);}
  .product-ph-empty .img-slot svg{width:56px;height:56px;opacity:0.65;stroke-width:1.2;}

  .ph-delete{
    position:absolute; top:8px; right:8px; z-index:5;
    width:26px; height:26px; border-radius:50%;
    background:rgba(20,16,11,0.72); color:#faf7f0; border:none;
    font-size:1.1rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease;
  }
  .ph-delete:hover{ background:var(--red); }
  .product-ph.has-img{ position:relative; }
  .product-ph-empty:hover .img-slot svg{opacity:0.9;}
  .product-ph .img-slot{
    aspect-ratio:1/1; border-bottom:1.5px dashed var(--line);
    display:flex; align-items:center; justify-content:center; color:var(--ink-dim);
  }
  .product-ph .img-slot svg{width:28px;height:28px; opacity:0.6;}
  .product-ph .info{padding:12px 14px; display:flex; flex-direction:column; gap:4px;}
  .product-ph .ph-name{
    font-family:'Fraunces', serif; font-size:0.88rem; color:var(--ink-dim); opacity:0.75;
  }
  .product-ph .ph-meta{
    font-family:'JetBrains Mono', monospace; font-size:0.66rem; color:var(--ink-dim); opacity:0.5;
    letter-spacing:0.03em;
  }

  /* ---------- about ---------- */
  .about{
    background:var(--surface);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .about-inner{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  }
  .about-inner-solo{
    grid-template-columns:1fr; max-width:640px; margin:0 auto; text-align:center;
  }
  .about-inner-solo .stat-row{ justify-content:center; }
  @media (max-width:820px){ .about-inner{grid-template-columns:1fr; gap:36px;} }
  .about h2{font-size:clamp(1.8rem,3.4vw,2.4rem); max-width:14ch;}
  .about p{color:var(--ink-dim); margin-top:18px;}
  .stat-row{display:flex; gap:36px; margin-top:32px; flex-wrap:wrap;}
  .stat b{
    display:block; font-family:'Fraunces', serif; font-size:2rem; color:var(--gold);
  }
  .stat span{font-size:0.8rem; color:var(--ink-dim); letter-spacing:0.03em;}
  .stat-text{display:flex; align-items:center; max-width:200px;}
  .stat-text span{font-size:1.15rem; font-family:'Fraunces', serif; color:var(--ink); letter-spacing:normal; line-height:1.3;}
  .loom{width:100%; height:auto;}
  .about-photo{
    width:100%; height:auto; display:block;
    border-radius:2px; border:1px solid var(--line);
  }

  /* ---------- contact ---------- */
  .contact-inner{
    display:grid; grid-template-columns:1fr; gap:64px;
    max-width:640px; margin:0 auto; text-align:center;
  }
  .contact-list{list-style:none; padding:0; margin:28px 0 0; display:flex; flex-direction:column; align-items:center; gap:20px;}
  .contact-list li{display:flex; gap:14px; align-items:flex-start; font-size:1rem;}
  .contact-list svg{width:20px;height:20px; flex-shrink:0; color:var(--turquoise); margin-top:3px;}
  .contact-list a{text-decoration:none;}
  .contact-list a:hover{color:var(--gold);}
  .social{display:flex; gap:14px; margin-top:28px;}
  .social a{
    width:40px;height:40px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    text-decoration:none; transition:border-color 0.2s ease;
  }
  .social a:hover{border-color:var(--gold);}
  .social svg{width:18px;height:18px;}
  .form{
    background:var(--surface); border:1px solid var(--line); padding:32px;
  }
  .form label{
    display:block; font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--ink-dim); margin-bottom:8px;
  }
  .form input, .form textarea{
    width:100%; background:var(--bg); border:1px solid var(--line); color:var(--ink);
    padding:12px 14px; font-family:'Work Sans', sans-serif; font-size:0.95rem; margin-bottom:20px; border-radius:var(--radius);
  }
  .form input:focus, .form textarea:focus{ outline:2px solid var(--turquoise); outline-offset:1px; }
  .form button{
    width:100%; background:var(--red); color:#faf7f0; border:none; padding:14px;
    font-family:'JetBrains Mono', monospace; letter-spacing:0.08em; text-transform:uppercase; font-size:0.82rem;
    cursor:pointer; transition:background 0.2s ease;
  }
  .form button:hover{background:var(--red-soft);}

  /* ---------- footer ---------- */
  footer{padding:40px 0; border-top:1px solid var(--line);}
  .footer-row{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
    font-size:0.8rem; color:var(--ink-dim);
  }
  .footer-row a{text-decoration:none;}
  .footer-row a:hover{color:var(--gold);}

  /* ---------- lightbox (rasmni katta ko'rishtirish) ---------- */
  .lightbox{
    position:fixed; inset:0; z-index:200;
    background:rgba(20,16,11,0.88);
    display:flex; align-items:center; justify-content:center;
    padding:40px 20px;
    opacity:0; pointer-events:none;
    transition:opacity 0.2s ease;
  }
  .lightbox.open{ opacity:1; pointer-events:auto; }
  .lightbox figure{
    margin:0; max-width:min(720px, 92vw); max-height:90vh;
    display:flex; flex-direction:column; gap:14px;
  }
  .lightbox img{
    max-width:100%; max-height:72vh; width:auto; height:auto;
    margin:0 auto; border:1px solid rgba(255,255,255,0.15);
    background:#000;
  }
  .lightbox figcaption{
    text-align:center; color:#faf7f0;
  }
  .lightbox figcaption span{ display:block; }
  #lightbox-name{
    font-family:'Fraunces', serif; font-size:1.15rem; margin-bottom:4px;
  }
  #lightbox-meta{
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; opacity:0.7;
  }
  .lightbox-close{
    position:absolute; top:20px; right:24px;
    width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,0.3);
    background:transparent; color:#faf7f0; font-size:1.4rem; line-height:1;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
  }
  .lightbox-close:hover{ border-color:#fff; }

  .lightbox-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,0.3);
    background:rgba(20,16,11,0.4); color:#faf7f0; font-size:1.1rem; line-height:1;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
  }
  .lightbox-nav:hover{ border-color:#fff; background:rgba(20,16,11,0.7); }
  .lightbox-prev{ left:16px; }
  .lightbox-next{ right:16px; }
  @media (max-width:720px){
    .lightbox-nav{ width:40px; height:40px; }
    .lightbox-prev{ left:6px; }
    .lightbox-next{ right:6px; }
  }

  /* ---------- Admin kirish oynasi ---------- */
  .admin-modal-overlay{
    position:fixed; inset:0; z-index:300;
    background:rgba(20,16,11,0.55);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; pointer-events:none;
    transition:opacity 0.2s ease;
  }
  .admin-modal-overlay.open{ opacity:1; pointer-events:auto; }
  .admin-modal-card{
    position:relative;
    width:100%; max-width:380px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:0 24px 60px rgba(20,16,11,0.25);
    padding:36px 32px 28px;
    text-align:center;
  }
  .admin-modal-close{
    position:absolute; top:14px; right:14px;
    width:30px; height:30px; border-radius:50%; border:none;
    background:none; color:var(--ink-dim); font-size:1.3rem; line-height:1;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
  }
  .admin-modal-close:hover{ color:var(--ink); }
  .admin-modal-logo{
    font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.18em;
    text-transform:uppercase; color:var(--gold); margin-bottom:14px;
  }
  .admin-modal-title{
    font-family:'Fraunces', serif; font-size:1.5rem; font-weight:600; color:var(--ink);
    margin:0 0 8px;
  }
  .admin-modal-sub{
    color:var(--ink-dim); font-size:0.88rem; margin:0 0 22px;
  }
  .admin-modal-input{
    width:100%; background:var(--bg); border:1px solid var(--line); color:var(--ink);
    padding:14px 16px; font-family:'Work Sans', sans-serif; font-size:0.98rem;
    border-radius:6px; margin-bottom:12px; text-align:left;
  }
  .admin-modal-input:focus{ outline:2px solid var(--turquoise); outline-offset:1px; }
  .admin-modal-error{
    color:var(--red); font-size:0.82rem; text-align:left; margin:-4px 0 12px; min-height:1.2em;
  }
  .admin-modal-submit{
    width:100%; background:var(--red); color:#faf7f0; border:none; padding:14px;
    font-family:'JetBrains Mono', monospace; letter-spacing:0.06em; text-transform:uppercase;
    font-size:0.85rem; font-weight:600; border-radius:6px; cursor:pointer;
    transition:background 0.2s ease; margin-bottom:16px;
  }
  .admin-modal-submit:hover{ background:var(--red-soft); }
  .admin-modal-forgot{
    display:block; font-size:0.85rem; color:var(--turquoise); text-decoration:none;
  }
  .admin-modal-forgot:hover{ text-decoration:underline; }
  .admin-modal-card code{
    background:var(--surface-2); padding:2px 6px; border-radius:3px;
    font-family:'JetBrains Mono', monospace; font-size:0.82em; color:var(--red-soft);
  }

  /* ---------- Matnlarni tahrirlash paneli (kengroq modal) ---------- */
  .admin-modal-card.wide{
    max-width:640px; max-height:86vh; overflow-y:auto;
  }
  .text-editor-langtabs{
    display:flex; gap:8px; margin-bottom:16px;
  }
  .text-editor-langtab{
    flex:1; padding:8px 12px; border-radius:6px; border:1px solid var(--line);
    background:transparent; color:var(--ink-dim); cursor:pointer;
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; letter-spacing:0.04em;
    transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
  }
  .text-editor-langtab.active{
    border-color:var(--gold); color:var(--ink); background:var(--surface-2);
  }
  .text-editor-langtab:hover{ border-color:var(--gold); }