/* Malmerk Brand Kit v1.0 (sama mis catalog.malmerkklaasium.ee):
   üks kirjatüüp (Exo 2), teravad nurgad, varjudeta, ruudustikuga päis. Vaikimisi tume teema. */
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/exo-2-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/exo-2-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+A720-A7FF}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/exo-2-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/exo-2-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+A720-A7FF}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/exo-2-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/exo-2-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+A720-A7FF}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/exo-2-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/exo-2-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+A720-A7FF}

/* Tume (vaikimisi) */
:root{
  --bg:#0f172a;--nav:#0f172a;--surface:#141e33;--surface-2:#18233a;--border:#2e3e5c;--hair:#22304b;
  --text:#e9eef4;--heading:#f5ede0;--muted:#a9b3c2;--faint:#6b7a90;
  --accent:#5da1c4;--accent-high:#a8cde0;--accent-low:#163a52;--fill:#4f97bf;--fill-hover:#2f6c8e;--on-fill:#ffffff;
  --ok:#3f8a66;--warn:#c97d5c;--danger:#e58e7a;
  --caution-bg:#33291a;--caution-fg:#e8c27a;--grid:rgba(131,183,210,.08);
  --font:"Exo 2",Arial,sans-serif;--side:15rem;--head:3.5rem;
  color-scheme:dark;
}
:root[data-theme=light]{
  --bg:#fbf8f4;--nav:#ffffff;--surface:#ffffff;--surface-2:#f5ede0;--border:#d9c8b0;--hair:#e7dccb;
  --text:#0f172a;--heading:#0f172a;--muted:#655f55;--faint:#7b7468;
  --accent:#2f6c8e;--accent-high:#235273;--accent-low:#eaf3f9;--fill:#4f97bf;--fill-hover:#2f6c8e;--on-fill:#ffffff;
  --ok:#2f7a55;--warn:#b5653f;--danger:#b23b2a;
  --caution-bg:#f7ecd2;--caution-fg:#6e4800;--grid:rgba(79,151,191,.12);
  color-scheme:light;
}
*{box-sizing:border-box;border-radius:0}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 var(--font);font-variant-numeric:tabular-nums}
a{color:var(--accent);text-underline-offset:3px}
h1,h2,h3{color:var(--heading);font-weight:600;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:1.4rem;margin:.2rem 0 1rem}
h2{font-size:1.05rem;margin:0 0 .75rem}

/* päis – nagu kataloogil: logo | jaotur | rakenduse nimi, ruudustiku taust */
header.top{position:sticky;top:0;z-index:20;height:var(--head);display:flex;align-items:center;gap:.75rem;padding:0 1rem;
  background-color:var(--nav);border-bottom:1px solid var(--hair);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}
.site-title{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--heading);white-space:nowrap}
.site-title .logo{height:1.35rem;width:auto;display:block}
:root[data-theme=light] .on-dark,:root:not([data-theme=light]) .on-light{display:none}
.site-title .divider{width:1px;height:1.4rem;background:var(--border)}
.site-title .app{font-size:.9rem;font-weight:500;letter-spacing:.02em;color:var(--muted)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--muted)}
.top-right a{color:var(--muted)}
.theme-select{display:flex;align-items:center;gap:.3rem}
.theme-select select{width:auto;padding:.25rem .4rem;font-size:.8rem;background:transparent;color:var(--muted);border:1px solid var(--border)}
header.top .wc select{width:auto;padding:.25rem .4rem;font-size:.85rem}

/* külgmenüü (töölaud) / alumine riba (telefon) */
.layout{display:block}
nav.side{display:none}
nav.bottom{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;background:var(--nav);
  border-top:1px solid var(--hair);padding:.3rem 0 calc(.3rem + env(safe-area-inset-bottom))}
nav.bottom a{flex:1;color:var(--muted);text-decoration:none;font-size:.75rem;font-weight:500;text-align:center;padding:.45rem .25rem;letter-spacing:.02em}
nav.bottom a.on{color:var(--heading);box-shadow:inset 0 2px 0 var(--fill)}
main{max-width:46rem;margin:0 auto;padding:1rem 1rem 6rem}
main.wide{max-width:76rem}
@media (min-width:50rem){
  nav.bottom{display:none}
  .layout.has-side{display:grid;grid-template-columns:var(--side) 1fr;min-height:calc(100vh - var(--head))}
  nav.side{display:flex;flex-direction:column;position:sticky;top:var(--head);height:calc(100vh - var(--head));overflow:auto;
    border-right:1px solid var(--hair);background:var(--nav);padding:1rem .75rem}
  nav.side .group{margin-bottom:1.25rem}
  nav.side .label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;padding:0 .6rem .35rem}
  nav.side a{display:block;padding:.4rem .6rem;color:var(--muted);text-decoration:none;font-size:.92rem}
  nav.side a:hover{color:var(--heading)}
  nav.side a.on{color:var(--heading);background:var(--accent-low);box-shadow:inset 2px 0 0 var(--fill)}
  nav.side .bottom-group{margin-top:auto;padding-top:1rem;border-top:1px solid var(--hair)}
  main{padding-bottom:2rem}
}

