/* Портал Family Market.
   Цвета — фирменные, те же, что в «Финансовом планировании»:
   тёмно-синий #253A57 основной, синий #335E99 для акцентов. */
:root{
  --fm-dark:#253A57;
  --fm-blue:#335E99;
  --ink:#1c1c1c;
  --muted:#6d7581;
  --page:#f1f3f6;
  --card:#fff;
  --line:#e2e6ec;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--page); color:var(--ink); min-height:100vh;
  font-family:"Source Sans Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px; -webkit-font-smoothing:antialiased;
}

/* ------------------------------- вход ------------------------------- */
body.pt-auth{display:flex; align-items:center; justify-content:center; padding:24px}
.pt-auth-box{
  width:100%; max-width:360px; background:var(--card); border-radius:10px;
  padding:36px 32px 28px; box-shadow:0 2px 4px rgba(37,58,87,.06), 0 12px 32px rgba(37,58,87,.10);
  text-align:center;
}
.pt-auth-logo{width:178px; max-width:100%; height:auto}
.pt-auth-kicker{
  margin:10px 0 28px; font-size:12.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);
}
.pt-auth-box form{text-align:left}
.pt-lbl{display:block; font-size:13px; color:var(--muted); margin:0 0 5px}
.pt-input{
  width:100%; height:40px; padding:0 12px; margin:0 0 16px;
  border:1px solid var(--line); border-radius:5px; background:#fff;
  font:inherit; color:var(--ink); outline:none;
}
.pt-input:focus{border-color:var(--fm-dark); box-shadow:0 0 0 3px rgba(37,58,87,.10)}
.pt-btn{
  width:100%; height:42px; margin-top:6px; border:0; border-radius:5px;
  background:var(--fm-dark); color:#fff; font:inherit; font-weight:600;
  letter-spacing:.02em; cursor:pointer;
}
.pt-btn:hover{background:#1d2e46}
.pt-err{
  margin:-6px 0 14px; padding:9px 12px; border-radius:5px;
  background:#fdecea; color:#b3261e; font-size:13px;
}
.pt-auth-foot{margin-top:20px; font-size:13px; color:var(--muted)}

/* ------------------------------ портал ------------------------------ */
.pt-head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 28px; background:var(--card); border-bottom:1px solid var(--line);
}
.pt-head-logo{height:30px; width:auto}
.pt-head-right{display:flex; align-items:center; gap:16px}
.pt-who{font-size:14px; color:var(--ink)}
.pt-exit{
  border:1px solid var(--line); background:transparent; border-radius:5px;
  padding:6px 14px; font:inherit; font-size:13px; color:var(--muted); cursor:pointer;
}
.pt-exit:hover{border-color:var(--fm-dark); color:var(--fm-dark)}

.pt-main{max-width:1060px; margin:0 auto; padding:40px 28px 64px}
.pt-hello{margin:0; font-size:27px; font-weight:600; letter-spacing:-.01em}
.pt-sub{margin:6px 0 30px; color:var(--muted)}

.pt-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:18px}
.pt-tile{
  display:block; position:relative; padding:24px 24px 22px 76px;
  background:var(--card); border:1px solid var(--line); border-radius:9px;
  text-decoration:none; color:inherit; transition:border-color .15s, box-shadow .15s, transform .15s;
}
.pt-tile:hover{
  border-color:var(--fm-dark); transform:translateY(-2px);
  box-shadow:0 2px 4px rgba(37,58,87,.05), 0 10px 24px rgba(37,58,87,.10);
}
.pt-letter{
  position:absolute; left:22px; top:23px;
  width:38px; height:38px; border-radius:8px; background:var(--fm-dark); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:600;
}
.pt-tile-title{display:block; font-size:16px; font-weight:600; margin-bottom:5px}
.pt-tile-note{display:block; font-size:13.5px; color:var(--muted); line-height:1.45}

.pt-soon-head{margin:44px 0 16px; font-size:15px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em}
.pt-grid-soon{grid-template-columns:repeat(auto-fill, minmax(230px, 1fr))}
.pt-tile-soon{
  padding:18px 20px; background:transparent; border-style:dashed; cursor:default;
  transform:none !important; box-shadow:none !important; border-color:var(--line) !important;
}
.pt-tile-soon .pt-tile-title{font-size:14.5px; font-weight:600; color:var(--muted)}
.pt-tile-soon .pt-tile-note{font-size:13px}
.pt-soon-note{margin:14px 0 0; font-size:13px; color:var(--muted)}

@media (max-width:560px){
  .pt-head{padding:12px 16px}
  .pt-main{padding:28px 16px 48px}
  .pt-hello{font-size:23px}
  .pt-who{display:none}
}
