/* iusunionis.com — ევროკავშირის სამართალი (EU LAW)
   პალიტრა: EU-ს ლურჯი (#003399) + ოქრო. ოქროსფერი ტექსტი მუქია (#7a5a00),
   რომ WCAG-AA-ს (≥4.5:1) აკმაყოფილებდეს; #FFCC00 — მხოლოდ დეკორატიული ხაზები. */
:root{
  --bg:#fdfdfb; --fg:#1a1a1a; --muted:#5f6368; --line:#e3e3df;
  --accent:#003399; --accent-soft:#edf1fb; --warm:#7a5a00; --warm-soft:#fff8dc;
  --gold:#ffcc00;
  --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:#8fb0ff; --accent-soft:#18213a; --warm:#ffcc33; --warm-soft:#2a2410;
         --gold:#ffcc00;
         --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);border-bottom:2px solid var(--gold)}
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);
      box-shadow:inset 0 3px 0 var(--gold)}
.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)}
a[href],button,summary,label[for],[role=button]{cursor:pointer}
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}
a.week:hover{border-color:var(--accent);transform:translateY(-2px)}
div.week{cursor:default;opacity:.72}
.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)}
/* მუქ თემაში ღია ლურჯ ღილაკზე თეთრი ტექსტი AA-ს ვერ აკმაყოფილებს */
@media (prefers-color-scheme:dark){ .dl:not(.ghost){color:#0b1530} }

/* ── გლოსარი ── */
.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}
}

/* ── ინტერაქტიული დიაგრამა (Miro-ს პრინციპი) ─────────────────
   გვერდზე — მთლიანი სქემის „დაფა" (preview); დაკლიკებით — მთელ ეკრანზე,
   გადათრევით, მასშტაბით და კვანძების განმარტებებით. დაფა ორივე თემაში
   ღიაა (whiteboard): Mermaid-ის ფერები თეთრ ფონზეა გათვლილი. */
.dg{position:relative;margin:18px 0 34px}
.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-hint kbd,.dg-bar kbd{font:12px/1 var(--sans);padding:2px 5px;border-radius:4px;
         border:1px solid var(--line);background:var(--card)}
.dg-title{font-family:var(--serif);font-size:18px;margin:0 0 10px;text-align:start;
          line-height:1.35}
.dg-title span{color:var(--accent)}

.dg-svg{position:relative;overflow:hidden;border:1px solid #dcdcd6;border-radius:12px;
        background:#fbfbf9 radial-gradient(#d9d9d2 1px,transparent 1px) 0 0/18px 18px;
        padding:22px 18px;min-height:150px;display:flex;align-items:center;
        justify-content:center;transition:box-shadow .15s,border-color .15s}
.dg-svg svg{display:block;margin:0 auto;height:auto;background:transparent!important}
.dg-svg[data-live]{cursor:zoom-in}
.dg-svg[data-live]:hover,.dg-svg[data-live]:focus-visible{
  border-color:var(--accent);box-shadow:0 6px 22px rgba(0,51,153,.16);outline:none}
.dg-svg[data-live] svg{pointer-events:none}
.dg-open{position:absolute;inset-block-start:10px;inset-inline-end:10px;
         font:600 12.5px/1 var(--sans);color:#003399;background:#fff;
         border:1px solid #c9d6e6;border-radius:999px;padding:7px 11px;
         box-shadow:0 2px 8px rgba(0,0,0,.08);pointer-events:none}