/* sisuplokid */
.card{background:var(--surface);border:1px solid var(--border);padding:1rem;margin-bottom:1rem}
.mk-label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.stat{background:var(--surface);border:1px solid var(--border);padding:.75rem;text-align:left}
.stat b{display:block;font-size:1.5rem;font-weight:600;color:var(--heading)}
.stat span{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.neg{color:var(--danger)!important}.pos{color:var(--ok)!important}
.muted{color:var(--muted);font-size:.85rem}
.target{font-size:1.35rem;font-weight:600;color:var(--heading);word-break:break-all;margin:.3rem 0 .1rem}
.flag{background:var(--caution-bg);color:var(--caution-fg);padding:.4rem .6rem;margin:.3rem 0;font-size:.85rem}
.flag a{color:inherit;font-weight:600}
.msg{padding:.7rem .9rem;margin-bottom:1rem;background:var(--accent-low);border-left:3px solid var(--fill)}
.msg.error{background:var(--caution-bg);color:var(--caution-fg);border-left-color:var(--warn)}
.chip{display:inline-block;font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:.05rem .4rem;border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.chip.warn{background:var(--caution-bg);color:var(--caution-fg);border-color:transparent}
.chip.ok{color:var(--ok);border-color:var(--ok)}

/* nupud */
.btn{display:block;width:100%;border:1px solid transparent;padding:1rem;font:600 1.05rem var(--font);letter-spacing:.02em;cursor:pointer;
  background:var(--fill);color:var(--on-fill);text-align:center;text-decoration:none}
.btn:hover,.btn:active{background:var(--fill-hover)}
.btn.big{padding:1.9rem;font-size:1.6rem;letter-spacing:.08em}
.btn.alt{background:transparent;color:var(--heading);border-color:var(--border)}
.btn.alt:hover{background:var(--surface-2)}
.btn.ok{background:var(--ok)}
.btn.warn{background:var(--warn)}
.btn.small{display:inline-block;width:auto;padding:.45rem .8rem;font-size:.85rem}
.btn+.btn{margin-top:.6rem}
.grid2>.btn,.grid3>.btn,.inline>.btn{margin-top:0}

/* tabelid nagu kataloogi spetsifikatsioonid */
table{border-collapse:collapse;width:100%;font-size:.88rem}
th{background:var(--surface-2);color:var(--heading);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  padding:.5rem .6rem;text-align:left;position:sticky;top:0;border-bottom:1px solid var(--border)}
td{border-bottom:1px solid var(--hair);padding:.5rem .6rem;vertical-align:top}
td.num,th.num{text-align:right;white-space:nowrap}
tr.flagged td{background:color-mix(in srgb,var(--caution-bg) 55%,transparent)}
.scroll{overflow-x:auto}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{display:flex;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--hair)}
.timeline .t{font-weight:600;width:3.2rem;flex:none;color:var(--heading)}
.timeline .what{flex:1;word-break:break-all}

/* vormid */
input,select,textarea{font:16px var(--font);padding:.7rem;border:1px solid var(--border);width:100%;background:var(--bg);color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--fill);outline-offset:-1px}
label{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:.8rem 0 .3rem}
.inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.inline input,.inline select{width:auto}
details summary{cursor:pointer;color:var(--accent)}

/* skannimine */
#video{width:100%;background:#000;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--border)}
.sheet{position:fixed;inset:0;background:rgba(5,10,20,.7);display:none;z-index:30;align-items:flex-end}
.sheet.open{display:flex}
.sheet .panel{background:var(--surface);border-top:2px solid var(--fill);width:100%;max-width:46rem;margin:0 auto;
  padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));max-height:92vh;overflow:auto}
.queue{position:fixed;top:4rem;right:.75rem;background:var(--warn);color:#fff;padding:.25rem .7rem;font-size:.8rem;display:none;z-index:25}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:5.5rem;background:var(--heading);color:var(--bg);padding:.75rem 1.1rem;display:none;z-index:40;font-weight:600}

/* haldus: arendusplaan */
.md h2{margin-top:1.4rem}.md h3{font-size:.95rem;margin:1rem 0 .4rem}
.md ul{padding-left:1.1rem;margin:.3rem 0}.md li{margin:.15rem 0}
.md li.task{list-style:none;margin-left:-1.1rem}
.md li.task::before{content:"☐ ";color:var(--muted)}
.md li.task.done::before{content:"☑ ";color:var(--ok)}
.md li.task.done{color:var(--muted)}
.md code{color:var(--accent-high);font-size:.9em}
.progress{height:6px;background:var(--surface-2);margin:.3rem 0 .8rem}
.progress>i{display:block;height:100%;background:var(--fill)}
.cols{display:grid;gap:1rem;align-items:start}
@media (min-width:64rem){.cols{grid-template-columns:1fr 1fr}}
.install{border-left:3px solid var(--fill)}
[hidden]{display:none!important}

/* mis praegu käib */
.runbar{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;margin:-1rem -1rem 1rem;padding:.5rem 1rem;text-decoration:none;color:var(--text);
  background:var(--accent-low);border-bottom:1px solid var(--hair);border-left:3px solid var(--fill)}
.runbar b{color:var(--heading);word-break:break-all}
.runbar.aux{background:var(--caution-bg);border-left-color:var(--warn)}
.runbar.aux .mk-label{color:var(--caution-fg)}
.runbar.none,.runbar.ended{background:var(--surface);border-left-color:var(--border)}
.now{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--fill);padding:1rem;margin-bottom:.8rem}
.now-target{font-size:1.45rem;font-weight:600;color:var(--heading);word-break:break-all;margin:.15rem 0 .4rem}
.now.aux{border-left-color:var(--warn);background:var(--caution-bg)}
.now.aux .now-target,.now.aux .mk-label{color:var(--caution-fg)}
.now.none,.now.ended{border-left-color:var(--border)}
.hint{font-size:.8rem;color:var(--muted);margin:.3rem 0 .7rem;min-height:1em}
