/* Pot: /volume1/web/NMP/assets/css/nmp.css */

/* ── ANTI-FLASH (prepreči belo utripanje ob nalaganju) ── */
html{visibility:hidden;opacity:0;transition:opacity .15s;}
html[data-theme]{visibility:visible;opacity:1;}


/* ============================================================
   NMP Portal — Struktura datotek
   ============================================================
   /volume1/web/NMP/
   │
   ├── index.php                    ← Dashboard (glavna stran)
   │
   ├── assets/
   │   └── css/
   │       └── nmp.css              ← TA DATOTEKA — skupni CSS
   │
   ├── auth/
   │   ├── auth.php                 ← Avtentikacija, funkcije, konstante
   │   ├── nmp_header.php           ← Skupni header (require v vsaki app)
   │   ├── debug.php                ← Debug bar (samo superadmin)
   │   ├── users.json               ← Podatki uporabnikov
   │   ├── units.json               ← Podatki enot
   │   ├── debug_config.json        ← Debug ON/OFF nastavitev
   │   └── logos/                   ← Logotipi enot + portal
   │       ├── portal_logo.png
   │       ├── bistrica.png
   │       └── ...
   │
   ├── admin/
   │   └── index.php                ← Admin panel
   │
   ├── vreme/
   │   └── index.php                ← Vreme app
   │
   ├── menjave/
   │   ├── index.php                ← Menjave app
   │   └── data/                    ← JSON podatki menjav
   │
   ├── urnik/
   │   ├── index.php                ← Urnik app
   │   └── data/                    ← JSON urniki po enotah
   │
   ├── oglasna_deska/
   │   ├── index.php                ← Obvestila app
   │   └── uploads/                 ← Naloženi dokumenti
   │
   ├── profil/
   │   └── index.php                ← Profil uporabnika
   │
   └── logo.php                     ← Authenticated logo server
   ============================================================
   
   KAKO DODATI NOVO APP:
   1. Ustvari mapo: /volume1/web/NMP/[ime_app]/
   2. Ustvari index.php z:
      [php:
      require_once '/volume1/web/NMP/auth/auth.php';
      nmp_require_login();
      $nmp_active_page = '[ime_app]';  // za aktivni nav link
      $theme = $_COOKIE['nmp_theme'] ?? 'light';
      ]<!DOCTYPE html>
      <html lang="sl" data-theme="[php_echo: $theme ]">
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1">
        <title>Ime App · NMP Portal</title>
        <link rel="stylesheet" href="/assets/css/nmp.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css">
        <style>/* App-specifični CSS */</style>
      </head>
      <body>
      [php: require_once 'nmp_header.php'; ]
      <div class="app-wrap">
        <!-- Vsebina -->
      </div>
      [php: require_once 'debug.php'; if(function_exists('nmp_debug_bar')) nmp_debug_bar(__FILE__); ]
      </body></html>
   3. Dodaj app v $_h_nav_map v nmp_header.php
   4. Dodaj app v NMP_APPS konstanto v auth.php
   ============================================================ */

/* ============================================================
   NMP Portal — Centralni CSS v2.0
   Vse aplikacije vključijo: <link rel="stylesheet" href="/assets/css/nmp.css">
   App-specifični CSS dodajte v <style> po tem vključku.
   ============================================================ */

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

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

