/* Tükeldatud public/index.html-ist 14.09.2026 (scripts/tykelda.py) — 13 <style>-plokki samas järjekorras. */

/* ── index.html rida 22 ── */
:root {
  /* MEGApremium redesign — monokroom Nordic + savi-aktsent (design handoff 2026-07) */
  --bg: #F7F6F4;            /* lehe taust — vaikne paber */
  --white: #FFFFFF;
  --surface: #FFFFFF;       /* kaardi/pinna valge */
  --sidebar-bg: #FBFAF8;    /* hele sidebar (Faas 2) */
  --heading: #111111;       /* ink pealkirjad */
  --text: #3B3B3B;
  --text2: #6B6E73;
  --muted: #8A8A8A;         /* a11y: prefers-contrast tumendab allpool */
  --faint: #B4B2AD;
  --border: #E7E6E3;        /* peamine hairline */
  --border2: #E2E1DD;       /* kontroll/input ääris */
  --row-line: #E3E0DA;      /* rea-jaotusjoon — peab olema NÄHTAV ka linasel taustal
                               (Luisa 17.08.2026: „siin võiks olla jooned ridade vahel").
                               Vana #F0EFEC oli lehe taustast (#F7F6F4) praktiliselt
                               eristamatu → jooni polnud olemas, kuigi CSS-is olid. */
  --hover: #FCFBF9;         /* kaardi/rea hover */
  --header: #111111;        /* ink — segment-toggle, tabid */
  /* ── SAVI ON HARULDANE (Luisa 31.08.2026: „kogu rakenduses on liiga palju savi
     aktsenti, tee rohkem malli järgi ehk siis vähenda savi värvi").
     Vormistuse mallides (bränd-ja-turundus/vormistus) on savi kogu DOKUMENDI
     peale kolm korda; ülejäänu on ink #111, tekst #3B3B3B, hall #8A8A8A ja
     joon #E2E2E2. Rakenduses oli savi-viiteid 421.
     Savi JÄÄB ainult sinna, kus ta midagi ütleb: primaarnupp, „sa oled siin"
     ja jooksev taimer. Kõik dekoratiivne läheb neutraalseks — muutus tehakse
     SIIN, muutuja tasemel, mitte 400 kohas laiali. */
  --accent: #9E5A38;        /* SAVI — ainult primaarnupp, nav-aktiiv, jooksev aeg */
  --warm: #F0ECE7;         /* soe savikas täide: aktiivne nav, märkused, hoiatus (22.09.2026 tokeniks) */
  --accent-light: #F1F0ED;  /* oli #F0ECE7 (soe savikas) → neutraalne heleda täide */
  --accent-dark: #874A2C;   /* savi hover */
  --gold: #6B6E73;          /* oli savi. „Kuldne" oli ajalooline nimi — need kohad on
                               dekoratiivsed (jooned, sildid), seega grafiit, mitte savi */
  --red: #A03D2C;           /* staatus: risk/kriitiline */
  --red-light: #F4ECEA;
  --st-watch: #874A2C;      /* staatus: jälgi — savi tume (Luisa 2026-07-30: kuldne välja) */
  --st-ok: #5F7A56;         /* staatus: graafikus/OK */
  --ok-light: #EDF1EA;      /* OK-staatuse peen täide (paar rohelist tausta olid varem
                               igaüks ise toon — 9 eri rohelist, vt värvigamma-korrastus) */
  --sand: #D7C7AE;          /* LIIV — peen soe ääris (faasisilt, lohistusala, jaotusjoon heledal) */
  --paper: #F7F7F7;         /* PABER — lehe raam */
  --radius: 0px;            /* kandiline (radius 0) */
  --radius-sm: 0px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: 'Inter', sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.7;
  font-variant-numeric: tabular-nums;
  min-height: 100vh;
}

/* ── HEADER ─────────────────────────────────────────────── */
.site-header {
  position: relative;
  background: var(--heading) url('vaade-tanavalt.jpg') center 62% / cover no-repeat;
  height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}
.site-header-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.40) 100%);
  pointer-events: none;
}
/* logo — top left */
.site-logo-wrap {
  position: relative;
  z-index: 1;
  padding: 1.2rem 2rem 0;
  align-self: flex-start;
}
.site-logo {
  display: flex;
  align-items: center;
  gap: 14px;
}/* PÄRIS logotekst vektorina (raadius-sonamark.svg). Mitte Interis kirjutatud tekst —
   Raadiuse sõnamärgil on oma tähekujud. Laius kohaneb külgribaga, kõrgus järgneb. */
.site-wordmark { display:block; text-decoration:none; line-height:0; }
/* Luisa 11.08: „tahan logo kogu külgpaneeli laiuses, prgu liiga väike" —
   tühistab 03.08 otsuse (150px, „way liiga boldis"). Uuem sõna võidab:
   max-width maha, logo täidab külgriba kogu sisemise laiuse. */
.site-wordmark .wm-img { display:block; width:100%; height:auto; }
/* nav — bottom center */
.site-nav-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
}
.site-nav {
  display: flex;
  gap: 0;
}
.site-nav-btn {
  padding: 0 28px;
  height: 88px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight:500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  background: none;
  border: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.15s;
}
.site-nav-btn:hover { color: rgba(255,255,255,0.85); }
.site-nav-btn.active { color: var(--white); border-bottom-color: var(--gold); }

/* ── LAYOUT ─────────────────────────────────────────────── */
.page-outer { background: transparent; display: flex; justify-content: center; padding: 0; }
.page-wrap { width: calc(100% - 4rem); max-width: 940px; margin: 2rem auto 3.5rem; padding: 2.75rem 2.75rem 4rem; background: rgba(255,255,255,0.97); border-radius:0; box-shadow:none; }
.page-content { display: none; }
.page-content.active { display: block; }

/* ── BANNER ─────────────────────────────────────────────── */
.banner { display: none; align-items: center; gap: 8px; padding: 12px 16px; border-radius: var(--radius); font-size: 14px; margin-bottom: 14px; }
.banner.show { display: flex; }
.banner.ok { background: var(--accent-light); color: var(--accent-dark); }
.banner.err { background: var(--red-light); color: var(--red); }
.banner.load { background: var(--accent-light); color: var(--accent); }

/* ── CARDS ──────────────────────────────────────────────── */
.card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 22px;
  margin-bottom: 10px;
  box-shadow:none;
}
/* Kaardi pealkiri oli font-weight 400 — sama kaal mis tavatekstil, ainult
   suurtähtedes ja hall. Luisa 12.08: alapealkirju „pole üldse näha".
   Sama parandus mis .pr-sec-h juures: kaal peale, tähevahe veidi väiksemaks. */
.card-label {
  font-size: 12px;
  font-weight:600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink,var(--heading));
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
/* ⚠ KAARDISILDILT ON SAVI KRIIPS MAHA VÕETUD (Luisa 01.09.2026: „ma ei
   erista pealkirju ju, tee mustaks, see savi aktsendiga kriips on nii lamp").
   Probleem ei olnud kriipsu ASUKOHT vaid see, et silt ise oli liiga tuhm:
   11,5px hall-must suurtähtedes ei erine sisutekstist. Nüüd eristub KIRI —
   suurem, must, tugevam kaal — ja aktsent jääb ainult LEHE pealkirjale. */
.card-label a {
  font-size: 10px;
  color: var(--accent);
  cursor: pointer;
  font-weight:500;
  letter-spacing: 0.06em;
  text-transform: none;
}

/* ── FORM ELEMENTS ──────────────────────────────────────── */
.field { margin-bottom: 10px; }
.field:last-child { margin-bottom: 0; }
label {
  display: block;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
/* Vihje sildi sees oli varem tavaline <span> — see PÄRIS sildilt uppercase'i ja
   tähevahed ning jooksis sildiga kokku („HONORAR (€) NETO, VALIKULINE").
   Nüüd oma real, väiketähtedega. (Luisa 2026-08-04) */
.f-vihje {
  display: block;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
  font-size: 11px;
  color: var(--muted);
  margin-top: 2px;
}
label .pr-toggle .f-vihje, .pr-toggle .f-vihje { display: inline; margin-top: 0; }
/* type=number ja type=date ei saanud SEDA stiili üldse — mõõdetud 04.08:
   honorar ja planeeritud tunnid olid 143×20px, kõik teised 248×41px. */
input[type=text], input[type=number], input[type=email], input[type=tel],
input[type=search].f-inp, textarea {
  width: 100%;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  background: var(--white);
  color: var(--text);
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
input:focus, textarea:focus {
  border-color: var(--heading);
  box-shadow:none;
}
textarea { resize: vertical; min-height: 64px; }
.row { display: flex; gap: 8px; }
.row input { flex: 1; }

/* ── BUTTONS ────────────────────────────────────────────── */
.btn {
  border: none;
  border-radius: var(--radius-sm);
  padding: 10px 18px;
  font-size: 12px;
  font-weight:400;
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: opacity 0.15s;
  white-space: nowrap;
}
.btn:hover:not(:disabled) { opacity: 0.8; }
.btn:disabled { opacity: 0.35; cursor: not-allowed; }
.btn-primary { background: var(--header); color: var(--white); font-weight:400; letter-spacing:.03em; }.btn-ghost { background: transparent; color: var(--text); border: 1px solid var(--border2); }
.btn-danger { background: transparent; color: var(--muted); border: 1px solid transparent; }
.btn-danger:hover:not(:disabled) { background: var(--red-light); color: var(--red); border-color: var(--red-light); opacity: 1; }
.btn-full { width: 100%; padding: 16px; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; }
.btn-sm { padding: 6px 12px; font-size: 11px; }
.btn-outlook { background: #0078D4; color: var(--white); border: none; border-radius: var(--radius-sm); padding: 6px 12px; font-size: 11px; font-weight:500; font-family: 'Inter', sans-serif; cursor: pointer; transition: opacity 0.15s; }
.btn-outlook:hover { opacity: 0.82; }

/* ── CHIPS ──────────────────────────────────────────────── */
.eriosad-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  padding: 6px 14px;
  border-radius:0;
  font-size: 11px;
  font-weight:500;
  letter-spacing: 0.03em;
  cursor: pointer;
  border: 1px solid var(--border2);
  background: var(--white);
  color: var(--text2);
  transition: all 0.1s;
  user-select: none;
}
.chip:hover { border-color: var(--accent); color: var(--accent); }
.chip.sel { background: var(--header); color: var(--white); border-color: var(--header); font-weight:400; }

/* ── PROVIDERS ──────────────────────────────────────────── */
.eriosa-block { margin-bottom: 14px; }
.eriosa-block:last-child { margin-bottom: 0; }
.eriosa-label {
  font-size: 10px;
  font-weight:500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.provider-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 4px;
  background: var(--bg);
  cursor: pointer;
  transition: border-color 0.1s, background 0.1s;
}
.provider-row:hover { border-color: var(--accent); background: var(--accent-light); }
.provider-row.sel { border-color: var(--accent); background: var(--accent-light); }
.provider-row input[type=checkbox] { accent-color: var(--accent); flex-shrink: 0; width: 14px; height: 14px; cursor: pointer; }
.provider-info { flex: 1; min-width: 0; }
.provider-name { font-size: 14px; font-weight:500; }
.provider-email { font-size: 13px; color: var(--muted); }
.no-providers { font-size: 12px; color: var(--muted); font-style: italic; padding: 6px 0; }

/* ── DROPDOWN ───────────────────────────────────────────── */
.dd { background: var(--white); border: 1px solid var(--border2); border-radius: var(--radius); margin-top: 4px; box-shadow:none; display: none; position: relative; z-index: 10; max-height: 280px; overflow-y: auto; }
.dd.open { display: block; }
.dd-item { padding: 12px 14px; cursor: pointer; border-bottom: 1px solid var(--border); font-size: 14px; transition: background 0.1s; }
.dd-item:last-child { border-bottom: none; }
.dd-item:hover { background: var(--bg); }
.dd-name { font-weight:500; }
.dd-sub { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── PILL ───────────────────────────────────────────────── */
.pill { display: none; align-items: center; gap: 8px; background: var(--accent-light); color: var(--accent-dark); border-radius: var(--radius-sm); padding: 8px 14px; font-size: 12px; font-weight:500; margin-top: 6px; }
.pill.show { display: flex; }
.pill-x { background: none; border: none; color: var(--red); cursor: pointer; font-size: 16px; line-height: 1; padding: 0; margin-left: auto; }

/* ── FILES ──────────────────────────────────────────────── */
.files-wrap { margin-top: 10px; }
.files-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; font-size: 11px; color: var(--muted); }
.files-header a { color: var(--accent); cursor: pointer; font-weight:500; }
.file-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.file-row:last-child { border-bottom: none; }
.file-row input[type=checkbox] { accent-color: var(--accent); flex-shrink: 0; cursor: pointer; }
.file-name { flex: 1; cursor: pointer; }
.file-date { font-size: 11px; color: var(--muted); }

/* ── STATUS ─────────────────────────────────────────────── */
.st { font-size: 11px; color: var(--muted); margin-top: 6px; min-height: 16px; }
.st.load { color: var(--accent); }
.st.err { color: var(--red); }
.st.ok { color: var(--accent); font-weight:500; }

/* ── SAATJA ─────────────────────────────────────────────── */.saatja-select {
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--white);
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  font-family: 'Inter', sans-serif;
  cursor: pointer;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.saatja-select:focus { border-color: var(--accent); box-shadow:none; }

/* ── DRAFTS ─────────────────────────────────────────────── */
.draft-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 10px; overflow: hidden; box-shadow:none; }
.draft-head { background: var(--header); padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; }
.draft-head-left { display: flex; align-items: center; gap: 10px; }
.draft-num { font-size: 10px; font-weight:500; background: rgba(255,255,255,0.15); color: var(--white); border-radius:0; padding: 2px 8px; letter-spacing: 0.08em; }
.draft-to-label { font-size: 13px; font-weight:500; color: var(--white); }
.draft-eriosad { font-size: 11px; color: rgba(255,255,255,0.55); }
.draft-body { padding: 16px; }
.df { margin-bottom: 12px; }
.df:last-child { margin-bottom: 0; }
.df-lbl { font-size: 10px; font-weight:400; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.df-val { background: var(--bg); border-radius: var(--radius-sm); padding: 12px 40px 12px 14px; font-size: 14px; white-space: pre-wrap; line-height: 1.65; color: var(--text); position: relative; min-height: 40px; }
.cp-btn { position: absolute; top: 7px; right: 7px; background: var(--white); border: 1px solid var(--border2); border-radius:0; padding: 2px 8px; font-size: 10px; cursor: pointer; color: var(--text2); font-family: 'Inter', sans-serif; transition: all 0.1s; }
.cp-btn:hover { background: var(--accent-light); color: var(--accent-dark); border-color: var(--accent); }
hr.sec { border: none; border-top: 1px solid var(--border); margin: 12px 0; }

/* ── MGMT ───────────────────────────────────────────────── */
.mgmt-wrap { margin-top: 10px; }
.mgmt-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; box-shadow:none; }
.mgmt-head { padding: 14px 18px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight:500; letter-spacing: 0.04em; border-bottom: 1px solid var(--border); background: var(--bg); }
.mgmt-body { display: none; padding: 16px 18px; }
.mgmt-body.open { display: block; }
.mgmt-provider { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.mgmt-provider:last-child { border-bottom: none; }
.mgmt-pname { font-weight:500; flex: 1; min-width: 0; }
.mgmt-periosad { font-size: 11px; color: var(--accent); flex-shrink: 0; max-width: 140px; text-align: right; }
.add-form { background: var(--bg); border-radius: var(--radius); padding: 14px; margin-top: 14px; border: 1px solid var(--border); }
.add-form-title { font-size: 10px; font-weight:400; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text2); margin-bottom: 10px; }
.add-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.add-eriosad-grid { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.add-chip { padding: 4px 12px; border-radius:0; font-size: 11px; font-weight:500; cursor: pointer; border: 1px solid var(--border2); background: var(--white); color: var(--text2); transition: all 0.1s; }
.add-chip.sel { background: var(--header); color: var(--white); border-color: var(--header); }

/* ── STAADIUMI ──────────────────────────────────────────────── */
.staadiumi-wrap { display: flex; flex-wrap: wrap; gap: 6px; }
.st-chip { padding: 6px 16px; border-radius:0; font-size: 11px; font-weight:500; letter-spacing: 0.04em; cursor: pointer; border: 1px solid var(--border2); background: var(--white); color: var(--text2); transition: all 0.1s; user-select: none; }
.st-chip:hover { border-color: var(--header); color: var(--header); }
.st-chip.sel { background: var(--header); color: var(--white); border-color: var(--header); }

/* ── MITU KAUSTA ─────────────────────────────────────────────── */
.folder-pills { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.folder-pill { display: flex; align-items: center; gap: 8px; background: var(--accent-light); color: var(--accent-dark); border-radius: var(--radius-sm); padding: 6px 12px; font-size: 12px; font-weight:500; }
.folder-pill-info { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-pill-sub { font-size: 10px; font-weight: 400; opacity: 0.7; margin-left: 4px; }
.folder-pill-x { background: none; border: none; color: var(--red); cursor: pointer; font-size: 16px; line-height: 1; padding: 0 2px; flex-shrink: 0; }




/* ── PROJEKTID ──────────────────────────────────────────── */
.pr-stats { display: flex; gap: 8px; margin-bottom: 1.5rem; flex-wrap: wrap; }
.pr-stat { flex: 1; min-width: 60px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; text-align: center; box-shadow:none; }
.pr-stat-num { font-size: 20px; font-weight:500; color: var(--text); line-height: 1; }
.pr-stat-lbl { font-size: 10px; font-weight:400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
.pr-filter-row { display: flex; gap: 8px; margin-bottom: 1.25rem; flex-wrap: wrap; align-items: center; }
.pr-search { flex: 1 1 100%; padding: 12px 14px; border: 1px solid var(--border2); border-radius: var(--radius-sm); font-size: 14px; font-family: inherit; background: var(--white); color: var(--text); outline: none; }
/* Filtririba kõrvuti (mitte virna) — vähem vertikaalruumi, vähem kerimist */
.pr-filter-row .pr-search { flex: 1 1 240px; min-width: 200px; }
.pr-filter-row select { width: auto; min-width: 145px; flex: 0 1 180px; }
.pr-search:focus { border-color: var(--accent); box-shadow:none; }
.pr-viewtoggle { display: inline-flex; border: 1px solid var(--border2); border-radius: var(--radius-sm); overflow: hidden; }
.pr-viewbtn { border: none; background: var(--white); padding: 8px 12px; font-size: 13px; font-family: inherit; cursor: pointer; color: var(--text2); }
.pr-viewbtn.active { background: var(--header); color: var(--white); }
.pr-viewbtn + .pr-viewbtn { border-left: 1px solid var(--border2); }
.pr-tl-axis { display: flex; justify-content: space-between; font-size: 10px; letter-spacing:.14em; text-transform:uppercase; color: var(--muted); padding: 0 0 12px 180px; font-variant-numeric:tabular-nums; }
.pr-tl-body { position: relative; }
.pr-tl-row { display: flex; align-items: center; height: 40px; cursor: pointer; border-radius: 0; border-bottom: 1px solid var(--row-line); transition: background 0.15s; }
.pr-tl-row:hover { background: var(--hover); }
.pr-tl-name { width: 180px; min-width: 180px; font-size: 13px; font-weight: 400; color: var(--heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 14px; }
.pr-tl-track { position: relative; flex: 1 1 auto; height: 22px; background: var(--accent-light); border-radius: 0; overflow: hidden; }   /* sildid ei ulatu üle serva (mobiil 12.09.2026) */
.pr-tl-seg { position: absolute; top: 0; height: 22px; border-radius: 0; display: flex; align-items: center; padding: 0 6px; overflow: hidden; }
.pr-tl-seg.done { opacity: 1; }
.pr-tl-seg span { font-size: 10px; font-weight: 500; letter-spacing:.04em; white-space: nowrap; }
.pr-tl-none { font-size: 10px; color: var(--muted); padding-left: 6px; }
.pr-tl-today { position: absolute; top: -3px; bottom: -3px; width: 1px; background: var(--accent); z-index: 3; }
.pr-grid { display: flex; flex-direction: column; gap: 6px; margin-bottom: 1.5rem; }
@media(min-width:900px){
  .pr-split { display: grid; grid-template-columns: 360px 1fr; gap: 20px; align-items: start; }
  .pr-split .pr-grid { margin-bottom: 0; padding-right: 6px; }
  /* Projektiloend jääb vasakule nähtavale (kleepub), cockpit + leht keritakse ÜHE loomuliku
     lehe-scrolliga ükskõik kust — varem olid kaks eraldi scroll-kasti, mis tundus veider. */
  .pr-split .pr-grid { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; overscroll-behavior: contain; }
}
/* Õhukesed, diskreetsed kerimisribad (loend + cockpit) — professionaalsem tunne */
.pr-split .pr-grid, .pr-split #pr-panels { scrollbar-width: thin; scrollbar-color: var(--border2) transparent; }
.pr-split .pr-grid::-webkit-scrollbar, .pr-split #pr-panels::-webkit-scrollbar { width: 9px; }
.pr-split .pr-grid::-webkit-scrollbar-thumb, .pr-split #pr-panels::-webkit-scrollbar-thumb { background: var(--border2); border-radius:0; border: 2px solid transparent; background-clip: padding-box; }
.pr-split .pr-grid::-webkit-scrollbar-thumb:hover, .pr-split #pr-panels::-webkit-scrollbar-thumb:hover { background: var(--muted); background-clip: padding-box; }
.pr-card { display: flex; flex-direction: column; gap: 4px; background: var(--white); border: 1px solid var(--border); border-radius: 0; padding: 12px 14px; cursor: pointer; transition: box-shadow 0.1s, background 0.1s; box-shadow:none; }
.pr-card:hover { box-shadow:none; background: var(--hover); }
.pr-card.active { background: var(--accent-light); box-shadow:none; }.pr-card .pr-dot { width: 7px; height: 7px; min-width: 7px; border-radius: 0; margin-top: 6px; }
.pr-card .pr-nimi { flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight:500; line-height: 1.35; }
.pr-card .pr-faasbadge { flex: 0 0 auto; font-size: 10px; font-weight: 500; letter-spacing:.06em; padding: 2px 8px; border-radius: 0; white-space: nowrap; margin-top: 1px; }.pr-card .pr-sub { min-width: 0; font-size: 11px; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-card .pr-tahtaeg { flex: 0 0 auto; font-size: 11px; font-weight:500; white-space: nowrap; }
.pr-card-prog { height: 3px; border-radius: 0; background: var(--accent-light); overflow: hidden; margin-top: 8px; }
.pr-card-prog > span { display: block; height: 100%; background: var(--accent); border-radius: 0; }
.pr-toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text2); cursor: pointer; white-space: nowrap; }
.pr-toggle input { width: auto; margin: 0; cursor: pointer; }
.pr-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.pr-arh-box { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 8px 0 2px; }
.pr-arh-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text2); cursor: pointer; white-space: nowrap; }
.pr-arh-chk input { width: auto; margin: 0; cursor: pointer; }
select, input[type=date] { width: 100%; border: 1px solid var(--border2); border-radius: var(--radius-sm); padding: 12px 14px; font-size: 14px; font-family: 'Inter', sans-serif; background: var(--white); color: var(--text); outline: none; transition: border-color 0.15s, box-shadow 0.15s; }
select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%239b9b9b' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
select:focus, input[type=date]:focus { border-color: var(--heading); box-shadow:none; }
.pr-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 1000; overflow-y: auto; padding: 2rem 1rem; display: flex; align-items: flex-start; justify-content: center; }
.pr-modal-inner { background: var(--white); border-radius: var(--radius); width: 100%; max-width: 560px; padding: 24px; margin: auto; }
@media(max-width:480px) { .pr-edit-grid { grid-template-columns: 1fr; } }
.ul-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.ul-row:last-child { border-bottom: none; }
.ul-row.done .ul-tekst { text-decoration: line-through; color: var(--muted); }
.ul-row .ul-tekst { flex: 1 1 auto; min-width: 0; line-height: 1.4; }
.ul-row .ul-th { font-size: 11px; color: var(--text2); white-space: nowrap; }
.ul-row .ul-th.od { color: var(--red); font-weight:500; }
.ul-row .ul-del { border: none; background: none; color: var(--muted); cursor: pointer; font-size: 16px; line-height: 1; padding: 0 4px; }
.ul-row .ul-del:hover { color: var(--red); }
.ul-add { display: flex; gap: 6px; margin-top: 8px; }
.ul-add input { border: 1px solid var(--border2); border-radius: var(--radius-sm); padding: 8px 12px; font-size: 13px; font-family: inherit; }
.ul-add input[type=text] { flex: 1 1 auto; min-width: 0; }
.ul-add input[type=date] { flex: 0 0 auto; width: auto; }
.ul-add .ul-faas-sel { flex: 0 0 auto; width: auto; padding: 8px 8px; font-size: 12px; border: 1px solid var(--border2); border-radius: var(--radius-sm); background: var(--white); font-family: inherit; }
.ul-row .ul-faas { flex: 0 0 auto; font-size: 10px; font-weight:500; padding: 1px 6px; border-radius:0; white-space: nowrap; }
.ul-row .ul-assign { flex: 0 0 auto; font-size: 10px; font-weight:500; color: var(--accent); background: var(--accent-light, var(--ok-light)); padding: 1px 6px; border-radius:0; white-space: nowrap; }
/* ── Projekti cockpit ── */
.pr-ck-head { margin-bottom: 14px; }
.pr-ck-title { display: flex; align-items: center; gap: 10px; }
.pr-ck-dot { width: 10px; height: 10px; min-width: 10px; border-radius: 50%; }
.pr-ck-name { font-size: 16px; font-weight:500; color: var(--heading); line-height: 1.2; }
.pr-ck-num { font-size: 12px; color: var(--muted); font-weight: 500; }
.pr-ck-sub { font-size: 13px; color: var(--text2); margin-top: 4px; margin-left: 20px; }
/* Luisa 12.08.2026: „pane need alapealkirjad kogu rakenduses boldis, neid
   pole üldse näha". Kaal 700 oli juba paigas — nähtamatuks tegi VÄRV:
   var(--muted) on tahtlikult kahvatu ja 11px suurtähtedega kadus päris ära.
   Nüüd päris tekstivärv ja 12px. Suurtähed ja tähevahe jäävad — need
   eristavad alapealkirja tavatekstist ilma suurust kasvatamata. */
.pr-sec-h { font-size: 12px; font-weight:400; letter-spacing: .09em; text-transform: uppercase; color: var(--heading, var(--text)); margin-bottom: 10px; }
.pr-sec-sub { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text2); margin-left: 6px; }.pr-ck-notes { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; font-size: 13px; line-height: 1.65; white-space: pre-wrap; }
.pr-ck-actions { margin-top: 18px; display: flex; gap: 8px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--border); }
.pr-links { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.pr-links .pr-link { font-size: 13px; font-weight:500; color: var(--accent); text-decoration: none; }
.pr-links .pr-link:hover { text-decoration: underline; }
/* mõõdikud *//* stepper */
.pr-stepper { display: flex; margin: 2px 0 14px; }
.pr-step { flex: 1 1 0; position: relative; text-align: center; min-width: 0; }
.pr-step::before { content: ''; position: absolute; top: 8px; left: -50%; width: 100%; height: 2px; background: var(--border2); z-index: 0; }
.pr-step:first-child::before { display: none; }
.pr-step.pr-step-tehtud::before { background: var(--accent); }
.pr-step-dot { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--border2); color: var(--white); font-size: 10px; font-weight:500; }
.pr-step-tehtud .pr-step-dot { background: var(--accent); }
.pr-step-kaib .pr-step-dot { background: var(--header); box-shadow:none; }
.pr-step-lbl { display: block; font-size: 10px; font-weight:500; color: var(--text2); margin-top: 4px; letter-spacing: .04em; }
.pr-step-tehtud .pr-step-lbl, .pr-step-kaib .pr-step-lbl { color: var(--heading); }
/* faasi-kaardid */
.pr-faas-card { border: 1px solid var(--border); border-left: 3px solid var(--border2); border-radius: var(--radius-sm); padding: 10px 12px; margin-bottom: 8px; background: var(--white); }
.pr-faas-card.pr-faas-tehtud { opacity: 0.65; }
.pr-faas-top { display: flex; align-items: center; gap: 8px; }
.pr-faas-kood { font-size: 10px; font-weight:500; padding: 2px 8px; border-radius:0; white-space: nowrap; }
.pr-faas-nimi { flex: 1 1 auto; min-width: 0; font-size: 12px; font-weight:500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.pr-faas-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--text2); }
.pr-faas-meta .pr-faas-dates { display: flex; align-items: center; gap: 6px; }
.pr-faas-meta input { width: auto; padding: 4px 8px; font-size: 11px; border: 1px solid var(--border2); border-radius: var(--radius-sm); font-family: inherit; background: var(--white); }
.pr-faas-meta input[type=number] { width: 84px; text-align: right; }.pr-faas-add { display: flex; gap: 6px; margin-top: 8px; }
.pr-faas-add select { flex: 0 1 auto; width: auto; }
/* gantt-ajajoon */
.pr-gantt { margin: 4px 0 4px; }.pr-gantt-grid { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--border); opacity: .6; z-index: 0; pointer-events: none; }
.pr-gantt-bar { position: absolute; top: 0; height: 22px; min-width: 14px; border-radius:0; display: flex; align-items: center; padding: 0 8px; box-sizing: border-box; box-shadow:none; z-index: 2; }
.pr-gantt-bar.done { opacity: 0.5; }
.pr-gantt-bar.kaib { box-shadow:none; }
.pr-gantt-lbl { font-size: 10px; font-weight:500; color: var(--white); white-space: nowrap; text-shadow: 0 1px 1px rgba(0,0,0,.35); letter-spacing: .03em; }
.pr-gantt-daterange { position: absolute; top: 0; height: 22px; line-height: 22px; font-size: 10px; color: var(--text2); white-space: nowrap; z-index: 1; pointer-events: none; }
.pr-gantt-today { position: absolute; top: -3px; bottom: 16px; width: 2px; background: var(--red); z-index: 4; }
.pr-gantt-today-lbl { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); font-size: 10px; font-weight:500; color: var(--red); background: var(--white); padding: 0 4px; border-radius:0; white-space: nowrap; }
.pr-gantt-months { position: relative; height: 14px; margin-top: 2px; }
.pr-gantt-month { position: absolute; font-size: 10px; color: var(--muted); transform: translateX(-2px); white-space: nowrap; }

