/* iusgentes.com — N524 საერთაშორისო საჯარო სამართალი */
:root{
  --bg:#fdfdfb; --fg:#1a1a1a; --muted:#5f6368; --line:#e3e3df;
  --accent:#1a4f8a; --accent-soft:#eef3fa; --warm:#b8860b; --warm-soft:#fdf8ec;
  --card:#fff; --radius:10px;
  --serif:"Noto Serif Georgian","Georgia",serif;
  --sans:"Noto Sans Georgian","Helvetica Neue",-apple-system,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#15171a; --fg:#e8e8e6; --muted:#9aa0a6; --line:#2c2f34;
         --accent:#7aa9e0; --accent-soft:#1b2732; --warm:#d9a94a; --warm-soft:#2a2418;
         --card:#1b1e22; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
     font-size:16px;line-height:1.65;}
.wrap{max-width:840px;margin:0 auto;padding:0 20px}

/* ── ჰედერი ── */
header.site{border-bottom:1px solid var(--line);background:var(--card);
            position:sticky;top:0;z-index:10}
header.site .wrap{display:flex;align-items:center;gap:18px;
                  min-height:60px;flex-wrap:wrap}
.brand{font-family:var(--serif);font-weight:700;font-size:18px;
       color:var(--fg);text-decoration:none;letter-spacing:-.01em}
.brand span{color:var(--accent)}
nav.site{display:flex;gap:16px;margin-inline-start:auto;flex-wrap:wrap}
nav.site a{color:var(--muted);text-decoration:none;font-size:14.5px;
           padding:4px 0;border-bottom:2px solid transparent}
nav.site a:hover{color:var(--accent)}
nav.site a[aria-current]{color:var(--accent);border-bottom-color:var(--accent)}

/* ── ჰერო ── */
.hero{padding:46px 0 34px;border-bottom:1px solid var(--line)}
.hero .code{font-size:13px;letter-spacing:.14em;color:var(--warm);
            font-weight:600;text-transform:uppercase}
.hero h1{font-family:var(--serif);font-size:clamp(26px,5vw,40px);
         line-height:1.2;margin:.3em 0 .25em;letter-spacing:-.02em}
.hero .sub{color:var(--muted);font-size:16px;margin:0}
.meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.meta span{background:var(--accent-soft);color:var(--accent);
           padding:4px 11px;border-radius:99px;font-size:13px;font-weight:500}

/* ── შიგთავსი ── */
main{padding:34px 0 64px}
h2{font-family:var(--serif);font-size:23px;margin:34px 0 14px;
   letter-spacing:-.01em}
h3{font-size:17px;margin:26px 0 10px}
h2:first-child,h3:first-child{margin-top:0}
p{margin:0 0 14px}
a{color:var(--accent)}
hr{border:0;border-top:1px solid var(--line);margin:28px 0}

/* ── კვირების ბადე ── */
.weeks{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
       margin:20px 0}
.week{display:block;background:var(--card);border:1px solid var(--line);
      border-radius:var(--radius);padding:15px 16px;text-decoration:none;
      color:var(--fg);transition:border-color .15s,transform .15s}
.week:hover{border-color:var(--accent);transform:translateY(-2px)}
.week .n{font-size:12px;letter-spacing:.09em;color:var(--warm);font-weight:700}
.week .t{margin-top:5px;font-size:14.5px;line-height:1.45}
.week.exam{background:var(--warm-soft);border-color:var(--warm)}
.week.exam .n{color:var(--warm)}
.week .tags{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}
.week .tags i{font-style:normal;font-size:11.5px;background:var(--accent-soft);
              color:var(--accent);padding:2px 7px;border-radius:5px}

/* ── ცხრილები ── */
table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14.5px;
      display:block;overflow-x:auto}
th,td{border:1px solid var(--line);padding:7px 11px;text-align:start;
      vertical-align:top}
th{background:var(--accent-soft);color:var(--accent);font-weight:600}

/* ── ციტატა ── */
blockquote{margin:16px 0;padding:11px 16px;background:var(--warm-soft);
           border-inline-start:3px solid var(--warm);border-radius:0 6px 6px 0;
           font-size:15px}
blockquote p:last-child{margin-bottom:0}
code{background:var(--accent-soft);padding:1px 5px;border-radius:4px;
     font-size:.9em}

/* ── ჩამოსატვირთი ── */
.dl{display:inline-flex;align-items:center;gap:8px;background:var(--accent);
    color:#fff;padding:9px 17px;border-radius:8px;text-decoration:none;
    font-size:14.5px;font-weight:500;margin:4px 8px 4px 0}