:root,
[data-theme="light"]{
  --bg:#f5f3ee;--bg2:#eeebe3;
  --header:#ffffff;--hbd:#e5e0d8;
  --card:#ffffff;--cbd:#e8e4dc;--card-hover:#fdfcf8;
  --txt:#111;--txt2:#555;--mut:#999;
  --gold:#b8944f;--gold-bg:rgba(184,148,79,0.1);
  --btn-bg:#f0ede6;--btn-bd:#ddd;--btn-tx:#666;
  --tab-act:#b8944f;
  --nav-tx:#777;
  --bn-bg:#fff;--bn-bd:#e8e4dc;
  --warn:#f97316;--info:#3b82f6;--grn:#16a34a;--pur:#7c3aed;--red:#dc2626;
  --D:#d97706;--N:#6366f1;--V:#16a34a;
  --inp-bg:#fff;--inp-bd:#ddd;--inp-tx:#111;
  --login-bg:#f5f3ee;--login-box:rgba(255,254,249,0.98);
  --login-mut:#888;--login-lbl:#999;
  --login-btn:#222;--login-btn-tx:#fff;--login-foot:#ccc;
  --tog-bg:#ccc;--tog-knob:#fff;
  --avatar-bg:#b8944f;
}
[data-theme="dark"]{
  --bg:#000;--bg2:#0a0a0a;
  --header:rgba(10,10,10,0.97);--hbd:rgba(255,255,255,0.07);
  --card:#111;--cbd:rgba(255,255,255,0.1);--card-hover:#191919;
  --txt:#eee;--txt2:#aaa;--mut:#666;
  --gold:#d4a96a;--gold-bg:rgba(212,169,106,0.1);
  --btn-bg:rgba(255,255,255,0.05);--btn-bd:rgba(255,255,255,0.12);--btn-tx:#aaa;
  --tab-act:#d4a96a;
  --nav-tx:#555;
  --bn-bg:#0d0d0d;--bn-bd:rgba(255,255,255,0.07);
  --warn:#fb923c;--info:#60a5fa;--grn:#4ade80;--pur:#a78bfa;--red:#f87171;
  --D:#fbbf24;--N:#818cf8;--V:#4ade80;
  --inp-bg:#1e1e1e;--inp-bd:#333;--inp-tx:#eee;
  --login-bg:#0d0d0d;--login-box:#1a1a1a;
  --login-mut:#666;--login-lbl:#555;
  --login-btn:#fff;--login-btn-tx:#111;--login-foot:#333;
  --tog-bg:#444;--tog-knob:#fff;
  --avatar-bg:#d4a96a;
}

html,body{font-family:var(--nmp-font,'Segoe UI',system-ui,sans-serif);background:var(--bg);color:var(--txt);transition:background .3s,color .3s;min-height:100%;-webkit-tap-highlight-color:transparent;}

/* ── PULSE ── */
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.35)}}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);flex-shrink:0;}
.live-dot.pulse{animation:pulse 1.8s ease-in-out infinite;}
.live-dot.off{display:none;}

/* ── HEADER ── */
.top-header{position:fixed;top:0;left:0;right:0;z-index:100;height:52px;background:var(--header);border-bottom:1px solid var(--hbd);display:flex;align-items:center;padding:0;backdrop-filter:blur(14px);}
/* PWA / standalone safe area */
@supports(padding-top: env(safe-area-inset-top)) {
  .top-header{
    height:calc(52px + env(safe-area-inset-top));
    padding-top:env(safe-area-inset-top);
  }
  .th-inner{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }
}
.th-inner{width:100%;max-width:1400px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:10px;height:100%;}
@media(max-width:1200px){.th-inner{padding:0 24px;}}
@media(max-width:767px){.th-inner{padding:0 14px;}}

/* Logo */
.th-logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0;}
.th-logo-img{height:44px;width:auto;object-fit:contain;}
.th-logo-dot{width:26px;height:26px;border-radius:50%;background:var(--gold);flex-shrink:0;}
.th-logo-name{font-size:16px;font-weight:700;color:var(--txt);white-space:nowrap;letter-spacing:-.01em;}

/* Nav — skrit povsod, burger prevzame */
.th-nav{display:none;}
.th-nav-link{display:none;}
.th-admin-nav{display:none;}