/* ── SPINNER ────────────────────────────────────────────── */
.spinner { display: inline-block; width: 12px; height: 12px; border: 2px solid rgba(158,90,56,0.2); border-top-color: var(--accent); border-radius: 50%; animation: spin 1s linear infinite; vertical-align: middle; margin-right: 6px; }
/* Kulunud sekundid iga keerleva ratta juures (Luisa: „kui kerib ja mõtleb, siis ütle
   sekundeid igal pool"). Lisab spinKell — üks koht, kõik ootamised. */
.spin-sec { font-size: 11px; color: var(--muted); margin-left: 6px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.spinner-w { border-color: rgba(255,255,255,0.25); border-top-color: var(--white); }
@keyframes spin { to { transform: rotate(360deg); } }

/* ── HANKEREGISTER ──────────────────────────────────────── */
.hr-sub-nav { display: flex; gap: 0; border-bottom: 1px solid var(--border); margin-bottom: 1.5rem; }
.hr-sub-btn { padding: 10px 20px; font-family: 'Inter', sans-serif; font-size: 10px; font-weight:500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; margin-bottom: -1px; transition: all 0.15s; }
.hr-sub-btn:hover { color: var(--text); }
.hr-sub-btn.active { color: var(--text); border-bottom-color: var(--header); }
.hr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 1.5rem; }
.hr-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; border-top: 3px solid transparent; cursor: pointer; transition: box-shadow 0.1s; box-shadow:none; }
.hr-card:hover { box-shadow:none; }
.hr-card.active { box-shadow:none; }.hr-det { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 6px; background: var(--white); }
.hr-det > summary { cursor: pointer; padding: 12px 16px; font-size: 11px; font-weight:500; letter-spacing: 0.06em; background: var(--bg); list-style: none; display: flex; align-items: center; justify-content: space-between; user-select: none; }
.hr-det > summary::-webkit-details-marker { display: none; }
.hr-det > summary::after { content: '+'; font-size: 16px; color: var(--muted); font-weight: 300; }
.hr-det[open] > summary { border-bottom: 1px solid var(--border); }
.hr-det[open] > summary::after { content: '−'; }
.hr-det-body { padding: 14px 16px; }
.hr-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-bottom: 8px; }
.hr-info-cell { background: var(--bg); border-radius: var(--radius-sm); padding: 10px 12px; border: 1px solid var(--border); }
.hr-info-lbl { font-size: 10px; font-weight:400; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); margin-bottom: 2px; }
.hr-info-val { font-size: 14px; font-weight:500; line-height: 1.4; }
.hr-kv { display: flex; gap: 10px; margin-bottom: 6px; font-size: 14px; line-height: 1.5; }
.hr-kk { color: var(--text2); min-width: 130px; flex-shrink: 0; font-weight: 500; }
.hr-table { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.hr-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.hr-table thead th { background: var(--bg); font-size: 10px; font-weight:400; letter-spacing: .12em; text-transform: uppercase; color: var(--text2); padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border); }
.hr-table td { padding: 12px 14px; border-bottom: 1px solid var(--border); vertical-align: top; }
/* Standardite register: kõik valdkonna-rühmad on eraldi tabelid — ilma
   fikseeritud paigutuseta arvutab igaüks oma veerulaiused ja read hüppavad. */
.std-tbl table { table-layout: fixed; }
.std-tbl td:nth-child(2) { overflow-wrap: anywhere; }
.std-tbl td:nth-child(4) span { display:inline-block; min-width:58px; text-align:center; }
.hr-table tr:last-child td { border-bottom: none; }
.hr-table .hr-sec td { background: var(--bg); font-size: 10px; font-weight:400; letter-spacing: .12em; text-transform: uppercase; color: var(--text2); padding: 4px 14px; }
.hr-abar { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hr-btn-s { background: var(--white); color: var(--accent); border: 1px solid var(--accent); border-radius: var(--radius-sm); padding: 10px 16px; font-size: 12px; font-weight:500; font-family: 'Inter', sans-serif; cursor: pointer; transition: background 0.15s; }
.hr-btn-s:hover { background: var(--accent-light); }@media(max-width:680px) { .hr-grid { grid-template-columns: 1fr 1fr; } .hr-info-grid { grid-template-columns: 1fr; } }
@media(max-width:540px) { .add-grid { grid-template-columns: 1fr; } }

/* ── AUTH WALL ─────────────────────────────────────────────── */
#auth-wall {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--header);
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 0;
}
#auth-wall .aw-bg {
  position: absolute; inset: 0;
  /* ⚠ OLI kodulehe pilt raadius.ee/wp-content/… — see vastab nüüd 302-ga ja hoidis
     lehe `load`-sündmust 6,4 s kinni (mõõdetud 14.09.2026: DOMContentLoaded 0,4 s,
     load 6,5 s; KOGU vahe oli see üks pilt, mida näidatakse 22 % läbipaistvusega).
     Sama pilt on meil endal olemas: foto3.jpg (96 kB, sama server, vahemälus). */
  background-image: url('/foto3.jpg');
  background-size: cover; background-position: center;
  opacity: 0.22;
}
/* Sisselogimise vaade (Luisa 18.08.2026: „tee see paremaks nt logo suuremaks ja
   hall tekst ära"). Kolm muudatust: logo 76 → 132px (see on ainus bränd, mis siin
   olla saab), hall selgitav rida maha (kes siia jõuab, teab juba, mis rakendus see
   on), ja õhk ümber suuremaks, et logo saaks hingata. */
#auth-wall .aw-box {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; gap: 22px;
  padding: 56px 52px; max-width: 430px; width: 90%;
}
#auth-wall .aw-box .aw-logo { margin-bottom: 14px; }
#auth-wall .aw-box .aw-btn { margin-top: 20px; }
#auth-wall .aw-logo { height: 132px; opacity: 1; }
@media (max-height: 620px){ #auth-wall .aw-logo { height: 96px; } #auth-wall .aw-box{ padding:32px 52px; } }
#auth-wall .aw-kicker {
  color: var(--white); font-size: 10px; font-weight: 500; letter-spacing: 0.28em;
  text-transform: uppercase; opacity: 0.45; margin: 0; text-align: center;
}
#auth-wall .aw-lead {
  color: var(--white); font-size: 20px; font-weight: 300; letter-spacing: 0.01em;
  line-height: 1.35; opacity: 0.95; margin: 0; text-align: center; text-wrap: balance;
}#auth-wall .aw-rule { width: 56px; height: 1px; background: rgba(255,255,255,0.22); margin: 0; }
#auth-wall .aw-btn {
  display: flex; align-items: center; gap: 10px;
  background: var(--white); color: var(--heading);
  border: none; padding: 14px 24px; font-size: 14px; font-weight: 500;
  font-family: 'Inter', sans-serif; cursor: pointer; width: 100%;
  justify-content: center; letter-spacing: 0.01em;
  transition: background 0.15s;
}
#auth-wall .aw-btn:hover { background: var(--bg); }
#auth-wall .aw-btn svg { flex-shrink: 0; }
#auth-wall .aw-err {
  color: var(--red); font-size: 12px; text-align: center;
  display: none; margin: -12px 0 0;
}
/* kasutaja indikaator headeris */
.auth-user-btn {
  display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15);
  color: var(--white); font-size: 12px; font-family: 'Inter', sans-serif;
  padding: 6px 12px; cursor: pointer; margin-left: auto;
  transition: background 0.15s;
}
.auth-user-btn:hover { background: rgba(255,255,255,0.18); }
.auth-user-avatar {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--header); display: flex; align-items: center;
  justify-content: center; font-size: 10px; font-weight:500; color: var(--white);
  flex-shrink: 0;
}
/* peida rakendus kuni auth on kontrollitud */
#app-root { display: none; }

/* ── SELETUSKIRJAD ──────────────────────────────────────── */
.sk-doctype-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.sk-chip {
  padding: 8px 16px;
  border-radius:0;
  font-size: 11px;
  font-weight:500;
  letter-spacing: 0.04em;
  cursor: pointer;
  border: 1px solid var(--border2);
  background: var(--white);
  color: var(--text2);
  transition: all 0.1s;
  user-select: none;
}
.sk-chip:hover { border-color: var(--accent); color: var(--accent); }
.sk-chip.sel { color: var(--white); border-color: transparent; }
.sk-result-text {
  width: 100%;
  min-height: 420px;
  font-size: 14px;
  line-height: 1.8;
  background: var(--bg);
  padding: 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: 'Inter', sans-serif;
  resize: vertical;
  outline: none;
  transition: border-color 0.15s;
  white-space: pre-wrap;
}
.sk-result-text:focus {
  border-color: var(--accent);
  box-shadow:none;
  background: var(--white);
}
.sk-hist-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.sk-hist-row:last-child { border-bottom: none; }
.sk-type-badge {
  font-size: 10px;
  font-weight:500;
  padding: 2px 8px;
  border-radius:0;
  white-space: nowrap;
  flex-shrink: 0;
}
.sk-result-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}


/* ── KEST #1: globaalne ajaarvestuse taimer päises ── */
.site-nav a.site-nav-btn { text-decoration: none; display: inline-flex; align-items: center; height: 88px; }
/* ⚠ Pill elab KÜLGRIBAL (~150 px), mitte laias päises. Ühel real surus
   flex kirjelduse nulli — Luisa nägi ainult „0:18:59 Stopp" ja küsis
   „ma isegi ei tea mis see on". Nüüd murrab kirjeldus omaette reale. */
.htimer-pill { display: none; align-items: center; gap: 8px; flex-wrap: wrap; margin-left: auto; margin-right: 12px;
  background: var(--red-light); border: 1px solid var(--red); color: var(--red);
  border-radius:0; padding: 6px 10px 6px 12px; font-family: 'Inter', sans-serif; font-size: 13px; font-weight:500; }
.htimer-pill.show { display: inline-flex; }
.htimer-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); flex: 0 0 auto;
  animation: htimer-blink 1.4s ease-in-out infinite; }
@keyframes htimer-blink { 0%,100% { opacity: 1; } 50% { opacity: .3; } }
.htimer-desc { flex: 1 1 100%; min-width: 0; max-width: 100%; font-size: 12px; line-height: 1.35;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.htimer-time { font-variant-numeric: tabular-nums; font-weight:500; cursor: pointer; }
/* Täpp ja kellaaeg on ÜKS tükk (Luisa 04.09.2026: „siin see pulseeriv täpp pane
   aja ette nt, et see võtaks vähem ruumi"). Mõõdetud 172 px külgribas:
   täpp omaette real 74 px → täpp aja ees 58 px → see kuju 56 px, ja täpp ei saa
   enam ajast lahku murduda. `align-items:center` hoiab ta joonel, mitte all. */
.htimer-nowrap { display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; }
.htimer-stop { appearance: none; border: 1px solid var(--red); background: var(--red); color: var(--white);
  border-radius:0; padding: 4px 10px; font-size: 12px; font-weight:500; cursor: pointer; line-height: 1; }
.htimer-stop:hover { background: var(--red); }

/* Mobiili jooksva taimeri riba (all-vasak, ei põrku „Märkused" nupu ega toastidega).
   Nähtav AINULT mobiilil (max-width:640px) + kui .show (taimer jookseb). Lauaarvutil peidus — päise-pill katab. */
#mtimer{ display:none; }
@media (max-width:640px){
  #mtimer.show{ display:inline-flex; position:fixed; bottom:14px; left:14px; z-index:1650; align-items:center; gap:10px;
    background:var(--accent); color:var(--white); padding:10px 14px; border-radius:0; box-shadow:none; max-width:74vw; }
  #mtimer .mt-dot{ flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:var(--white); animation:mtpulse 1.4s infinite; }
  #mtimer .mt-desc{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; cursor:pointer; }
  #mtimer .mt-time{ flex:0 0 auto; font-variant-numeric:tabular-nums; font-weight:500; font-size:13px; cursor:pointer; }
  #mtimer .mt-stop{ flex:0 0 auto; appearance:none; border:1px solid rgba(255,255,255,.7); background:rgba(255,255,255,.18); color:var(--white);
    border-radius:0; padding:8px 14px; font:inherit; font-size:12px; font-weight:500; cursor:pointer; min-height:38px; }
}
@keyframes mtpulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

/* ── #2 AVALEHT / TÖÖLAUD ── */
/* Bento (Luisa 2026-07-30: „mobiilis ebamugav, eriti avaleht"). Oli inline
   repeat(4,1fr) ilma katkestuspunktita → 4 pisikest lahtrit telefonis. */
/* HALL KAST (Luisa 01.09.2026): taust oli var(--border) ja 1px vahed lasid
   selle joontena labi. Aga 7 kaarti 4 veeru peal jatab viimasesse ritta TUHJA
   LAHTRI - ja seal paistis kogu hall taust suure plaadina. Nuud valge taust,
   jooned tulevad kaartide enda hairline'ist; tuhi lahter on lihtsalt valge. */
/* ⚠ PAIGUTUST EI MUUDETA. Proovisin 01.09.2026 kahte asja ja MÕLEMAD olid
   halvemad kui originaal: `columns` lõikas kaarte suvaliselt, `align-items:start`
   lõhkus bento joonte süsteemi (kaardid hakkasid hõljuma, miski ei joondunud).
   Kaardid PEAVAD venima rea kõrguseks — just see teeb 1px vahedest pidevad
   jooned. Ainus muudatus originaali suhtes on TAUST: var(--border) → valge,
   sest tühjast lahtrist paistis hall plaat. */
.dash-bento-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--white); border:1px solid var(--border); }
.dash-bento-grid > * { min-width:0; }
#pr-nimekiri-riba{ display:none; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; margin-bottom:14px; background:var(--white); box-shadow:0 0 0 1px var(--border); font-size:13px; color:var(--text); }
/* Juhtkonna tööjärg (15.09.2026): 3 veergu täislaiuses lahtris, kitsal 2 → 1 */
.dash-toojarg-grid{ display:grid; grid-template-columns:repeat(3,1fr); column-gap:28px; }
@media(max-width:1000px){ .dash-toojarg-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .dash-toojarg-grid{ grid-template-columns:1fr; } }
@media(max-width:1000px){ .dash-bento-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){
  .dash-bento-grid{ grid-template-columns:1fr; }
  .dash-bento-grid > *{ padding:14px 16px !important; }
}
.dash-greet { font-size: 44px; font-weight: 300; letter-spacing: -0.015em; color: var(--heading); margin: 2px 0 4px; line-height: 1.1; }
@media(max-width:600px){
  .dash-greet{ font-size:30px; }
  #dash-greet-wrap{ margin-bottom:22px !important; }
  #page-avaleht #dash-attention{ margin-bottom:22px !important; }
  .dash-att-grid{ grid-template-columns:1fr !important; gap:20px !important; }
}
@media(max-width:900px){ .dash-att-grid{ gap:24px !important; } }
.dash-date { color: var(--muted); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; margin-bottom: 24px; }.dash-grid > .card { border: none !important; margin: 0 !important; }
.dash-empty { color: var(--text2); font-size: 13px; padding: 10px 0; }
/* Wiki / Onboarding teadmusbaas */
.kb-head { margin-bottom: 14px; }
.kb-title { font-size: 20px; font-weight:500; color: var(--heading); }
.kb-sub { font-size: 13px; color: var(--text2); margin-top: 4px; }
.kb-search { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--border2); border-radius: var(--radius-sm); font-size: 14px; font-family: inherit; background: var(--white); color: var(--text); outline: none; margin-bottom: 12px; }
.kb-search:focus { border-color: var(--accent); box-shadow:none; }
.kb-cats { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.kb-chip { border: 1px solid var(--border2); background: var(--white); color: var(--text2); border-radius:0; padding: 6px 12px; font-size: 12px; font-weight:500; cursor: pointer; font-family: inherit; }
.kb-chip.active { background: var(--header); color: var(--white); border-color: var(--header); }
.kb-item, .kb-guide { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 8px; padding: 0; }
.kb-item > summary, .kb-guide > summary { cursor: pointer; padding: 12px 16px; font-size: 14px; font-weight:500; color: var(--heading); list-style: none; display: flex; align-items: center; gap: 10px; }
.kb-item > summary::-webkit-details-marker, .kb-guide > summary::-webkit-details-marker { display: none; }
.kb-item > summary::before, .kb-guide > summary::before { content: '+'; color: var(--accent); font-weight:500; font-size: 16px; }
.kb-item[open] > summary::before, .kb-guide[open] > summary::before { content: '–'; }
.kb-cat { font-size: 10px; font-weight:400; text-transform: uppercase; letter-spacing: .05em; color: var(--text2); background: var(--bg); padding: 2px 8px; border-radius:0; }
.kb-ans { padding: 0 16px 14px 40px; font-size: 13px; line-height: 1.7; color: var(--text); }
.kb-ans code { background: var(--bg); padding: 1px 6px; border-radius:0; font-size: 12px; }
.kb-steps { margin: 0; padding: 0 16px 14px 38px; font-size: 13px; line-height: 1.8; color: var(--text); }
.kb-guide { border-left:3px solid var(--border2); }

/* ── Märkuste režiim (ülevaatus: liigu ringi + kirjuta, mida muuta) ─── */
#mk-pill {
  position: fixed; right: 18px; bottom: 18px; z-index: 1600;
  display: flex; align-items: center; gap: 8px;
  background: var(--white); border: 1px solid var(--border2); color: var(--heading);
  font-family: inherit; font-size: 12px; font-weight:500;
  padding: 10px 16px; cursor: pointer; box-shadow:none;
}
#mk-pill:hover { border-color: var(--accent); color: var(--accent); }
#mk-pill.on { background: var(--accent); border-color: var(--accent); color: var(--white); }
body.mk-aktiivne #mk-pill { display: none; }   /* režiimi ajal juhitakse ribalt */
#mk-pill .mk-n {
  background: var(--accent); color: var(--white); font-size: 11px; padding: 1px 8px; min-width: 20px; text-align: center;
}
#mk-pill.on .mk-n { background: rgba(255,255,255,.25); }

/* Riba all: sisestus alati nähtav, ei katkesta sirvimist */
#mk-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1590;
  background: var(--white); border-top: 2px solid var(--accent);
  padding: 12px 16px 12px; box-shadow:none;
  display: none;
}
#mk-bar.on { display: block; }
body.mk-aktiivne { padding-bottom: 128px; }   /* JS täpsustab riba tegeliku kõrguse järgi (mkRuum) */
.mk-ctx {
  font-size: 11px; color: var(--muted); margin-bottom: 8px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.mk-ctx b { color: var(--heading); font-weight:500; }
.mk-tag { background: var(--bg); padding: 2px 8px; font-size: 11px; color: var(--text2); }
.mk-row { display: flex; gap: 10px; align-items: flex-start; max-width: 1100px; }
#mk-tekst {
  flex: 1 1 auto; min-width: 0; padding: 10px 12px; font-family: inherit; font-size: 14px;
  border: 1px solid var(--border2); background: var(--white); color: var(--text);
  resize: vertical; min-height: 42px; max-height: 140px; line-height: 1.5;
}
#mk-tekst:focus { outline: none; border-color: var(--accent); }

/* Nimekiri */
#mk-panel {
  position: fixed; right: 0; top: 0; bottom: 0; width: min(430px, 100%); z-index: 1620;
  background: var(--white); border-left: 1px solid var(--border2);
  box-shadow:none; display: none; flex-direction: column;
}
#mk-panel.on { display: flex; }
.mk-p-head {
  padding: 18px 20px 14px; border-bottom: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.mk-p-body { overflow-y: auto; flex: 1 1 auto; padding: 6px 20px 20px; }
.mk-p-foot { border-top: 1px solid var(--border); padding: 12px 20px; display: flex; gap: 8px; flex-wrap: wrap; }
.mk-grp { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 20px 0 2px; }
.mk-item { padding: 12px 0; border-top: 1px solid var(--border); display: flex; gap: 12px; align-items: flex-start; }
.mk-item .mk-t { display: block; font-size: 13px; line-height: 1.55; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.mk-item .mk-meta { display: block; font-size: 11px; color: var(--muted); margin-top: 4px; }
.mk-item.tehtud .mk-t { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.mk-box {
  appearance: none; -webkit-appearance: none; flex: 0 0 auto; margin-top: 2px;
  width: 17px; height: 17px; border: 1px solid var(--border2); background: var(--white);
  cursor: pointer; position: relative;
}
.mk-box:checked { background: var(--accent); border-color: var(--accent); }
.mk-box:checked::after {
  content: ''; position: absolute; left: 5px; top: 1px; width: 4px; height: 9px;
  border: solid var(--white); border-width: 0 1.5px 1.5px 0; transform: rotate(43deg);
}
#mk-varjund { position: fixed; inset: 0; background: rgba(0,0,0,.28); z-index: 1610; display: none; }
#mk-varjund.on { display: block; }
@media (max-width: 640px) {
  #mk-pill { right: 12px; bottom: 12px; padding: 12px 16px; }
  body.mk-aktiivne { padding-bottom: 150px; }
  .mk-row { flex-wrap: wrap; }
  .mk-row .btn { flex: 1 1 auto; min-height: 44px; }
}
@media print { #mk-pill, #mk-bar, #mk-panel, #mk-varjund { display: none !important; } }

/* ── U-arvu kalkulaator ─────────────────────────────────────────── */
.ua-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start; }
.ua-loend { position: sticky; top: 14px; }
.ua-loend-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.ua-h { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--heading); }
.ua-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ua-rida { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.ua-vihje { font-size: 12px; color: var(--text2); line-height: 1.6; flex: 1 1 240px; align-self: center; }
.ua-tbl-wrap { overflow-x: auto; }
.ua-tbl { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 780px; }
.ua-tbl th { text-align: left; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; color: var(--muted);
  font-weight:500; padding: 0 6px 8px; border-bottom: 1px solid var(--border2); white-space: nowrap; }
.ua-tbl th.sym, .field label.sym { text-transform: none; }   /* λ, μ, ψ ei tohi uppercase'i all moonduda */
.ua-tbl td { padding: 6px 6px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.ua-tbl input, .ua-tbl select { width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 13px; font-family: inherit;
  border: 1px solid var(--border2); background: var(--white); color: var(--text); }
.ua-tbl .ua-r { font-variant-numeric: tabular-nums; color: var(--muted); text-align: right; }
.ua-drag { cursor: grab; color: var(--muted); user-select: none; text-align: center; }
.ua-mini { background: none; border: 0; color: var(--muted); cursor: pointer; font-size: 14px; padding: 4px 6px; font-family: inherit; }
.ua-mini:hover { color: var(--accent); }
.ua-res { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--border); margin-bottom: 16px; }
.ua-res > div { background: var(--white); padding: 18px 20px; }
.ua-res-l { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 8px; }
.ua-res-v { font-size: 30px; font-weight: 300; letter-spacing: -.02em; color: var(--heading); font-variant-numeric: tabular-nums; }
.ua-res-u { font-size: 13px; color: var(--muted); margin-left: 6px; }
.ua-bar { height: 6px; background: var(--border); margin-top: 10px; position: relative; overflow: hidden; }
.ua-bar > i { display: block; height: 100%; }
.ua-ok { background: var(--st-ok); } .ua-warn { background: var(--accent-dark); } .ua-bad { background: var(--red); }
.ua-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; font-size: 12px; font-weight:500; }
.ua-badge.roheline { background: var(--ok-light); color: var(--st-ok); }
.ua-badge.kollane  { background: var(--warm); color: var(--accent-dark); }
.ua-badge.punane   { background: var(--red-light); color: var(--red); }
.ua-hoiatus { background: var(--warm); color: var(--accent-dark); padding: 10px 14px; font-size: 12px; line-height: 1.6; margin-top: 10px; }
@media (max-width: 900px) { .ua-layout { grid-template-columns: 1fr; } .ua-loend { position: static; } }

/* (U-arvu trükivaade eemaldatud 11.09.2026 — vt uaTrykk kommentaari.) */

/* ── Uue töötaja rada (avaleht + Onboarding-leht) ───────────────── */
.ob-card { background: var(--white); border: 1px solid var(--border2); border-left:3px solid var(--border2); padding: 24px 26px; }
.ob-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 4px; }
.ob-h { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--heading); }
.ob-lead { font-size: 14px; color: var(--text2); margin: 8px 0 18px; line-height: 1.6; max-width: 62ch; }
.ob-bar { height: 2px; background: var(--border); margin-bottom: 20px; }
.ob-bar > i { display: block; height: 100%; background: var(--accent); transition: width 0.4s ease; }
.ob-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ob-step { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; border-top: 1px solid var(--border); }
.ob-step:first-child { border-top: 0; }
.ob-tick { flex: 0 0 auto; width: 20px; height: 20px; border: 1px solid var(--border2); display: flex; align-items: center;
  justify-content: center; font-size: 12px; color: transparent; margin-top: 1px; }
.ob-step.done .ob-tick { background: var(--accent); border-color: var(--accent); color: var(--white); }
/* ⚠ KLÕPSATAV LINNUKE OLI NÄHTAMATU (Luisa 09.10.2026: „kus need linnukesed on
   mida vajutada?"). Nupp kandis inline `border:none` — kast kadus ja alles jäi
   element, mida ei näe ega oska vajutada, kuigi kõrval seisis „märgi
   linnukesega tehtuks". Nüüd on käsitsi märgitaval sammul NÄHTAV tühi kast,
   hiire all hall linnuke ja tehtuna savi taust. Kujundus elab siin, mitte
   inline-stiilis (muidu peidab ta järgmine kord uuesti midagi ära). */
.ob-tick-btn { background: none; border: 1px solid var(--border2); padding: 0; cursor: pointer;
  font: inherit; font-size: 12px; line-height: 1; color: transparent; transition: none; }
