/* Miltima – Webadmin */
:root{
  --bg:#f4f5f9; --surface:#fff; --line:#e6e8ef; --line-2:#eff1f5; --text:#11152b; --muted:#6b7186; --faint:#9aa0b3;
  --navy:#0d1330; --navy-2:#16205a; --accent:#2f6bff; --accent-rgb:47,107,255; --red:#dc2626; --green:#15803d; --amber:#b45309;
  --grad:linear-gradient(135deg,#1aa8ff 0%,#3d5bff 50%,#a855f7 100%);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
svg.i{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- gombok, mezők ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-weight:600;font-size:13px;color:#3a4057;white-space:nowrap}
.btn:hover{border-color:#c9d3f5}
.btn:disabled{opacity:.6;cursor:wait}
.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 4px 12px rgba(13,19,48,.18)}
.btn.pri:hover{background:var(--navy-2)}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.red-o{color:var(--red)}.btn.red-o:hover{border-color:#fca5a5}
.btn.sm{height:30px;padding:0 10px;font-size:12px}
.btn.big{height:46px;width:100%;font-size:14px}
.ib{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}
.ib:hover{background:#eef0f5;color:var(--text)}
.ib.red:hover{background:#fee2e2;color:var(--red)}
.f{display:flex;flex-direction:column;gap:6px}
.f>span{font-size:12.5px;font-weight:500;color:#3a4057}
.f input,.sel select{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;outline:0;background:#fff;width:100%}
.f input:focus,.sel select:focus{border-color:#a9c1ff;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.1)}
.sel{position:relative}
.sel select{appearance:none;padding-right:34px;cursor:pointer}
.sel svg{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
.pw{display:flex;gap:8px}.pw input{flex:1;min-width:0;font-family:ui-monospace,Consolas,monospace}
.pw .btn{height:42px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#3a4057;line-height:1.45;cursor:pointer}
.chk input{width:17px;height:17px;margin-top:1px;accent-color:var(--accent)}
.err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:9px 12px;font-size:13px}
.note{display:flex;align-items:center;gap:7px;margin:12px 0 0;font-size:12.5px;color:var(--muted);background:#f7f8fb;border-radius:10px;padding:9px 12px}
.note svg.i{width:15px;height:15px}
.mut{color:var(--faint)}
.sp{flex:1}

/* ---------- belépés ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 20% 0%,#1b2a7a 0%,transparent 60%),radial-gradient(900px 500px at 100% 100%,#4c1d95 0%,transparent 55%),var(--navy)}
.lcard{width:min(400px,100%);background:#fff;border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.lbrand{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.lbrand img{height:30px}
.lbrand b{display:block;font-size:17px;font-weight:800}
.lbrand span{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lcard h1{margin:6px 0 0;font-size:22px}
.lsub{margin:-8px 0 4px;color:var(--muted);font-size:13px}

/* ---------- váz ---------- */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;height:58px;padding:0 20px;background:var(--navy);color:#e8ebff}
.brand{display:flex;align-items:center;gap:9px}
.brand img{height:24px}
.brand b{font-size:16px;font-weight:800;color:#fff}
.brand span{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:2px 8px;border-radius:8px;background:rgba(255,255,255,.1);color:#cfd5f2}
.lnk{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:9px;color:#cfd5f2;font-size:13px;font-weight:500}
.lnk:hover{background:rgba(255,255,255,.08);color:#fff}
.main{max-width:1320px;margin:0 auto;padding:22px 20px 40px}
.head{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.head h1{margin:0;font-size:22px;letter-spacing:-.3px}
.head p{margin:2px 0 0;color:var(--muted);font-size:13px}
.back{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#fff;color:#3a4057}
.back:hover{border-color:#c9d3f5}

/* ---------- csempék ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.tile{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 1px 2px rgba(16,24,64,.04)}
.ti{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eef2ff;color:var(--accent);flex:none}
.tile b{display:block;font-size:22px;font-weight:800;letter-spacing:-.4px;line-height:1.1}
.tile>div>span{display:block;font-size:12.5px;color:#3a4057;font-weight:500}
.tile small{display:block;font-size:11.5px;color:var(--muted)}

/* ---------- kártya, táblázat ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(16,24,64,.04);overflow:hidden}
.ch{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.ch h2{margin:0;font-size:15px}
.search{display:flex;align-items:center;gap:8px;margin-left:auto;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;width:min(320px,100%);color:var(--faint)}
.search input{border:0;outline:0;flex:1;min-width:0;font-size:13px;color:var(--text)}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfd}
td{padding:10px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}
td small{display:block;font-size:11.5px;color:var(--muted)}
tbody tr:last-child td{border-bottom:0}
tbody tr[data-org]{cursor:pointer}
tbody tr[data-org]:hover td{background:#f8f9fd}
.n{text-align:right}
td.acts{display:flex;gap:6px;justify-content:flex-end}
.pill{display:inline-block;font-size:11.5px;font-weight:700;border-radius:9px;padding:1px 8px}
.pill.warn{background:#fef3c7;color:var(--amber)}
.tag{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.2px;border-radius:6px;padding:1px 6px;vertical-align:1px}
.tag svg.i{width:11px;height:11px}
.tag.adm{background:#f0e9fd;color:#7a45e0}.tag.acc{background:#e7f6ec;color:var(--green)}.tag.off{background:#f1f3f7;color:var(--muted)}
.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 20px;color:var(--muted);font-size:13px;text-align:center}
.empty svg.i{width:42px;height:42px;padding:10px;border-radius:50%;background:#f1f3f7;color:var(--faint)}
.empty b{color:var(--text);font-size:14px}

/* ---------- szervezet ---------- */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chips span{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:13px;color:#3a4057}
.chips svg.i{width:15px;height:15px;color:var(--muted)}
.tabs{display:flex;align-items:center;gap:4px;margin-bottom:10px}
.tabs>button{height:36px;padding:0 14px;border-radius:10px;font-weight:600;font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:7px}
.tabs>button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(16,24,64,.08)}
.tabs em{font-style:normal;font-size:11px;background:#eef0f5;border-radius:8px;padding:0 6px}
.tree{padding:8px}
.node{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px 8px calc(10px + var(--d) * 30px);border-radius:10px}
.node:hover{background:#f8f9fd}
.node .tl{position:absolute;left:calc(var(--d) * 30px - 12px);top:0;bottom:50%;width:12px;border-left:1.5px solid #d6dae5;border-bottom:1.5px solid #d6dae5;border-bottom-left-radius:7px}
.node[style*="--d:0"] .tl{display:none}
.node.inactive{opacity:.55}
.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;flex:none;background:hsl(var(--h) 75% 95%);color:hsl(var(--h) 50% 36%);box-shadow:inset 0 0 0 1px hsl(var(--h) 60% 86%)}
.nm{flex:1;min-width:0}
.nm b{font-weight:600}
.nm small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cnt{font-size:11.5px;color:var(--muted);background:#f1f3f7;border-radius:8px;padding:2px 8px;white-space:nowrap}
.node .acts{display:flex;gap:2px;opacity:0;transition:opacity .12s}
.node:hover .acts,.node:focus-within .acts{opacity:1}
@media (hover:none){.node .acts{opacity:1}}

/* ---------- modal ---------- */
.scrim{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(10,14,40,.45);backdrop-filter:blur(3px);animation:fade .15s}
@keyframes fade{from{opacity:0}}
.modal{width:min(480px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}
.modal.wide{width:min(640px,100%)}
@keyframes pop{from{transform:scale(.96);opacity:0}}
.modal header{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 12px}
.modal header div{flex:1}
.modal h2{margin:0;font-size:17px}
.modal header p{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
.mx{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--muted)}
.mx:hover{background:#f1f3f7}
.mb{padding:4px 20px 16px;overflow:auto;display:flex;flex-direction:column;gap:12px}
.g{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.full{grid-column:1/-1}
.modal footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line-2);background:#fafbfd}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:22px;z-index:60;transform:translate(-50%,20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:11px 16px;border-radius:12px;background:var(--navy);color:#fff;font-size:13px;font-weight:500;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.bad{background:#991b1b}

@media (max-width:700px){
  .g{grid-template-columns:1fr}
  .top .lnk span,.top .lnk{font-size:0;gap:0}
  .head .btn{flex:1}
  .node{padding-left:calc(8px + var(--d) * 18px)}
  .node .tl{left:calc(var(--d) * 18px - 8px)}
  .nm small{white-space:normal}
}