/* Right */
.th-right{margin-left:auto;display:flex;align-items:center;gap:6px;flex-shrink:0;}
.th-btn{display:flex;align-items:center;gap:4px;padding:5px 9px;border:1px solid var(--btn-bd);border-radius:6px;font-size:11px;font-weight:500;color:var(--btn-tx);background:var(--btn-bg);cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .15s;font-family:inherit;}
.th-btn:hover{color:var(--txt);border-color:var(--gold);}
.th-btn.gold{color:var(--gold);border-color:var(--gold);}
.th-btn i{font-size:13px;}

/* Avatar — skrit, burger ga nadomesti */
.th-avatar{display:none;}

/* Theme toggle */
.theme-toggle{width:30px;height:17px;border-radius:9px;background:var(--tog-bg);border:none;cursor:pointer;position:relative;padding:0;transition:background .3s;flex-shrink:0;}
/* Toggle v headerju skrit — samo v burger menuju */
.top-header .theme-toggle{display:none;}
.theme-toggle-knob{position:absolute;top:2.5px;width:12px;height:12px;border-radius:50%;background:var(--tog-knob);transition:left .22s cubic-bezier(.34,1.56,.64,1);}
[data-theme="light"] .theme-toggle-knob{left:2.5px;}
[data-theme="dark"]  .theme-toggle-knob{left:15.5px;}

/* Burger gumb — VEDNO VIDEN na vseh napravah */
.th-menu-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:7px;font-size:12px;font-weight:500;border:1px solid var(--btn-bd);background:var(--bg);color:var(--txt);cursor:pointer;font-family:inherit;}
.th-menu-btn:hover{border-color:var(--gold);color:var(--gold);}
.th-menu-btn i{font-size:16px;}
.th-admin-btn{display:flex;align-items:center;gap:4px;padding:5px 9px;border:1px solid var(--gold);border-radius:6px;font-size:11px;font-weight:500;color:var(--gold);background:transparent;cursor:pointer;text-decoration:none;white-space:nowrap;}
.th-admin-btn i{font-size:13px;}