.ob-tick-btn:hover { border-color: var(--accent); color: var(--border2); }
.ob-tick-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ob-step.done .ob-tick-btn { background: var(--accent); border-color: var(--accent); color: var(--white); }
.ob-body { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; }
.ob-t { font-size: 14px; font-weight:500; color: var(--heading); }
.ob-step.done .ob-t { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.ob-d { font-size: 12px; color: var(--text2); margin-top: 4px; line-height: 1.6; }
.ob-go { flex: 0 0 auto; align-self: center; background: none; border: 1px solid var(--border2); color: var(--heading);
  font-family: inherit; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 8px 14px; cursor: pointer; }
.ob-go:hover { background: var(--accent); border-color: var(--accent); color: var(--white); }
.ob-step.done .ob-go { visibility: hidden; }
.ob-dismiss { background: none; border: 0; color: var(--muted); font-family: inherit; font-size: 12px; cursor: pointer;
  text-decoration: underline; padding: 4px; }
.ob-dismiss:hover { color: var(--heading); }
@media (max-width: 640px) {
  .ob-card { padding: 20px 18px; }
  /* Linnuke + tekst jäävad KÕRVUTI (flex-basis hoiab neid samal real);
     ainult nupp läheb 100% baasiga järgmisele reale. */
  .ob-step { flex-wrap: wrap; }
  .ob-body { flex: 1 1 60%; }
  /* basis arvestab vasakut veerist maha, muidu ulatub nupp kaardist välja */
  .ob-go { flex: 1 0 calc(100% - 33px); min-height: 44px; margin-left: 34px; margin-top: 10px; }
}
/* a11y (deep-review): mobiili puutesihtmärgid + kõrgkontrast-režiim */
@media (max-width:640px){
  .chip,.pill,.file-row,.ul-row{min-height:44px}
  .pill-x,.folder-pill-x,.ul-del{font-size:20px;padding:6px 8px}
}
@media (prefers-contrast: more){ :root{ --muted:#6B6E73; } }

/* deep-review2): kanban + puute-target mobiilis */
@media (max-width:640px){
  .muuk-board{ grid-template-columns:repeat(2,minmax(140px,1fr)) !important; }
  .icon-btn,.ul-del,.pr-mark-del,.folder-pill-x{ min-width:44px; min-height:44px; }
}
@media (max-width:430px){ .muuk-board{ grid-template-columns:1fr !important; } }

/* deep-review: hp-modal-cols nowrap desktopil (päringu-paneel jääb vormi KÕRVALE, mitte kohale) */
@media (min-width:1000px){ #hp-modal-cols{ flex-wrap:nowrap !important; } #hp-form-body{ min-width:0; } }

/* MEGAmugav: mobiili puutesihtmärgid (44px) — UX-audit */
@media (max-width:640px){
  button[aria-label="Sulge"]{ min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
  .htimer-stop{ min-height:40px; padding:10px 16px; }
  .pill-x, .ul-del, .pr-mark-del, .folder-pill-x{ min-width:34px; min-height:34px; }
}

/* ⚠ 44px KEHTIS AINULT KIIPIDELE JA SULGE-NUPPUDELE — tavalised nupud, rippmenüüd
   ja navi-nupud jäid välja. Mõõtsin 01.09.2026 päris brauseris 375 px laiuses:
   navi-nupud 26 px, rippmenüüd 34 px, osa nuppe 28 px. See on pool sellest, mida
   pöial vajab. Kompaktsus, mille Luisa tellis, käis TÖÖLAUA kohta; siin, ≤640 px
   juures, võidab pöial. Vormid saavad ühtlasi 16px fondi — alla selle suumib
   iOS Safari fookusel lehe sisse ja kasutaja peab käsitsi tagasi suumima. */
@media (max-width:640px){
  .btn, .site-nav-btn, .sk-tab, .aru-grp-b, .pr-viewbtn, .pr-ms-btn, .cal-arrow,
  select, input[type=text], input[type=date], input[type=number],
  input[type=search], input[type=email], input[type=tel]{ min-height:44px; }
  .btn.btn-sm{ min-height:40px; }
  .ob-tick{ width:32px; height:32px; }
  select, input[type=text], input[type=date], input[type=number],
  input[type=search], input[type=email], input[type=tel], textarea{ font-size:16px; }
  /* Peidetud failivalija jääb peidetuks — min-height ei tohi teda tagasi tuua. */
  .sk-cmp-file input[type=file]{ min-height:0; }
}

/* ⚠ NEED VAJAVAD `!important` VÕI FIKSEERITUD KÕRGUSE ÜLEKIRJUTAMIST, sest
   nende oma reeglid tulevad failis HILJEM ja võidavad võrdse kaaluga.
   Täpselt see muster sõi täna juba korra ära kaardipealkirjade paranduse —
   seepärast on need siin eraldi ja märgitud. Kontrollitud päris brauseris. */
@media (max-width:640px){
  .site-nav-btn{ min-height:44px !important; }
  .pr-chip{ height:44px !important; }
  .pr-board-btn{ min-height:44px; }
  .cal-vtoggle button{ height:44px !important; }
}

/* MEGApremium FAAS 4: Projektid täislaius-tabel (mock arhetüüp) */
.pr-split{ display:block; }
.pr-split .pr-grid{ position:static !important; max-height:none !important; overflow:visible !important; padding-right:0 !important; }
/* Veergude järjekord: Luisa 30.07 — „projekt, järgmine tähtaeg, vastutav on pmst
   kõige tähtsamad". Tähtaeg oli varem 6. veerg (laial ekraanil paremas servas,
   telefonis rea lõpus) — nüüd kohe nime järel. */
/* Veergude komplekt tuleb prFilter'ist (--pr-cols): tühja veergu ei näidata.
   Varuväärtus on vana 7-veeruline seis, kui muutuja mingil põhjusel puudub. */
.pr-tbl-head,.pr-trow{ display:grid; grid-template-columns:var(--pr-cols, minmax(0,1fr) 138px 150px minmax(0,150px) 72px 118px 158px); gap:18px; align-items:center; }
/* TABEL (disaini-handoff 14.08.2026): „Üks rida = üks kirje. 38 px."
   Varem oli iga rida kaherealine (nimi+number ülestikku, kuupäev+päevad
   ülestikku, tunnid+riba ülestikku) ja 17px polsterdusega — ekraanile mahtus
   3 projekti. Nüüd üks rida, hairline eraldajad, ilma kastita. */
.pr-tbl-head{ padding:0 14px 8px; background:none; border:none; border-bottom:1px solid var(--border); }
.pr-tbl-head > span{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  /* 25.09.2026: kitsaks surutuna jooksis TELLIJA silt FAASI peale — lahtritel oli
     overflow juba, paeisel mitte. */
  min-width:0; overflow:hidden; text-overflow:clip; white-space:nowrap; }
.pr-trow{ min-height:38px; padding:0 14px; border:none; border-bottom:1px solid var(--row-line);
  cursor:pointer; background:none; transition:background 0.15s cubic-bezier(.4,0,.2,1); }
.pr-trow:hover{ background:rgba(240,236,231,.55); }
.pr-trow + .pr-trow{ border-top:none; }
.pr-trow .pr-c{ font-size:12px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pr-trow .pr-num{ font-variant-numeric:tabular-nums; }
/* Arvuveerg joondub paremalt — nii on ühikute kohad ühel joonel (22.09.2026). */
.pr-trow .pr-r, .pr-tbl-head > span.pr-r{ text-align:right; justify-content:flex-end; }
@media(max-width:760px){ .pr-tbl-head{ display:none; } .pr-trow{ grid-template-columns:1fr auto; gap:8px 14px; } }

/* MEGApremium: ÜHTNE Projektid tööriistariba — kõik kontrollid sama kõrgus + hairline-stiil */
.pr-filter-row{ gap:8px; align-items:center; }
.pr-filter-row select,.pr-filter-row .pr-search,.pr-filter-row .btn-sm,.pr-filter-row .pr-toggle,.pr-filter-row .pr-viewtoggle{ height:36px; box-sizing:border-box; }
.pr-filter-row select,.pr-filter-row .pr-search{ min-width:150px; border:1px solid var(--border2)!important; background-color:var(--white)!important; color:var(--text)!important; font-size:13px!important; border-radius:0!important; }
.pr-filter-row select{ padding:0 30px 0 12px!important; }
.pr-filter-row .pr-search{ padding:0 12px!important; }
.pr-filter-row .btn-sm{ border:1px solid var(--border2)!important; background:var(--white)!important; color:var(--text2)!important; font-size:13px!important; font-weight:400!important; letter-spacing:.01em!important; text-transform:none!important; padding:0 14px!important; border-radius:0!important; display:inline-flex; align-items:center; box-shadow:none!important; }
.pr-filter-row .btn-sm:hover{ border-color:var(--heading)!important; color:var(--heading)!important; background:var(--white)!important; }
.pr-filter-row .pr-toggle{ border:1px solid var(--border2); background:var(--white); color:var(--text2); font-size:13px!important; font-weight:400!important; letter-spacing:.01em!important; text-transform:none!important; padding:0 12px; gap:8px; border-radius:0; }
.pr-filter-row .pr-viewtoggle{ border-radius:0; border-color:var(--border2); }
.pr-filter-row .pr-viewbtn{ height:100%; padding:0 16px; font-size:13px; font-weight:400; text-transform:none; letter-spacing:.01em; }
.pr-filter-row .btn-primary{ background:var(--accent)!important; color:var(--white)!important; border:1px solid var(--accent)!important; font-size:12px!important; padding:0 18px!important; height:36px; text-transform:uppercase; letter-spacing:.08em; }

/* MEGApremium: mitmik-valik filter-dropdown */
.pr-ms{ position:relative; }
.pr-ms-btn{ height:36px; display:inline-flex; align-items:center; gap:10px; min-width:150px; justify-content:space-between; border:1px solid var(--border2); background:var(--white); color:var(--text); font-size:13px; font-family:inherit; padding:0 12px; cursor:pointer; }
.pr-ms-btn:hover{ border-color:var(--heading); }
.pr-ms-panel{ position:absolute; top:calc(100% + 4px); left:0; z-index:60; min-width:230px; background:var(--white); border:1px solid var(--border2); box-shadow:none; padding:6px; }
.pr-ms-opt{ display:flex; align-items:center; gap:10px; padding:8px 10px; font-size:13px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--text); cursor:pointer; white-space:nowrap; margin:0; }
.pr-ms-opt:hover{ background:var(--hover); }
.pr-ms-opt input{ width:auto; margin:0; cursor:pointer; }

/* ── index.html rida 1131 ── */
/* ⚠ SAVI ON HARULDANE (Luisa 31.08.2026). Sellel lehel jääb savi AINULT
   Start-nupule ja jooksvale taimerile — need kaks ütlevad midagi. Kõik muu
   (tabid, lingid, sildid, graafikutulbad, tänane päev) on ink/grafiit. */
#page-ajaarvestus{--accent:#9E5A38; --accent-soft:#874A2C;
    --bg:#F7F6F4; --card:#FFFFFF; --ink:#111111; --muted:#8A8A8A;
    --line:#E7E6E3; --soft:#F1F0ED; --danger:#A03D2C; --warn:#874A2C;
    --radius:0px;}
#page-ajaarvestus *{box-sizing:border-box}
/* Ajaarvestus toodi omal ajal sisse iseseisva rakendusena ja tõi kaasa OMA
   fondipinu — kogu moodul jooksis Segoe UI / San Franciscos, mitte Interis
   (Luisa 18.08.2026: „kas inter on absoluutselt igal pool"). Nüüd sama mis mujal. */
#page-ajaarvestus{margin:0;background:transparent;color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
#page-ajaarvestus a{color:var(--ink)}
#page-ajaarvestus .wrap{max-width:none;margin:0;padding:0}/* täislaius nagu teistel moodulitel — välimine .page-wrap annab juba veerised */
#page-ajaarvestus header.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:16px;flex-wrap:wrap}/* Täidetud nupp on INK, mitte savi — sama reegel kogu rakenduses.
   Ainus savi sellel lehel on JOOKSEV TAIMER (.timer-display.run): see on
   seisund, mitte nupp, ja tema pärast savi ongi. */
#page-ajaarvestus .btn{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--white);
    padding:10px 16px;border-radius:0;font-size:14px;font-weight:400;cursor:pointer;transition:0.15s}
#page-ajaarvestus .btn:hover{background:#333;border-color:#333}
#page-ajaarvestus .btn:disabled{opacity:.5;cursor:default}
#page-ajaarvestus .btn.ghost{background:none;color:var(--ink);border-color:var(--line)}
#page-ajaarvestus .btn.ghost:hover{border-color:var(--ink);background:var(--soft)}
#page-ajaarvestus .btn.ghost:hover{background:var(--soft)}
#page-ajaarvestus .btn.sm{padding:8px 12px;font-size:13px}
#page-ajaarvestus .btn.danger{background:var(--danger);border-color:var(--danger)}
#page-ajaarvestus .btn.danger:hover{background:var(--red);border-color:var(--red)}
/* ⚠ ÜKS TAB-KOMPONENT KOGU RAKENDUSELE (Luisa 04.09.2026: „pane selline jaotamine
   ka wikisse ehk siis wiki ja onboarding ning samamoodi seletuskirja moodulisse
   kontrolli, võrdle"). Enne oli kolm eri kuju: allajoonitud tabid ajaarvestuses,
   raamiga nupud alamnavis (wiki/onboarding) ja mustad täidetud nupud
   seletuskirjades. Sama tähendus — „vali, mida vaatad" — nägi kolmes kohas
   kolmemoodi välja. Selektor ei ole enam #page-ajaarvestus taga. */
.tabs{display:flex;gap:6px;margin:22px 0 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tab{padding:12px 16px;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;
    border-bottom:2px solid transparent;margin-bottom:-1px;background:none;border-left:none;
    border-right:none;border-top:none;font-family:inherit}
.tab:hover{color:var(--text2)}
.tab.active,.tab.on{color:var(--ink);border-bottom-color:var(--accent)}
#page-ajaarvestus .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px}
#page-ajaarvestus .card h2{font-size:16px;margin:0 0 4px}
/* ⚠ PEALKIRI KLEEPUS EELMISE RIDA KÜLGE (Luisa 02.09.2026: „see pealkiri siltide
   kaupa on liiga lähedal eelnevale reale ehk kriipsule"). Baasreegel andis igale
   h2-le `margin-top:0`, seega iga jaotuse pealkiri istus otse eelmise tabeli
   viimasel joonel. Kaardi ESIMENE pealkiri jääb endiselt flush — vahe tekib
   ainult siis, kui midagi on ees. Nii ei pea iga koht oma numbrit välja mõtlema. */
#page-ajaarvestus .card > * + h2{margin-top:22px}
#page-ajaarvestus .card .sub{font-size:13px;color:var(--muted);margin:0 0 16px}
#page-ajaarvestus label{font-size:12px;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em}
#page-ajaarvestus input, #page-ajaarvestus select, #page-ajaarvestus textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:0;
    background:var(--white);color:var(--ink);width:100%}
#page-ajaarvestus input:focus, #page-ajaarvestus select:focus{outline:none;border-color:var(--ink)}
#page-ajaarvestus .muted{color:var(--muted)}
#page-ajaarvestus .hidden{display:none !important}/* Toggli-stiilis aruande ülemine riba */
#page-ajaarvestus /* Luisa 08.09.2026: „pane need '-aktiivne projekt-' jne lahtrid kaldkirja
   kui ma pole midagi kindlat valinud". Ühes kohas, mitte iga lahtri juures:
   iga „ei ole midagi valitud" valik kannab `data-ph` ja CSS vaatab, kas just
   see on valitud. `:has()` teeb selle ilma JS-ita — nii ei ole ühtki kohta,
   kus keegi unustaks funktsiooni välja kutsuda (CLAUDE.md 4d/1).
   NB: „Kõik arhitektid" jt filtrid on SAMUTI placeholderid — ka nemad
   tähendavad „ei ole midagi kindlat valitud". */
select:has(option[data-ph]:checked){font-style:italic;color:var(--muted)}
/* Luisa 08.09.2026: „tee nii et need rippmenüüd oleksid nii ajaarvestuses kui
   aruandes samasugused". Ajaarvestuses on natiivsed <select>-id (üks valik),
   aruandes chip-nupud (mitu valikut korraga) — VIDIN jääb eri, aga MÕÕT ja
   kiri on nüüd sama: sama polsterdus, sama kirjasuurus, sama ääris.
   Valimata chip on samuti kaldkirjas, täpselt nagu valimata rippmenüü. */
.aru-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--white);padding:8px 14px;font-size:13px;cursor:pointer;color:var(--ink);font-family:inherit}
#page-ajaarvestus .aru-chip:hover{border-color:var(--muted)}
#page-ajaarvestus .aru-chip.on{background:var(--soft);border-color:var(--ink)}
#page-ajaarvestus .aru-chip .x{color:var(--muted);font-size:11px;padding-left:4px}
#page-ajaarvestus .aru-chip .x:hover{color:var(--danger)}
.aru-chip{padding:10px 12px;font-size:14px}
/* ⚠ TEKSTI EI PEIDETA (Luisa 08.09.2026: „ära peida mingit osa tekstist,
   vajadusel tee kastid suuremad, laiemad"). Kiibid on flex-elemendid ja
   VAIKIMISI KAHANEVAD (flex-shrink:1). Kui ma polsterduse ja kirja suuremaks
   tegin, ei mahtunud rida enam ära ja sildid pigistati kokku — „Kõik aktiivsed
   projektid" sai 54 px ja lõppes „projektia" pealt. Mõõdetud brauseris.
   `flex:0 0 auto` = kast on täpselt nii lai kui tekst; ruumipuuduses läheb ta
   uuele reale (riba on flex-wrap:wrap), mitte ei lõika teksti. */
.aru-chip{flex:0 0 auto;white-space:nowrap}
/* Aruande filtririba (Luisa 14.09.2026): kõik kastid sama suured, üle terve rea.
   grid, kus iga veerg on täpselt sama lai (auto-fit, min 215 px = laiuse kast, periood);
   tekst ei lõigata kunagi (08.09 reegel) — kitsal ekraanil tuleb rida juurde. */
#aru-filtririba{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}   /* 250: kuupäevavahemik „01.09.2026 – 15.09.2026" + nooled mahuvad ÜHELE reale ühe veeru sees (Luisa 15.09) */
#aru-filtririba .aru-chip{justify-content:center;width:100%}
#aru-filtririba #aru-periood #rr-range{flex:1;justify-content:center;padding-left:4px;padding-right:4px;white-space:nowrap;gap:4px}
#aru-filtririba #aru-periood > button:first-child,#aru-filtririba #aru-periood > button:last-child{padding-left:6px;padding-right:6px}
/* Kuupäevavahemik murdus kahele reale 215 px kastis (Luisa 15.09.2026: „kuupäevad
   ühel real"). Esimene parandus tegi paani 2 veergu laiaks — Luisa: „mitte nii laiaks,
   ta mahub kitsama kasti sisse ka" → paan on ÜKS veerg, veeru miinimum 250 px ja
   sisemised veerised kitsamad. */
#aru-filtririba #aru-periood > button:first-child,#aru-filtririba #aru-periood > button:last-child{padding-left:8px;padding-right:8px}
.aru-chip:not(.on){font-style:italic;color:var(--muted)}
#page-ajaarvestus .rr-day{width:30px;height:27px;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;font-variant-numeric:tabular-nums}
#page-ajaarvestus .rr-day:hover{background:var(--soft)}
#page-ajaarvestus .rr-day.in{background:var(--soft)}
#page-ajaarvestus .rr-day.edge{background:var(--ink);color:var(--white)}
#page-ajaarvestus .rr-day.out{cursor:default}
/* Luisa 08.09.2026: „samamoodi need rippmenüüd sama disainiga".
   Menüü välimus oli seni seotud ÜHE elemendiga (#chip-panel) ja terve lehega
   (#page-ajaarvestus) — seetõttu ei saanud sama menüüd kasutada ei taimeririba
   ega modaali juures. Nüüd on ta klass, mitte koht.
   ⚠ NIMI EI OLE `rr-panel`, sest `id="rr-panel"` on juba olemas (kuupäeva-
     vahemiku paneel aruandes) — kaks eri asja sama nimega oleks lõks. */
/* Ühine rippmenüü-nupp (Luisa 08.09.2026). Näeb välja täpselt nagu aruande
   filtrikiip, sest ON aruande filtrikiip — .aru-chip klass, mitte koopia. */
.sel-kiip{justify-content:space-between;gap:10px}
.field .sel-kiip,.mgrid .sel-kiip{width:100%}
.sel-kiip .sel-nool{color:var(--muted);font-size:11px;flex:0 0 auto}
/* Sama reegel: pikk projektinimi ei lõppe kolme punktiga, vaid kast
   kasvab. Taimeririba on flex-wrap:wrap, seega vajadusel läheb uuele reale. */
.sel-kiip .sel-tekst{white-space:nowrap}
.valik-menyy{position:absolute;z-index:70;background:var(--white);border:1px solid var(--line);
  max-height:320px;overflow:auto;min-width:200px}
.rr-sc{padding:8px 16px;font-size:13px;cursor:pointer;white-space:nowrap}
/* Rühma pealkiri kiibi-menüüs (nt „Endised ja välised") — endine töötaja ei tohi
   seista praeguste keskel ilma märketa. Nimi ise jääb hallimaks, sest ta on
   ajalugu, mitte valik, mida igapäevaselt tehakse. */
/* Aruande „Vaata" nupurida — rippmenüü asemel, et valik oleks NÄHA.
   Klõpsatav rida ütleb seda ise: hover + viimane lahter nimetab tegevuse. */
#page-ajaarvestus .aru-grp{display:flex;align-items:center;gap:0;flex-wrap:wrap}
#page-ajaarvestus .aru-grp-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);margin-right:10px}
#page-ajaarvestus .aru-grp-b{font:inherit;font-size:12px;padding:8px 14px;cursor:pointer;
  border:1px solid var(--border);border-right:none;background:var(--white);color:var(--text2);border-radius:0}
#page-ajaarvestus .aru-grp-b:last-child{border-right:1px solid var(--border)}
#page-ajaarvestus .aru-grp-b:hover{background:var(--hover);color:var(--ink)}
#page-ajaarvestus .aru-grp-b.on{background:var(--heading);border-color:var(--heading);color:var(--white);font-weight:500}
#page-ajaarvestus .aru-grp-b.on + .aru-grp-b{border-left-color:var(--heading)}
#page-ajaarvestus tr.aru-klik:hover > td{background:var(--hover)}
#page-ajaarvestus td.aru-ava{color:var(--muted);font-size:12px;white-space:nowrap;opacity:0;transition:opacity 0.1s}
#page-ajaarvestus tr.aru-klik:hover td.aru-ava{opacity:1;color:var(--accent)}
/* Puutel ei ole hoveri't — mobiilis on tegevus alati näha. */
@media (hover:none){ #page-ajaarvestus td.aru-ava{opacity:1} }
#page-ajaarvestus tr.aru-pers[onclick]{cursor:pointer}
#page-ajaarvestus tr.aru-pers[onclick]:hover > td{background:var(--hover)}

.rr-grp{padding:12px 16px 4px;font-size:10px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  border-top:1px solid var(--border);margin-top:6px;cursor:default;white-space:nowrap}
.rr-sc-endine{color:var(--text2)}
/* Otsinguväli kiibi-menüü tipus (Luisa 02.09.2026: „tahaks neid filtreerida
   vanade projektide seast" — vanu projekte on üle 70). Kleepub üles, et ta
   kerides silme alt ei kaoks. */
.valik-menyy .rr-otsi{position:sticky;top:0;z-index:2;display:block;
  width:calc(100% - 16px);margin:8px;padding:6px 10px;font:inherit;font-size:12px;
  border:1px solid var(--border2);background:var(--white);border-radius:0}
.valik-menyy .rr-tyhi{padding:10px 16px;font-size:12px;color:var(--muted)}
.valik-menyy .rr-jalus{position:sticky;bottom:0;background:var(--white);
  border-top:1px solid var(--border);padding:8px 10px;text-align:right}
.rr-sc:hover,.rr-sc.on{background:var(--soft)}
#page-ajaarvestus .gate .card{padding:34px}
#page-ajaarvestus .status{font-size:13px;padding:10px 14px;border-radius:0;margin-top:10px;display:none}
#page-ajaarvestus .status.show{display:block}
#page-ajaarvestus .status.ok{background:var(--ok-light);color:var(--st-ok)}
#page-ajaarvestus .status.err{background:var(--red-light);color:var(--danger)}
#page-ajaarvestus .status.load{background:var(--soft);color:var(--muted)}
#page-ajaarvestus .status.info{background:var(--soft);color:var(--text2)}
#page-ajaarvestus .timer-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
#page-ajaarvestus .timer-bar .desc{flex:1 1 280px}
/* Luisa 04.09.2026: „ei taha näha poolikut sõna, tee laiemaks vajadusel" ja
   hiljem „nüüd võib vanad projektid kasti teha sama laiaks nagu on teised ju".
   Pärast sildi lühenemist („— Arhiveeritud / ilma projektita —" → „— Vanad
   projektid —") mahuvad kõik kolm sama laiuse sisse. MÕÕDETUD päris brauseris,
   Inter 14px + polsterdus + noole ala:
     „— Aktiivne projekt —" 153px · „— Vanad projektid —" 154px ·
     „— Ei ole projekt —" 137px  →  ühine min-width 165px katab kõik.
   `min-width` on see, mis hoiab sildi terve: riba täitumisel kahaneksid kastid
   muidu ühtemoodi ja pikim silt lõikuks poolelt. `flex:1 1` lubab neil laias
   aknas kasvada, nii mahub ka pikk projektinimi. Riba on flex-wrap:wrap —
   ruumipuuduses läheb kast uuele reale, mitte ei lõika teksti. */
#page-ajaarvestus .timer-bar .proj{flex:1 1 165px;min-width:165px}
#page-ajaarvestus .timer-display{font-variant-numeric:tabular-nums;font-size:24px;font-weight:500;letter-spacing:.01em;
    min-width:118px;text-align:center}
#page-ajaarvestus .timer-display.run{color:var(--accent)}
#page-ajaarvestus .dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto;margin-right:8px;vertical-align:middle}
/* Luisa 13.08.2026: „logimiste disain on nii halb!!! tee arusaadavam ja mitte
   läägiga." Muudetud: päeval on selge vahe, read on rahulikud (üks joon, mitte
   kast iga kirje ümber), kirjeldus on real suurim asi, kestus paremal ühes
   veerus, nupud ilmuvad hiirega. Vähem ümmargust ja vähem värvi. */
#page-ajaarvestus .day-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
    margin:26px 0 6px;padding:0 2px 4px;border-bottom:1px solid var(--line)}
#page-ajaarvestus .day-louna{border:none;background:none;color:var(--muted);font:inherit;font-size:11px;
    cursor:pointer;padding:2px 6px;border-radius:0;opacity:0;transition:opacity 0.1s}
#page-ajaarvestus .day-head:hover .day-louna{opacity:1}
#page-ajaarvestus .day-louna:hover{background:var(--soft);color:var(--ink)}
@media(hover:none){#page-ajaarvestus .day-louna{opacity:1}}
#page-ajaarvestus .day-head .d{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
#page-ajaarvestus .day-head .t{font-size:13px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
#page-ajaarvestus .entry{display:flex;align-items:center;gap:14px;background:none;border:none;
    border-bottom:1px solid var(--row-line,var(--line));border-radius:0;padding:10px 4px;margin:0}
#page-ajaarvestus .entry:hover{background:var(--soft)}
#page-ajaarvestus .entry .e-desc{flex:1 1 auto;min-width:0}
#page-ajaarvestus .entry .e-desc .d1{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-ajaarvestus .entry .e-desc .d2{font-size:12px;color:var(--muted)}
#page-ajaarvestus .entry .e-range{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
#page-ajaarvestus .entry .e-dur{font-weight:500;font-variant-numeric:tabular-nums;min-width:74px;text-align:right}
#page-ajaarvestus .entry .e-act{display:flex;gap:2px;opacity:0;transition:opacity 0.1s}
#page-ajaarvestus .entry:hover .e-act,#page-ajaarvestus .entry:focus-within .e-act{opacity:1}
@media(hover:none){#page-ajaarvestus .entry .e-act{opacity:1}}
#page-ajaarvestus .icon-btn{border:none;background:none;color:var(--muted);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:0;line-height:1}
#page-ajaarvestus .icon-btn:hover{background:var(--soft);color:var(--ink)}
#page-ajaarvestus .icon-btn.del:hover{color:var(--danger)}
#page-ajaarvestus .center{text-align:center;color:var(--muted);padding:46px 0}#page-ajaarvestus .field{display:flex;flex-direction:column;gap:6px}
#page-ajaarvestus table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
#page-ajaarvestus th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
    padding:10px 10px;border-bottom:1px solid var(--line);font-weight:500}
#page-ajaarvestus td{padding:10px;border-bottom:1px solid var(--soft);vertical-align:middle}
#page-ajaarvestus td.num, #page-ajaarvestus th.num{text-align:right;font-variant-numeric:tabular-nums}
#page-ajaarvestus tr:hover td{background:var(--hover)}
#page-ajaarvestus .bar{height:7px;border-radius:0;background:var(--text2);min-width:2px}
#page-ajaarvestus .kpi{display:flex;gap:26px;flex-wrap:wrap;margin:2px 0 18px}
#page-ajaarvestus .kpi .k{display:flex;flex-direction:column}
#page-ajaarvestus .kpi .k b{font-size:24px;font-variant-numeric:tabular-nums}
#page-ajaarvestus .kpi .k span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
#page-ajaarvestus .modal-bg{position:fixed;inset:0;background:rgba(20,20,18,.4);display:flex;align-items:center;
    justify-content:center;padding:20px;z-index:50}
#page-ajaarvestus /* Kirje lisamine on rakenduse KÕIGE SAGEDAsem aken — iga tund mitu korda.
   Tihedam ja väiksem kiri (Luisa 01.09.2026: „teeme kogu kirje lisamise
   kompaktsemaks, väiksema fondiga"): mahub korraga silma, vähem hiireteed. */
.modal{background:var(--white);border-radius:var(--radius);padding:16px 18px;max-width:440px;width:100%;font-size:13px}
.modal input,.modal select,.modal textarea{ font-size:13px !important; padding:8px 10px !important; }
.modal .field label{ font-size:10px !important; letter-spacing:.1em; margin-bottom:2px !important; }
.modal .field{ margin-bottom:0 !important; }
.modal .btn{ padding:8px 14px; font-size:12px; }
#page-ajaarvestus .modal h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em}
#page-ajaarvestus .mgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
/* Rühmitatud modaal (Luisa 08.09.2026). Hierarhia kolmes astmes:
   rühma pealkiri (tume, tähevahega) → välja silt (hall, väike) → sisu. */
#page-ajaarvestus .m-rühm{ margin-top:12px; padding-top:10px; border-top:1px solid var(--border) }
#page-ajaarvestus .m-rühm-p{ font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--heading); font-weight:600; margin-bottom:6px }
#page-ajaarvestus .m-rühm-p i{ font-style:italic; font-weight:400; text-transform:none;
  letter-spacing:.02em; color:var(--muted); font-size:11px }
/* Kirjeldus on kõige tähtsam väli — suurem kiri ja tumedam ääris. */
#page-ajaarvestus #m-desc{ font-size:14px !important; font-weight:500; border-color:var(--text2) !important }
/* Kestus ei ole sisestusväli, vaid tulemus — hall taust ütleb seda ilma sõnadeta. */
.m-klient{font-size:12px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.m-klient b{color:var(--text);font-weight:500}
#page-ajaarvestus .m-kestus{ background:var(--bg); padding:8px 10px; font-variant-numeric:tabular-nums }
#page-ajaarvestus .mgrid .full{grid-column:1/-1}
/* ⚠ FLEX-WRAP ON KOHUSTUSLIK (Luisa 08.09.2026: „see ei tohiks siin üle
   minna"). Aken on 440 px lai ja nuppude arv KASVAB: 08.09 lisandusid
   „Liida eelmisega" ja jooksva kirje „Poolita" — viis nuppu ei mahtunud
   enam ühele reale ja „Salvesta" ulatus valgest alast välja.
   `min-width:0` laseb pikal nupul kahaneda, mitte rida lõhkuda. */
#page-ajaarvestus .modal-act{display:flex;flex-wrap:wrap;justify-content:space-between;
  gap:8px;margin-top:12px}
#page-ajaarvestus .modal-act .btn{min-width:0;white-space:nowrap}
/* Vahetükk kaob murdmisel ära, muidu tõukaks ta nupud eri ridadele laiali. */
@media(max-width:520px){ #page-ajaarvestus .modal-act > span[style*="flex:1"]{ display:none } }
/* ── Toggli-stiilis nädalavaade ── */
#page-ajaarvestus .cal-top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:14px}
#page-ajaarvestus .cal-nav{display:flex;align-items:stretch;border:1px solid var(--line);background:var(--white)}
#page-ajaarvestus .cal-arrow{border:none;background:none;cursor:pointer;font-size:16px;color:var(--muted);padding:8px 12px;line-height:1;font-family:inherit}
#page-ajaarvestus .cal-arrow:hover{color:var(--ink)}
 /* Kestus muutmisaknas (Luisa 31.08.2026: „siin võiks lisaks näidata ka kokku
    kaua kirje kestis") — arvutab end ümber algust/lõppu muutes. */
 #page-ajaarvestus .m-kestus{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;
   padding:10px 12px;background:var(--soft);border:1px solid var(--line);color:var(--ink)}
 #page-ajaarvestus .m-kestus.yleoo{color:var(--accent);border-color:var(--accent)}
#page-ajaarvestus .cal-week{border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);background:none;cursor:pointer;font-size:13px;padding:8px 16px;font-weight:500;font-family:inherit;display:flex;align-items:center;gap:8px}
#page-ajaarvestus .cal-week:hover{background:var(--soft)}
/* „Täna" on TEKSTI-nupp, mitte nool — oma mõõt ja kaal, vasakul eraldusjoon */
#page-ajaarvestus .cal-today-btn{border:none;border-left:1px solid var(--line);background:none;cursor:pointer;
  font-size:12px;letter-spacing:.06em;color:var(--muted);padding:8px 14px;line-height:1;font-family:inherit;font-weight:500}