.dg-svg[data-live]:hover .dg-open{background:#003399;color:#fff;border-color:#003399}

/* სრული ეკრანი */
.dg-full{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;
         background:#fbfbf9 radial-gradient(#d4d4cc 1px,transparent 1px) 0 0/22px 22px;
         color:#1a1a1a;animation:dgFade .14s ease-out}
.dg-full[hidden]{display:none}
@keyframes dgFade{from{opacity:0}to{opacity:1}}
.dg-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;
        background:rgba(255,255,255,.92);border-bottom:1px solid #e3e3df;
        backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.dg-bar h2{margin:0;font:600 15.5px/1.3 var(--serif);flex:1;min-width:0;
           overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}
.dg-bar h2 span{color:#003399}
.dg-tools{display:flex;align-items:center;gap:4px}
.dg-tools button{font:600 15px/1 var(--sans);min-width:34px;height:34px;padding:0 9px;
                 border:1px solid #dcdcd6;background:#fff;color:#1a1a1a;
                 border-radius:8px;cursor:pointer}
.dg-tools button:hover{border-color:#003399;color:#003399}
.dg-tools .dg-zoom{font:12.5px/1 var(--sans);color:#5f6368;min-width:46px;text-align:center}
.dg-tools .dg-fx{font-size:22px;margin-inline-start:6px}
.dg-help{font-size:12.5px;color:#5f6368;white-space:nowrap}
.dg-view{flex:1;position:relative;overflow:hidden;cursor:grab;touch-action:none}
.dg-view.drag{cursor:grabbing}
.dg-stage{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.dg-stage svg{display:block;max-width:none!important;background:transparent!important}
@media(max-width:719px){ .dg-help{display:none} .dg-bar{padding:8px 10px} }

/* კვანძი — დაკლიკებადი (მხოლოდ სრულ ეკრანზე) */
.dg-stage .nx{cursor:pointer}
.dg-stage .nx rect,.dg-stage .nx polygon,.dg-stage .nx circle,.dg-stage .nx path{
  transition:filter .15s,stroke-width .15s}
.dg-stage .nx:hover rect,.dg-stage .nx:hover polygon,.dg-stage .nx:hover path{
  filter:brightness(.95);stroke-width:3px}
.dg-stage .nx:focus{outline:none}
.dg-stage .nx:focus-visible rect,.dg-stage .nx:focus-visible polygon,
.dg-stage .nx:focus-visible path{stroke:#003399;stroke-width:4px}
.dg-stage .nx.on rect,.dg-stage .nx.on polygon,.dg-stage .nx.on path{
  stroke:#003399;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,.dg-full{animation:none} }

/* ── კვირის შიდა ნავიგაცია ─────────────────────────────────── */
.wnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;
      padding:10px 12px;background:var(--accent-soft);border-radius:10px}
.wnav a{color:var(--accent);text-decoration:none;font-size:14px;font-weight:500;
        padding:4px 10px;border-radius:6px;background:var(--card);
        border:1px solid transparent;white-space:nowrap}
.wnav a:hover{border-color:var(--accent)}
main h2[id]{scroll-margin-top:74px}

/* ── კაზუსების სექცია ──────────────────────────────────────── */
.week.mod{border-left:4px solid var(--accent,#8a6d3b)}
.week.mod .n{letter-spacing:.04em;text-transform:uppercase;font-size:.72rem}
ol.steps{counter-reset:s;list-style:none;padding:0;margin:18px 0}
ol.steps li{counter-increment:s;position:relative;padding:10px 0 10px 46px;
  border-bottom:1px solid rgba(0,0,0,.07)}
ol.steps li:last-child{border-bottom:0}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:9px;
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  font-weight:700;font-size:.85rem;background:rgba(0,0,0,.06)}
@media (prefers-color-scheme:dark){
  ol.steps li{border-bottom-color:rgba(255,255,255,.1)}
  ol.steps li::before{background:rgba(255,255,255,.1)}
}

/* ── საკითხავი (course/readings.yaml) ── */
.rd-books,.rd-cases{padding-left:1.1em}
.rd-books li,.rd-cases li{margin:.45em 0}
.rd-muted{color:var(--muted);font-size:.92em}
.rd-tag{display:inline-block;font-size:.72em;font-weight:600;padding:.1em .5em;border-radius:999px;
  background:var(--accent-soft);color:var(--accent);vertical-align:.12em;margin-right:.3em;white-space:nowrap}
.rd-tag.rec,.rd-tag.soft{background:var(--warm-soft);color:var(--warm)}
.rd-tag.domestic{background:var(--line);color:var(--fg)}
.rd-table{overflow-x:auto}
.rd-arts{font-variant-numeric:tabular-nums;min-width:9em}

/* გლოსარი — გამოცემების შედარება (2026-09-25) */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.ed th small{font-weight:400;opacity:.75}
table.ed td.course,table.ed th.course{background:color-mix(in srgb,var(--accent) 8%,transparent)}
table.ed tr.diff td:first-child{box-shadow:inset 4px 0 0 #ffcc00}
.small{font-size:.88em;opacity:.85}
table.ed td.off,table.ed th.off{font-size:.9em;background:color-mix(in srgb,#ffcc00 7%,transparent)}
table.ed td.off{font-style:normal}
.note.task{border-left-color:#ffcc00}
.note.task ol{margin:.4em 0 0 1.2em;padding:0}

/* ── D22: საკლასო რეჟიმი (პროექტორი) ─────────────────────────────── */
.cls-btn{margin-inline-start:12px;font:inherit;font-size:14px;cursor:pointer;
  border:1px solid var(--line);background:var(--card);color:var(--muted);
  border-radius:999px;padding:5px 12px;white-space:nowrap}
.cls-btn:hover{color:var(--accent);border-color:var(--accent)}
.cls-btn[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
body.cls{font-size:125%}
body.cls main .wrap{max-width:1180px}
body.cls footer.site, body.cls .dg-hint, body.cls .dl{display:none}
body.cls h2{margin-top:2.2em}
.reveal{display:none}
body.cls .spoiler.locked > .reveal{display:inline-block;font:inherit;font-weight:600;
  cursor:pointer;margin:.6em 0 1.2em;padding:.7em 1.4em;border-radius:var(--radius);
  border:2px dashed var(--accent);background:var(--accent-soft);color:var(--accent)}
/* ჩანს მხოლოდ პირველი ელემენტი (სათაური) — შიდა ქვესათაურებიც პასუხს ამჟღავნებს */
body.cls .spoiler.locked > *:not(.reveal):not(:first-child){display:none}
@media (max-width:640px){ .cls-btn span{display:none} }
@media print{ .cls-btn,.reveal{display:none!important} }

/* ── D23: „გაიგე მეტი“ ─────────────────────────────────────────── */
.dg-more-btn{display:block;margin:8px 0 0 auto;background:none;border:0;padding:2px 0;
  font:inherit;font-size:13px;font-weight:600;color:var(--accent);cursor:pointer}
.dg-more-btn:hover{text-decoration:underline}
.dg-more{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;padding:16px}
.dg-more[hidden]{display:none}
.dg-more-box{position:relative;background:var(--card);color:var(--fg);
  width:min(760px,100%);max-height:88vh;overflow-y:auto;border-radius:14px;
  padding:26px 30px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35);
  animation:dgIn .16s ease-out;line-height:1.65}
.dg-more-kind{margin:0 0 4px;font-size:12.5px;font-weight:600;letter-spacing:.02em;
  color:var(--warm);text-transform:uppercase}
.dg-more-kind:empty{display:none}
.dg-more-box h3{margin:0 0 14px;font-family:var(--serif);color:var(--accent);
  font-size:21px;padding-inline-end:28px}
.dg-more-body h4{margin:1.3em 0 .4em;font-size:16px;color:var(--fg)}
.dg-more-body p{margin:0 0 .8em}
.dg-more-body ul{margin:0 0 .9em;padding-inline-start:1.3em}
.dg-more-src{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line);
  font-size:13px;color:var(--muted)}
.dg-more-src p{margin:0 0 4px;font-weight:600}
.dg-more-src ul{margin:0;padding-inline-start:1.2em}
.dg-more-src:empty{display:none}
@media(max-width:640px){ .dg-more{padding:0;align-items:flex-end}
  .dg-more-box{max-height:92vh;border-radius:14px 14px 0 0;padding:22px 18px} }
body.cls .dg-more-box{font-size:125%;width:min(980px,100%)}