.dl:hover{opacity:.88}
.dl.ghost{background:transparent;color:var(--accent);
          border:1px solid var(--accent)}

/* ── გლოსარი ── */
.gl{width:100%;font-size:14.5px}
.gl td:first-child{font-family:var(--serif);width:42%}
.gl .wk{color:var(--muted);font-size:12.5px;white-space:nowrap;width:1%}

/* ── ინფო-ბლოკი ── */
.note{background:var(--accent-soft);border-inline-start:3px solid var(--accent);
      padding:13px 16px;border-radius:0 6px 6px 0;margin:18px 0;font-size:14.5px}
.note.warn{background:var(--warm-soft);border-color:var(--warm)}
.note p:last-child{margin-bottom:0}

/* ── ფუტერი ── */
footer.site{border-top:1px solid var(--line);padding:26px 0 40px;
            color:var(--muted);font-size:13.5px}
footer.site a{color:var(--muted)}
footer.site .lic{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}

img,svg{max-width:100%;height:auto}
figure{margin:20px 0;text-align:center}
figure figcaption{font-size:13px;color:var(--muted);margin-top:8px}
@media(max-width:560px){
  header.site .wrap{min-height:auto;padding-block:10px}
  nav.site{margin-inline-start:0;width:100%;gap:13px}
  .hero{padding:30px 0 24px}
}

/* ── ინტერაქტიული დიაგრამა ─────────────────────────────────── */
.dg{position:relative;margin:24px 0}
.dg-hint{font-size:13.5px;color:var(--muted);background:var(--accent-soft);
         padding:8px 13px;border-radius:8px;margin:0 0 12px;text-align:start}
.dg-svg{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dg-svg svg{display:block;margin:0 auto;height:auto}

/* კვანძი — დაკლიკებადი */
.dg-svg .nx{cursor:pointer}
.dg-svg .nx rect,.dg-svg .nx polygon,.dg-svg .nx circle,.dg-svg .nx path{
  transition:filter .15s,stroke-width .15s}
.dg-svg .nx:hover rect,.dg-svg .nx:hover polygon,.dg-svg .nx:hover path{
  filter:brightness(.95);stroke-width:3px}
.dg-svg .nx:focus{outline:none}
.dg-svg .nx:focus-visible rect,.dg-svg .nx:focus-visible polygon,
.dg-svg .nx:focus-visible path{stroke:var(--accent);stroke-width:4px}
.dg-svg .nx.on rect,.dg-svg .nx.on polygon,.dg-svg .nx.on path{
  stroke:var(--accent);stroke-width:4px;filter:brightness(.97)}

/* განმარტების პანელი — ფიქსირებული, რომ გრძელ დიაგრამაზე არ დაიკარგოს */
.dg-pop{position:fixed;z-index:60;width:min(380px,calc(100vw - 24px));
        inset-block-end:16px;inset-inline-end:16px;inset-block-start:auto;
        max-height:min(60vh,520px);overflow-y:auto;
        background:var(--card);border:1px solid var(--accent);
        border-radius:12px;padding:15px 17px 14px;
        box-shadow:0 12px 36px rgba(0,0,0,.22);text-align:start;font-size:14.5px;
        animation:dgIn .14s ease-out}
@keyframes dgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dg-pop h3{margin:0 0 7px;font-size:15.5px;color:var(--accent);
           font-family:var(--serif);padding-inline-end:22px}
.dg-pop p{margin:0 0 8px;line-height:1.55}
.dg-pop blockquote{margin:9px 0;padding:8px 12px;font-size:13.5px;
                   background:var(--warm-soft);border-inline-start:3px solid var(--warm);
                   border-radius:0 6px 6px 0;font-style:italic}
.dg-pop .dg-src{margin:0;font-size:12.5px;color:var(--muted);
                border-top:1px dashed var(--line);padding-top:8px}
.dg-x{position:absolute;inset-block-start:8px;inset-inline-end:10px;
      background:none;border:0;font-size:21px;line-height:1;cursor:pointer;
      color:var(--muted);padding:2px 5px;border-radius:5px}
.dg-x:hover{background:var(--accent-soft);color:var(--accent)}

@media(max-width:719px){
  .dg-pop{inset-inline:10px;inset-block-end:10px;width:auto;max-height:58vh}
}
@media(prefers-reduced-motion:reduce){ .dg-pop{animation:none} }