#page-ajaarvestus .cal-today-btn:hover{background:var(--soft);color:var(--ink)}
#page-ajaarvestus .cal-wtot{display:flex;flex-direction:column;line-height:1.25}
#page-ajaarvestus .cal-wtot span{font-size:10px;letter-spacing:.12em;color:var(--muted)}
#page-ajaarvestus .cal-wtot b{font-size:16px;font-variant-numeric:tabular-nums;font-weight:500}
#page-ajaarvestus .cal-vtoggle{margin-left:auto;display:inline-flex;border:1px solid var(--line);overflow:hidden}
#page-ajaarvestus .cal-vtoggle button{border:none;background:var(--white);cursor:pointer;font-size:13px;padding:8px 16px;color:var(--muted);font-family:inherit}
#page-ajaarvestus .cal-vtoggle button.on{background:var(--ink);color:var(--white)}
/* ⚠ SEE REEGEL OLI MOBIILI-@media SEES (max-width:640px) ja seetõttu EI
   KEHTINUD lauaarvutil ÜLDSE — ruudustik venis terve ööpäeva pikkuseks ja
   kerimisala ei olnud kunagi olemas (leitud 31.08.2026, kui Luisa küsis
   „ma tahan näha 7 tundi korraga ja siis scrollida").
   ⛔ 08.09.2026: kerimist ei ole enam — 06–21 mahub tervikuna. */
/* align-items:flex-start ON KOHUSTUSLIK (Luisa 01.09.2026: „miks jooned
   lõppevad lambist"): flexi vaikimisi stretch venitas veerud ja kellaaja-
   riba AKNA kõrguseks (520px), kuigi sisu on 24h = 1312px — äärised ja
   tunnijooned lõppesid kerimisel poole päeva pealt ära. Mõõdetud brauseris:
   stretch → veerg 520px · flex-start → 1312px. */
/* ⛔ KERIMIST EI OLE (Luisa 08.09.2026). Varem: overflow:auto + fikseeritud
   akna kõrgus. Nüüd 06–21 mahub tervikuna, seega ruudustik on täpselt sisu
   kõrgune. `overflow:visible` — mitte hidden — muidu lõikaks kleepuva päise. */
#page-ajaarvestus .cal-grid{display:flex;align-items:flex-start;border:1px solid var(--line);
  overflow:visible;height:auto}
#page-ajaarvestus .cal-gutter{width:52px;flex:0 0 auto;background:var(--white)}
/* Tunnijoonte LÄÄG (Luisa 24.08.2026: „siin ikka lääg joontega ju"): kellaaja
   veeru päis oli 54px, päevaveeru päis 64px — seega iga kellaaeg seisis oma
   tunnijoonest 16px kõrgemal. Mõõdetud brauseris: silt 574,4px vs joon 590,4px.
   Kaks päist PEAVAD olema sama kõrged; -6px nihe .cal-hr peal on optiline
   tsentreerimine joone peale ja jääb alles. */
/* Kellaaja-veeru nurk peab olema TÄPSELT sama kõrge kui päevapäis, muidu
   nihkuvad tunnijooned päisest mööda — sama muutuja, mitte oma number. */
#page-ajaarvestus .cal-ghead{height:var(--cal-pais,46px);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:6;background:var(--white)}
/* ⚠ KÕRGUSED TULEVAD JS-IST (--cal-hpx / --cal-korgus). Varem oli 40px siin
   ja CAL_HPX seal — kui muutsin JS-is tunni 34-le, jäid tunnisildid 40px
   peale ja plokid triivisid päeva jooksul siltidest lahku (Luisa: „mulle
   üldse ei meeldi et see siin overlappib"). Üks tõeallikas. */
#page-ajaarvestus .cal-hr{height:var(--cal-hpx,40px);font-size:10px;color:var(--faint,var(--faint));text-align:right;padding-right:6px;transform:translateY(-6px)}
#page-ajaarvestus .cal-col{flex:1 1 0;border-left:1px solid var(--line);min-width:0}
/* Tänane veerg: EI täida taustaga (Luisa 24.08.2026: „mulle ei meeldi, et
   tänase päeva beež matchib taustavärviga") — savikas täidis oli sama tooni
   mis lehe taust, seega veerg nägi välja nagu viga, mitte nagu tänane päev.
   Nüüd on täna märgitud JOONEGA: vasakul serval õhuke aktsentriba ja päises
   sama värvi alljoon. Tunnijooned jäävad nähtavaks, sest taust on valge. */
#page-ajaarvestus .cal-col.today{background:transparent}
/* Tänase päeva PÄIS on erivärvi (Luisa 24.08.2026: „tee lihtsalt see ülemine
   päeva plokk erivärvi, et eristada mis päev on") — savine täidis + aktsentjoon
   all. Veerg ise jääb valgeks, seega tunnijooned ja kirjed on selged. */
#page-ajaarvestus .cal-dh.today{background:var(--ink);border-bottom:2px solid var(--accent)}
#page-ajaarvestus .cal-dh.today .dnum,#page-ajaarvestus .cal-dh.today .dkp,
#page-ajaarvestus .cal-dh.today .dtot{color:var(--white)}
/* ⚠ KLEEPUV PEAB OLEMA MÕLEMAL. `.cal-ghead` (kellaaja-veeru nurk) oli
   sticky, aga PÄEVAPÄISED ei olnud — kerides kadusid Esmaspäev/Teisipäev
   ära ja alles jäi tühi ruudustik, kus ei näinud, mis päev on (Luisa
   01.09.2026: „mis siin toimub, miks scrollides"). */
/* Päise kõrgus tuleb JS-ist (`--cal-pais`, CAL_PAIS_PX) — ÜKS tõeallikas.
   Ta elab kolmes kohas korraga: päevapäis, kellaaja-veeru nurk ja nähtava akna
   arvutus. Kõva number igaühes oleks kolm võimalust neil lahku minna. */
#page-ajaarvestus .cal-dh{height:var(--cal-pais,46px);border-bottom:1px solid var(--line);padding:6px 10px;display:flex;flex-direction:column;gap:1px;
  position:sticky;top:0;z-index:6;background:var(--white)}
/* Nädalapäev ja kuupäev ÜHEL REAL (Luisa 02.09.2026: „pane kuupäev päeva taha
   kohe, võtab vähem ruumi"). Päis 64 → 46 px, ehk iga kalendrivaade võidab
   18 px — sama palju kui pool tundi ruudustikus. */
#page-ajaarvestus .cal-dh .dnum{font-size:13px;font-weight:500;color:var(--ink);line-height:1.15;
  display:flex;align-items:baseline;gap:6px;white-space:nowrap;min-width:0}
#page-ajaarvestus .cal-dh .dkp{font-size:11px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.2}
#page-ajaarvestus .cal-dh .dwd-lyh{display:none}
#page-ajaarvestus .cal-dh .dtot{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px}

/* Kitsal ekraanil ei mahu „Esmaspäev" ära → lühivorm, kuupäev jääb alles */
@media(max-width:1100px){
  #page-ajaarvestus .cal-dh .dwd-full{display:none}
  #page-ajaarvestus .cal-dh .dwd-lyh{display:inline}
}
#page-ajaarvestus .cal-body{position:relative;height:var(--cal-korgus,640px);cursor:copy}
#page-ajaarvestus .cal-line{height:var(--cal-hpx,40px);border-bottom:1px solid var(--soft)}
/* ⚠ Tänase veeru taust JA tunnijoon olid mõlemad var(--soft) — jooned kadusid
   täpselt sellel päeval, kus neid kõige rohkem vaja on (Luisa 19.08.2026:
   „ma tahaks näha tunni jooni ka tänasel päeval"). Tänasel veerul on nüüd
   joonel oma toon, mis töötab tinditud tausta peal. */

/* Kiirvalik: sinu viimased projektid ühe klõpsuga (Luisa 07.09.2026) */
#page-ajaarvestus .t-abi{ font-size:11px; color:var(--muted); line-height:1.5; margin-top:10px; display:flex; flex-direction:column; gap:6px;
  padding-top:8px; border-top:1px solid var(--border); max-width:110ch }
#page-ajaarvestus .t-abi b{ color:var(--text2) }
#page-ajaarvestus .t-kiired{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px }
#page-ajaarvestus .t-kiired .silt{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-right:2px }
#page-ajaarvestus .t-kiired button{ font:inherit; font-size:12px; padding:6px 12px; border:1px solid var(--border2);
  background:var(--white); color:var(--text); cursor:pointer; white-space:nowrap; max-width:26ch;
  overflow:hidden; text-overflow:ellipsis }
#page-ajaarvestus .t-kiired button:hover{ border-color:var(--accent); color:var(--accent) }
#page-ajaarvestus .t-kiired button:disabled{ opacity:.45; cursor:default }
@media(max-width:600px){ #page-ajaarvestus .t-kiired{ overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px } }
/* 06–21 vahemikust välja ulatuv kirje: kaldtriibud serval ütlevad, et plokk
   on lõigatud. Aeg ise on kirjes õige — vt title. */
#page-ajaarvestus .cal-evt.ev-loikab{ background-image:repeating-linear-gradient(45deg,
  rgba(0,0,0,.05) 0 4px, transparent 4px 8px) }
#page-ajaarvestus .cal-kate{ margin-left:4px; color:var(--danger,var(--red)); cursor:help; font-size:11px }
#page-ajaarvestus .cal-evt{position:absolute;left:2px;right:2px;padding:4px 6px;font-size:11px;
    color:#2B2B2B;overflow:hidden;cursor:pointer;line-height:1.3;display:flex;flex-direction:column;gap:1px;border-left:3px solid currentColor}
#page-ajaarvestus .cal-evt b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Teine rida (kellaaeg · projekt · sildid) — sama kiri, ainult tuhmim.
   Varem oli kogu kast 10px ja number monospace-numbritega: Luisa 19.08.2026
   „normaalses fondis, mitte mingis veidras koledas". */
#page-ajaarvestus .cal-evt .cal-sub{font-size:11px;color:#5E5E5E;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ⚠ MADAL KAST (Luisa 31.08.2026: „sellist asja ei taha ka näha, no kammoon").
   40 px/tund tähendab, et 20-minutiline kirje on 13 px — ja sinna suruti KAKS
   rida teksti (pealkiri 11,5 px + alarida 11 px). Read läksid üksteise peale ja
   said pooleks lõigatud. Nüüd: mida madalam kast, seda vähem ta näitab.
   Kogu tekst on endiselt `title`-s (hiirega peale) ja klõps avab kirje. */
#page-ajaarvestus .cal-evt.ev-madal{padding:1px 6px;justify-content:center}
#page-ajaarvestus .cal-evt.ev-madal .cal-sub{display:none}
/* ⚠ SAMA KIRI IGAS KASTIS (Luisa 04.09.2026: „miks siin pildistamisel teine
   font ja suurus on?"). Kirja väiksemaks tegemine oli 31.08 lahendus sellele,
   et madalasse kasti suruti KAKS rida (pealkiri + alarida). Alarida on nüüd
   madalas kastis üldse peidus, seega pealkirjal on terve kast — kahandamiseks
   ei ole enam põhjust ja kõrvuti seisvad kirjed nägid eri fondiga välja.
   Jääb ainult tihedam reavahe, et 22 px kasti mahuks. */
#page-ajaarvestus .cal-evt.ev-madal b{line-height:1.15}
#page-ajaarvestus .cal-evt.ev-kitsas{padding:0 6px;justify-content:center;border-left-width:2px}
#page-ajaarvestus .cal-evt.ev-kitsas .cal-sub{display:none}
/* Kõrge plokk näitab kogu teksti (Luisa 04.09.2026). Ainult siin — madalas
   plokis jääb üherealine ellips, muidu murduks tekst kasti servast välja. */
#page-ajaarvestus .cal-evt.ev-korge b{white-space:normal;overflow-wrap:anywhere}
#page-ajaarvestus .cal-evt.ev-korge .cal-sub{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
#page-ajaarvestus .cal-evt.ev-kitsas b{line-height:1}
/* Lohistamise valik kalendris (Luisa 2026-08-07) — poolläbipaistev savi-riba
   kellaaegadega. pointer-events:none, et lohistus kulgeks katkematult. */
#page-ajaarvestus .cal-valik{position:absolute;left:2px;right:2px;background:rgba(17,17,17,.14);
  border:1px solid var(--accent);z-index:5;pointer-events:none;font-size:10px;color:var(--accent-soft);
  font-weight:500;padding:1px 4px;font-variant-numeric:tabular-nums;overflow:hidden;white-space:nowrap}
#page-ajaarvestus .cal-body{touch-action:pan-y}
#page-ajaarvestus .cal-evt .ct{font-variant-numeric:tabular-nums;opacity:.9}
/* Jooksev kirje: vähemalt kaks rida teksti ära mahub, muidu on kast 15 px kõrgune
   riba, kus ei näe muud kui kella (täpselt see, mille Luisa pildil saatis). */
#page-ajaarvestus .cal-running{outline:2px solid var(--white);box-shadow:none;opacity:.98;min-height:38px;z-index:4}
#page-ajaarvestus .cal-running:hover{opacity:1}
.undo-riba:empty{display:none}
.undo-riba{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 0;
  padding:8px 12px;background:var(--hover);border-left:2px solid var(--accent);
  font-size:12px;color:var(--text2)}
.undo-riba b{font-weight:500;color:var(--ink)}
#page-ajaarvestus .tagrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
#page-ajaarvestus .tag{font-size:12px;padding:4px 10px;border-radius:0;border:1px solid var(--line);color:var(--muted);cursor:pointer;user-select:none}
#page-ajaarvestus .tag:hover{border-color:var(--ink)}
#page-ajaarvestus .tag.on{background:var(--soft);border-color:var(--ink);color:var(--ink);font-weight:500}#page-ajaarvestus #page-ajaarvestus #page-ajaarvestus .cal-evt .eur{color:var(--white)}
#page-ajaarvestus .chip-tags{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:6px;vertical-align:middle}
#page-ajaarvestus .chip-tags .ct{font-size:11px;padding:1px 8px;border-radius:0;background:var(--soft);color:var(--muted)}
@media(max-width:640px){#page-ajaarvestus .timer-display{order:-1}
#page-ajaarvestus .cal-col{min-width:90px}}

/* ── index.html rida 1588 ── */
.sk-progress{margin-top:12px;display:none}
.sk-progress-head{display:flex;justify-content:space-between;align-items:center;
  font-size:12px;font-weight:500;color:var(--text2,var(--muted));margin-bottom:6px}
.sk-progress-head .sk-progress-pct{font-variant-numeric:tabular-nums;color:var(--accent,var(--text2))}
.sk-progress-stage{display:inline-flex;align-items:center;gap:8px}
.sk-progress-track{height:6px;background:var(--border,var(--border2));border-radius:0;overflow:hidden}
.sk-progress-bar{height:100%;width:0%;background:var(--accent,var(--text2));
  border-radius:0;transition:width 0.4s cubic-bezier(.4,0,.2,1)}

/* ── index.html rida 1719 ── */
    /* „Koonda vaade" — peida vähem-olulised kaardid (Tiit: vaikimisi vähem müra) */  

/* ── index.html rida 2748 ── */
      /* Voldik-tööriistad: pealkiri ütleb MIDA saab, teine rida MILLAL kasutada
         ja kas maksab. Varem oli mõlemal üks pikk hall rida, mis nägi välja
         nagu joonealune märkus, mitte nagu nupp. */
      #page-seletuskirjad .sk-tool{border:1px solid var(--border);background:var(--white);margin-bottom:10px;padding:0}
      /* Versioonide võrdlus — vormistus (Luisa 14.08.2026) */
      #page-seletuskirjad .sk-cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
      @media(max-width:760px){#page-seletuskirjad .sk-cmp-grid{grid-template-columns:1fr}}
      #page-seletuskirjad .sk-cmp-pane{border:1px solid var(--border);background:var(--bg);padding:12px 14px}
      #page-seletuskirjad .sk-cmp-h{font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;
        color:var(--heading);margin-bottom:8px}
      #page-seletuskirjad .sk-cmp-h span{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted)}
      #page-seletuskirjad .sk-cmp-file{display:flex;align-items:center;gap:10px;margin-bottom:8px;min-width:0}
      #page-seletuskirjad .sk-cmp-file input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
      #page-seletuskirjad .sk-cmp-file span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
      #page-seletuskirjad .sk-cmp-pane textarea{width:100%;min-height:150px;margin:0;font:inherit;font-size:13px;
        padding:10px 12px;border:1px solid var(--border2);background:var(--white)}
      #page-seletuskirjad .sk-cmp-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
      #page-seletuskirjad .sk-cmp-act select{font:inherit;font-size:13px;padding:8px 12px;border:1px solid var(--border2);
        background:var(--white);min-width:230px;width:auto;flex:0 0 auto;margin:0}
      #page-seletuskirjad .sk-cmp-vihje{font-size:11px;color:var(--muted);margin-top:8px;max-width:70ch}
      /* Võrdluse TULEMUS (Luisa 30.08.2026: „vormistus pekkis"). Enne oli iga
         rida oma inline-stiiliga ja kast kandis klassi .ai-md, mis on mõeldud
         AI-vastuse markdownile — kaks vormistust võitlesid omavahel. Nüüd
         üks klassikomplekt: tabel nagu mujal rakenduses, diff kahes veerus
         (märk eraldi veerus), et − ja + read joonduksid. */
      #page-seletuskirjad .sk-cmp-out{font-size:13px;line-height:1.6}
      #page-seletuskirjad .sk-cmp-out .pr-sec-h{margin:18px 0 8px}
      #page-seletuskirjad .sk-cmp-out .pr-sec-h:first-child{margin-top:0}
      #page-seletuskirjad .sk-cmp-out table{width:100%;border-collapse:collapse;font-size:13px;
        margin:0 0 4px;table-layout:fixed}
      #page-seletuskirjad .sk-cmp-out th{text-align:left;font-size:10px;font-weight:400;letter-spacing:.1em;
        text-transform:uppercase;color:var(--muted);padding:0 10px 6px 0;border-bottom:1px solid var(--border)}
      #page-seletuskirjad .sk-cmp-out td{padding:6px 10px 6px 0;border-top:1px solid var(--border);
        vertical-align:baseline;word-break:break-word}
      #page-seletuskirjad .sk-cmp-out td.a{color:var(--muted)}
      #page-seletuskirjad .sk-cmp-out td.b{color:var(--ink);font-weight:500}
      #page-seletuskirjad .sk-cmp-out td.a,#page-seletuskirjad .sk-cmp-out td.b{font-variant-numeric:tabular-nums}
      /* Pealkirjal on juba oma joon all — järgnev plokk ei tohi teist juurde
         panna, muidu jookseb 8 px vahega kaks hairline'i (Luisa: „vormistus
         pekkis"). Sama kehtib tabeli ja loendi kohta: vahe tuleb pealkirjalt. */
      #page-seletuskirjad .sk-cmp-out .pr-sec-h + .cmp-blk{border-top:none;padding-top:0}
      #page-seletuskirjad .sk-cmp-out .pr-sec-h + table{margin-top:2px}
      #page-seletuskirjad .sk-cmp-out ul{margin:0;padding-left:20px}
      #page-seletuskirjad .sk-cmp-out li{margin-bottom:4px}
      #page-seletuskirjad .sk-cmp-out .cmp-blk{border-top:1px solid var(--border);padding:10px 0}
      #page-seletuskirjad .sk-cmp-out .cmp-blk b{font-weight:500;font-size:13px;display:block;margin-bottom:4px}
      #page-seletuskirjad .sk-cmp-out .cmp-r{display:grid;grid-template-columns:14px 1fr;gap:8px;
        font-size:12px;margin-top:4px}
      #page-seletuskirjad .sk-cmp-out .cmp-r i{font-style:normal;color:var(--muted);text-align:center}
      #page-seletuskirjad .sk-cmp-out .cmp-ara span{color:var(--muted)}
      #page-seletuskirjad .sk-cmp-out .cmp-juurde span{color:var(--ink)}
      #page-seletuskirjad .sk-cmp-out .cmp-tyhi{color:var(--muted)}
      #page-seletuskirjad .sk-cmp-out .cmp-jalus{font-size:11px;color:var(--muted);margin-top:16px;
        border-top:1px solid var(--border);padding-top:8px}
      /* TÖÖRIISTAD ON TABID, mitte voldikud (Luisa 01.09.2026: „pane need
         samamoodi nagu nt wikis on onboarding eraldi tabidena, need üldse ei
         eristu siin" + „need ei ole ikka seal kuhu tahtsin"). Kaks ühesugust
         valget kasti ei ütle, et need on ERI tööriistad — tabiriba ütleb. */
      /* Sama tab-komponent, mis mujal (Luisa 04.09.2026) — vt .tabs/.tab ülal. */
      #page-seletuskirjad .sk-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px;
        border-bottom:1px solid var(--line)}
      #page-seletuskirjad .sk-tab{font:inherit;font-size:14px;font-weight:500;padding:12px 16px;
        border:none;border-bottom:2px solid transparent;margin-bottom:-1px;
        background:none;color:var(--muted);cursor:pointer;border-radius:0;white-space:nowrap}
      #page-seletuskirjad .sk-tab:hover{color:var(--text2)}
      #page-seletuskirjad .sk-tab.on{color:var(--ink);border-bottom-color:var(--accent)}
      #page-seletuskirjad .sk-tool .d{font-size:12px;color:var(--muted);line-height:1.5;
        margin:0 0 14px;max-width:78ch}
      #page-seletuskirjad .sk-tool .sisu{padding:16px 18px}
      #page-seletuskirjad .sk-tag{display:inline-block;font-size:10px;font-weight:500;letter-spacing:.05em;
        text-transform:uppercase;padding:2px 8px;border:1px solid var(--border2);color:var(--muted);margin-left:8px;vertical-align:2px}
      /* Neli kontrolli: võrdsed kaardid, pealkiri + selgitus. Grid, mitte flex —
         nii on read tasakaalus ka kitsal ekraanil. */
      #page-seletuskirjad .sk-kontrollid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
      #page-seletuskirjad .sk-kbtn{font:inherit;text-align:left;background:var(--white);border:1px solid var(--border2);
        padding:10px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px;color:var(--ink)}
      #page-seletuskirjad .sk-kbtn:hover{border-color:var(--accent)}
      #page-seletuskirjad .sk-kbtn b{font-weight:600;font-size:13px}
      #page-seletuskirjad .sk-kbtn span{font-size:11px;color:var(--muted);line-height:1.4}
    

/* ── index.html rida 3091 ── */
      .norm-ring{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;
        padding:10px 14px;border:1px solid var(--border);background:var(--white);font-size:13px;color:var(--text2)}
      .norm-ring .norm-ring-tekst{flex:1;min-width:200px}
      .norm-ring.aegunud{border-color:var(--red)}
      .norm-ring .norm-ring-tekst b{color:var(--text)}
      .norm-ring.aegunud .norm-ring-tekst b{color:var(--red)}
      .norm-ring.korras{border-color:var(--border)}
      .norm-ring .norm-ring-lisa{font-size:11px;color:var(--muted)}
    

/* ── index.html rida 3536 ── */
      #page-tiim .tm-info{background:var(--accent-light);color:var(--accent-dark);padding:12px 14px;font-size:13px;margin-bottom:16px;line-height:1.55}
      #page-tiim table{width:100%;border-collapse:collapse;font-size:14px}
      #page-tiim th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
        padding:10px 10px;border-bottom:1px solid var(--border);font-weight:500}
      #page-tiim td{padding:12px 10px;border-bottom:1px solid var(--row-line);vertical-align:middle}
      #page-tiim tr:hover td{background:var(--hover)}
      #page-tiim .tm-mail{color:var(--muted);font-size:12px}
      #page-tiim .tm-peidetud td:first-child{opacity:.5}      #page-tiim .tm-st{font-size:13px;padding:12px 14px;margin-bottom:14px;display:none}
      #page-tiim .tm-st.show{display:block}
      #page-tiim .tm-st.ok{background:var(--accent-light);color:var(--accent-dark)}
      #page-tiim .tm-st.err{background:var(--red-light);color:var(--red)}
      #page-tiim .tm-st.load{background:var(--hover);color:var(--muted)}
      /* ── Projekti eelarve (cockpit → Aeg & raha) ── */
  .pr-eelarve{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--border);
    border:1px solid var(--border);margin:0 0 14px}
  .pr-eel-plokk{background:var(--white);padding:12px 14px}
  .pr-eel-sil{font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
  .pr-eel-rida{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}
  .pr-eel-rida label{display:inline-flex;align-items:center;gap:6px;color:var(--text2)}
  .pr-eel-rida input{width:88px;font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);
    background:var(--bg2,var(--white));color:var(--text);text-align:right}
  .pr-eel-teh{color:var(--text2)}
  .pr-eel-teh b,.pr-eel-rida b{color:var(--heading)}
  .pr-eel-all{font-size:12px;color:var(--text2);margin-top:6px;line-height:1.5}
  #page-tiim .tm-c{width:104px;text-align:center}
      #page-tiim td.tm-c{text-align:center}
      #page-tiim td.tm-c input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}
      #page-tiim .tm-adm{display:inline-block;font-size:10px;font-weight:500;letter-spacing:.05em;
        text-transform:uppercase;background:var(--accent-light);color:var(--accent-dark);padding:2px 8px;margin-left:8px}
      #page-tiim .tm-legend{border:1px solid var(--border);padding:14px 16px;margin-bottom:16px;font-size:13px}
      #page-tiim .tm-leg{margin-top:8px;font-size:12px}
      #page-tiim .tm-leg td{padding:4px 10px 4px 0;border:none;vertical-align:top}
      #page-tiim .tm-leg td:first-child{font-weight:500;white-space:nowrap;width:150px}
      #page-tiim .tm-hoiat{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}
      #page-tiim details.tm-legend summary::-webkit-details-marker{display:none}
      #page-tiim details.tm-legend summary::before{content:'▸ ';color:var(--muted)}
      #page-tiim details.tm-legend[open] summary::before{content:'▾ '}
    

/* ── index.html rida 3705 ── */
      /* Teadete leht: üks nimekiri ees, tehniline pool voldiku all (18.08.2026) */      #page-tiim .tw-liik-kanal.puudub{ color:var(--muted); border:none; }
      #page-tiim .tw-liigid{ padding-top:2px; }      #page-tiim .tw-juhend{padding:14px 16px;background:var(--hover);font-size:12px;color:var(--text2);line-height:1.65;border-top:1px solid var(--border)}
      #page-tiim .tw-juhend code{font-family:ui-monospace,Menlo,monospace;font-size:11px;background:var(--white);padding:1px 6px}
      #page-tiim .tw-liigid{border-top:1px solid var(--border);background:var(--white)}
      #page-tiim .tw-liigid-pea{font-size:10px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;
        color:var(--muted);padding:14px 16px 8px}
      #page-tiim .tw-liik{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--row-line)}
      #page-tiim .tw-liik.valjas{opacity:.5}
      #page-tiim .tw-liik.valjas .tw-liik-sisu b{text-decoration:line-through}
      #page-tiim .tw-kast{width:16px;height:16px;margin-top:4px;flex:none;accent-color:var(--accent);cursor:pointer}
      #page-tiim .tw-liik-sisu{flex:1;min-width:0}
      #page-tiim .tw-liik-sisu b{font-size:13px;color:var(--heading)}
      #page-tiim .tw-liik-mis{font-size:12px;color:var(--text2);line-height:1.5;margin-top:4px}
      #page-tiim .tw-saajad{margin-top:8px}
      #page-tiim .tw-saajad>summary{cursor:pointer;font-size:11px;color:var(--muted);list-style:none}
      #page-tiim .tw-saajad>summary::-webkit-details-marker{display:none}
      #page-tiim .tw-saajad>summary::before{content:'▸ ';color:var(--muted)}
      #page-tiim .tw-saajad[open]>summary::before{content:'▾ '}
      #page-tiim .tw-saajad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:2px 12px;margin-top:6px}
      #page-tiim .tw-saajad-grid label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);cursor:pointer}
      #page-tiim .tw-liik-kelle{font-size:11px;color:var(--muted);line-height:1.5;margin-top:4px}
      #page-tiim .tw-liik-kelle span{font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:10px;color:var(--text2)}      #page-tiim .tw-liik-kanal.puudub{border-color:var(--red);color:var(--red)}
      #page-tiim .tw-liik-all{padding:12px 16px 14px;font-size:12px;color:var(--muted);line-height:1.55;
        display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--row-line)}
    

