/* Layout: mobile-first radna ploča — ljepljivo zaglavlje, sadržaj u jednom stupcu, donja navigacija + uvijek dostupna tipka "Prijavi kvar" */
:root{
  --bg:#ECEFEB; --surface:#FFFFFF; --sunk:#E2E6E1; --ink:#1A1F21; --muted:#59646A; --line:#CFD5CF;
  --accent:#1E4F5E; --accent-ink:#FFFFFF; --accent-soft:#D6E4E6;
  --ok:#2C7A4B; --ok-bg:#DDEFE3; --warn:#9A6410; --warn-bg:#F6E9CC; --fix:#B4530F; --fix-bg:#F8DFCC; --bad:#BF2F25; --bad-bg:#F8D9D5;
  --f-display:"Archivo","Arial Narrow",system-ui,sans-serif; --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --r:10px; --nav-h:64px;
  color-scheme:light;
  padding-top:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme: dark){:root{
  --bg:#111618; --surface:#1A2124; --sunk:#232C30; --ink:#E7ECEA; --muted:#97A3A8; --line:#2F3A3E;
  --accent:#7FB8C6; --accent-ink:#0D1A1E; --accent-soft:#1F3A42;
  --ok:#6CCB91; --ok-bg:#183326; --warn:#E3B45C; --warn-bg:#352A14; --fix:#F0955A; --fix-bg:#3A2415; --bad:#FF7B70; --bad-bg:#3D1C1A; color-scheme:dark }}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--f-body);padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 24px)}
img{max-width:100%}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.15}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:980px;margin:0 auto;padding-inline:16px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:13px}

.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:10px;padding-block:10px}
.brand{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}
.brand h1{font-size:20px;font-weight:800;letter-spacing:-.01em}
.brand span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me{width:36px;height:36px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:13px;cursor:pointer;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;text-decoration:none;color:var(--ink);min-height:42px}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.ghost{background:transparent}
.btn.sm{padding:6px 10px;min-height:34px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:default}
.btn-kvar{background:var(--bad);border-color:var(--bad);color:#fff;font-family:var(--f-display);letter-spacing:.02em}

.alarm{background:var(--bad);color:#fff;position:sticky;top:0;z-index:30}
.alarm .wrap{display:flex;gap:10px;align-items:center;padding-block:10px}
.alarm b{font-family:var(--f-display);letter-spacing:.04em;text-transform:uppercase;font-size:13px}
.alarm .txt{flex:1;min-width:0;overflow-wrap:anywhere}
.alarm .btn{background:#fff;color:#7d1a13;border-color:#fff}
@media (prefers-reduced-motion:no-preference){.alarm{animation:pulse 1.2s ease-in-out 3}}
@keyframes pulse{50%{filter:brightness(1.25)}}

.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.nav .wrap{display:grid;grid-template-columns:repeat(4,1fr);height:var(--nav-h)}
.nav button{border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;font-weight:600;color:var(--muted);position:relative}
.nav button svg{width:22px;height:22px}
.nav button[aria-current="true"]{color:var(--accent)}
.nav .badge{position:absolute;top:8px;left:calc(50% + 6px);background:var(--bad);color:#fff;border-radius:99px;font-size:11px;padding:0 6px;line-height:17px}

main{padding-block:16px}
.section{margin-top:22px}
.section-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.section-h h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:640px){.tiles{grid-template-columns:repeat(2,1fr)}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:2px;cursor:pointer;text-align:left}
.tile .n{font-family:var(--f-display);font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.tile .l{font-size:13px;color:var(--muted)}
.tile.bad .n{color:var(--bad)} .tile.warn .n{color:var(--warn)} .tile.ok .n{color:var(--ok)}

.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.row{display:flex;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--line);cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left}
.row:first-child{border-top:0}
.row:hover{background:var(--sunk)}
.row .stripe{align-self:stretch;width:4px;border-radius:2px;flex:none;background:var(--line)}
.row .main{flex:1;min-width:0}
.row .t{font-weight:600}
.row .s{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.row .end{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.stripe.ok{background:var(--ok)} .stripe.pratiti{background:var(--warn)} .stripe.popravak{background:var(--fix)} .stripe.kvar{background:var(--bad)}
.empty{padding:18px 14px;color:var(--muted)}

.chip{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--sunk);color:var(--ink)}
.chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.pratiti{background:var(--warn-bg);color:var(--warn)} .chip.popravak{background:var(--fix-bg);color:var(--fix)} .chip.kvar{background:var(--bad-bg);color:var(--bad)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:currentColor}

.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px}
.cat .ct{font-weight:600;font-size:14px}
.cat .dots{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted);align-items:center}
.cat .dots .d{display:inline-flex;align-items:center;gap:3px}
.d.ok{color:var(--ok)} .d.pratiti{color:var(--warn)} .d.popravak{color:var(--fix)} .d.kvar{color:var(--bad)}

.bulk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px;cursor:pointer}
.bulk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (max-width:640px){.bulk-grid{grid-template-columns:1fr}}
.bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--sunk)}
.bar span{display:block;height:100%}
.bar .g{background:var(--ok)} .bar .w{background:var(--warn)} .bar .x{background:var(--bad)}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-variant-numeric:tabular-nums}
.note{border-radius:8px;padding:9px 12px;font-size:14px}
.note.bad{background:var(--bad-bg);color:var(--bad)} .note.warn{background:var(--warn-bg);color:var(--warn)} .note.ok{background:var(--ok-bg);color:var(--ok)} .note.info{background:var(--accent-soft);color:var(--accent)}

.toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.toolbar .line{display:flex;gap:8px;flex-wrap:wrap}
.search{flex:1;min-width:180px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 12px}
.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.filters button{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 12px;font-size:13px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.group-h{font-family:var(--f-display);font-size:14px;font-weight:700;margin:16px 0 6px;display:flex;gap:8px;align-items:baseline}

.scrim{position:fixed;inset:0;background:rgba(10,15,17,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92%;overflow-y:auto;border-radius:16px 16px 0 0;padding:18px 16px calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
@media (min-width:700px){.scrim{align-items:center}.sheet{border-radius:16px;max-height:88%}}
.sheet-h{display:flex;gap:10px;align-items:flex-start}
.sheet-h .tt{flex:1;min-width:0}
.sheet-h h2{font-size:22px;font-weight:800}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.x{border:0;background:var(--sunk);border-radius:50%;width:38px;height:38px;cursor:pointer;font-size:18px;flex:none}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.actions .btn{flex:1 1 auto}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.card h3{font-size:15px;font-weight:700}
.foto{border-radius:8px;max-height:320px;object-fit:contain;background:var(--sunk);width:100%}

.ck{display:flex;flex-direction:column}
.ck div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:14px}
.ck div:first-child{border-top:0}

form{display:flex;flex-direction:column;gap:12px;margin:0}
.fld{display:flex;flex-direction:column;gap:4px}
.fld>label,.lbl{font-size:13px;font-weight:600;color:var(--muted)}
.fld input,.fld select,.fld textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px 11px;width:100%;min-width:0;font-size:16px}
.fld textarea{min-height:84px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:480px){.three{grid-template-columns:1fr}.two.stack{grid-template-columns:1fr}}
.seg-row{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid var(--line)}
.seg-row:first-child{border-top:0}
.seg-row .q{font-weight:600;font-size:14px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 4px;text-align:center;font-size:13px;font-weight:600;cursor:pointer}
.seg input:focus-visible+label{outline:3px solid var(--accent);outline-offset:1px}
.seg input[value="ok"]:checked+label{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}
.seg input[value="pratiti"]:checked+label{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.seg input[value="zamijeniti"]:checked+label{background:var(--fix-bg);border-color:var(--fix);color:var(--fix)}
.opts{display:flex;flex-direction:column;gap:6px}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px 12px;cursor:pointer}
.opt input{margin-top:3px}
.opt:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.opt b{display:block}
.check{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.chips-in{display:flex;flex-wrap:wrap;gap:6px}
.chips-in label{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 10px;font-size:13px;cursor:pointer}
.chips-in label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.foto-in{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.foto-in img{width:72px;height:72px;object-fit:cover;border-radius:8px}

.serv .phone{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.serv .num{font-family:var(--f-mono);font-size:17px;user-select:all}
.serv textarea{width:100%;border:1px solid var(--line);background:var(--sunk);border-radius:8px;padding:9px 11px;min-height:96px;font-size:14px;resize:vertical}

.timeline{display:flex;flex-direction:column}
.timeline .ev{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.timeline .ev:first-child{border-top:0}
.timeline .when{flex:none;width:86px;color:var(--muted);font-size:13px}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 74px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;z-index:60;font-size:14px;max-width:calc(100% - 32px)}
.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 14px);z-index:25;box-shadow:0 6px 18px rgba(0,0,0,.22);border-radius:99px;padding:12px 18px;min-height:50px}
@media (min-width:1012px){.fab{right:calc(50% - 474px)}}
.state{padding:40px 0;text-align:center;color:var(--muted)}
.ro{font-size:12px;border:1px solid var(--line);border-radius:99px;padding:2px 8px;color:var(--muted);white-space:nowrap}

.login{max-width:380px;margin:8vh auto 0;display:flex;flex-direction:column;gap:16px}
.login h2{font-size:28px;font-weight:800}
.login .btn{min-height:50px}