/* Burger panel */
.nmp-brg-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:200;backdrop-filter:blur(2px);}
.nmp-brg-bg.open{display:block;}
.nmp-brg{position:fixed;top:0;right:0;bottom:0;width:280px;max-width:85vw;background:var(--card);border-left:1px solid var(--hbd);z-index:201;overflow-y:auto;transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);}
.nmp-brg.open{transform:translateX(0);}
.nmp-brg-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--hbd);font-size:13px;font-weight:600;color:var(--txt);}
.nmp-brg-close{background:none;border:none;cursor:pointer;color:var(--mut);padding:4px;display:flex;align-items:center;justify-content:center;}
.nmp-brg-close i{font-size:18px;}
.nmp-brg-profil{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--hbd);}
.nmp-brg-av{width:36px;height:36px;border-radius:50%;background:var(--avatar-bg);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;}
.nmp-brg-sec{padding:8px 0;}
.nmp-brg-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);padding:6px 16px 3px;}
.nmp-brg-item{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:13px;color:var(--txt);text-decoration:none;background:none;border:none;cursor:pointer;width:100%;text-align:left;font-family:inherit;transition:background .12s;}
.nmp-brg-item:hover{background:var(--bg2);}
.nmp-brg-item.active{color:var(--gold);font-weight:600;}
.nmp-brg-item.gold{color:var(--gold);}
.nmp-brg-item i{font-size:16px;flex-shrink:0;width:20px;}
.nmp-brg-badge{margin-left:auto;font-size:9px;font-weight:700;background:var(--red);color:#fff;border-radius:8px;padding:2px 6px;}
.nmp-brg-div{height:1px;background:var(--hbd);margin:4px 0;}
.nmp-brg-theme-row{display:flex;align-items:center;gap:10px;padding:9px 16px;}
.nmp-brg-tog-lbl{font-size:13px;color:var(--txt);flex:1;}
.nmp-brg-tog{width:36px;height:20px;border-radius:10px;background:var(--tog-bg);cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;}
.nmp-brg-tog.on{background:var(--gold);}
.nmp-brg-knob{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .2s;}
.nmp-brg-tog.on .nmp-brg-knob{left:19px;}

/* Nav badge */
.th-nav-badge{font-size:9px;font-weight:700;background:var(--red);color:#fff;border-radius:8px;padding:1px 5px;margin-left:2px;}

/* ── LOGIN ── */
.login-page{min-height:100svh;display:flex;align-items:center;justify-content:space-between;flex-direction:column;padding:2rem 1rem 1rem;background:var(--login-bg);}
.login-logo{width:clamp(90px,18vw,130px);height:clamp(90px,18vw,130px);object-fit:contain;margin-bottom:clamp(14px,3vh,26px);}
.login-box{background:var(--login-box);border-radius:14px;padding:1.8rem;width:100%;max-width:305px;box-shadow:0 20px 60px rgba(0,0,0,.18);}
.login-box p.title{font-size:15px;font-weight:700;color:var(--txt);text-align:center;margin-bottom:5px;}
.login-box p.sub{font-size:12px;color:var(--login-mut);text-align:center;margin-bottom:1.3rem;line-height:1.5;}
.login-box label{font-size:11px;color:var(--login-lbl);display:block;margin-bottom:3px;}
.login-box input{width:100%;padding:8px 10px;border:1px solid var(--inp-bd);border-radius:7px;font-size:16px;margin-bottom:10px;font-family:inherit;background:var(--inp-bg);color:var(--inp-tx);transition:border-color .15s;}
.login-box input:focus{outline:none;border-color:var(--gold);}
.login-btn{width:100%;padding:12px;background:var(--login-btn);color:var(--login-btn-tx);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:6px;transition:opacity .15s;}
.login-btn:hover{opacity:.85;}
.login-forgot{display:block;text-align:center;margin-top:11px;font-size:11px;color:var(--login-mut);text-decoration:none;}
.cf-turnstile-wrap{overflow:hidden;height:58px;}
.cf-turnstile{transform:scale(.68);transform-origin:center top;margin-bottom:-18px;display:flex;justify-content:center;}
.login-err{color:#cc3333;font-size:12px;margin-bottom:12px;padding:8px 12px;background:#fff0f0;border-radius:7px;}

.login-footer{margin-top:10px;text-align:center;}
.login-contact{font-size:11px;color:var(--mut);text-decoration:none;opacity:.8;}
.login-contact:hover{opacity:1;color:var(--gold);}
.login-theme-row{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:14px;}
.login-theme-row span{font-size:11px;color:var(--login-foot);}


/* ── UNIT ── */
.unit-page{min-height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:1rem;background:var(--login-bg);}
.unit-box{background:var(--login-box);border-radius:14px;padding:2rem;width:100%;max-width:340px;box-shadow:0 20px 60px rgba(0,0,0,.15);}
.unit-box h2{font-size:16px;font-weight:700;color:var(--txt);margin-bottom:6px;}
.unit-box p{font-size:13px;color:var(--login-mut);margin-bottom:1.2rem;line-height:1.5;}
.unit-btn{padding:13px 16px;border:1px solid var(--inp-bd);border-radius:10px;background:var(--inp-bg);color:var(--inp-tx);font-size:14px;font-weight:500;text-align:left;cursor:pointer;font-family:inherit;transition:all .15s;width:100%;margin-bottom:8px;}
.unit-btn:hover{border-color:var(--gold);}


/* ── FOOTER ── */
.nmp-footer{text-align:center;padding:14px;font-size:11px;color:var(--mut);border-top:1px solid var(--hbd);margin-top:32px;width:100%;}

/* PWA bottom safe area — za iPhone home indicator */
.bottom-nav{padding-bottom:calc(8px + env(safe-area-inset-bottom));}
body{padding-bottom:env(safe-area-inset-bottom);}