/* ── index.html rida 3964 ── */
      #page-render .rd-drop{border:1.5px dashed var(--border2);padding:28px 20px;text-align:center;cursor:pointer;
        transition:0.15s;background:var(--hover);color:var(--muted);font-size:14px}
      #page-render .rd-drop:hover,#page-render .rd-drop.over{border-color:var(--accent);color:var(--accent);background:var(--white)}
      #page-render .rd-drop img{max-width:100%;max-height:300px;display:block;margin:0 auto;border:1px solid var(--border)}
      #page-render .rd-hint{font-size:12px;margin-top:8px}
      #page-render .rd-lbl{font-size:11px;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin:16px 0 6px}
      #page-render textarea{font:inherit;padding:12px 14px;border:1px solid var(--border2);background:var(--white);
        color:var(--text);width:100%;resize:vertical;min-height:78px;line-height:1.55}
      #page-render textarea:focus{outline:none;border-color:var(--accent)}
      #page-render .rd-prow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
      #page-render .rd-prow .l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);min-width:76px}
      #page-render .rd-chip{border:1px solid var(--border2);background:var(--white);color:var(--text);padding:6px 12px;
        font-size:13px;cursor:pointer;transition:0.1s}
      #page-render .rd-chip:hover{border-color:var(--accent)}
      #page-render .rd-chip.on{background:var(--header);color:var(--white);border-color:var(--header);font-weight:400}
      #page-render .rd-q{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
      #page-render .rd-qopt{flex:1;min-width:132px;border:1px solid var(--border2);padding:12px 14px;cursor:pointer;transition:0.1s}
      #page-render .rd-qopt:hover{border-color:var(--accent)}
      #page-render .rd-qopt.on{border-color:var(--accent);background:var(--accent-light)}
      #page-render .rd-qopt .t{font-weight:500;font-size:14px;color:var(--heading)}
      #page-render .rd-qopt .d{font-size:12px;color:var(--muted)}
      #page-render .rd-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
      #page-render .rd-cost{font-size:13px;color:var(--muted)}
      #page-render .rd-st{font-size:13px;padding:12px 14px;margin-top:14px;display:none}
      #page-render .rd-st.show{display:block}
      #page-render .rd-st.ok{background:var(--accent-light);color:var(--accent-dark)}
      #page-render .rd-st.err{background:var(--red-light);color:var(--red)}
      #page-render .rd-st.load{background:var(--hover);color:var(--muted)}
      #page-render .rd-cmp{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
      #page-render .rd-cmp figure{margin:0}
      #page-render .rd-cmp figcaption{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}
      #page-render .rd-cmp img{width:100%;border:1px solid var(--border);background:var(--hover)}
      #page-render .rd-out{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;
        background:var(--hover);border:1px solid var(--border);padding:14px;line-height:1.6}
      #page-render .rd-spin{display:inline-block;width:13px;height:13px;border:2px solid var(--border);border-top-color:var(--accent);
        border-radius:50%;animation:rdsp .8s linear infinite;vertical-align:-2px;margin-right:8px}
      @keyframes rdsp{to{transform:rotate(360deg)}}
      @media(max-width:720px){#page-render .rd-cmp{grid-template-columns:1fr}}
    

/* ── index.html rida 5451 ── */
/* Tahvli lüliti (Teostus ↔ Müük) */
/* Hankeregistri filtrid rühmadena — igal rühmal silt, rühmad eraldi (Luisa 10.08) */
.hr-filtrid{ display:flex; flex-wrap:wrap; gap:6px 26px; align-items:center; margin-bottom:8px; }
.hr-fgrupp{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.hr-flabel{ font-size:10px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-right:2px; }
.hr-fcnt{ font-size:10px; background:var(--border); border-radius:0; padding:1px 6px; margin-left:4px; letter-spacing:0; }
.hr-fseis{ font-size:12px; color:var(--text2); margin-bottom:12px; min-height:18px; }
.hr-fseis a{ color:var(--accent); cursor:pointer; }
.pr-board-switch{display:inline-flex;gap:4px;background:var(--border);border-radius:0;padding:4px;margin-bottom:18px}
/* Lüliti vasakule, „+ Lisa projekt" paremale — mõlemad vahetult paanide kohal */
/* .pr-board-row on kustutatud koos tahvli-lülitiga (Luisa 10.08): „+ Lisa
   projekt" kolis lehe päisesse, vt .page-head-rida. */
.pr-board-btn{border:none;background:none;font:inherit;font-size:13px;font-weight:500;color:var(--text2);padding:8px 18px;border-radius:0;cursor:pointer;transition:0.1s}
.pr-board-btn:hover{color:var(--text)}
.pr-board-btn.active{background:var(--white);color:var(--text);border:1px solid var(--border)}
/* Renderdusstuudio vahekaardid. ⚠ `.rd-tab.active` CSS-i EI OLNUD ÜLDSE — neli
   nuppu nägid ühesugused välja ja aktiivset ei olnud võimalik eristada
   (Luisa 31.08.2026: „kui ma kasutan mingit tabi siin siis võiks olla tumedam
   vm see mida ma kasutan, muidu ei saa aru"). */
.rd-tab{transition:0.1s}
/* Aasta ürituste kava (juhtkonnale). Luisa 31.08.2026: jaanuar talisuplus ·
   aprill reis · juuli suvepäevad · oktoober padel · detsember õhtusöök. */
.hp-opi{margin-top:6px;font-size:12px;color:var(--text2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* Arhitekti vaate riba — FIXED, et sealt saaks välja igalt lehelt */
#arh-riba{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--header);color:var(--white);
  padding:10px 16px;font-size:12px;display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap}
#arh-riba b{font-weight:600}
#arh-riba button{background:var(--white);color:var(--header);border:none;padding:6px 14px;
  font:inherit;font-size:12px;font-weight:600;cursor:pointer}
body.arh-vaade{padding-bottom:44px}
.ur-kava{margin-bottom:12px;padding:8px 12px;background:var(--hover);border-left:2px solid var(--border2);
  font-size:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ur-kava.ok{border-left-color:var(--st-ok);color:var(--text2)}
.ur-kava .s{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text2)}
/* ── ÜRITUSTE TABEL: kogu info ühel real (Luisa 31.08.2026) ── */
.ur-tabel-kaart{padding:0;overflow-x:auto}
.ur-tabel{width:100%;border-collapse:collapse;font-size:13px;min-width:660px}
.ur-tabel thead th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  text-align:left;font-weight:600;padding:12px 10px 8px;border-bottom:1px solid var(--row-line);white-space:nowrap}
.ur-tabel td{padding:10px 10px;border-bottom:1px solid var(--row-line);vertical-align:top}
.ur-tabel tr:last-child td{border-bottom:none}
.ur-tabel tr.moodas{opacity:.5}
.ur-tabel tr.kaugel{opacity:.78}
.ur-tabel td.millal{white-space:nowrap;font-variant-numeric:tabular-nums}
.ur-tabel td.millal b{font-size:14px;color:var(--heading)}
/* 22.09.2026: kuupäev, aasta ja loendur ÜHEL real („15. okt 2026 · 23 p"), mitte
   neljal — veerg oli tabeli kõrgeim ja rida venis ainult tema pärast. */
.ur-tabel td.millal .a{display:inline;font-size:11px;color:var(--muted);margin-left:4px}
.ur-tabel td.millal .p{display:inline;font-size:11px;color:var(--muted);margin-left:8px}
.ur-tabel td.millal .reg{display:block;font-size:10px;color:var(--muted);margin-top:4px;white-space:nowrap}
.ur-tabel td.millal .p.peatselt{color:var(--accent);font-weight:600}
.ur-tabel td.nimi b{font-size:13px;color:var(--heading)}
.ur-tabel td.nimi .liik{margin-left:8px;font-size:11px;color:var(--muted)}
.ur-tabel td.nimi .koht{display:block;font-size:11px;color:var(--text2);margin-top:4px}
/* Kirjeldus MURDUB ridadeks (Luisa 01.09.2026: „ma ei näe mis tuleb peale …
   sinna mahuks ju kogu tekst ära"). Enne oli 230 px + nowrap + ellipsis, seega
   iga kirjeldus lõppes kolme punktiga ja terve teksti nägi ainult hiirega
   peal hoides. Veerg on kaks korda laiem kui see piir oli. */
.ur-tabel td.nimi .kirj{display:block;font-size:11px;color:var(--muted);margin-top:4px;
  max-width:560px;line-height:1.45;white-space:normal}
.ur-tabel td.n{white-space:nowrap;font-variant-numeric:tabular-nums}
.ur-tabel .lopp{color:var(--red)}
.ur-tabel .tyhi{color:var(--faint)}
.ur-tabel td.vastused .kes{display:block;font-size:11px;color:var(--muted);margin-top:2px;
  max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ur-tabel .ur-vastus{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ur-tabel .ur-vastus input{width:130px;padding:4px 8px;font:inherit;font-size:12px;
  border:1px solid var(--border2);background:var(--white)}
.ur-tabel td.teod{white-space:nowrap;text-align:right}
.ur-tabel td.teod a{font-size:11px;color:var(--muted);text-decoration:none;margin-left:10px;border-bottom:1px solid transparent}
.ur-tabel td.teod a:hover{color:var(--accent);border-bottom-color:var(--accent)}.ur-kava-tk{font:inherit;font-size:12px;padding:6px 10px;border:1px solid var(--border2);background:var(--white);white-space:nowrap}
.ur-kava-tk.on{color:var(--text);border-color:var(--st-ok)}
.ur-kava-tk.on .kp{color:var(--muted);font-variant-numeric:tabular-nums}
.ur-kava-tk.puudu{color:var(--heading);border-color:var(--text2);border-style:dashed;cursor:pointer}
.ur-kava-tk.puudu:hover{background:var(--hover);border-color:var(--heading)}
.rd-tab.active{background:var(--header);color:var(--white);border-color:var(--header);font-weight:600}
/* ⚠ HILISEM REEGEL VÕITIS (Luisa 01.09.2026: „miks see selliseks läheb kui
   on valitud ja peal hoverida"): .btn-ghost:hover:not(:disabled) real 5377
   on FAILIS HILJEM ja sama kaaluga → hover värvis aktiivse tabi heledaks,
   valge tekst jäi heleda peale ja kadus ära. !important hoiab valitud tabi
   hoveril paigal. */
.rd-tab.active:hover{background:var(--header) !important;color:var(--white) !important;border-color:var(--header) !important}

/* Müügitahvli päis */.muuk-head .pr-search{flex:0 1 320px}
.muuk-stats{display:flex;gap:16px;font-size:12px;color:var(--text2)}
.muuk-stats b{color:var(--text);font-weight:500}

/* Kanban-laud */
.muuk-board{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:8px}
.muuk-col{background:var(--border);border-radius:0;padding:10px;min-height:120px;transition:background 0.1s}
.muuk-col.dragover{background:var(--warm);outline:2px dashed var(--accent);outline-offset:-2px}
.muuk-col-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);padding:2px 4px 10px}
.muuk-col-head .cnt{background:var(--sand);color:var(--text2);border-radius:0;padding:1px 8px;font-size:11px;font-weight:500;letter-spacing:0}
.muuk-col-body{display:flex;flex-direction:column;gap:8px;min-height:24px}
.muuk-col-empty{font-size:11px;color:var(--muted);text-align:center;padding:14px 4px}

/* Müügikaart */
.muuk-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:0;padding:10px 12px;cursor:grab;box-shadow:none;transition:box-shadow 0.1s,transform 0.1s}
.muuk-card:hover{border-color:var(--text3)}
.muuk-card:active{cursor:grabbing}
.muuk-card.dragging{opacity:.45}
.muuk-card-nimi{font-size:13px;font-weight:500;line-height:1.3;margin-bottom:4px}
.muuk-card-klient{font-size:12px;color:var(--text2);margin-bottom:8px}
.muuk-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.muuk-card-hon{font-weight:500;color:var(--text)}
.muuk-card-av{width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--white);font-size:10px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.muuk-card-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.muuk-eb{font-size:10px;font-weight:500;letter-spacing:.03em;background:var(--warm);color:var(--text2);border-radius:0;padding:1px 6px}
.muuk-card-th{margin-left:auto}
.muuk-allikas{font-size:10px;font-weight:500;letter-spacing:.03em;border-radius:0;padding:1px 6px;text-transform:uppercase}
.muuk-allikas.rhr{background:var(--warm);color:var(--text2)}
.muuk-allikas.otse{background:var(--ok-light);color:var(--st-ok)}
.muuk-seisak{margin-left:auto;font-size:10px;font-weight:500;color:var(--accent);background:var(--warm);border-radius:0;padding:1px 6px;white-space:nowrap}
.muuk-teg{margin-top:8px;font-size:10px;color:var(--text2);background:var(--warm);border-radius:0;padding:4px 8px;line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.muuk-teg.today{background:var(--warm);color:var(--accent-dark);font-weight:500}
.muuk-teg.over{background:var(--red-light);color:var(--red);font-weight:500}

/* ── index.html rida 5576 ── */
body{ background:var(--bg) !important; }

/* — Vasak tume külgriba (asendab ülemise fotopäise) — */
.site-header{ position:fixed !important; top:0; left:0; bottom:0; width:196px; height:100vh !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; background:var(--sidebar-bg) !important; border-right:1px solid var(--border) !important; padding:0 !important; gap:0 !important; overflow:hidden auto; z-index:200; }
.site-header-overlay{ display:none !important; }
.site-logo-wrap{ padding:22px 20px 16px !important; align-self:stretch !important; }
.site-logo{ flex-direction:column; align-items:flex-start; gap:10px; }  /* must logo helel sidebaril, vektor → terav; laiuse järgi suurem */.site-nav-wrap{ flex:1 1 auto; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; padding:6px 12px 14px; }
.site-nav{ flex-direction:column !important; gap:2px; width:100%; }
.site-nav-btn{ height:auto !important; width:100%; text-align:left; justify-content:flex-start; padding:12px 14px !important; border-radius:0 !important; border-bottom:none !important; font-size:13px !important; font-weight:400 !important; letter-spacing:.01em !important; text-transform:none !important; color:var(--text2) !important; transition:background 0.15s, color 0.15s; }
.site-nav-btn:hover{ background:var(--hover) !important; color:var(--heading) !important; }
.site-nav-btn.active{ background:var(--accent-light) !important; color:var(--heading) !important; border-bottom:none !important; box-shadow:none; }
.htimer-pill{ margin:auto 12px 6px !important; }
.auth-user-btn{ margin-top:auto !important; margin-left:0 !important; margin-right:0 !important; margin-bottom:0 !important;
  width:100%; border:none !important; border-top:1px solid var(--border) !important;
  background:transparent !important; padding:12px 14px !important; border-radius:0; }
.auth-user-btn:hover{ background:var(--hover,#F0EEEB) !important; }

/* — Sisu nihkub paremale, täislaius, puhas valge — */
.page-outer{ margin-left:196px !important; justify-content:flex-start !important; padding:0 !important; background:transparent !important; }
.page-wrap{ max-width:none !important; width:auto !important; margin:0 !important; border-radius:0 !important; box-shadow:none !important; background:transparent !important; padding:36px 44px 64px !important; }

/* — Statistika: suured numbrid, esimene ink — */
.pr-stat:first-child{ background:none !important; border-color:transparent !important; }
/* Valge tekst oli tumeda tausta jaoks — taust on nüüd kadunud (loendusriba on
   tekst, mitte kast), seega valge tekst valgel = nähtamatu. Päris viga: number
   „74" kadus ekraanilt sootuks. */
.pr-stat:first-child .pr-stat-num{ color:var(--heading) !important; }
.pr-stat:first-child .pr-stat-lbl{ color:var(--muted) !important; }
.pr-board-btn.active{ background:var(--header) !important; color:var(--white) !important; }

/* — hr-nupud ink/kuld (eemaldab vana sinise) — */
.hr-btn-s{ color:var(--heading) !important; border-color:var(--border2) !important; }
.hr-btn-s:hover{ background:var(--accent-light) !important; border-color:var(--gold) !important; color:var(--accent-dark) !important; }
.pr-card:hover, .hr-card:hover{ background:var(--hover) !important; }
.pr-card.active{ background:var(--accent-light) !important; box-shadow:none; }
.hr-card.active{ box-shadow:none; }

/* — Külgriba: grupid, ikoonid, otsing — */
/* Grupipealkirjad olid liiga vaiksed (#B4B2AD, weight 500) — jaotus ei lugenud
   välja. Nüüd tumedam + bold + hairline grupi kohal, nii et külgriba loeb
   plokkidena, mitte ühe pika nimekirjana (Luisa 2026-08-07). */
.site-nav-group{ font-size:10px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--heading); padding:18px 14px 8px; user-select:none; }
/* Joon AINULT nupule järgneva grupi kohal → esimene („Töölaud") jääb ilma,
   sest tema ees on otsingunupp, mitte nav-nupp. */
.site-nav-btn + .site-nav-group{ margin-top:10px; border-top:1px solid var(--border); }
/* .nav-ico eemaldatud — nav-nuppudel ei ole enam ikoone (Luisa 2026-08-04: „ainult tekst") */
/* Otsing on äärest ääreni riba, mitte kast (Luisa 01.09.2026: „see võiks
   olla ka mitte kast vaid äärest ääreni") — negatiivne veeris sööb
   nav-wrapi polsterduse ära, ääris ainult all. */
/* ⚠ NEGATIIVNE VEERIS AJAS RIBA LAPPES (Luisa 01.09.2026: „joonda see muude
   asjadega, ta praegu lappes") — riba läks nav-wrapi polsterdusest VÄLJA ja
   seisis nav-nuppudest 12px vasakul. Nüüd sama laius ja sama vasak serv mis
   nuppudel; eristub taustast, mitte nihkest. */
.site-nav-search{ display:flex; align-items:center; justify-content:space-between;
  width:100%; margin:0 0 6px; padding:10px 12px;
  background:var(--white); border:1px solid var(--border2);
  border-radius:0; color:var(--muted); font:inherit; font-size:12px; cursor:pointer;
  transition:background 0.15s,border-color 0.15s; }
.site-nav-search:hover{ background:var(--hover); border-color:var(--heading); color:var(--heading); }
.site-nav-search kbd{ font-family:inherit; font-size:10px; background:var(--accent-light); border-radius:0; padding:2px 6px; color:var(--muted); }

/* — Ühtne lehepäis — */
/* Savi tagasi pealkirjadesse (Luisa 01.09.2026: „mingid pealkirjad asjad
   voiksid olla savi aktsendiga ikka, prgu liiga must valge") — SAMA keel
   mis dokumentidel: luhike savi joon pealkirja KOHAL, tekst jaab mustaks.
   Nii on aktsent navigatsioonil/identiteedil, mitte sisul — täpselt nagu
   vormistussusteem ette naeb. */
/* TIHENDUS 01.09.2026 (Luisa: „vaata kogu rakendus selle pilguga üle, mida
   saaks kokku tõmmata") — ainult RUUM, mitte suurused ega värvid. */
.page-head{ margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border);
  position:relative; padding-top:12px; }
.page-head::before{ content:''; position:absolute; top:0; left:0; width:46px; height:2px; background:var(--accent,var(--accent)); }
.page-head h1{ font-size:24px; font-weight:300; letter-spacing:-.015em; color:var(--heading); margin:0 0 2px; line-height:1.2; }
/* SEKTSIOONI-PEALKIRI (Luisa 10.08: „see font on veider, vaheta see igal pool
   välja kus rakenduses seda leidub"). h2-l EI OLNUD rakenduses ühtegi reeglit
   → brauseri vaikimisi 700-kaal / 24px, samal ajal kui h1 on 300-kaal. Rasvane
   pealkiri kerge kirja kõrval ongi see, mis silma torkas. Nüüd sama keel: kerge
   kaal, kerge negatiivne tähevahe. Inline font-size'iga h2-d jäävad omale
   suurusele, saavad ainult õige kaalu. */
h2{ font-size:20px; font-weight:400; letter-spacing:-.012em; color:var(--heading); line-height:1.3; }
.page-head .ph-sub{ font-size:13px; color:var(--text2); }
/* Päis, kus pealkirja kõrval on põhitegevus (Luisa 10.08: „samale joonele").
   Nupp joondub pealkirja PÕHIJOONELE, mitte ploki keskele — 30px kerge kirja
   kõrval oleks tsentreeritud nupp nähtavalt maas. Kitsal ekraanil läheb nupp
   uuele reale ja jääb vasakule, mitte ei pigista pealkirja kokku. */
.page-head-rida{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.page-head-rida h1{ margin-bottom:0; }
.page-head-rida > .btn{ flex:none; }

/* — Statistikariba: ühendatud plokk vahejoontega (mockupi keel) — */
/* Vana kastikuju (raam + vari + ümarad nurgad) on 14.08.2026 maha võetud —
   loendus on nüüd tekstirida. Jäetud alles ainult ülekirjutamise vältimiseks. */
.pr-stats{ background:none; border:none; border-radius:0; overflow:visible; box-shadow:none; }
/* LOENDUSRIBA (disaini-handoff 14.08.2026: „Loendus on tekst, mitte kast").
   Varem: kümme raamitud kasti kahes reas, mis sõid enne esimest projekti üle
   poole ekraanist. Nüüd: üks tekstirida, silt hallis suurtähtedes ja arv kõrval.
   Aktiivne saab savi alljoone. Klikitavus ja loogika on täpselt samad. */
.pr-stats{ display:flex; flex-wrap:wrap; gap:0 18px; align-items:baseline;
  background:none !important; border:none !important; padding:4px 0 6px !important; }
.pr-stats .pr-stat{ flex:0 0 auto !important; min-width:0 !important; display:inline-flex;
  flex-direction:row-reverse; align-items:baseline; gap:6px; text-align:left !important;
  margin-right:20px !important;   /* vahe ITEMI peal, mitte konteineri gap'iga: hilisem
                                     .pr-stats reegel kirjutas gap'i nulli ja numbrid
                                     kleepusid järgmise sildi külge (nähtud ekraanil) */
  border:none !important; border-radius:0 !important; box-shadow:none !important;
  background:none !important; padding:4px 0 6px !important; }
.pr-stats .pr-stat-lbl{ font-size:10px !important; letter-spacing:.16em; color:var(--muted) !important;
  margin:0 !important; white-space:nowrap; }
.pr-stats .pr-stat-num{ font-size:12px !important; line-height:1; letter-spacing:0 !important;
  color:var(--heading) !important; font-variant-numeric:tabular-nums; }
/* Valitud paan (Luisa 2026-08-03: „ei näe kuskilt, et see oleks valitud").
   Savi alljoon + hele taust; esimene („Aktiivsed") on tume, seal piisab joonest. */
.pr-stats .pr-stat.on{ background:none !important; box-shadow:none; }
.pr-stats .pr-stat.on .pr-stat-lbl{ color:var(--ink, var(--text)) !important; }
.pr-stats .pr-stat.on .pr-stat-num{ color:var(--heading) !important; }
.pr-stats .pr-stat:hover .pr-stat-lbl{ color:var(--accent-dark, var(--accent)) !important; }.pr-stats .pr-stat:first-child{ border-left:none !important; background:none !important; }
.pr-stats .pr-stat:last-child{ margin-right:0 !important; }
.pr-stats .pr-stat:first-child .pr-stat-lbl{ color:var(--muted) !important; }

/* — Toast-teated (alert-akende asemel) — */
/* bottom:70px hoiab toastid „✎ Märkused" nupu (bottom:18px, ~36px kõrge) KOHAL, mitte taga.
   z-index 1700 > nupp 1600, et lühike ülekate ei jääks nupu varju. */
#toast-wrap{ position:fixed; bottom:62px; right:18px; z-index:1700; display:flex; flex-direction:column; gap:8px; max-width:360px; }
.toast{ background:var(--header); color:var(--white); border-radius:0; padding:12px 16px; font-size:13px; line-height:1.5; box-shadow:none; animation:toastIn 0.15s ease-out; }
/* ── Kinnitusdialoog (natiivse confirm'i asendus) ── */
#kysi-overlay{ display:none; position:fixed; inset:0; z-index:1800; background:rgba(20,20,15,.45);
  align-items:center; justify-content:center; padding:5vh 16px; }
#kysi-overlay.show{ display:flex; }
#kysi-box{ background:var(--white); border:1px solid var(--border); max-width:460px; width:100%;
  padding:22px 24px 18px; box-shadow:none; animation:toastIn 0.15s ease-out; }
#kysi-pealkiri{ font-size:11px; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin-bottom:10px; }
#kysi-pealkiri.oht{ color:var(--red); }
#kysi-tekst{ font-size:14px; line-height:1.6; color:var(--text); white-space:pre-wrap; }
#kysi-input{ display:none; width:100%; margin-top:14px; padding:10px 12px; font:inherit; font-size:14px;
  border:1px solid var(--border); background:var(--bg2,var(--white)); color:var(--text); border-radius:0; min-height:42px; }
#kysi-input.show{ display:block; }
#kysi-input:focus{ outline:2px solid var(--accent); outline-offset:-2px; }
#kysi-nupud{ display:flex; gap:10px; justify-content:flex-end; margin-top:20px; flex-wrap:wrap; }
#kysi-nupud .btn{ min-height:40px; }
#kysi-jah.oht{ background:var(--red); border-color:var(--red); color:var(--white); }
@media(max-width:520px){ #kysi-nupud{ flex-direction:column-reverse; } #kysi-nupud .btn{ width:100%; justify-content:center; } }
.toast.ok{ border-left:3px solid var(--st-ok); }
.toast.info{ border-left:3px solid var(--gold); }
.toast.err{ border-left:3px solid var(--red); }
@keyframes toastIn{ from{ transform:translateY(8px); opacity:0 } to{ transform:none; opacity:1 } }

/* — Mobiil-navi juhtnupud (peidetud lauaarvutil) — */
.mnav-toggle{ display:none; position:fixed; top:10px; left:10px; z-index:320; width:44px; height:44px; align-items:center; justify-content:center; background:var(--heading); color:var(--white); border:none; border-radius:0; font-size:20px; cursor:pointer; box-shadow:none; }
.mnav-backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:290; }

/* — Mobiil: külgriba = off-canvas sahtel, avatav hamburgeriga — */
@media(max-width:820px){
  .site-header{ position:fixed !important; top:0; left:0; bottom:0; width:278px !important; height:100vh !important; flex-direction:column !important; overflow-y:auto; z-index:300; box-shadow:none;
    /* Sahtel liigub TRANSFORMIGA, mitte `left`-iga (15.09.2026, Luisa: „mobiiliversioon
       täiega läägab"). `left` animeerimine käivitab igal kaadril paigutuse (layout)
       kogu 278px-laiuse menüü peal; transform jookseb kompositoris ja telefon ei
       katku. `will-change` hoiab sahtli oma kihil, et avamine ei ootaks kihi loomist. */
    transform:translateX(-300px); transition:transform 0.25s ease; will-change:transform; }
  body.nav-open .site-header{ transform:none; }
  /* Kogu lehe sisse-hajumine (dsIn: opacity+translate) maalib telefonil 3–6 tuhat
     sõlme iga lehevahetuse ajal uuesti — töölaual märkamatu, telefonil „läägab". */
  .page-content.active{ animation:none; }
  body.nav-open .mnav-backdrop{ display:block; }
  .mnav-toggle{ display:flex; }
  .page-outer{ margin-left:0 !important; }
  .page-wrap{ padding-top:64px !important; }
}

/* — Mobiil: kitsa ekraani parandused (telefon) — */
@media(max-width:640px){
  /* padding-top piisav, et sisu ei jääks fikseeritud hamburgeri alla (Luisa: mobiil ebamugav) */
  .page-wrap{ padding:60px 14px 64px !important; }
  .page-head h1{ font-size:20px !important; }
  .page-head{ margin-bottom:16px !important; padding-bottom:12px !important; }
  .card{ padding:14px 14px !important; }
  /* Vormiruudustikud 1 veergu */
  .pr-edit-grid, .hr-grid, .hr-info-grid, .add-grid, .filters, .dash-grid{ grid-template-columns:1fr !important; }
  /* Tabelid kerivad horisontaalselt, ei lõhu paigutust */
  .hr-table{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .hr-table table{ min-width:560px; }
  /* ⚠ KERIMINE KÄIB ÜMBRISEL, MITTE TABELIL ENDAL (leitud 04.09.2026).
     `display:block` + `overflow-x:auto` + `min-width:480px` SAMAL elemendil ei
     saa toimida: element ei keri iseenda miinimumlaiust, vaid ulatub kaardist
     välja ja lükkab lehe küljesuunas laiali. Lisaks lõhub `display:block`
     tabelil päise ja keha veergude joonduse. */
  #report, #entries{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  #report table{ min-width:480px; }
  /* Statistikaribad mähivad */
  .pr-stats{ flex-wrap:wrap !important; }
  .pr-stats .pr-stat{ flex:1 1 46% !important; }
  .kpi{ flex-wrap:wrap !important; gap:14px !important; }
  /* Eriosa/dokumenditüübi ruudustik 2 veergu */
  .sk-doctype-grid{ grid-template-columns:1fr 1fr !important; }
  /* Nupud ja read mugavamad puudutada */
  .btn{ font-size:13px; }
  .timer-bar{ flex-wrap:wrap !important; }
  .timer-bar .desc, .timer-bar .proj{ flex:1 1 100% !important; }
  /* Toastid ei kata kogu ekraani; bottom:64px hoiab „✎ Märkused" nupu kohal */
  #toast-wrap{ left:12px; right:12px; bottom:64px; max-width:none !important; }
}

/* ── index.html rida 5779 ── */
/* — Vundament — */
body{ background:var(--warm) !important; }
::selection{ background:var(--border); }
*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-thumb{ background:var(--sand); border-radius:0; border:2px solid var(--warm); }
*::-webkit-scrollbar-track{ background:transparent; }
:where(button,a,input,select,textarea,[tabindex]):focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:0; }
.page-wrap{ max-width:none !important; width:auto !important; margin:0 !important; padding:30px 40px 72px !important; }
.page-content.active{ animation:dsIn 0.25s ease both; }
@keyframes dsIn{ from{ opacity:0; transform:translateY(5px) } to{ opacity:1; transform:none } }
.pr-stat-num, .hr-table td, .muuk-card-hon, .m-value, .dash-stat, .cal-evt{ font-variant-numeric:tabular-nums; }

/* — Külgriba v3 — */
.site-header{ width:196px; box-shadow:none; }   /* handoff 14.08.2026: külgmenüü 196px */
/* page-outer oli display:flex → page-wrap (width:auto) tõmbus flex-lapsena sisu laiuseks (~400px).
   block-ina täidab page-wrap kogu vaba laiuse → KÕIK lehed täislaiuses igale kasutajale. */
/* KASKAADI-PARANDUS: margin-left oli siin globaalne + !important ja asus FAILIS HILJEM kui
   @media(max-width:820px){ .page-outer{margin-left:0} } → töölaua veeris võitis ka mobiilis.
   Tagajärg: 375px telefonil algas sisu x=240 pealt ja kasutatavat laiust jäi ~135px.
   display jääb globaalseks (vt kommentaari üleval); tingimuslikuks läheb AINULT veeris. */
.page-outer{ display:block !important; }
@media(min-width:821px){ .page-outer{ margin-left:196px !important; } }
.page-wrap{ width:auto !important; max-width:none !important; }
.site-logo-wrap{ padding:24px 20px 18px !important; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:6px; }
/* HANKEREGISTER JA AJAARVESTUS — sama tihedus mis Projektides (14.08.2026).
   Handoff: „Üks rida = üks kirje. 38 px." Hanketabel oli kastis (raam ümber,
   hall päisetaust, 11px polsterdus, vertikaalne joondus üles); nüüd hairline
   read ja keskele joondatud sisu, nagu projektitabelis. */
