/* HOLDEV portal — общие стили (тёмная тема, акцент #58a6ff) */
:root{
  --bg:#0b0f14;
  --panel:#0f1620;
  --panel-2:#0c121a;
  --border:#1d2836;
  --border-2:#26344a;
  --text:#e6edf3;
  --dim:#8b98a9;
  --dim-2:#64748b;
  --accent:#58a6ff;
  --accent-2:#79b8ff;
  --danger:#f85149;
  --radius:14px;
  --shadow:0 18px 48px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  color:var(--text);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 540px at 12% -12%, rgba(88,166,255,.10), transparent 62%),
    radial-gradient(900px 520px at 108% 8%, rgba(56,139,253,.06), transparent 58%),
    var(--bg);
  background-attachment:fixed;
  min-height:100vh;
}
.logo{display:block;height:auto;mix-blend-mode:screen}

/* ---------- Вход ---------- */
.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:28px 18px}
.login-card{
  width:100%;max-width:396px;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:36px 34px 30px;
  text-align:center;
}
.login-card .logo{width:176px;margin:0 auto 24px}
.login-card h1{font-size:19px;font-weight:650;margin:0 0 5px;letter-spacing:.2px}
.login-card .sub{margin:0 0 26px;color:var(--dim);font-size:13.5px}
.field{text-align:left;margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--dim);margin-bottom:6px;letter-spacing:.3px}
.field input{
  width:100%;padding:11px 13px;border-radius:10px;
  border:1px solid var(--border-2);background:#0a0f16;color:var(--text);
  font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s;
}
.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(88,166,255,.16)}
.btn{
  display:inline-block;padding:11px 16px;border:0;border-radius:10px;cursor:pointer;
  font:600 15px/1.2 inherit;color:#fff;
  background:linear-gradient(180deg,#5aa8ff,#3f8df8);
  transition:filter .15s,transform .05s;
}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.6;cursor:default;filter:none}
.btn-block{width:100%;margin-top:8px}
.error{margin-top:14px;color:var(--danger);font-size:13.5px;min-height:18px}
.login-foot{margin-top:26px;color:var(--dim-2);font-size:12.5px;text-align:center}

/* ---------- Дашборд ---------- */
.topbar{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;gap:18px;
  padding:13px 26px;
  background:rgba(11,15,20,.8);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
.topbar .logo{width:104px}
.topbar .spacer{flex:1}
.user-chip{color:var(--dim);font-size:13.5px}
.user-chip b{color:var(--text);font-weight:600}
.btn-ghost{
  background:transparent;border:1px solid var(--border-2);color:var(--dim);
  border-radius:9px;padding:7px 13px;font:600 13px/1.2 inherit;cursor:pointer;
  transition:border-color .15s,color .15s;
}
.btn-ghost:hover{border-color:var(--accent);color:var(--text)}
.wrap{max-width:1080px;margin:0 auto;padding:36px 26px 70px}
.page-title{font-size:22px;font-weight:650;margin:0 0 6px;letter-spacing:.2px}
.page-sub{color:var(--dim);margin:0 0 28px;font-size:14px}
.grid[hidden]{display:none}
.section-head{margin:46px 0 16px}
.section-head h2{font-size:17px;font-weight:650;margin:0 0 4px;letter-spacing:.2px}
.section-head p{margin:0;color:var(--dim);font-size:13.5px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:16px}
.tile{
  display:block;text-decoration:none;color:var(--text);
  background:linear-gradient(180deg,#111a26,#0d141d);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 18px 16px;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.tile:hover{transform:translateY(-2px);border-color:rgba(88,166,255,.55);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.tile .ic{
  width:40px;height:40px;border-radius:10px;margin-bottom:14px;
  display:flex;align-items:center;justify-content:center;
  color:var(--accent);background:rgba(88,166,255,.12);
}
.tile .name{font-weight:600;font-size:15.5px;margin-bottom:4px;overflow-wrap:anywhere}
.tile .meta{color:var(--dim);font-size:12.5px;letter-spacing:.2px}
.tile .go{margin-top:13px;color:var(--accent);font-size:13px;font-weight:600}
.skel{border:1px solid var(--border);border-radius:var(--radius);padding:18px;min-height:150px;background:linear-gradient(180deg,#101823,#0d141d)}
.skel .b{background:#182233;border-radius:6px;animation:pulse 1.2s ease-in-out infinite}
.skel .b1{width:40px;height:40px;border-radius:10px;margin-bottom:14px}
.skel .b2{width:70%;height:14px;margin-bottom:8px}
.skel .b3{width:45%;height:12px}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}
.empty{
  border:1px dashed var(--border-2);border-radius:var(--radius);
  padding:36px;text-align:center;color:var(--dim);font-size:14px;
}
.error-box{
  border:1px solid rgba(248,81,73,.45);background:rgba(248,81,73,.07);
  border-radius:var(--radius);padding:18px 20px;color:var(--text);font-size:14px;
}
.error-box .btn-ghost{margin-left:10px}
.page-foot{margin-top:56px;color:var(--dim-2);font-size:12.5px}

/* ---------- Пароли (vault) ---------- */
.logo-link{display:block;line-height:0}
.btn-ghost{text-decoration:none}
.bar{margin:0 0 18px}
.form-card{
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--border-2);border-radius:var(--radius);
  padding:18px 20px;margin:0 0 20px;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.form-grid .field{margin-bottom:2px}
.form-grid .wide{grid-column:1/-1}
.form-err{color:var(--danger);font-size:13px;align-self:center;margin-left:10px}
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.item-card{
  background:linear-gradient(180deg,#111a26,#0d141d);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px 14px;
}
.item-card .nm{font-weight:650;font-size:15.5px;margin-bottom:2px;overflow-wrap:anywhere}
.item-card .lnk{display:inline-block;color:var(--accent);font-size:12.5px;text-decoration:none;margin-bottom:4px;overflow-wrap:anywhere}
.item-card .lnk:hover{text-decoration:underline}
.item-card .note{color:var(--dim);font-size:12.5px;margin-top:8px}
.rowline{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:13.5px;flex-wrap:wrap}
.rowline .lbl{color:var(--dim-2);font-size:12.5px;min-width:56px}
.rowline code{
  background:#0a0f16;border:1px solid var(--border);border-radius:7px;
  padding:3px 9px;font-size:13px;color:var(--text);overflow-wrap:anywhere;
}
.mini{
  border:1px solid var(--border-2);background:transparent;color:var(--dim);
  border-radius:7px;padding:4px 9px;font:600 12px/1.1 inherit;cursor:pointer;
  transition:border-color .15s,color .15s;
}
.mini:hover{border-color:var(--accent);color:var(--text)}
.item-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.item-actions .upd{margin-left:auto;color:var(--dim-2);font-size:11.5px}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}}
