/* Skoori KLIENDIVAADE — jagatud stiil.
   Baas-tokenid ja komponendid on tõstetud endisest skoor/index.html-ist (2026-08-18).
   Tume on vaikimisi; hele teema tuleb ../work/theme.css kaudu (html[data-theme]).
   Vasak menüü ise tuleb ../work/nav.js-ist. */

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg:       #111827;
      --bg2:      #1f2937;
      --bg3:      #374151;
      --border:   rgba(255,255,255,0.08);
      --text:     #f9fafb;
      --text2:    #9ca3af;
      --text3:    #6b7280;
      --accent:   #10b981;
      --pos:      #10b981;
      --neg:      #ef4444;
      --radius:   12px;
      /* Tabeli reajoon. 🔴 EI TOHI olla kõva rgba(255,255,255,...) — Eve nägi
         10.09, et jooned paistavad ainult tumedas: valge 4% valgel taustal on
         nähtamatu. `--border` on liiga tugev (ta on päise allajoon), seega oma
         token, mis pöördub teemaga kaasa. Muster on theme.css'ist. */
      --row-line: rgba(255,255,255,0.05);
    }
    html[data-theme="light"] { --row-line: rgba(0,0,0,0.07); }
    @media (prefers-color-scheme: light) {
      html[data-theme="system"] { --row-line: rgba(0,0,0,0.07); }
    }

    body {
      font-family: 'Inter', sans-serif;
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
    }

    /* ── Auth ── */
    #auth-screen {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      padding: 24px;
    }
    .auth-card {
      background: var(--bg2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 48px 40px;
      width: 100%;
      max-width: 400px;
      text-align: center;
    }
    /* 🔴 EI ole `border-radius: 50%` ega `object-fit: cover`. Skoori märk on
       mõõdik, mille kaar ulatub viewBox'i servani (x=11..89) — ringmask lõikas
       kaare otsad ära ja logo paistis poolik. */
    .auth-logo {
      width: 80px;
      height: 80px;
      display: block;
      margin: 0 auto 20px;
    }
    .auth-card h1 {
      font-size: 28px;
      font-weight: 700;
      /* 24px, sest alapealkiri on eemaldatud — varem 6px + alapealkirja 32px */
      margin-bottom: 24px;
    }
    .auth-subtitle {
      color: var(--text2);
      font-size: 14px;
      margin-bottom: 32px;
    }
    .auth-card input {
      width: 100%;
      padding: 12px 16px;
      background: var(--bg3);
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--text);
      font-family: inherit;
      font-size: 15px;
      margin-bottom: 12px;
      outline: none;
      transition: border-color 0.2s;
    }
    .auth-card input:focus { border-color: var(--accent); }
    .auth-card input::placeholder { color: var(--text3); }
    .btn-primary {
      width: 100%;
      padding: 12px;
      background: var(--accent);
      color: #fff;
      border: none;
      border-radius: 8px;
      font-family: inherit;
      font-size: 15px;
      font-weight: 600;
      cursor: pointer;
      margin-top: 4px;
      transition: opacity 0.2s;
    }
    .btn-primary:hover { opacity: 0.88; }
    .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
    .error-msg { color: var(--neg); font-size: 13px; margin-top: 12px; }
    .forgot-link { margin-top: 14px; font-size: 13px; }
    .forgot-link a { color: var(--text2); text-decoration: none; }
    .forgot-link a:hover { color: var(--accent); }

    /* ── App layout ── */
    #app { display: none; flex-direction: column; min-height: 100vh; }

    header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 24px;
      background: var(--bg2);
      border-bottom: 1px solid var(--border);
      position: sticky;
      top: 0;
      z-index: 10;
    }
    .header-left { display: flex; align-items: center; gap: 12px; }
    .header-logo { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
    .header-title { font-size: 16px; font-weight: 700; letter-spacing: 0.5px; }
    .header-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

    select {
      background: var(--bg3);
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--text);
      font-family: inherit;
      font-size: 14px;
      padding: 8px 12px;
      cursor: pointer;
      outline: none;
    }
    select:focus { border-color: var(--accent); }

    .btn-pdf, .btn-refresh {
      padding: 8px 14px;
      background: transparent;
      border: 1px solid var(--accent);
      border-radius: 8px;
      color: var(--accent);
      font-family: inherit;
      font-size: 13px;
      cursor: pointer;
      transition: background 0.2s, color 0.2s;
    }
    .btn-pdf:hover, .btn-refresh:hover { background: var(--accent); color: #fff; }
    .btn-refresh:disabled { opacity: 0.6; cursor: wait; }
    .btn-refresh.success { background: var(--pos); color: #fff; border-color: var(--pos); }
    .btn-refresh.error { background: var(--neg); color: #fff; border-color: var(--neg); }

    .btn-admin {
      padding: 8px 14px;
      background: transparent;
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--text2);
      font-family: inherit;
      font-size: 13px;
      text-decoration: none;
      display: none;
      transition: border-color 0.2s, color 0.2s;
    }
    .btn-admin:hover { border-color: var(--accent); color: var(--accent); opacity: 1; }

    .btn-logout {
      padding: 8px 16px;
      background: transparent;
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--text2);
      font-family: inherit;
      font-size: 14px;
      cursor: pointer;
      transition: border-color 0.2s, color 0.2s;
    }
    .btn-logout:hover { border-color: var(--neg); color: var(--neg); }

    /* ── Language switcher (flag buttons) ── */
    .lang-switcher {
      display: inline-flex;
      gap: 6px;
    }
    .lang-btn {
      padding: 0;
      background: transparent;
      border: 2px solid transparent;
      border-radius: 4px;
      cursor: pointer;
      overflow: hidden;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: border-color 0.2s, transform 0.15s, opacity 0.2s;
      opacity: 0.55;
      line-height: 0;
    }
    .lang-btn:hover { opacity: 1; transform: scale(1.08); }
    .lang-btn.active { opacity: 1; border-color: var(--accent); }
    .lang-btn svg { display: block; width: 28px; height: 20px; }

    /* Mobiilis: lang-switcher logo kõrval, peidetud header-right'is */
    .lang-switcher.mobile-lang { display: none; }
    @media (max-width: 640px) {
      .lang-btn svg { width: 26px; height: 18px; }
      .header-right .lang-switcher { display: none; }
      .lang-switcher.mobile-lang { display: inline-flex; }
    }

    main { padding: 28px 24px; max-width: 1200px; margin: 0 auto; width: 100%; }

    .page-title {
      display: flex;
      align-items: baseline;
      gap: 12px;
      margin-bottom: 28px;
    }
    .page-title h2 { font-size: 22px; font-weight: 700; }
    .page-title .period-badge {
      font-size: 13px;
      color: var(--text2);
      background: var(--bg2);
      border: 1px solid var(--border);
      padding: 3px 10px;
      border-radius: 20px;
    }

    /* ── KPI cards ── */
    .kpi-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 16px;
      margin-bottom: 24px;
    }
    .kpi-card {
      background: var(--bg2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 22px 20px;
      transition: border-color 0.3s, background 0.3s;
    }
    .kpi-card.trend-up   { border-color: rgba(16,185,129,0.4); background: rgba(16,185,129,0.06); }
    .kpi-card.trend-down { border-color: rgba(239,68,68,0.4);  background: rgba(239,68,68,0.06); }
    .kpi-label { font-size: 12px; color: var(--text2); text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 10px; }
    .kpi-value { font-size: 24px; font-weight: 700; margin-bottom: 8px; }
    .kpi-delta { font-size: 12px; display: flex; align-items: center; gap: 4px; }
    .kpi-delta.up   { color: var(--pos); }
    .kpi-delta.down { color: var(--neg); }
    .kpi-delta.neutral { color: var(--text2); }

    /* ── Cards ── */
    .card {
      background: var(--bg2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 24px;
      margin-bottom: 24px;
    }
    .card h3 {
      font-size: 15px;
      font-weight: 600;
      color: var(--text2);
      margin-bottom: 20px;
      text-transform: uppercase;
      letter-spacing: 0.6px;
    }

    /* ── Chart ── */
    .chart-wrap { position: relative; height: 260px; }

    /* ── Tables ── */
    .detail-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }
    @media (max-width: 768px) { .detail-grid { grid-template-columns: 1fr; } }

    table { width: 100%; border-collapse: collapse; font-size: 14px; }
    table th {
      text-align: left;
      color: var(--text3);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.6px;
      padding: 0 8px 12px;
      border-bottom: 1px solid var(--border);
    }
    table th:not(:first-child) { text-align: right; }
    table td { padding: 9px 8px; border-bottom: 1px solid var(--row-line); }
    table td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
    table tr:last-child td { border-bottom: none; }
    .row-section td:first-child {
      font-weight: 600;
      color: var(--accent);
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      padding-top: 16px;
    }
    .row-total td {
      font-weight: 600;
      color: var(--text);
    }
    .row-total td:first-child { font-size: 13px; }
    .val-pos { color: var(--pos); }
    .val-neg { color: var(--neg); }

    /* Comparison table */
    #comparison-table th, #comparison-table td { padding: 10px 12px; }
    #comparison-table td:first-child { color: var(--text2); }
    .comparison-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* Võlgnikud */
    .debts-kpi { grid-template-columns: 1fr 1fr; margin-bottom: 20px; }
    .filter-bar { display: flex; gap: 8px; margin-bottom: 16px; }
    .filter-btn {
      padding: 6px 14px;
      background: var(--bg3);
      border: 1px solid var(--border);
      border-radius: 6px;
      color: var(--text2);
      font-family: inherit;
      font-size: 12px;
      cursor: pointer;
      transition: all 0.2s;
    }
    .filter-btn:hover { color: var(--text); }
    .filter-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
    .muted { color: var(--text2); font-weight: 400; font-size: 12px; margin-left: 6px; }
    .debts-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    #debts-table { min-width: 620px; }

    /* Ostuarvete nimekiri. Globaalne reegel joondab KÕIK peale esimese paremale
       (rahatabelite jaoks) — siin on ainult summa arv, ülejäänu on tekst. */
    /* Kaardi päis: pealkiri vasakul, otsing + värskendus paremal (Eve 10.09) */
    .docs-head {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; flex-wrap: wrap; margin-bottom: 4px;
    }
    .docs-head h3 { margin: 0; }
    .docs-tools { display: flex; align-items: center; gap: 8px; }
    /* 🔴 KLASS, MITTE ID. Esimene versioon oli `#docs-search` ja kui Põhivara
       leht sai oma `#fa-search`, jäi ta täiesti stiilita — brauseri vaikimisi
       kast, silmnähtavalt väiksem. Eve märkas. Iga uus tööriistariba-otsing
       saab `class="tool-search"` ja pärib selle automaatselt. */
    .tool-search {
      background: var(--bg3); border: 1px solid var(--border); border-radius: 8px;
      color: var(--text); font-family: inherit; font-size: 14px;
      padding: 8px 12px; outline: none; min-width: 220px;
    }
    .tool-search:focus { border-color: var(--accent); }
    .tool-search::placeholder { color: var(--text3); }
    .docs-count { margin-top: 10px; }
    /* Kitsal ekraanil läheb tööriistarida oma reale ja otsing venib laiaks */
    @media (max-width: 640px) {
      .docs-tools { width: 100%; }
      .tool-search { flex: 1 1 auto; min-width: 0; }
    }

    /* ── Põhivara ── */
    /* Kolm KPI-d, mitte viis nagu Ülevaates — grid oleks muidu hõre. */
    .fa-kpi-grid { grid-template-columns: repeat(3, 1fr); }
    @media (max-width: 768px) { .fa-kpi-grid { grid-template-columns: 1fr; } }
    #fa-table { min-width: 720px; }
    #fa-table td, #fa-table th { text-align: left; }
    #fa-table td:nth-child(n+4), #fa-table th:nth-child(n+4) {
      text-align: right; font-variant-numeric: tabular-nums;
    }
    #fa-table .fa-group { color: var(--text2); }
    .fa-inv {
      display: inline-block; min-width: 26px; margin-right: 8px;
      color: var(--text3); font-size: 11px; font-variant-numeric: tabular-nums;
    }
    /* Likvideeritud vara jääb nähtavaks (Eve soov), aga ei konkureeri
       aktiivsega — tuhmim rida + selge märgis. Jääkväärtuse lahter on tühi,
       sest likvideeritud varal seda ei ole. */
    #fa-table .fa-row-liq td { color: var(--text3); }
    .fa-liq {
      margin-left: 8px; padding: 2px 7px; border-radius: 999px;
      background: var(--bg3); color: var(--text3);
      font-size: 10px; font-weight: 600; letter-spacing: .4px; text-transform: uppercase;
      white-space: nowrap;
    }

    #docs-table { min-width: 680px; }
    #docs-table td, #docs-table th { text-align: left; }
    #docs-table td:nth-child(5), #docs-table th:nth-child(5) {
      text-align: right; font-variant-numeric: tabular-nums;
    }
    /* Tarnija on rea peamine tunnus — tema jääb põhivärvi, arve number
       teiseseks. Vastupidi (nagu esimeses versioonis) luges number esimesena. */
    #docs-table .doc-inv { color: var(--text2); }
    /* Veel lugemata rida: näidatakse failinime, mitte tarnijat. */
    #docs-table .doc-pending { color: var(--text3); font-style: italic; word-break: break-all; }
    #docs-table .doc-src {
      font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
      color: var(--text3); white-space: nowrap;
    }
    /* 🔴 EI TOHI olla `.muted` — see on juba olemas (rida 329) koos
       `margin-left: 6px`-ga ja nihutaks staatust paremale. */
    .up-state.st-muted { color: var(--text3); }
    #debts-table tr.row-overdue td:nth-child(5) { color: var(--neg); font-weight: 600; }
    #debts-table tr.row-overdue td:last-child { color: var(--neg); font-weight: 600; }
    .empty-row td { text-align: center; color: var(--text2); padding: 20px 0 !important; }

    .loading { color: var(--text2); font-size: 14px; padding: 20px 0; }

    /* ── Print / PDF ── */
    @media print {
      body { background: #fff; color: #000; }
      header, .btn-pdf, .btn-refresh, .btn-admin, .btn-logout, .lang-switcher, #client-select, #period-select, .filter-bar { display: none !important; }
      .card { background: #fff; border: 1px solid #ddd; break-inside: avoid; }
      .kpi-grid { grid-template-columns: repeat(5, 1fr); }
      .kpi-card { background: #f9f9f9; border: 1px solid #ddd; }
      .kpi-label { color: #666; }
      .kpi-value { color: #000; font-size: 18px; }
      .kpi-delta { color: #444; }
      .chart-wrap { height: 200px; }
      .detail-grid { grid-template-columns: 1fr 1fr; }
      .page-title h2 { color: #000; }
      .period-badge { color: #666; border-color: #ddd; }
      .card h3 { color: #444; }
      table td, table th { color: #000; border-color: #eee; }
      .row-section td { color: #10b981; }
      .val-neg { color: #dc2626; }
      .val-pos { color: #16a34a; }
      a { display: none; }
    }

    /* ── Mobiilivaade ── */
    @media (max-width: 900px) {
      .kpi-grid { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 640px) {
      header { flex-wrap: wrap; gap: 8px; padding: 12px 16px; }
      .header-right { width: 100%; justify-content: space-between; }
      .header-right select { flex: 1; min-width: 0; font-size: 13px; }
      .btn-logout { font-size: 13px; padding: 7px 12px; white-space: nowrap; }
      main { padding: 16px; }
      .page-title h2 { font-size: 18px; }
      .kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .kpi-card { padding: 16px 14px; }
      .kpi-value { font-size: 20px; }
      .chart-wrap { height: 200px; }
      .card { padding: 16px; }
      #comparison-table { min-width: 480px; }
      .detail-grid { grid-template-columns: 1fr; }
      .auth-card { padding: 32px 24px; }
    }

/* ── Kliendikesta lisad (uus, 2026-08-18) ───────────────────────── */

/* Kest on peidus kuni klient.js on kliendi ja perioodi paika saanud —
   muidu vilgub tühi raamistik enne andmeid. nav.js lisab .skoor-shell (rida). */
#app { display: none; }
#app.ready { display: flex; }

.klient-main { flex: 1; min-width: 0; padding: 24px; }
@media (max-width: 900px) { .klient-main { padding: 16px; } }

.klient-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  margin-bottom: 20px;
}
.klient-toolbar select {
  background: var(--bg2); color: var(--text);
  border: 1px solid var(--border); border-radius: 8px;
  padding: 8px 12px; font-family: inherit; font-size: 14px;
}
.klient-toolbar .spacer { flex: 1; }

.data-stamp { color: var(--text3); font-size: 12px; }

.attention-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.attention-list li {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; border-radius: 10px;
  background: var(--bg3); border: 1px solid var(--border);
}
.attention-list li.ok { color: var(--text2); }
.attention-list .dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.attention-list .dot.warn { background: var(--neg); }
.attention-list .dot.good { background: var(--pos); }
.attention-list a { color: var(--accent); text-decoration: none; }
.attention-list a:hover { text-decoration: underline; }

/* Org-i sõnamärk külgribas. Asendab nii Skoori mõõdiku kui tekstipealkirja —
   sõnamärk kannab nime ise. Kõrgus piiratud, laius voolab. */
.sk-brand-img {
  max-width: 100%;
  max-height: 40px;
  padding: 2px 0;
  width: auto;
  height: auto;
  object-fit: contain;
  flex: none;
}
.skoor-mobilebar .sk-brand-img { max-height: 24px; }

/* Viimane dokumendipäring (Ülevaade). Neutraalne fakt, mitte hoiatus —
   sellepärast tavaline tekst, mitte punane riba. */
.doc-request { color: var(--text); font-size: 15px; }
.doc-request.muted { color: var(--text2); }

/* ── Seaded ─────────────────────────────────────────────────────────
   Kitsas veerg, mitte lehelaiune vorm: paroolivälju on kolm ja täislaiuses
   read venitaks silma üle terve ekraani. Sisendite välimus on sama, mis
   sisselogimiskaardil (.auth-card input), aga see reegel on kaardi sees —
   siin on ta uuesti, ilma seda seost katki tegemata. */
.settings-narrow { max-width: 520px; }

/* 🔴 `display: flex` VÕIDAB brauseri enda `[hidden] { display: none }` reegli.
   Ilma selle reata jäi „Ettevõte —" org-liikmele nähtavale, kuigi JS oli rea
   `hidden`-iks märkinud (Eve, 18.08.2026). Sama lõks, mille pärast on
   nav.js-is `.sk-link[hidden]`. Peitmine peab olema tugevam kui paigutus. */
.set-row[hidden] { display: none; }
/* Sama põhjus: Põhivara „Värskenda" on kliendi eest peidus (`hidden`), sest ta
   käivitab päris Meriti sünki ja on ainult büroole. */
.btn-refresh[hidden] { display: none; }
.set-row {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.set-row:last-child { border-bottom: none; padding-bottom: 0; }
.set-row:first-child { padding-top: 0; }
.set-row .set-key { color: var(--text2); font-size: 13px; flex: 0 0 auto; }
.set-row .set-val { color: var(--text); font-size: 15px; text-align: right; word-break: break-word; }

.set-field { margin-bottom: 12px; }
.set-field label {
  display: block; font-size: 13px; color: var(--text2); margin-bottom: 6px;
}
.set-field input {
  width: 100%; padding: 12px 16px;
  background: var(--bg3); border: 1px solid var(--border); border-radius: 8px;
  color: var(--text); font-family: inherit; font-size: 15px;
  outline: none; transition: border-color 0.2s;
}
.set-field input:focus { border-color: var(--accent); }

/* Nupp ei ole vormi laiune — parooli muutmine on üksik toiming, mitte
   lehe põhitegevus. */
.set-actions { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.set-actions .btn-primary { width: auto; padding: 11px 20px; margin-top: 0; }

.set-msg { font-size: 13px; }
.set-msg.ok  { color: var(--pos); }
.set-msg.err { color: var(--neg); }

.set-hint { color: var(--text2); font-size: 13px; margin-bottom: 14px; }
    /* Ostuarvete leht: juhendtekst väiksemaks (Eve 10.09). 🔴 Scope'itud lehele,
       mitte globaalselt — `.set-hint` on kasutusel ka Seadete lehel, mida keegi
       muuta ei palunud. */
    .docs-page .set-hint { font-size: 12px; }

.btn-danger {
  padding: 11px 20px;
  background: transparent; color: var(--neg);
  border: 1px solid var(--neg); border-radius: 8px;
  font-family: inherit; font-size: 15px; font-weight: 600;
  cursor: pointer; transition: background 0.2s, opacity 0.2s;
}
.btn-danger:hover { background: rgba(239,68,68,0.10); }
.btn-danger:disabled { opacity: 0.5; cursor: not-allowed; }

/* Privaatsustingimuste link sisselogimiskaardi all. Kaardist VÄLJAS, et see
   ei konkureeriks sisselogimisnupuga, aga oleks enne sisselogimist nähtav —
   nõusolek eeldab, et tingimused on loetavad ilma kontota. */
/* 🔴 `position: absolute`, sest #auth-screen on flex-konteiner: tavalise
   voo korral sai lingist kaardi KÕRVAL asuv flex-element (Meelis 18.08).
   Nüüd on ta lehe all keskel, kaardist sõltumatult. */
.auth-privacy {
  position: absolute; left: 0; right: 0; bottom: 24px;
  margin: 0; text-align: center; font-size: 13px;
}
.auth-privacy a { color: var(--text3); text-decoration: none; }
.auth-privacy a:hover { color: var(--accent); text-decoration: underline; }

/* ── Privaatsustingimuste kinnitus (G1) ──────────────────────────────
   Kate on #app-ist SÕLTUMATU: #app on `display:none` kuni `.ready`, aga
   kinnitust tuleb näidata ENNE seda — kasutaja ei tohi näha ühtki numbrit
   enne, kui teatega on tutvutud. */
.ack-overlay {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center; padding: 24px;
  background: var(--bg);
}
.ack-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 32px 28px;
  width: 100%; max-width: 440px;
}
.ack-card h2 { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.ack-card p { color: var(--text2); font-size: 14px; margin-bottom: 14px; line-height: 1.6; }
.ack-card a { color: var(--accent); text-decoration: none; }
.ack-card a:hover { text-decoration: underline; }
.ack-check {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 18px 0; cursor: pointer; font-size: 14px; color: var(--text);
}
.ack-check input {
  width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px;
  accent-color: var(--accent); cursor: pointer;
}
.ack-msg { color: var(--neg); font-size: 13px; min-height: 18px; margin: 10px 0 0; }
.ack-out { margin: 4px 0 0; text-align: center; font-size: 13px; }
.ack-out a { color: var(--text3); }

/* ── Dokumentide üleslaadimine (B2) ──────────────────────────────── */
.drop {
  border: 2px dashed var(--border); border-radius: var(--radius);
  padding: 32px 20px; text-align: center; transition: border-color .2s, background .2s;
}
.drop.over { border-color: var(--accent); background: rgba(16,185,129,0.06); }
.drop .drop-main { font-size: 15px; color: var(--text); margin-bottom: 4px; }
.drop .drop-sub  { font-size: 13px; color: var(--text3); margin-bottom: 12px; }
.drop .btn-primary { width: auto; padding: 10px 20px; margin-top: 0; }

.upload-queue { margin-top: 14px; }
.up-row {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 14px;
}
.up-row:last-child { border-bottom: none; }
.up-name { color: var(--text); word-break: break-all; flex: 1 1 auto; }
.up-meta { color: var(--text3); font-size: 12px; white-space: nowrap; }
.up-state { font-size: 12px; white-space: nowrap; }
.up-state.ok   { color: var(--pos); }
.up-state.err  { color: var(--neg); }
.up-state.busy { color: var(--text2); }