.hr-table{ border:none !important; overflow:visible !important; }
.hr-table table{ font-size:12px !important; }
.hr-table thead th{ background:none !important; font-size:10px !important; letter-spacing:.16em !important;
  color:var(--muted) !important; padding:0 12px 8px !important; border-bottom:1px solid var(--border) !important; }
.hr-table td{ padding:0 12px !important; height:38px; vertical-align:middle !important;
  border-bottom:1px solid var(--row-line) !important; }
.hr-table tbody tr:hover td{ background:rgba(240,236,231,.5); }
.hr-table .hr-sec td{ background:none !important; font-size:10px !important; letter-spacing:.16em !important;
  color:var(--muted) !important; padding:14px 12px 4px !important; height:auto; border-bottom:1px solid var(--border) !important; }

/* Ajaarvestuse päev-päis ja read said tiheduse juba varem; siin ainult
   mooduli pealkirja kuju ühtlustus teiste vaadetega. */
#page-ajaarvestus .page-head h1, #page-hankeregister .page-head h1{
  font-size:20px !important; font-weight:400 !important; letter-spacing:.06em !important; text-transform:uppercase; }

/* KÜLGMENÜÜ KOKKUHOIDVAKS (Luisa 14.08.2026: „võiks olla palju kokkuhoidvam").
   Handoff: rea kõrgus 26 px, logo 132 px. Varem oli rida 11px polsterdusega
   ~40 px kõrge ja logo 150 px — 16 nav-rida ei mahtunud ekraanile ära.
   Aktiivne rida saab savi vasakriba (2px), mitte tervet värvilist plaati. */
/* TÖÖLAUA PÄIS (handoff 14.08.2026: „Mitte kunagi tervitust, hero-plokki ega
   60 px pealkirja"). Varem: 40 px „Tere, Luisa!" + 34 px vahed iga ploki vahel
   — enne esimest päris infot kulus pool ekraani. Nüüd: mooduli pealkiri 19 px
   suurtähtedes, kuupäev kõrval metana, hairline alla, vahed 34 → 16 px.
   JS-i ei muudetud: needsamad elemendid, ainult teine kuju. */
#dash-greet-wrap{ align-items:baseline !important; gap:14px !important; margin-bottom:14px !important;
  padding-bottom:12px; border-bottom:1px solid var(--border); }
#dash-greet-wrap > div:first-child{ flex-direction:row !important; align-items:baseline !important; gap:12px !important; }
.dash-greet{ font-size:20px !important; font-weight:400 !important; letter-spacing:.06em !important;
  text-transform:uppercase; margin:0 !important; line-height:1.2 !important; }
.dash-date{ margin-bottom:0 !important; font-size:11px !important; letter-spacing:.14em !important; }
#page-avaleht #dash-attention, #page-avaleht #dash-tanane, #page-avaleht #dash-onboard{ margin-bottom:16px !important; }

.site-nav-btn{ padding:6px 12px !important; min-height:26px; display:flex; align-items:center;
  font-size:12px !important; line-height:1.25; border-left:2px solid transparent !important; }
.site-nav-btn.active{ background:rgba(240,236,231,.55) !important; border-left:2px solid var(--border2) !important; }
.site-nav{ gap:0 !important; }
.site-nav-wrap{ padding:2px 8px 10px !important; }
.site-logo-wrap{ padding:14px 12px 10px !important; }.site-logo{ gap:6px !important; }
.site-nav-group{ margin-top:10px !important; }
.site-nav-group > .site-nav-grouplbl, .site-nav-grouplbl{ font-size:10px !important; letter-spacing:.18em !important;
  padding:6px 12px 4px !important; color:var(--muted) !important; }
.htimer-pill{ margin:auto 8px 6px !important; }
/* SEE SHORTHAND SOI margin-top:auto ARA - Luisa: kasutajanimi ei olnud all
   aares. Pohja surub nuud nav-wrapi flex:1; siin ainult sisemus. */
.auth-user-btn{ margin:0 !important; padding:12px 14px !important; font-size:12px !important; }
.site-nav-btn.active{ background:var(--accent-light) !important; box-shadow:none; }
/* NB: see rida on FAILIS HILJEM kui põhireegel → siin peab värv/kaal olema sama,
   muidu tõmbaks vana hall (--faint, weight 500) grupipealkirjad taas tuhmiks. */
.site-nav-group{ padding:18px 14px 8px; font-size:10px; font-weight:500; color:var(--heading); }
/* ★ = seda lehte näevad AINULT juhid (Luisa + Egert). Tärn ise on nähtav ainult
   adminile — töötaja neid lehti niikuinii ei näe, tal poleks tärnil mõtet. */
/* NB: .site-nav-btn EI ole flex (tavaline <button>), seega margin-left:auto ei
   tõstaks tärni paremasse serva — jätame ta sõna järele väikese vahega. */
.nav-adm{ margin-left:6px; font-size:10px; color:var(--accent); opacity:.75; vertical-align:1px; }
.site-nav-btn:hover .nav-adm, .site-nav-btn.active .nav-adm{ opacity:1; }
.site-header .htimer-pill{ background:var(--white) !important; border:1px solid var(--border2); border-radius:0; color:var(--text); }
.site-header .auth-user-btn{ background:transparent; border:none; border-top:1px solid var(--border); border-radius:0; color:var(--text); }
@media print{ .site-header{ display:none !important } .page-outer{ margin-left:0 !important } }
/* Mobiil: sisu ei tohi jääda fikseeritud hamburgeri (top-left) alla. See rGeel peab
   olema HILJEM kui globaalne „.page-wrap{padding:30px…}" ülal, muidu 30px võidab. */
@media(max-width:820px){ .page-wrap{ padding-top:62px !important; } }
/* Luisa 2026-08-03: „telefonis saaks sisu olla täislaiuses, praegu kaob väga palju
   ruumi äärtest". Põhjus oli SAMA kaskaadi-lõks, mille kohta ülal hoiatus seisab:
   @media(max-width:640px){.page-wrap{padding:60px 14px}} on failis VAREM kui
   globaalne „.page-wrap{padding:30px 40px}" → 40px võitis ka telefonis.
   Mõõdetud 375px ekraanil: 40+40 = 80px ehk 21% ekraanist kadus veeristesse.
   Need reeglid peavad jääma siia, globaalse JÄRELE. */
@media(max-width:820px){ .page-wrap{ padding-left:22px !important; padding-right:22px !important; } }
@media(max-width:640px){
  .page-wrap{ padding-left:12px !important; padding-right:12px !important; padding-bottom:56px !important; }
  .card{ padding:14px 12px !important; }
  /* Kaardisisesed ruudustikud ei tohi lisada veel oma veeriseid */
  .pr-metrics, .hr-grid{ gap:8px !important; }
}
@media(max-width:360px){ .page-wrap{ padding-left:8px !important; padding-right:8px !important; } }

/* Paaniridade sildid — mõlemad read näevad välja täpselt ühesugused (Luisa soov),
   erineb ainult silt kohal. Silt on väike ja vaikne, et paanid ise domineeriksid. */
.pr-statrow{ margin-bottom:14px; }
.pr-statrow .pr-stats{ margin-bottom:0 !important; }
.pr-statrow-lbl{ font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin:0 0 6px 2px; }
/* `.pr-stat:first-child` on GLOBAALSELT tume — see oli „Aktiivsed" koondplaadi tint
   ja seda kasutab ka Standardite leht (seal jääb alles). Projektide MÕLEMA rea
   „Kõik" paanilt on must taust maas (Luisa 2026-08-04) — read peavad olema
   ühesugused ja must plokk lõi rea katki. Valituks märkimine (.on) töötab edasi
   tavalise paani moodi: savi alljoon + hele taust. */
#pr-stats .pr-stat:first-child,
#pr-stats-2 .pr-stat:first-child{ background:none !important; border-color:transparent !important; }
#pr-stats .pr-stat:first-child .pr-stat-num,
#pr-stats-2 .pr-stat:first-child .pr-stat-num{ color:var(--heading) !important; }
#pr-stats .pr-stat:first-child .pr-stat-lbl,
#pr-stats-2 .pr-stat:first-child .pr-stat-lbl{ color:var(--muted) !important; }
#pr-stats .pr-stat:first-child.on,
#pr-stats-2 .pr-stat:first-child.on{ background:var(--accent-light) !important; box-shadow:none; }
#pr-stats .pr-stat:first-child.on .pr-stat-lbl,
#pr-stats-2 .pr-stat:first-child.on .pr-stat-lbl{ color:var(--accent-dark) !important; }

/* ── FILTRIRIBA v3 (Luisa 17.08.2026: „see ikka üldse ei meeldi, tee selgemalt")
   Mis oli valesti v2-s (puhas tekstirida): 9,5px suurtähtedes sildid arvudega
   kõrvuti ei näinud välja nagu MIDAGI, mida saab vajutada; valitud filtrit eristas
   ainult värvinüanss; kaks rida nägid välja nagu üks segane laual olev tekst.
   Nüüd: iga filter on päris nupp (hairline-raam, loetav silt tavakirjas, arv eraldi),
   valitud on savi täidis — kaugelt näha. Ridade sildid on VASAKUS veerus, nii et
   „Projekteerimisel" ja „Projekteeritud" on nähtavalt kaks eri rühma.
   NB: uued klassinimed (.pr-chip) meelega — vana .pr-stat jääb Standardite lehele. */
.pr-statrow{ display:flex; align-items:flex-start; gap:14px; margin-bottom:10px; }
.pr-statrow-lbl{ flex:0 0 104px; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin:0 !important; padding-top:10px; line-height:1.2; }
#pr-stats, #pr-stats-2{ display:flex !important; flex-wrap:wrap; gap:6px !important;
  align-items:center !important; padding:0 !important; margin:0 !important;
  background:none !important; border:none !important; flex:1 1 auto; }
.pr-chip{ display:inline-flex; align-items:center; gap:8px; height:30px; padding:0 12px;
  border:1px solid var(--border); border-radius:0; background:var(--white);
  font-family:inherit; font-size:12px; line-height:1; color:var(--text);
  cursor:pointer; white-space:nowrap; transition:border-color 0.1s, background 0.1s, color 0.1s; }
.pr-chip:hover{ border-color:var(--accent); color:var(--accent-dark); }
.pr-chip-num{ font-size:12px; font-weight:500; color:var(--muted);
  font-variant-numeric:tabular-nums; }
.pr-chip.on{ background:var(--header); border-color:var(--header); color:var(--white); font-weight:400; }
.pr-chip.on .pr-chip-num{ color:rgba(255,255,255,.78); }
/* Värv ainult TÄHENDUSE jaoks (Luisa 2026-08-03: „miks siin erivärvid on"):
   punane = vajab tähelepanu, savi = tööks avatav nimekiri. Faasid jäävad neutraalseks. */
.pr-chip-risk .pr-chip-num{ color:var(--red); }
.pr-chip-risk:hover{ border-color:var(--red); color:var(--red); }
.pr-chip-risk.on{ background:var(--red); border-color:var(--red); }
.pr-chip-risk.on .pr-chip-num{ color:rgba(255,255,255,.85); }
.pr-chip-acc .pr-chip-num{ color:var(--accent); }

/* ── AI EI OLE TÖÖTAJA VALIK (Luisa 17.08.2026) ───────────────────────────────
   „ma ei tahaks kuskil anda võimalust töötajatel saada valida kas AI või mitte,
   kõik on nii nagu mina otsustan ja määran."
   Seletuskirjade leht oli AINUS töötajale nähtav koht, kus oli kahvel „tasuta VÕI
   AI" (AI-abi, Hankeregister, Hinnapakkumine, Korrastus on juba juhtkonna-lehed,
   vt NAV_ADMIN_LEHED). Nüüd näeb töötaja ainult seda teed, mille Luisa on määranud;
   AI-variandid ja neid tutvustav tekst on `.ai-valik` taga.
   Vaikimisi PEIDUS ja nähtavaks alles `body.on-admin` peale — nii ei vilgu nupp
   enne konto laadimist ja viga langeb ohutule poolele (peidus, mitte lahti). */
body:not(.on-admin) .ai-valik{ display:none !important; }
@media(max-width:820px){
  .pr-statrow{ flex-direction:column; gap:6px; margin-bottom:12px; }
  .pr-statrow-lbl{ flex:none; padding-top:0; }
  .pr-chip{ height:34px; }
}

/* ── Külgriba mahub ÜHELE VAATELE, ilma kerimiseta (Luisa 2026-08-04) ─────────
   Mõõdetud 1440×800 ekraanil: sisu 906px, nähtav 800px → 106px kerimist.
   Kulu jagunes: 13 nuppu × 37px = 481 · 3 grupisilti × 42px = 126 · logo 53 · otsing 41.
   Kompaktsus on seotud EKRAANI KÕRGUSEGA, mitte kõigile peale surutud:
   madalal sülearvutil tihe, ≥940px ekraanil praegune õhulisus tagasi.
   Mobiili (≤820px) EI puuduta — seal on sahtel ja 44px puutetsoonid teadlikult.
   NB: peab asuma failis HILJEM kui „.site-nav-btn{padding:10px 12px !important}",
   muidu ei jõustu (sama kaskaadi-lõks mis .page-wrap veeristega ülal). */
@media(min-width:821px){
  .site-logo-wrap{ padding:16px 20px 12px !important; }
  .site-nav-search{ padding:8px 12px !important; }
  .site-nav-group{ padding:10px 14px 4px !important; }
  .site-nav-btn{ padding:6px 12px !important; font-size:13px !important; }
  /* Kui kõik siiski ei mahu (nt suurem fondiseade), keri riba ise, mitte leht */
  .site-header{ overflow-y:auto; }
}
@media(min-width:821px) and (min-height:940px){
  .site-logo-wrap{ padding:24px 20px 18px !important; }
  .site-nav-search{ padding:10px 12px !important; }
  .site-nav-group{ padding:18px 14px 8px !important; }
  .site-nav-btn{ padding:10px 12px !important; font-size:13px !important; }
}

/* — Lehepäis — */
.page-head h1{ font-size:30px; font-weight:300; letter-spacing:-.015em; }
.page-head .ph-sub{ font-size:13px; }
.page-head{ margin-bottom:14px; }

/* — Nupud: selge hierarhia + puudutus — */
.btn{ border-radius:0; transition:transform 0.1s, background 0.15s, border-color 0.15s, box-shadow 0.15s, opacity 0.15s; }
.btn:hover:not(:disabled){ opacity:1; }
.btn:active:not(:disabled){ transform:scale(.985); }
.btn-primary:hover:not(:disabled){ background:#000; box-shadow:none; }
.btn-ghost:hover:not(:disabled){ background:var(--warm); border-color:var(--sand); }.hr-btn-s{ border-radius:0; transition:background 0.15s, border-color 0.15s; }
/* Teamsi seis projektikaardi päises (15.09.2026): roheline = loodud, punakas = loomata */
a.hr-btn-s.pr-teams-on, .hr-btn-s.pr-teams-on{ background:var(--ok-light) !important; border-color:var(--st-ok) !important; color:#3F5A38 !important; text-decoration:none; }
.hr-btn-s.pr-teams-off{ background:#F6E9E4 !important; border-color:var(--red) !important; color:#7C2E21 !important; }
/* — Sisendid — */
input[type=text]:hover, input[type=search]:hover, input[type=number]:hover, input[type=date]:hover, textarea:hover, select:hover{ border-color:var(--sand); }
input::placeholder, textarea::placeholder{ color:var(--muted); }
.pr-search{ border-radius:0; }

/* — Kaardid ja pinnad — */
.card{ border-radius:0; box-shadow:none; }

/* — Scoro-stiilis projekti cockpit: health-bar + tabid — */
.pr-health{ display:flex; flex-wrap:wrap; background:var(--white); border:1px solid var(--border); border-radius:0; overflow:hidden; margin:14px 0 16px; box-shadow:none; }
/* — Projekti elukaar (post-TP elutsükli stepper) — */
.elukaar-wrap{ background:var(--white); border:1px solid var(--border); border-radius:0; padding:14px 16px; margin:0 0 16px; box-shadow:none; }
.elukaar-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; gap:10px; flex-wrap:wrap; }
.elukaar-title{ font-size:12px; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.elukaar-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.elukaar-steps{ display:flex; align-items:flex-start; }
.elukaar-step{ flex:1; text-align:center; position:relative; min-width:0; }
.elukaar-dot{ width:26px; height:26px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:500; background:var(--border); color:var(--muted); border:2px solid var(--border); position:relative; z-index:2; }
.elukaar-step.done .elukaar-dot{ background:var(--accent); border-color:var(--accent); color:var(--white); }
.elukaar-step.now .elukaar-dot{ background:var(--gold); border-color:var(--gold); color:var(--heading); box-shadow:none; }
.elukaar-lbl{ font-size:11px; margin-top:6px; color:var(--muted); font-weight:500; line-height:1.25; }
.elukaar-step.done .elukaar-lbl, .elukaar-step.now .elukaar-lbl{ color:var(--heading); }
.elukaar-kp{ font-size:10px; color:var(--muted); margin-top:1px; }
.elukaar-step:not(:first-child)::before{ content:""; position:absolute; top:12px; left:-50%; width:100%; height:2px; background:var(--border); z-index:1; }
.elukaar-step.done::before, .elukaar-step.now::before{ background:var(--accent); }
.elukaar-done-note{ font-size:12px; color:var(--accent); font-weight:500; }
/* — „Pildistamist vajab" töönimekiri — */
.pild-head{ font-size:13px; margin:4px 0 12px; font-weight:500; }
.pild-count{ display:inline-block; min-width:22px; padding:1px 8px; border-radius:0; background:var(--accent-light); color:var(--accent-dark); font-weight:500; text-align:center; }
.pild-list{ border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:var(--white); }
.pild-row{ display:flex; align-items:center; gap:14px; padding:14px 16px; border-bottom:1px solid var(--border); }
.pild-row:last-child{ border-bottom:0; }
.pild-ic{ width:34px; height:34px; border-radius:0; background:var(--accent-light); color:var(--accent-dark); display:flex; align-items:center; justify-content:center; font-size:16px; flex:none; }
.pild-main{ flex:1; min-width:0; }
.pild-nm{ font-weight:500; color:var(--heading); font-size:13px; }
.pild-ad{ font-size:12px; color:var(--muted); }
.pild-age{ font-size:12px; color:var(--accent-dark); font-weight:500; flex:none; white-space:nowrap; }
.pild-acts{ display:flex; gap:8px; flex:none; }@media(max-width:640px){ .pild-row{ flex-wrap:wrap; } .pild-age{ order:3; } .pild-acts{ width:100%; justify-content:flex-end; } }
/* — Load & tingimused (loamenetlus mini-stepper + checklist) — */
.load-wrap{ margin-top:14px; padding-top:12px; border-top:1px dashed var(--border); }
.load-head{ font-size:12px; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; }
.lm-steps{ display:flex; align-items:flex-start; margin-bottom:6px; }
.lm-step{ flex:1; text-align:center; position:relative; min-width:0; }
.lm-dot{ width:22px; height:22px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:500; background:var(--border); color:var(--muted); border:2px solid var(--border); position:relative; z-index:2; }
.lm-lbl{ font-size:10px; margin-top:6px; color:var(--muted); font-weight:500; line-height:1.2; }
.lm-step:not(:first-child)::before{ content:""; position:absolute; top:10px; left:-50%; width:100%; height:2px; background:var(--border); z-index:1; }
.lm-saadud .lm-dot{ background:var(--st-ok); border-color:var(--st-ok); color:var(--white); } .lm-saadud .lm-lbl{ color:var(--heading); }
.lm-saadud::before{ background:var(--st-ok); }
.lm-esitatud .lm-dot{ background:var(--gold); border-color:var(--gold); color:var(--heading); } .lm-esitatud .lm-lbl{ color:var(--heading); }
.lm-esitatud::before{ background:var(--gold); }
.lm-pole_vaja .lm-dot{ opacity:.5; }
.load-list{ margin-top:6px; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; background:var(--white); }
.load-grupp{ font-size:10px; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); background:var(--surface); padding:6px 12px; border-bottom:1px solid var(--border); }
.load-item{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; border-bottom:1px solid var(--border); font-size:12px; }
.load-item:last-child{ border-bottom:0; }
.load-nm{ color:var(--heading); display:flex; align-items:center; gap:8px; }
.load-ehr{ font-size:10px; font-weight:500; letter-spacing:.04em; padding:1px 6px; border-radius:0; background:var(--accent-light); color:var(--accent-dark); }
.load-right{ display:flex; align-items:center; gap:10px; flex:none; }
.load-kp{ font-size:11px; color:var(--muted); min-width:62px; text-align:right; }
.load-esitatud{ background:var(--warm); border-color:var(--border); color:var(--accent-dark); }
.load-saadud{ background:var(--ok-light); border-color:var(--ok-light); color:var(--st-ok); }
.load-pole_vaja{ background:var(--surface); color:var(--muted); }
/* — EHR (Kiht A) loa/ehituse staatuse-riba elukaares — */
.ehr-row{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:14px; padding-top:12px; border-top:1px dashed var(--border); font-size:12px; }
.ehr-tag{ font-size:10px; font-weight:500; letter-spacing:.05em; padding:2px 8px; border-radius:0; background:var(--accent); color:var(--white); }
.ehr-tag-off{ background:var(--border2); color:var(--text2); }
.ehr-st{ font-weight:500; color:var(--heading); }
.ehr-luba{ font-size:11px; font-weight:500; color:var(--st-ok); background:var(--ok-light); border-radius:0; padding:1px 8px; }
.ehr-renov{ font-size:11px; font-weight:500; color:var(--accent-dark); background:var(--warm); border:1px solid var(--border); border-radius:0; padding:1px 8px; }
.ehr-link{ color:var(--accent-dark); text-decoration:none; }
.ehr-link:hover{ text-decoration:underline; }
.ehr-checked{ color:var(--muted); font-size:11px; }
.ehr-kp{ color:var(--muted); font-size:11px; width:100%; }
.ehr-acts{ display:inline-flex; gap:6px; }
.ehr-markus{ color:var(--red); font-size:11px; width:100%; }
.ehr-results{ width:100%; }
.ehr-search-box{ display:flex; gap:8px; margin:8px 0; width:100%; }
.ehr-search-box input{ flex:1; padding:8px 10px; border:1px solid var(--border2); border-radius:var(--radius-sm); font-size:13px; font-family:inherit; }
.ehr-cand{ display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); margin-bottom:6px; background:var(--surface); }
.ehr-cand-main{ flex:1; min-width:0; }
.ehr-cand-nm{ font-weight:500; color:var(--heading); font-size:12px; }
.ehr-cand-sub{ font-size:11px; color:var(--muted); }
.ehr-cand-st{ font-size:11px; font-weight:500; padding:2px 8px; border-radius:0; background:var(--accent-light); color:var(--accent-dark); white-space:nowrap; }
.pr-hcell{ flex:1 1 0; min-width:104px; padding:8px 14px; border-left:1px solid var(--border); display:flex; flex-direction:column; gap:4px; }
.pr-hcell:first-child{ border-left:none; }
/* Silt ja väärtus (Luisa 18.08.2026: „liiga boldis tekst"). Paks kiri oli siin
   kahekordne rõhutus: väärtus on niikuinii suurem ja tumedam kui silt ümberringi.
   Ülejäänud rakenduses on 700 ammu kadunud — see riba oli viimane koht. */
.pr-hl{ font-size:10px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.pr-hv{ font-size:14px; font-weight:400; color:var(--heading); line-height:1.2; }
.pr-hv.soon{ color:var(--accent); } .pr-hv.over{ color:var(--red,var(--red)); }
.pr-tabs{ display:flex; gap:2px; border-bottom:1px solid var(--border); margin-bottom:16px; flex-wrap:wrap; }
.pr-tab{ background:none; border:none; padding:10px 16px; font:inherit; font-size:13px; font-weight:500; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color 0.1s; }
.pr-tab:hover{ color:var(--heading); }
.pr-tab.active{ color:var(--heading); border-bottom-color:var(--gold,var(--accent)); }
.pr-aeg-tbl{ width:100%; border-collapse:collapse; font-size:13px; }
.pr-aeg-tbl th{ font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); text-align:left; padding:6px 10px; border-bottom:1px solid var(--border); }
.pr-aeg-tbl td{ padding:8px 10px; border-bottom:1px solid var(--border); }
.pr-aeg-tbl .num{ text-align:right; font-variant-numeric:tabular-nums; }
.pr-aeg-tbl .over{ color:var(--red,var(--red)); font-weight:500; }
.pr-budbar{ height:8px; background:var(--warm); border-radius:0; overflow:hidden; min-width:60px; }
.pr-budbar-fill{ height:100%; background:var(--accent,var(--st-ok)); border-radius:0; transition:width 0.25s; }
.pr-budbar-fill.over{ background:var(--red,var(--red)); }
.pr-plaan-inp{ font:inherit; font-size:12px; padding:4px 6px; border:1px solid var(--border); border-radius:0; width:64px; }
@media(max-width:640px){ .pr-hcell{ flex:1 1 46%; min-width:0; } }
.card-label{ padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:16px; }
.pr-card, .hr-card{ transition:transform 0.1s, box-shadow 0.15s, background 0.1s; }
.pr-card:hover, .hr-card:hover{ transform:translateY(-1px); }
/* .pr-stats radius eemaldatud — loendusriba ei ole kast (14.08.2026) */
.pr-stat-lbl{ font-size:10px; }

/* — Tabelid — */
/* 14.08.2026: hall päisetaust ja beež hover asendatud hairline-keelega —
   vt ülalpool „HANKEREGISTER JA AJAARVESTUS" plokki. Need read jäid alles ja
   kirjutasid selle üle (mõõdetud brauseris: päis oli endiselt #F0ECE7). */
.hr-table{ border-radius:0; border:none; }
.hr-table thead th{ background:none; }
.hr-table tbody tr{ transition:background 0.15s cubic-bezier(.4,0,.2,1); }
.hr-table tbody tr:hover td{ background:rgba(240,236,231,.5); }
.hr-table table{ font-size:12px; }
.hr-table td{ padding:0 12px; height:38px; vertical-align:middle; }

/* — Kanban: füüsiline tunnetus — */
.muuk-col{ background:var(--warm); border:1px solid var(--border); border-radius:0; }
.muuk-card{ border-radius:0; border-left-color:var(--gold); transition:transform 0.25s, box-shadow 0.15s; }
.muuk-card:hover{ transform:translateY(-1px); box-shadow:none; }
.muuk-card.dragging{ opacity:.5; transform:rotate(2deg) scale(1.02); }
.muuk-col.dragover{ outline-color:var(--gold); background:var(--warm); }

/* — Modalid: pehme sisenemine — */
.pr-modal-overlay{ background:rgba(20,19,14,.5); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.pr-modal-inner{ border-radius:0; box-shadow:none; animation:dsUp 0.25s ease both; padding:26px 28px; }
@keyframes dsUp{ from{ opacity:0; transform:translateY(14px) } to{ opacity:1; transform:none } }

/* — Globaalne otsing — */
#gsearch > div{ animation:dsUp 0.15s ease both; }

/* — Ajaarvestus brändi-pronksiks (oli roheline) — */
#page-ajaarvestus{ --accent:#9E5A38; --accent-soft:#874A2C; }

/* — Dashboard pisidetailid — */
/* — Projekti auto-ajatelg (V2: koondab faasid, ülesanded, tegevused, tunnid) — */
.pr-tl2{ position:relative; margin:4px 0 2px; }
.pr-tl2-row{ position:relative; display:flex; align-items:flex-start; gap:12px; padding:6px 0 6px 18px; border-left:2px solid var(--border); margin-left:6px; }
.pr-tl2-row:last-child{ border-left-color:transparent; }
.pr-tl2-dot{ position:absolute; left:-7px; top:8px; width:11px; height:11px; border-radius:50%; background:var(--muted); border:2px solid var(--white); }
.pr-tl2-dot.start{ background:var(--accent); } .pr-tl2-dot.faas{ background:var(--text2); }
.pr-tl2-dot.deadline{ background:var(--accent); } .pr-tl2-dot.done{ background:var(--st-ok); }
.pr-tl2-dot.task{ background:var(--accent); } .pr-tl2-dot.log{ background:var(--faint); }
.pr-tl2-dot.time{ background:var(--st-ok); } .pr-tl2-dot.over{ background:var(--red,var(--red)); }
.pr-tl2-dot.file{ background:var(--text2); }
.pr-tl2-dot.kov{ background:var(--accent); } .pr-tl2-dot.email{ background:var(--text2); }
.pr-tl2-dot.eriosa{ background:var(--st-ok); }
.pr-tl2-d{ flex:0 0 62px; font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; padding-top:1px; }
.pr-tl2-t{ flex:1; font-size:13px; color:var(--text); line-height:1.35; }
.pr-tl2-t .s{ color:var(--muted); font-size:11px; }
.pr-tl2-row.future .pr-tl2-t{ color:var(--muted); }
.pr-tl2-cd{ font-size:10px; font-weight:500; padding:1px 8px; border-radius:0; background:var(--warm); color:var(--muted); margin-left:6px; white-space:nowrap; }
.pr-tl2-cd.soon{ background:var(--warm); color:var(--accent-dark); } .pr-tl2-cd.over{ background:var(--red-light); color:var(--red); }
.pr-tl2-row.today{ border-left-color:var(--red,var(--red)); }
.pr-tl2-row.today .pr-tl2-dot{ background:var(--red,var(--red)); width:13px; height:13px; left:-8px; top:7px; }
.pr-tl2-row.today .pr-tl2-t{ color:var(--red,var(--red)); font-weight:500; }
.pr-tl2-empty{ font-size:12px; color:var(--muted); padding:6px 0; line-height:1.45; }

/* — Projekti-assistent: "Mida teha" — arhitekti peamine fookus, rahulikud loetavad kaardid — */
.pr-as{ display:flex; flex-direction:column; gap:8px; margin:2px 0 6px; }
.pr-as-row{ display:flex; gap:12px; align-items:flex-start; padding:12px 16px; border-radius:0; background:var(--white); border:1px solid var(--border); border-left:4px solid var(--muted); box-shadow:none; }
.pr-as-row.high{ border-left-color:var(--red); background:var(--red-light); }
.pr-as-row.med{ border-left-color:var(--accent); background:var(--warm); }
.pr-as-row.info{ border-left-color:var(--text2); background:var(--warm); }
.pr-as-row.ok{ border-left-color:var(--st-ok); background:var(--ok-light); }
.pr-as-ic{ font-size:14px; line-height:1.5; flex:0 0 auto; }
.pr-as-row.high .pr-as-ic{ color:var(--red); } .pr-as-row.med .pr-as-ic{ color:var(--accent); }
.pr-as-row.info .pr-as-ic{ color:var(--text2); } .pr-as-row.ok .pr-as-ic{ color:var(--st-ok); }
.pr-as-tx{ flex:1; font-size:13px; color:var(--text); line-height:1.5; }
.pr-as-tx b{ font-weight:500; color:var(--heading); }
.pr-as-btn{ align-self:center; flex:0 0 auto; margin-left:4px; padding:6px 14px; border:1px solid var(--border2); background:var(--white); color:var(--heading); border-radius:0; font-family:inherit; font-size:12px; font-weight:500; cursor:pointer; white-space:nowrap; transition:background 0.1s, border-color 0.1s; }
.pr-as-btn:hover{ background:var(--bg); border-color:var(--muted); }
/* Faasi staatus — ühe-klõpsu pill (Ootel/Käib/Tehtud) */
.pr-faas-st-btn{ font-family:inherit; font-size:11px; font-weight:500; padding:4px 12px; border-radius:0; border:1px solid transparent; cursor:pointer; white-space:nowrap; transition:filter 0.1s; }
.pr-faas-st-btn:hover{ filter:brightness(.95); }
.pr-faas-st-btn.st-ootel{ background:var(--warm); color:var(--text2); }
.pr-faas-st-btn.st-kaib{ background:var(--warm); color:var(--text2); }
.pr-faas-st-btn.st-tehtud{ background:var(--ok-light); color:var(--st-ok); }
/* Avalehe ulatuse-lüliti (Minu / Kõik) */.dash-scope-btn.active{ background:var(--header); color:var(--white); }
/* Päringud cockpitis */
.pr-par-row{ display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--border); }
.pr-par-row.done{ opacity:.6; }
.pr-par-main{ flex:1; min-width:0; }
.pr-par-tx{ font-size:13px; color:var(--text); line-height:1.4; }
.pr-par-sub{ font-size:11px; color:var(--text2); margin-top:2px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.pr-par-vastus{ font-size:12px; margin-top:6px; padding:6px 10px; background:var(--bg); border-radius:0; line-height:1.45; }
.pr-par-act{ display:flex; gap:6px; flex:0 0 auto; }
.pr-par-add{ display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; align-items:center; }
.pr-par-add input[type=text]{ flex:1 1 200px; }
.pr-par-add select{ width:auto; min-width:130px; flex:0 1 160px; }
.pr-par-add input[type=date]{ width:auto; flex:0 0 auto; }
/* Eriosa staatus cockpitis */
.pr-erio-list{ display:flex; flex-direction:column; gap:6px; }
.pr-erio-row{ display:flex; align-items:center; gap:10px; }
.pr-erio-nimi{ flex:1; min-width:0; font-size:13px; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-erio-mail{ color:var(--accent); text-decoration:none; flex:0 0 auto; font-size:14px; }
.pr-erio-st{ flex:0 0 auto; font-family:inherit; font-size:11px; font-weight:500; padding:4px 12px; border-radius:0; border:1px solid transparent; cursor:pointer; transition:filter 0.1s; }
.pr-erio-st:hover{ filter:brightness(.95); }
.pr-erio-st.st-ootel{ background:var(--warm); color:var(--text2); }
.pr-erio-st.st-kusitud{ background:var(--warm); color:var(--accent-dark); }
.pr-erio-st.st-toos{ background:var(--warm); color:var(--text2); }
.pr-erio-st.st-valmis{ background:var(--ok-light); color:var(--st-ok); }
/* Isiklikud märkmed cockpitis */
.pr-mark-row{ display:flex; gap:8px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--border); }
.pr-mark-tx{ flex:1; font-size:13px; color:var(--text); line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.pr-mark-del{ flex:0 0 auto; border:none; background:none; color:var(--muted); font-size:16px; cursor:pointer; line-height:1; padding:0 4px; }
.pr-mark-del:hover{ color:var(--red,var(--red)); }
.pr-mark-add{ display:flex; gap:6px; margin-top:10px; align-items:center; }
.pr-mark-add input{ flex:1 1 auto; }

/* — Portfelli tervisetahvel (juhi 10-sekundi-ülevaade) — */.pr-tchip.high{ border-left-color:var(--red,var(--red)); }
.pr-tchip.med{ border-left-color:var(--accent); }
.pr-tchip.ok{ border-left-color:var(--st-ok); }

/* — Kokkupandavad cockpiti detailsektsioonid (vähem müra arhitektile) — */
.pr-fold{ border-top:1px solid var(--border); }
.pr-fold > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; padding:12px 2px; font-size:11px; font-weight:400; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); user-select:none; }
.pr-fold > summary::-webkit-details-marker{ display:none; }
.pr-fold > summary::before{ content:'›'; font-size:16px; line-height:1; display:inline-block; transition:transform 0.15s; color:var(--muted); }
.pr-fold[open] > summary::before{ transform:rotate(90deg); }
.pr-fold > summary:hover{ color:var(--heading); }
.pr-fold > summary .pr-sec-sub{ text-transform:none; letter-spacing:normal; font-weight:400; }
.pr-fold-body{ padding:0 2px 16px; }



/* ═══ PEALKIRJADE HIERARHIA — KOLM TASET (Luisa 18.08.2026) ═══════════════════
   Probleem, mille analüüs välja tõi: rakenduses on 26 eri klassi, mis on
   pealkirjad, aga ainult ~6 eri välimust. Viis täiesti eri tähendusega asja —
   sektsioonipealkiri, mõõdiku silt, filtrinupu silt, vestluse kõneleja ja
   nav-grupp — nägid välja PIKSLI PEALT ühesugused (9px/.18em/hall). Sellest ka
   „ei saa aru, mis on sektsioon ja mis alamosa".
   Kõige selgem näide: `.load-head` on `.elukaar-wrap` SEES, aga oli emaplokiga
   identne — alamosa nägi välja nagu ülemosa.
   Kolm taset. Vahe EI OLE ainult suurus (9 vs 11px ei ole ekraanil eristatav),
   vaid VÄRV + KAAL + JOON:
     T1 lehe pealkiri   19px/400/.06em/ink   (üks kord lehe kohta)
     T2 sektsioon       11px/500/.14em/ink   + hairline all
     T3 alamosa/silt     9px/400/.18em/hall  ilma jooneta
   NB: see plokk on failis HILJEM kui kõik varasemad reeglid — nii ei pea 26 kohta
   ükshaaval muutma ja tagasipööramiseks piisab selle ploki eemaldamisest. */

/* — T2: sektsioon — */

.pr-sec-h,
.elukaar-title,
.pild-head,
.ua-h, .ob-h,
.sk-cmp-h,
.tw-liigid-pea,
.muuk-col-head,
.mk-grp,
.hp-sec b{
  font-size:11px !important; font-weight:500 !important; letter-spacing:.14em !important;
  text-transform:uppercase !important; color:var(--heading) !important;
}
.card-label{ padding-bottom:6px; border-bottom:1px solid var(--border); margin-bottom:10px; }
.pr-sec-h{ padding-bottom:6px; border-bottom:1px solid var(--border); margin-bottom:10px; }
/* Püsiv tagasivõtu nupp lehe ülaservas (15.09.2026) */
/* 22.09.2026: nupp oli päise kõrgusel ja kadus silmist; nüüd vahetult päise all,
   savi ääristusega, et ta oleks märgatav ka siis, kui ekraanil on palju sisu. */
/* 25.09.2026 (Luisa: see on natuke halvas kohas): ueleval paremal kattis
   paeise nupud (Logi aeg / Juhend / Arhitekti vaade). Nuued all paremal,
   toastide kohal - sama nurk, kus muudki ajutised teated, ei varja midagi. */
#undo-nupp{ position:fixed; top:auto; bottom:14px; right:18px; border-color:var(--accent) !important; box-shadow:0 2px 10px rgba(0,0,0,.08); z-index:60; display:inline-flex; align-items:center; gap:8px; max-width:46vw; padding:8px 12px; border:1px solid var(--ink); background:var(--white); color:var(--ink); font:inherit; font-size:12px; cursor:pointer; box-shadow:none; }
#undo-nupp:hover{ background:var(--soft); }
#undo-nupp .undo-nupp-msg{ color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:28vw; }
#undo-nupp .undo-nupp-kell{ color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:640px){ #undo-nupp{ right:12px; max-width:80vw; } #undo-nupp .undo-nupp-msg{ display:none; } }
/* Seletuskirja küttevalik (15.09.2026) */
.eng-kyte{ display:flex; flex-direction:column; gap:8px; font-size:12px; }
.eng-kyte-rida{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; }
.eng-kyte-silt{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); min-width:64px; }
.eng-kyte label{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; white-space:nowrap; }
/* Ehitusel käimine (15.09.2026) */
.pr-visiit{ display:grid; grid-template-columns:96px 150px 1fr auto; gap:10px; align-items:baseline; padding:6px 0; border-bottom:1px solid var(--border); font-size:13px; }
.pr-visiit-kp{ font-variant-numeric:tabular-nums; color:var(--text); } .pr-visiit-kes{ color:var(--text2); } .pr-visiit-markus{ color:var(--muted); overflow-wrap:anywhere; }
.pr-visiit-add{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:10px; } .pr-visiit-add input[type=text]{ flex:1 1 220px; }
@media (max-width:640px){ .pr-visiit{ grid-template-columns:1fr auto; } .pr-visiit-markus{ grid-column:1 / -1; } }
/* Kontaktide tab (14.09.2026) */
.pr-kontakt-rida{ display:grid; grid-template-columns:130px 1fr auto; gap:12px; align-items:baseline; padding:8px 0; border-bottom:1px solid var(--border); font-size:13px; }
.pr-kontakt-roll{ color:var(--muted); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.pr-kontakt-nimi{ min-width:0; overflow-wrap:anywhere; }
.pr-kontakt-kanal{ white-space:nowrap; } .pr-kontakt-kanal a{ color:var(--text); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:640px){ .pr-kontakt-rida{ grid-template-columns:1fr; gap:2px; } .pr-kontakt-kanal{ white-space:normal; } }
.mk-grp{ color:var(--heading) !important; }   /* värv ei ole hierarhia */
.kb-title{ font-size:14px !important; font-weight:500 !important; letter-spacing:0 !important;
  text-transform:none !important; }           /* oli 22px — suurem kui lehe pealkiri */

/* — T3: alamosa, sildid, tabelipäised — */
.load-head, .load-grupp,
.ds-metric-lbl,
.hr-flabel,
.ai-voor-kes,
.pr-hl,
.pr-statrow-lbl,
.dash-sub,
.add-form-title,
.folder-section-label,
.df-lbl,
.hr-table thead th, .hr-tbl th, #page-tiim th, .pr-tbl-head > span, .hr-sek span{
  font-size:10px !important; font-weight:400 !important; letter-spacing:.18em !important;
  text-transform:uppercase !important; color:var(--muted) !important;
  border-bottom:none;
}
/* Tabelipäisel jääb joon alles — see eraldab päise sisust, mitte ei tähista taset */
.hr-table thead th, .hr-tbl th, #page-tiim th, .pr-tbl-head > span{
  border-bottom:1px solid var(--border) !important; }

