/* IT2D · Личный кабинет — современный стиль */
:root{
  --bg:#f5f8fb; --card:#ffffff; --ink:#0f2233; --muted:#64809a;
  --line:#e3ecf4; --brand:#1d6fa5; --brand-2:#12a594; --warn:#c2410c;
  --ok:#0f766e; --radius:14px; --shadow:0 1px 2px rgba(15,34,51,.04),0 8px 24px rgba(15,34,51,.06);
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brand); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1040px; margin:0 auto; padding:28px 20px 60px}

/* верхняя панель */
.top{background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20}
.top-in{max-width:1040px; margin:0 auto; padding:14px 20px; display:flex; align-items:center; gap:16px}
.logo{display:flex; align-items:center; gap:10px; font-weight:700; font-size:17px; color:var(--ink)}
.logo .mark{
  width:32px;height:32px;border-radius:9px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  display:grid;place-items:center;color:#fff;font-size:15px;font-weight:700
}
.top-nav{margin-left:auto; display:flex; gap:6px; flex-wrap:wrap}
.top-nav a{
  padding:7px 12px; border-radius:9px; color:#33526b; font-size:14px; font-weight:500
}
.top-nav a:hover{background:#eef6fc; text-decoration:none}
.top-nav a.on{background:var(--brand); color:#fff}

/* карточки */
.card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:24px; margin-bottom:18px
}
.card-t{font-size:19px; font-weight:700; margin:0 0 4px}
.card-s{color:var(--muted); font-size:13.5px; margin:0 0 18px}

/* статистика */
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:6px 0 22px}
.stat{background:linear-gradient(180deg,#fbfdff,#f4f9fd); border:1px solid var(--line); border-radius:12px; padding:16px 18px}
.stat b{display:block; font-size:24px; line-height:1.2; margin-bottom:2px}
.stat span{color:var(--muted); font-size:12.5px; text-transform:uppercase; letter-spacing:.04em}

/* кнопки */
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:10px;
  background:var(--brand); color:#fff; border:0; font-size:14.5px; font-weight:600; cursor:pointer;
  text-decoration:none; transition:.15s
}
.btn:hover{background:#175c8a; text-decoration:none}
.btn.ghost{background:#fff; color:var(--brand); border:1px solid #cfe2f0}
.btn.ghost:hover{background:#f2f9fe}
.btn.green{background:var(--brand-2)}
.btn.green:hover{background:#0e8b7c}
.btn-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px}

/* формы */
label{display:block; font-size:13px; font-weight:600; color:#3d5b74; margin:0 0 6px}
input[type=text],input[type=password],input[type=tel],input[type=email],
input[type=number],input[type=date],select,textarea{
  width:100%; padding:10px 12px; border:1px solid #d5e3ee; border-radius:10px;
  font:inherit; font-size:14.5px; background:#fff; color:var(--ink); transition:.15s
}
input:focus,select:focus,textarea:focus{
  outline:0; border-color:var(--brand); box-shadow:0 0 0 3px rgba(29,111,165,.12)
}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.field{margin-bottom:14px}
.hint{font-size:12.5px; color:var(--muted); margin-top:6px}

/* таблицы */
.tbl{width:100%; border-collapse:collapse; font-size:14px}
.tbl th{
  text-align:left; padding:10px 12px; color:var(--muted); font-size:11.5px;
  text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line);
  font-weight:600; background:#fafcfe
}
.tbl td{padding:12px; border-bottom:1px solid #eef4f9; vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:#f9fcfe}
.tag{display:inline-block; padding:3px 9px; border-radius:20px; background:#e8f3fa; color:#1d5f8a; font-size:11.5px; font-weight:600}
.tag.g{background:#e6f6f2; color:#0f766e}
.tag.o{background:#fdeee6; color:#c2410c}

/* сообщения */
.msg{padding:12px 16px; border-radius:10px; font-size:14px; margin-bottom:16px}
.msg.err{background:#fdeceb; color:#98251c; border:1px solid #f7cfcb}
.msg.ok{background:#e7f7f2; color:#0d6156; border:1px solid #c6ece1}
.msg.info{background:#eef6fc; color:#1b5578; border:1px solid #d3e7f4}

/* пустое состояние */
.empty{padding:44px 20px; text-align:center; color:var(--muted)}
.empty b{display:block; color:var(--ink); font-size:16px; margin-bottom:6px}

/* центр */
.auth{max-width:420px; margin:56px auto}
.center{text-align:center}
.muted{color:var(--muted); font-size:13.5px}
hr.sep{border:0; border-top:1px solid var(--line); margin:20px 0}
@media(max-width:640px){
  .grid2,.grid3{grid-template-columns:1fr}
  .wrap{padding:18px 14px 44px}
  .card{padding:18px}
  .top-nav{width:100%; justify-content:flex-start}
}