/* — Selgitav lisatekst pealkirja järel (kõigil tasemetel sama muster) — */
.pr-sec-sub, .card-label .sub, .hr-sek .sub{
  font-size:11px !important; font-weight:400 !important; letter-spacing:0 !important;
  text-transform:none !important; color:var(--text2) !important;
}



/* ── MOODULITE VIIMANE LIHV handoffi järgi (Luisa 18.08.2026) ────────────────
   Ühisosa (pealkirjad, sildid, sisendid, kaardid) sai varem kõik lehed korraga.
   Siin on neli kohta, mis jäid oma mõõtu — mõõdetud arvutatud stiilist, mitte
   silma järgi: Töötajate tabeli read olid 114/50/69px, Kasumlikkuse omad 68px,
   Hinnaküsimise sisendid 34/36/41/57px läbisegi. Handoffi mõõt on rida 38px,
   päis 9px/.16em ja kontroll 34px. */
#page-tiim table, #pr-kasum-view table{ font-size:12px; }
#page-tiim th, #pr-kasum-view th{
  font-size:10px !important; letter-spacing:.16em !important; text-transform:uppercase;
  font-weight:400 !important; color:var(--muted) !important;
  padding:0 12px 8px 0 !important; border-bottom:1px solid var(--border) !important; }
#page-tiim td, #pr-kasum-view td{
  padding:0 12px 0 0 !important; height:38px; vertical-align:middle !important;
  border-bottom:1px solid var(--row-line) !important; }
/* Ridades, kus on nupud või mitu rida sisu, ei tohi 38px sisu ära lõigata */
#page-tiim td:has(.btn), #pr-kasum-view td:has(.btn),
#page-tiim td:has(input[type=text]), #pr-kasum-view td:has(input){ height:auto; padding:6px 12px 6px 0 !important; }
#page-tiim tbody tr:hover td, #pr-kasum-view tbody tr:hover td{ background:rgba(240,236,231,.55); }
#page-tiim *{ border-radius:0 !important; }
/* Töötaja lahter: nimi ja e-post kahel real, aga tihedalt — mõõdetud rida oli
   66px (nimi 14px + meil eraldi reana). Nüüd ~44px, sama mõõt mis mujal tabelites. */
#page-tiim td:first-child{ padding:6px 12px 6px 0 !important; line-height:1.3; }
#page-tiim .tm-mail{ font-size:11px; line-height:1.3; color:var(--muted); }
#page-tiim .tm-adm{ font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--text2); margin-left:8px; }
#page-tiim td.tm-c{ height:44px; }

/* Hinnaküsimise vorm: kõik kontrollid ühte mõõtu (34px), tekstiväljad vabaks */
#page-hinnakusimine input[type=text], #page-hinnakusimine input[type=email],
#page-hinnakusimine input[type=date], #page-hinnakusimine input[type=number],
#page-hinnakusimine select{ height:34px !important; padding:0 12px !important; font-size:13px !important; }
#page-hinnakusimine textarea{ padding:8px 12px !important; font-size:13px !important; }

/* AI-vastuste vormistus (kasutuses mujal, nt seletuskirjade juures) */
/* AI-vestlus = transkript. Kõneleja õhukese sildina, tekst täies laiuses,
   voorude vahel hairline. Mullid ja 84%-laiused kastid on maas. */.ai-voor.mina .ai-voor-kes{ color:var(--accent-dark); }.ai-voor.mina .ai-voor-sisu{ color:var(--heading); white-space:pre-wrap; }/* Mudelivalik samasse chip-keelde mis mujal */
#vest-model button.on{ background:var(--accent) !important; color:var(--white) !important; font-weight:400 !important; }
#vest-model button{ font-size:11px; letter-spacing:.04em; padding:6px 14px; }


/* Vormi joondus: kõrvuti lahtrite sisendid peavad algama SAMALT kõrguselt.
   Varem oli vihje sildi SEES ja murdus teisele reale → kõrvalveeru sisend nihkus
   allapoole (Luisa 18.08.2026: „need peavad alignima" · „mujal ka alignment on
   paigast ära"). Vihjed on nüüd siltidest väljas, aga et pikk silt ka tulevikus
   midagi paigast ei lööks, on sildirea kõrgus fikseeritud. */
.pr-edit-grid .field{ display:flex; flex-direction:column; min-width:0; }
.pr-edit-grid .field > label{ min-height:18px; line-height:18px; margin-bottom:6px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-edit-grid .field > label.pr-toggle{ white-space:normal; min-height:0; }
.pr-edit-grid .field > input, .pr-edit-grid .field > select{ height:34px; }

/* ═══ HANDOFFI ÜHISOSA KÕIGILE MOODULITELE (Luisa 17.08.2026: „tee siis teised
   moodulid ka handoffi järgi") ══════════════════════════════════════════════
   Mooduleid ükshaaval ümber joonistada ei ole mõtet ega võimalikki — enamik
   sisu tekib alles andmete laekumisel. Handoffi kandev osa on KOLM komponenti,
   mis korduvad igal kavandi ekraanil; kui need on paigas, on moodul paigas:
     1. lehe pealkiri  — 19px suurtähed, hõre tähevahe (RakHeader)
     2. sektsioonisilt — 9px/.18em hall + hairline all, MITTE paks must (RakSection)
     3. mõõdik         — 9px silt + 26px õhuke arv (RakMetric)
   Vana 30px kerge pealkiri ja 11,5px paks must kaardisilt olid kaks eri keelt. */
.page-head h1{ font-size:20px !important; font-weight:400 !important; letter-spacing:.06em !important;
  text-transform:uppercase; color:var(--heading); margin:0 0 4px; }
.ph-sub{ font-size:11px; color:var(--muted); }
/* ⚠ SIIN OLI 9px HALL !important — see sõi ära kaks katset teha pealkirjad
   tumedamaks (Luisa 01.09.2026: „ma ei erista pealkirju ju", „pealkirjad
   pole ikka veel tumedamad"). Silt PEAB sisust eristuma. */
.card-label{ font-size:12px !important; font-weight:600 !important; letter-spacing:.10em !important;
  color:var(--ink,var(--heading)) !important; margin-bottom:10px; padding-bottom:6px;
  border-bottom:1px solid var(--border); }
.card-label a{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
/* ═══ HANKEREGISTER — disaini-handoffi kavand (screens-b.jsx), 17.08.2026 ═══
   Luisa: „hankeregistri võiks disainida nii nagu claude design selle tegi, aga
   värvigamma nii nagu design system ütles ja samas asukohas rakenduses."
   Kavandi mõte: KAKS taset. Kolm kiireimat on kaardid (ülaserva 3px joon kannab
   staatust), kõik ülejäänud on register-tabel. Mõõdud otse handoffist:
   th 9px/.16em, td 12,5px/38px, hover rgba(240,236,231,.55). Värvid tulevad
   tokenitest, mitte kavandi enda RAK-objektist (väärtused on samad). */
/* #hr-grid EI OLE enam kaardiruudustik, vaid kahetasandilise vaate konteiner
   (kaardid + register-tabel). Vana `.hr-grid{display:grid;3 veergu}` tegi
   kaartidest, sektsioonisildist ja tabelist kolm kõrvutist veergu. */
.hr-grid{ display:block !important; grid-template-columns:none !important; margin-bottom:1.5rem; }
/* Filtrinupud = kavandi `rakChip`: 5/13px, 11px kiri, valitu savi täidisega.
   Luisa 10.08 rühmitus (silt + nupud) jääb — muutus on ainult nupu kuju. */
.hr-filtrid .btn.btn-sm{ padding:6px 14px; font-size:11px; letter-spacing:.04em;
  font-weight:400; border:1px solid var(--border); background:var(--white); color:var(--text); }
.hr-filtrid .btn.btn-sm:hover{ border-color:var(--accent); color:var(--accent-dark); }
.hr-filtrid .btn.btn-sm.on{ background:var(--accent); border-color:var(--accent); color:var(--white); }
/* Arv on TEKST, mitte hall täidis. Vana `.hr-fcnt{background:var(--border)}` jäi
   savi-nupu peal halliks kastiks ja valge number kadus sinna sisse ära
   (Luisa 17.08: „number kaob ära"). Sama lahendus mis vahekaartide arvudel. */
.hr-filtrid .hr-fcnt{ background:none !important; padding:0 !important; margin-left:6px;
  font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.hr-filtrid .btn.btn-sm.on .hr-fcnt{ color:rgba(255,255,255,.8) !important; }
.hr-flabel{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
/* Filtririba mahub ühte-kahte ritta ja seisurida on selle SABAS, mitte omaette
   real — kolm juhtrida enne esimest hanget oli osa segadusest. */
.hr-filtrid{ gap:6px 20px !important; margin-bottom:10px !important; }
.hr-fseis{ font-size:11px; color:var(--muted); margin:0 0 10px; min-height:0; }
.hr-pea{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.hr-pea h1{ margin-bottom:0 !important; }
.hr-meta{ font-size:11px; color:var(--muted); }
/* ── Hanke detailpaneel: kastid maha (Luisa 17.08.2026: „liiga palju ruumi") ──
   Enne: 8 üldinfo-lahtrit igaüks oma raamis ja täidises (~66px tükk) + 8 kokku-
   pandud sektsiooni, igaüks omaette kastina 57px kõrge = ligi 500px tühja raami
   enne, kui üldse midagi lugeda saab.
   Loogika, mis siit tuleb: üldinfo EI OLE kaheksa eraldi objekti, vaid ÜKS
   andmeleht — seega üks tabelilaadne loend, silt vasakul, väärtus paremal, read
   hairline'iga. Kokkupandud sektsioon ei ole kaart, vaid RIDA — kast tekib alles
   siis, kui ta on lahti (ja siis on tal ka sisu, mida raamida). */
.hr-info-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 28px; margin-bottom:10px; }
.hr-info-cell{ background:none; border:none; border-bottom:1px solid var(--row-line);
  padding:0; display:flex; align-items:baseline; justify-content:space-between; gap:12px; min-height:30px; }
.hr-info-lbl{ font-size:10px; font-weight:400; letter-spacing:.16em; margin:0; flex:none; }
.hr-info-val{ font-size:12px; font-weight:400; color:var(--heading); text-align:right;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hr-kv{ font-size:12px; margin-bottom:0; min-height:28px; align-items:baseline;
  border-bottom:1px solid var(--row-line); }
.hr-kk{ font-size:11px; color:var(--muted); min-width:150px; font-weight:400; }
/* Kokkupandud sektsioon = rida. Lahti tehtud = kast. */
.hr-det{ border:none; border-bottom:1px solid var(--row-line); margin-bottom:0; background:none; }
.hr-det > summary{ padding:0; height:34px; background:none; font-size:11px; font-weight:400;
  letter-spacing:.02em; color:var(--text); }
.hr-det > summary:hover{ color:var(--accent-dark); }
.hr-det[open]{ border-bottom-color:var(--border); margin-bottom:10px; }
.hr-det[open] > summary{ border-bottom:none; color:var(--heading); }
.hr-det-body{ padding:2px 0 14px; }
.hr-sub-nav{ gap:18px; margin-bottom:16px; }
.hr-sub-btn{ display:inline-flex; align-items:baseline; gap:6px; padding:2px 0 8px;
  font-size:11px; letter-spacing:.12em; font-weight:400; color:var(--muted);
  border-bottom:1.5px solid transparent; }
.hr-sub-btn.active{ color:var(--heading); border-bottom-color:var(--accent); }
.hr-tab-n{ font-size:12px; letter-spacing:0; text-transform:none;
  color:var(--muted); font-variant-numeric:tabular-nums; }
.hr-sub-btn.active .hr-tab-n{ color:var(--accent-dark); }
/* Kaardiruudustik ja sektsioonisilt EEMALDATUD 17.08 — need dubleerisid tabelit. */
.hr-nool{ color:var(--muted); }
.hr-nool span{ display:inline-block; transition:transform 0.15s; }
.hr-tbl tbody tr.on .hr-nool span{ transform:rotate(90deg); color:var(--accent); }
/* Detailirida: paneel avaneb siinsamas, mitte lehe lõpus */
/* ⚠ `.hr-tbl td` sunnib white-space:nowrap — see on õige ÜHEREALISTELE
   tabeliridadele, aga lahtikäiv paneel elab samuti td sees. Seetõttu ei murdunud
   kirjeldus ridadeks, vaid jooksis ühe reana paremale välja ja lõigati ära
   (Luisa 24.08.2026: „see tekst kaob ära lambist"). Detailireas tuleb murdmine
   tagasi lubada — koos pikkade sõnade murdmisega, sest hangetes on aadresse ja
   koode, mis üksinda laiemad kui lahter. */
.hr-det-rida > td{ height:auto !important; padding:0 0 18px !important;
  background:var(--accent-light) !important; border-bottom:1px solid var(--border) !important;
  white-space:normal !important; overflow-wrap:anywhere; }
.hr-det-rida .hr-det-body{ white-space:pre-wrap; overflow-wrap:anywhere; }
.hr-det-rida .hpanel{ padding:14px 16px 0; }
.hr-det-rida .hr-det[open]{ background:var(--white); padding:0 12px; }
.hr-tbl-wrap{ overflow-x:auto; }
.hr-tbl{ width:100%; border-collapse:collapse; table-layout:fixed; }
.hr-tbl th{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  font-weight:400; text-align:left; padding:0 14px 8px 0; border-bottom:1px solid var(--border); white-space:nowrap; }
.hr-tbl td{ font-size:12px; color:var(--text); padding:0 14px 0 0; height:38px;
  vertical-align:middle; border-bottom:1px solid var(--row-line); white-space:nowrap; }
.hr-tbl th:last-child, .hr-tbl td:last-child{ padding-right:0; }
.hr-tbl tbody tr{ cursor:pointer; }
.hr-tbl tbody tr:hover td{ background:rgba(240,236,231,.55); }
.hr-tbl tbody tr.on td{ background:var(--accent-light); }
.hr-tbl .hr-nimi{ color:var(--heading); }
.hr-tbl td{ overflow:hidden; text-overflow:ellipsis; }
.hr-tbl .hr-nr{ font-variant-numeric:tabular-nums; }
.hr-tbl .hr-par{ text-align:right; }
.hr-mark{ color:var(--accent); font-size:10px; margin-right:6px; }
.hr-liik{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--border); padding:1px 6px; margin-left:6px; white-space:nowrap; }
.hr-seis{ display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--text); }
.hr-seis i{ width:6px; height:6px; flex:none; display:inline-block; }
@media(max-width:820px){  .hr-tbl th:nth-child(3), .hr-tbl td:nth-child(3){ display:none; }
}

/* ═══ ÜHTNE TIHEDUS KÕIGIL LEHTEDEL (Luisa 17.08.2026: „disaini ümber ka
   ülejäänud lehed") ═══════════════════════════════════════════════════════
   Projektid / Töölaud / Hankeregister / Ajaarvestus said tiheduse ükshaaval;
   ülejäänud lehed (Seletuskirjad, Standardid, Renderdusstuudio, Teadmusbaas,
   Üritused, Kasumlikkus, Töötajad …) jäid vana õhulise mõõdu peale — sisendid
   41px, kaardid 20/22px. Neid ei ole mõtet lehekaupa ümber kirjutada: kõik on
   ehitatud SAMADEST osadest (.card, .field, input/select/textarea), seega
   ühtlustus käib komponendi, mitte lehe kaupa.
   NB asub sihilikult stiililehe LÕPUS — varasemad reeglid (rida 226, 479)
   kirjutaksid muidu üle. Lehepõhised stiililehed (Ajaarvestus, Hinnapakkumine)
   tulevad dokumendis hiljem ja jäävad teadlikult peale. */
input[type=text], input[type=number], input[type=email], input[type=tel],
input[type=search].f-inp, input[type=date], select, textarea{
  padding:8px 12px; font-size:13px; }
select, input[type=date]{ padding:8px 12px; font-size:13px; }
textarea{ min-height:56px; line-height:1.5; }
.field label{ margin-bottom:4px; }
.card{ padding:14px 16px; }
/* Kaardisisene kaart ei vaja teist raami — hairline'i topeltjoon oli kõige
   nähtavam Seletuskirja ja Hinnapäringu vormidel. */
.card .card{ border:none; padding:0; margin-bottom:0; }

/* ── index.html rida 6628 ── */
  /* ⚠ Laius tuli varem JS-ist: hpParingHide() surus inline'iga max-width:640px,
     mis kirjutas selle reegli üle. 640-st võttis kokkuvõtte-riba 336 px, seega
     vormile jäi ~270 px ja kaks veergu surusid end üksteise otsa (Luisa
     24.08.2026: „siin väga segane, tee laiem paneel"). Nüüd on laius AINULT
     siin ja JS ainult lisab päringu-veeru jaoks ruumi juurde. */
  #hp-modal-inner{max-width:min(1180px, 95vw); width:min(1180px, 95vw)}
  /* Kokkuvõtte-riba kitseneb enne, kui vorm muutub loetamatuks */
  @media(max-width:1100px){ #hp-summary{flex-basis:280px;padding-left:22px} }
  .hp-sec{display:flex;align-items:center;gap:14px;margin:30px 0 6px}
  .hp-sec:first-child{margin-top:0}
  .hp-sec b{font-size:11px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--heading);white-space:nowrap}
  .hp-sec i{flex:1;height:1px;background:var(--border)}
  #hp-summary{flex:0 0 336px;align-self:stretch;border-left:1px solid var(--border);background:var(--sidebar-bg,var(--sidebar-bg));padding:2px 0 0 30px;position:sticky;top:8px;display:flex;flex-direction:column;gap:26px}
  #hp-summary .hp-sum-cap{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--heading);display:block;margin-bottom:14px}
  .hp-sum-box{display:flex;flex-direction:column;gap:12px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:16px}
  .hp-sum-row{display:flex;justify-content:space-between}
  .hp-sum-row span{font-size:13px;color:var(--muted)}
  .hp-sum-row b{font-size:14px;color:var(--heading);font-weight:500;font-variant-numeric:tabular-nums}
  .hp-sum-tot{display:flex;align-items:baseline;justify-content:space-between}
  .hp-sum-tot>span{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--heading)}
  .hp-sum-tot b{font-size:30px;font-weight:300;color:var(--heading);letter-spacing:-0.02em;font-variant-numeric:tabular-nums;line-height:1}
  #hp-summary .hp-acts{margin-top:auto;display:flex;flex-direction:column;gap:10px}
  #hp-summary .hp-acts .btn{width:100%;justify-content:center}
  @media(max-width:900px){ #hp-summary{flex-basis:100%;border-left:none;border-top:1px solid var(--border);padding:18px 0 0;position:static} }
  /* Vormi veerg ei tohi kitsamaks minna kui loetav — muidu lähevad kahe veeru
     väljad („Nimetus", „Kuupäev") üksteise otsa nagu Luisa pildil. */
  #hp-form-body{min-width:420px}
  @media(max-width:900px){ #hp-form-body{min-width:0} }


/* ── PROJEKTIKAART: pealkiri peab olema kastist tugevam (Luisa 15.09.2026: „need
   valged kastid tõmbavad väga hästi silmad endale ja siis kaob ära see pealkiri mis
   kastid need on"). Kolm käiku, kõik CSS-is, et see kehtiks KÕIGIL tabidel korraga:
   1) sektsioonipealkiri tumedam ja paksem, joon pealkirja värvi, rohkem õhku peale;
   2) sisestuskastid kaardil taanduvad — mitte lumivalge, vaid paberitoon, õhem raam;
   3) iga „lisa uus" rida saab vasakule märgistusjoone ja väikese sildi (mis rida
      see on), nii et vorm kuulub nähtavalt oma pealkirja alla. ────────────────── */
#pr-panels .pr-tabpane .pr-sec-h{ font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--heading);
  padding-bottom:8px; border-bottom:1.5px solid var(--heading); margin-bottom:12px; }
#pr-panels .pr-tabpane .pr-sec-h .pr-sec-sub{ font-weight:400; letter-spacing:.02em; text-transform:none; }
#pr-panels input:not([type=checkbox]):not([type=radio]), #pr-panels select, #pr-panels textarea{
  background:#FAF8F5; border:1px solid var(--border2); }
#pr-panels input:not([type=checkbox]):not([type=radio]):focus, #pr-panels select:focus, #pr-panels textarea:focus{ background:var(--white); }
.ul-add, .pr-par-add, .pr-mark-add, .pr-visiit-add, .pr-lisa-rida{
  flex-wrap:wrap; border-left:3px solid var(--border2); padding:6px 0 8px 12px; margin-top:12px; }
.ul-add::before, .pr-par-add::before, .pr-mark-add::before, .pr-visiit-add::before, .pr-lisa-rida::before{
  flex:0 0 100%; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:2px; }
.ul-add::before{ content:"Lisa ülesanne"; }
.pr-par-add::before{ content:"Uus sisepäring kolleegile"; }
.pr-mark-add::before{ content:"Uus privaatne märge"; }
.pr-visiit-add::before{ content:"Märgi ehitusel käik"; }
.pr-lisa-rida{ display:flex; gap:6px; align-items:center; }
.pr-lisa-rida[data-silt]::before{ content:attr(data-silt); }
.pr-lisa-rida input[type=text], .pr-lisa-rida textarea, .ul-add input[type=text]{ flex:1 1 260px; min-width:0; }
/* Päise nuppude seletus (Luisa 15.09: „pane selle seletus siis nende nuppude juurde") */

/* Projekti kulu KÕRVALSAMMUD (15.09.2026): heledam rida põhisammude all — teadlikult
   väiksem ja hallim kui ehitusluba/valmis, sest need ei ole kulu verstapostid. */
.elukaar-korvalrida{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:12px; padding-top:10px; border-top:1px dashed var(--border); }
.elukaar-korval-silt{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-right:2px; }
.elukaar-korval{ display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--text2); cursor:pointer; padding:4px 8px 4px 4px; border:1px solid transparent; }
.elukaar-korval:hover{ border-color:var(--border2); background:var(--hover); }
.elukaar-korval-dot{ width:16px; height:16px; border-radius:50%; border:1.5px solid var(--border2); background:var(--white); display:inline-flex; align-items:center; justify-content:center; font-size:10px; color:var(--muted); flex:none; }
.elukaar-korval.done .elukaar-korval-dot{ border-color:var(--st-ok); background:var(--st-ok); color:var(--white); }
.elukaar-korval.now .elukaar-korval-dot{ border-color:var(--gold); background:var(--gold); color:var(--heading); }
.elukaar-korval-lbl{ color:var(--heading); }
.elukaar-korval-kp{ color:var(--muted); font-size:11px; }
.elukaar-korval.passiivne{ opacity:.55; }

/* ── PROJEKTI KULG — üks Gantt (15.09.2026) ──────────────────────────────── */
:root{ --kulg-silt-w:150px; }
.kulg{ margin:6px 0 4px; }
.kulg-body{ position:relative; }
.kulg-kiht{ position:absolute; left:var(--kulg-silt-w); right:0; top:0; bottom:0; pointer-events:none; }
.kulg-kiht .pr-gantt-today{ pointer-events:auto; }
.kulg-rida{ display:flex; align-items:center; min-height:28px; margin-bottom:6px; position:relative; z-index:1; }
.kulg-silt{ flex:0 0 var(--kulg-silt-w); font-size:12px; color:var(--heading); padding-right:10px; line-height:1.2; }
.kulg-silt-sub{ display:block; font-size:10px; color:var(--muted); font-weight:400; }
.kulg-telg{ flex:1; position:relative; height:24px; background:var(--bg); }
.kulg-telg .pr-gantt-bar{ height:24px; cursor:pointer; }
.kulg-faas.st-ootel{ opacity:.45; }
.kulg-faas.st-tehtud{ opacity:.55; }
.kulg-ehitus{ background:var(--text); }
.kulg-ehitus.st-tehtud{ opacity:.55; }
.kulg-vp{ position:absolute; top:2px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; cursor:pointer; z-index:3; }
.kulg-vp i{ width:11px; height:11px; transform:rotate(45deg); border:1.5px solid var(--border2); background:var(--white); display:block; }
.kulg-vp b{ font-size:10px; font-weight:500; color:var(--text2); white-space:nowrap; margin-top:1px; }
.kulg-vp.kulg-load-saadud i{ background:var(--st-ok); border-color:var(--st-ok); }
.kulg-vp.kulg-load-esitatud i{ background:var(--gold); border-color:var(--gold); }
.kulg-ootel{ position:absolute; right:6px; top:5px; font-size:10px; color:var(--muted); cursor:pointer; white-space:nowrap; }
.kulg-tyhi{ position:absolute; left:8px; top:5px; font-size:11px; color:var(--muted); cursor:pointer; }
.kulg-korvalrida .kulg-telg{ background:transparent; border-top:1px dashed var(--border); height:18px; }
.kulg-korval-p{ position:absolute; top:4px; width:9px; height:9px; border-radius:50%; background:var(--white); border:1.5px solid var(--border2); transform:translateX(-50%); cursor:pointer; z-index:3; }
.kulg-korval-p.ts{ border-color:var(--gold); background:var(--gold); }
.kulg-korval-p.ts.st-tehtud{ border-color:var(--st-ok); background:var(--st-ok); }
.kulg-kiht .pr-gantt-today{ top:-4px; bottom:0; }
.kulg-legend{ display:flex; gap:16px; flex-wrap:wrap; font-size:10px; color:var(--muted); margin:8px 0 4px; }
.kulg-legend i{ display:inline-block; width:12px; height:8px; margin-right:6px; vertical-align:middle; }
.kulg-legend .lg-faas{ background:var(--accent); } .kulg-legend .lg-load{ width:9px; height:9px; transform:rotate(45deg); background:var(--st-ok); } .kulg-legend .lg-ehitus{ background:var(--text); } .kulg-legend .lg-korval{ width:9px; height:9px; border-radius:50%; border:1.5px solid var(--border2); background:var(--white); }
.kulg-faasid{ margin-top:10px; border-top:1px solid var(--border); padding-top:6px; }
.kulg-faasid summary{ font-size:12px; color:var(--accent-dark, var(--accent)); cursor:pointer; padding:4px 0; }
/* Lubade checklist (15.09.2026): rippmenüü + kuupäev, seletus nime all */
.load-seletus{ display:block; font-size:11px; color:var(--muted); font-weight:400; }
.load-sel{ font:inherit; font-size:12px; padding:4px 6px; }
.load-sel.load-saadud{ color:var(--st-ok); } .load-sel.load-esitatud{ color:var(--accent); } .load-sel.load-pole_vaja{ color:var(--muted); }
.load-kp-in{ font:inherit; font-size:12px; padding:4px 6px; width:138px; }
.load-item.load-pole_vaja .load-nm{ opacity:.5; }
.kulg-ts{ margin-top:10px; border-top:1px dashed var(--border); padding-top:8px; }
.kulg-ts .pr-sec-h{ border:none !important; font-size:11px !important; padding:0 !important; margin:0 0 4px !important; }
.kulg-vp.alt{ flex-direction:column-reverse; top:-1px; }
.kulg-vp.alt b{ margin:0 0 1px; }
.kulg-rida .kulg-telg{ overflow:visible; }

/* Avatud projektikaart = kogu leht (15.09.2026): ülemine osa (pealkiri, paanid, filtrid) peitu,
   tagasi „← Kõik projektid" lingiga. */
#page-projektid.pr-kaart-lahti > .page-head, #page-projektid.pr-kaart-lahti .pr-statrow, #page-projektid.pr-kaart-lahti .pr-filter-row, #page-projektid.pr-kaart-lahti #pr-nimekiri-riba{ display:none !important; }
#page-projektid.pr-kaart-lahti #pr-back{ margin:4px 0 18px !important; }
#page-projektid.pr-kaart-lahti #pr-back > span{ font-size:13px !important; letter-spacing:.1em !important; }

/* Valla nõuded projekti juures (15.09.2026) */
.pr-vald-rida{ margin:10px 0 0; }
.pr-vald-rida > b{ display:block; font-size:12px; color:var(--heading); }
.pr-vald-sub{ display:block; font-size:11px; color:var(--muted); margin-bottom:6px; }
.pr-vald-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:4px 10px; margin:0 6px 6px 0; background:var(--white); border:1px solid var(--border2); color:var(--heading); }
.pr-vald-chip i{ font-style:normal; font-size:10px; color:var(--muted); font-variant-numeric:tabular-nums; }
.pr-vald-chip.eri{ border-color:var(--accent); background:var(--accent-light,#F3E9E2); }
.pr-vald-chip.dok{ background:var(--bg); }
.pr-vald-normid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:4px 18px; }
.pr-vald-normid > div{ display:flex; gap:8px; align-items:baseline; font-size:12px; padding:4px 0; border-bottom:1px solid var(--row-line); }
.pr-vald-normid span{ flex:1; color:var(--text2); } .pr-vald-normid b{ color:var(--heading); font-variant-numeric:tabular-nums; } .pr-vald-normid i{ font-style:normal; font-size:10px; color:var(--muted); }
.kulg-vp.kulg-faas-vp i{ border-color:var(--border2); }
.kulg-ts .pr-sec-h{ margin-top:4px !important; }
.kulg-faasid .load-wrap{ margin-top:6px; padding-top:0; border-top:none; }
.kulg-faasid .load-head{ display:none; }

/* Sisestuskastid KOGU rakenduses paberitoonis (Luisa 15.09.2026: „sa siin tegid mõnusama
   valge värvi, aga mujal on ikka endine?") — sama reegel, mis projektikaardil. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not(.btn), select, textarea{ background:#FAF8F5; }
input:not([type=checkbox]):not([type=radio]):not([type=range]):focus, select:focus, textarea:focus{ background:var(--white); }
.pr-vald-chip a{ color:inherit; text-decoration:none; }
.pr-vald-chip a:hover{ text-decoration:underline; }
.pr-vald-chip.kehtiv{ border-color:var(--st-ok); }
.pr-vald-chip.kehtetu{ border-color:var(--red); color:var(--red); }
.pr-vald-pen{ background:none; border:none; color:var(--muted); cursor:pointer; font-size:11px; padding:0 0 0 2px; }
.pr-vald-pen:hover{ color:var(--accent); }
/* Wiki otsing: fookuse raam läks kategooria-kiipide peale (Luisa 15.09: „normilt läheb peale") */
#page-wiki .kb-search{ margin-bottom:0; }
#wiki-cats{ margin-top:14px; }

/* ── Mobiil: projektikaart (Luisa 18.09.2026: „tabid ja paneelid on liiga väiksed,
   ei mahuta teksti ära ja overlappivad") — mõõdetud 375px ekraanil ──────────── */
@media(max-width:640px){
  /* Päis: pealkiri täislaiuses, nupud oma reale (enne oli 4 nuppu paremal ja
     pealkiri „Hirve / tee / 13" murdus sõna kaupa kolmele reale) */
  .pr-ck-head{ flex-direction:column !important; align-items:stretch !important; gap:10px !important; }
  .pr-ck-head > div:last-child{ justify-content:flex-start !important; white-space:normal !important; }
  .pr-ck-head .hr-btn-s{ padding:8px 12px; font-size:12px; }
  .pr-ck-sub{ line-height:1.45; }
  /* Tabid: suurem puuteala, kogu rida kasutuses */
  .pr-tabs{ gap:0; margin-left:-12px; margin-right:-12px; padding:0 6px; }
  .pr-tab{ padding:12px 12px; font-size:13px; }
  /* „Mida teha" read: nupp teksti alla täislaiuses, mitte teksti kõrvale kitsalt */
  .pr-as-row{ flex-wrap:wrap; }
  .pr-as-btn{ flex:1 1 100%; margin-left:26px; text-align:center; padding:10px 12px; }
  /* Kulg (Gantt): 150px sildiveerg jättis teljele 200px ja tähiste tekstid
     („Ehitusluba + Kasutusluba · 2. juuli", „veel ühtki — märgitakse allpool")
     kattusid üksteise ja sildiga. Telefonis: kitsam silt, alamsilt ja tähiste
     tekstid peitu — sama info on all voldikutes „Faasid" ja „Load", tähisel on
     title. Jääb kuju: ribad, ◆, täna-joon. */
  .pr-cockpit{ --kulg-silt-w:78px; }
  .kulg-silt{ font-size:11px; }
  .kulg-silt-sub{ display:none; }
  .kulg-vp b{ display:none; }
  .kulg-ootel{ display:none; }   /* „veel saamata: …" jooksis täna-joone alla; sama nimekiri on voldikus „Load" */
  .kulg-tyhi{ font-size:10px; }
}
@media(max-width:640px){
  /* Ajaarvestuse päeva päis: „4:21 t" murdus kaheks reaks („t" üksi järgmisel) */
  #page-ajaarvestus .day-head .t{ white-space:nowrap; flex:0 0 auto; }
  #page-ajaarvestus .day-head .d{ font-size:12px; }
}

/* ── Märkused → tegevused (18.09.2026) ── */
.mrk-fold{ margin-top:10px; }
.mrk-body{ padding:6px 0 4px; }
.mrk-src{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:6px; }
.mrk-body textarea{ width:100%; font:inherit; font-size:13px; padding:10px 12px; border:1px solid var(--border2); background:var(--white); resize:vertical; }
.mrk-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:8px; }
.mrk-row input[type=text]{ font:inherit; font-size:13px; padding:8px 10px; border:1px solid var(--border2); background:var(--white); }
.mrk-list{ display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.mrk-item{ display:grid; grid-template-columns:auto 1fr auto auto auto; gap:8px; align-items:start; padding:8px 10px; background:var(--white); border:1px solid var(--border); }
.mrk-item.off{ opacity:.45; }
.mrk-item textarea{ width:100%; font:inherit; font-size:13px; padding:6px 8px; border:1px solid var(--border); resize:vertical; min-height:38px; }
.mrk-item input[type=date]{ font:inherit; font-size:12px; padding:6px 8px; border:1px solid var(--border2); background:var(--white); }
.mrk-item input[type=checkbox]{ margin-top:10px; }
.ul-allikas{ display:inline-block; margin-left:6px; font-size:10px; color:var(--muted); background:var(--bg); padding:1px 6px; vertical-align:middle; white-space:nowrap; }
@media(max-width:640px){ .mrk-item{ grid-template-columns:auto 1fr; } .mrk-item textarea{ grid-column:2; } .mrk-item input[type=date], .mrk-item select, .mrk-item button{ grid-column:2; } }

/* ── Jooniste võrdlus (18.09.2026) ── */
.jv-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.jv-row select{ max-width:100%; }
.jv-tools{ display:flex; gap:14px; align-items:center; margin:4px 0 8px; font-size:12px; color:var(--text2); }
.jv-tools input[type=range]{ width:160px; vertical-align:middle; }
.jv-tekst{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:10px; font-size:12px; }
.jv-tekst ul{ margin:4px 0 0; padding-left:18px; } .jv-tekst li{ margin:2px 0; }
@media(max-width:640px){ .jv-tekst{ grid-template-columns:1fr; } }

/* ── Wiki jaotus (21.09.2026) ─────────────────────────────────────────────── */
.wiki-crumb { font-size: 13px; color: var(--text2); margin: 14px 0 12px; }
.wiki-crumb a { color: var(--accent); text-decoration: none; }
.wiki-kiir { margin: 16px 0 6px; }
.wiki-kiir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 6px 14px; }
.wiki-kiir-a { font-size: 13px; color: var(--heading); text-decoration: none; padding: 8px 0; border-bottom: 1px solid var(--row-line, var(--border)); }
.wiki-kiir-a::before { content: '→ '; color: var(--accent); }
.wiki-kiir-a:hover { color: var(--accent); }
.wiki-ryhmad { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 18px; }
.wiki-ryhm { display: block; background: var(--white); border: 1px solid var(--border); padding: 16px 18px; text-decoration: none; color: var(--text); transition: border-color 0.15s; }
.wiki-ryhm:hover { border-color: var(--accent); }
.wiki-ryhm-t { font-size: 14px; font-weight: 500; color: var(--heading); }
.wiki-ryhm-s { font-size: 12px; color: var(--text2); line-height: 1.5; margin-top: 4px; }
.wiki-ryhm-k { font-size: 11px; color: var(--muted); margin-top: 8px; letter-spacing: .02em; }
.wiki-n { display: inline-block; font-size: 11px; font-weight: 400; color: var(--muted); margin-left: 4px; }
.wiki-sekt { margin-bottom: 18px; }
.wiki-sekt-h { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--text2); margin: 14px 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.wiki-arhiiv > summary { cursor: pointer; font-size: 13px; color: var(--text2); padding: 10px 0; list-style: none; }
.wiki-arhiiv > summary::-webkit-details-marker { display: none; }
.wiki-arhiiv > summary::before { content: '+ '; color: var(--accent); }
.wiki-arhiiv[open] > summary::before { content: '– '; }
@media (max-width: 640px) { .wiki-ryhmad { grid-template-columns: 1fr; } .wiki-kiir-grid { grid-template-columns: 1fr; } }

/* ── Onboarding faasidena (21.09.2026) ─────────────────────────────────── */
.ob-kysi { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px 22px; margin-top: 4px; }
.ob-kysi-r { display: flex; flex-direction: column; font-size: 12px; color: var(--text2); line-height: 1.45; padding: 8px 0; border-top: 1px solid var(--border); }
.ob-kysi-r b { color: var(--heading); font-weight: 500; }
.ob-faas { background: var(--white); border: 1px solid var(--border); border-left: 3px solid var(--border2); padding: 16px 20px; margin-top: 14px; }
.ob-faas.on { border-left-color: var(--accent); }
.ob-faas.valmis { opacity: .72; }
.ob-faas-h { display: flex; align-items: baseline; gap: 10px; }
.ob-faas-nr { font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.ob-faas-t { font-size: 14px; font-weight: 500; color: var(--heading); }
.ob-faas-n { margin-left: auto; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.ob-faas.on .ob-faas-n { color: var(--accent); }
.ob-faas-s { font-size: 12px; color: var(--text2); margin: 4px 0 8px; max-width: 70ch; line-height: 1.55; }
.ob-faas-j { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--border); }
.ob-roll { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; font-size: 12px; }
.ob-roll-l { color: var(--text2); margin-right: 6px; }
.ob-roll-b { font: inherit; font-size: 12px; padding: 4px 10px; border: 1px solid var(--border2); background: var(--white); color: var(--text2); cursor: pointer; }
.ob-roll-b.on { background: var(--header); color: var(--white); border-color: var(--header); }

/* Kustutusnupp on vaikne kuni hiir on peal (22.09.2026 — punane rist kutsus valesti klõpsama). */
.hp-del:hover{ color:var(--red)!important; border-color:var(--red); }

/* ── LIIKUMINE (22.09.2026) ────────────────────────────────────────────────
   Neli kestust: 0.1 s tagasiside · 0.15 s vaikimisi · 0.25 s laienemine ·
   0.4 s suur liikumine. Ja kes on süsteemis animatsioonid maha keeranud
   (liikumistundlikkus, vanem arvuti), see saab liikumiseta liidese — seni
   ei olnud rakenduses ühtegi `prefers-reduced-motion` reeglit. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── VAIKNE LIIDES (Luisa 22.09.2026: „kõike peale ajaarvestuse võib täielikult
   muuta, kuidas ise arvad") ──────────────────────────────────────────────────
   Igal lehel oli pealkirja all lause, mis seletab, mis leht see on (10–31 sõna
   × 25 lehte), ja väljade all seletused. Esimesel päeval abiks, igal järgmisel
   müra — arhitekt tahab objekti, tegevust ja vaikust. Tekst EI KAO (SUPERHULGA-
   reegel): pealkirja kõrval on „?", mis avab kõik selgitused ja jätab valiku
   meelde. Ajaarvestus on väljas — see leht jääb harjumuspäraseks. */
body:not(.abi) .page-head .ph-sub,
body:not(.abi) .ua-vihje,
body:not(.abi) .f-vihje,
body:not(.abi) .rd-hint,
body:not(.abi) .abi{ display:none; }
body:not(.abi) #page-ajaarvestus .ph-sub{ display:block; }
.page-head{ padding-right:36px; }
.abi-nupp{ position:absolute; right:0; top:12px; width:24px; height:24px; border:1px solid var(--border2); background:var(--white); color:var(--muted); font-size:12px; line-height:1; cursor:pointer; font-family:inherit; padding:0; }
.abi-nupp:hover, body.abi .abi-nupp{ color:var(--heading); border-color:var(--heading); }
body.abi .abi-nupp{ background:var(--heading); color:var(--white); }

/* ── TÜHI OLEK — üks kuju kõigile nimekirjadele (22.09.2026). NN/g: tühi vaade
   ütleb (1) mis olekus süsteem on, (2) mida siin saab, (3) annab tee edasi.
   „Pole veel midagi" ja „filter ei leidnud midagi" on ERI olekud. */
/* ⚠ NIMI: .tyhi oli juba hõivatud (ürituste tabeli vaiksed sildid) — komponent on .tyhi-olek */
.tyhi-olek{ padding:36px 16px; text-align:center; color:var(--text2); font-size:13px; line-height:1.6; }
/* ⚠ EI flex: JS naeitab neid plokke `style.display='block'`-iga (hr-empty, pr-empty),
   mis kirjutaks flexi ueber. Lapsed on ise plokid — tooetab moelemat. */
.tyhi-olek b{ display:block; color:var(--heading); font-weight:500; font-size:14px; margin:0 0 6px; }
.tyhi-olek .tyhi-eye{ display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:0 0 10px; }
.tyhi-olek p{ margin:0 auto; max-width:52ch; }
.tyhi-olek a, .tyhi-olek .btn{ display:inline-block; margin-top:14px; }
/* Kaardi SEES (nimekirja tuehi osa) — sama keel, vaiksem ruum. */
.tyhi-olek-s{ padding:16px 12px; font-size:12px; }
.tyhi-olek-s b{ font-size:13px; margin-bottom:4px; }

/* Põlemisriba faasiriba alaservas (22.09.2026): laius = logitud / eelarve_h.
   Kui riba jõuab ette faasi kuupäevast, põleb honorar kiiremini kui aeg. */
.kulg-polemine{ position:absolute; left:0; bottom:0; height:3px; background:var(--heading); opacity:.55; pointer-events:none; }
.kulg-polemine.yle{ background:var(--red); opacity:1; }

/* Wiki otsing (22.09.2026): tabamuse lõik enne avamist + rühmakiibid */
.kb-loik{ display:block; font-size:12px; font-weight:400; color:var(--text2); line-height:1.5; padding:4px 0 0; }
.kb-loik mark{ background:var(--warm); color:var(--heading); padding:0 1px; }
.kb-kiip{ cursor:pointer; font-size:11px; padding:4px 10px; border:1px solid var(--border2); background:var(--white); text-transform:none; letter-spacing:0; }
.kb-kiip.on{ background:var(--heading); color:var(--white); border-color:var(--heading); }

/* ── PROJEKTI EELVAADE (25.09.2026) — tühik avab, tabel jääb ─────────────── */
.pr-trow.sel{ background:var(--warm); box-shadow:inset 2px 0 0 var(--accent); }
#pr-peek{ position:fixed; top:0; right:0; bottom:0; width:440px; max-width:94vw; background:var(--white); border-left:1px solid var(--border); z-index:60; transform:translateX(100%); transition:transform 0.25s; overflow:auto; padding:28px 28px 24px; display:flex; flex-direction:column; gap:20px; }
#pr-peek.on{ transform:none; }
/* Eelvaade ei KATA tabelit, vaid teeb talle ruumi - muidu jaeaeksid Staatus,
   Tunnid ja Viimane liigutus selle alla peitu (25.09.2026). */
body.peek-on #page-projektid{ margin-right:440px; transition:margin-right 0.25s; }
/* Kitsaks jaeaenud tabel kerib ise, leht ei keri kunagi kuelgsuunas. */
body.peek-on #pr-grid{ overflow-x:auto; }
body.peek-on #undo-nupp, body.peek-on #toast-wrap{ right:462px; }
/* Alla 1500 px ei ole tabelile + 440 px paneelile ruumi (veerud suruksid kokku)
   -> paneel katab tabeli nagu Linearis; vaadatava projekti andmed on paneelis. */
@media(max-width:1500px){ body.peek-on #page-projektid{ margin-right:0; }
  body.peek-on #undo-nupp, body.peek-on #toast-wrap{ right:18px; } }
.pr-peek-pais{ position:relative; padding-right:32px; display:flex; flex-direction:column; gap:8px; }
.pr-peek-eye{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.pr-peek-pais h2{ font-size:24px; font-weight:300; letter-spacing:-.015em; margin:0; line-height:1.2; }
.pr-peek-x{ position:absolute; top:-6px; right:-8px; width:28px; height:28px; border:1px solid var(--border2); background:var(--white); color:var(--muted); font-size:16px; line-height:1; cursor:pointer; font-family:inherit; }
.pr-peek-x:hover{ color:var(--heading); border-color:var(--heading); }
.pr-peek-grid{ display:flex; flex-direction:column; }
.pr-peek-r{ display:grid; grid-template-columns:140px 1fr; gap:12px; padding:8px 0; border-bottom:1px solid var(--row-line); font-size:13px; }
.pr-peek-r span{ color:var(--muted); }
.pr-peek-r b{ font-weight:500; color:var(--heading); min-width:0; overflow-wrap:anywhere; }
.pr-peek-yl{ font-size:13px; color:var(--text); display:flex; flex-direction:column; gap:6px; padding:0 0 4px 12px; border-left:2px solid var(--border2); }
.pr-peek-nupud{ display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
.pr-peek-vihje{ font-size:11px; color:var(--muted); letter-spacing:.02em; }

/* ── LAADIMISOLEK (Luisa 25.09.2026 „tee laadimisolekud korda") ──────────────
   NN/g: alla 1 s EI NÄITA midagi (300 ms vilkuv spinner on halvem kui tühjus);
   kui sisu KUJU on ette teada (tabel, nimekiri), on skelett parem kui spinner —
   silm saab paigutuse ette ära lugeda. Spinner jääb sinna, kus kuju ei ole
   teada või tegevus on nupupõhine (üleslaadimine, genereerimine).
   Viivitus tuleb animation-delay'st, mitte JS-taimerist: kui vastus jõuab
   400 ms sees, ei jõua skelett kordagi nähtavale. */
.skel{ opacity:0; animation:skel-ilmu 0.15s 0.4s forwards; }
@keyframes skel-ilmu{ to{ opacity:1; } }
.skel-rida{ height:38px; border-bottom:1px solid var(--row-line); display:grid; align-items:center; gap:18px;
  grid-template-columns:minmax(0,1fr) 92px 128px 112px 104px; }
.skel-rida:first-child{ border-top:1px solid var(--border); }
.skel-t{ height:9px; background:var(--border); animation:skel-hinga 1.6s ease-in-out infinite; }
.skel-rida:nth-child(2) .skel-t{ animation-delay:0.1s; }
.skel-rida:nth-child(3) .skel-t{ animation-delay:0.2s; }
.skel-rida:nth-child(4) .skel-t{ animation-delay:0.25s; }
.skel-rida:nth-child(5) .skel-t{ animation-delay:0.4s; }
.skel-rida:nth-child(6) .skel-t{ animation-delay:0.4s; }
@keyframes skel-hinga{ 0%,100%{ opacity:1; } 50%{ opacity:0.45; } }
.skel-vaike .skel-rida{ height:30px; grid-template-columns:minmax(0,1fr) 84px; }
/* Ekraanilugejale jääb sõnum alles ka siis, kui pilt on ainult ribad. */
.skel-tekst{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* K3 · eriosade vastuste võrdlus (25.09.2026) */
.hkv-tbl{ font-size:13px; }
.hkv-rida{ display:grid; grid-template-columns:minmax(0,1fr) 120px 110px 150px 92px; gap:12px; align-items:center;
  padding:8px 0; border-bottom:1px solid var(--row-line); }
.hkv-rida > span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hkv-rida .hkv-r{ text-align:right; font-variant-numeric:tabular-nums; }
.hkv-pais{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); border-bottom:1px solid var(--border); }
.hkv-vaikne{ color:var(--muted); }
.hkv-valitud{ background:var(--warm); box-shadow:inset 2px 0 0 var(--accent); }
.hkv-madal{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--st-ok); margin-left:6px; }
.hkv-ok{ font-size:12px; color:var(--st-ok); }
@media(max-width:760px){ .hkv-rida{ grid-template-columns:1fr auto; gap:4px 10px; }
  .hkv-pais{ display:none; } }

/* R2 · masina täidetud väärtuse märk (25.09.2026) */
.masin-mark{ display:inline-block; margin-left:8px; padding:1px 6px; font:inherit; font-size:10px; letter-spacing:.06em;
  text-transform:none; color:var(--accent-dark); background:var(--warm); border:1px solid var(--border2); cursor:pointer; vertical-align:middle; }
.masin-mark:hover{ border-color:var(--accent); }
.masin-mark.ok{ color:var(--st-ok); background:var(--ok-light); border-color:transparent; cursor:default; }
