/* =========================================================
   assets/css/app.css — єдина дизайн-система МитнийБрокер
   Підключати на кожній сторінці ПЕРЕД власними стилями.
   ========================================================= */

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

:root{
  /* Поверхні */
  --bg:#0d0e14;
  --surface:#13141d;
  --surface2:#1a1c28;
  --border:rgba(255,255,255,0.07);
  --border-strong:rgba(255,255,255,0.14);
  /* Акценти */
  --blue:#4B8EF1;
  --blue-glow:rgba(75,142,241,0.15);
  --green:#2DD98F;
  --amber:#F5A623;
  --purple:#A855F7;
  --red:#F1654B;
  /* Текст */
  --text:#f0f1f5;
  --muted:rgba(240,241,245,0.45);
  --muted-strong:rgba(240,241,245,0.65);
  /* Геометрія */
  --r:14px;
  --r-sm:9px;
  --nav-h:68px;
  /* Шрифти */
  --display:'Syne',sans-serif;
  --body:'DM Sans',sans-serif;
}

html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;line-height:1.6}
a{color:var(--blue);text-decoration:none}
a:hover{opacity:.85}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.15}
.h-xl{font-size:clamp(34px,7vw,72px);letter-spacing:-2px}
.h-lg{font-size:clamp(26px,5vw,40px);letter-spacing:-1px}
.h-md{font-size:22px}
.h-sm{font-size:17px}
.text-muted{color:var(--muted)}
.text-sm{font-size:13px}
.text-xs{font-size:12px}

/* ---------- Каркас ---------- */
.container{max-width:1100px;margin:0 auto;padding:0 2rem}
.container-narrow{max-width:720px;margin:0 auto;padding:0 2rem}
.page{padding-top:var(--nav-h);min-height:100vh}
.section{padding:2rem 0}
.stack{display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.spread{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ---------- Навігація ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;
  padding:0 2rem;height:var(--nav-h);background:rgba(13,14,20,.9);backdrop-filter:blur(20px);border-bottom:.5px solid var(--border)}
.nav-brand{font-family:var(--display);font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.5px;background:none;border:none;cursor:pointer}
.nav-brand span{color:var(--blue)}
.nav-links{display:flex;gap:4px;background:var(--surface);border:.5px solid var(--border);border-radius:10px;padding:4px}
.nav-link{padding:7px 18px;border-radius:7px;font-size:13px;font-weight:500;color:var(--muted);border:none;background:none;cursor:pointer;font-family:var(--body);transition:color .2s}
.nav-link.active{background:var(--blue);color:#fff}
.nav-link:hover:not(.active){color:var(--text)}
.nav-actions{display:flex;gap:10px;align-items:center}
.nav-burger{display:none;background:var(--surface);border:.5px solid var(--border);color:var(--text);width:38px;height:38px;
  border-radius:var(--r-sm);font-size:18px;cursor:pointer;align-items:center;justify-content:center}
.mobile-menu{display:none;position:fixed;top:var(--nav-h);left:0;right:0;z-index:199;background:var(--surface);
  border-bottom:.5px solid var(--border);padding:.75rem 1rem;flex-direction:column;gap:4px}
.mobile-menu.open{display:flex}
.mobile-menu a,.mobile-menu button{background:none;border:none;color:var(--text);text-align:left;padding:12px;
  border-radius:var(--r-sm);font-size:15px;font-family:var(--body);cursor:pointer}
.mobile-menu a:hover,.mobile-menu button:hover{background:var(--surface2)}

/* ---------- Кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--r-sm);
  font-family:var(--body);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:opacity .2s,background .2s,color .2s;white-space:nowrap}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{opacity:.88}
.btn-ghost{background:transparent;border:.5px solid var(--border);color:var(--text)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-quiet{background:var(--surface2);border:.5px solid var(--border);color:var(--muted);padding:6px 12px;font-size:12px;border-radius:7px;cursor:pointer;font-family:var(--body)}
.btn-quiet:hover{color:var(--text)}
.btn-danger{background:rgba(241,101,75,.12);border:.5px solid rgba(241,101,75,.3);color:var(--red)}
.btn-block{width:100%;padding:14px;font-family:var(--display);font-size:16px;font-weight:700}
.btn-sm{padding:6px 14px;font-size:12px}

/* ---------- Форми ---------- */
.field{margin-bottom:1rem}
.label{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}
.input,select.input,textarea.input{width:100%;background:var(--surface2);border:.5px solid var(--border);color:var(--text);
  padding:11px 13px;border-radius:var(--r-sm);font-family:var(--body);font-size:14px;outline:none;transition:border-color .2s}
.input:focus{border-color:var(--blue)}
.input::placeholder{color:var(--muted)}
textarea.input{min-height:90px;resize:vertical;line-height:1.6}
select.input{cursor:pointer}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hint{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}
.check-row{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:1rem}
.check-row input{margin-top:2px;width:16px;height:16px;accent-color:var(--blue);flex-shrink:0}
.msg{padding:10px 14px;border-radius:var(--r-sm);font-size:13px;line-height:1.5;margin-top:10px;display:none}
.msg.show{display:block}
.msg-ok{background:rgba(45,217,143,.15);color:var(--green);border:.5px solid rgba(45,217,143,.3)}
.msg-err{background:rgba(241,101,75,.15);color:var(--red);border:.5px solid rgba(241,101,75,.3)}

/* ---------- Картки ---------- */
.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r);padding:1.5rem}
.card-tight{padding:1.15rem}
.card-hover{transition:transform .2s,border-color .2s}
.card-hover:hover{transform:translateY(-2px);border-color:var(--border-strong)}
.card-title{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:.75rem}

.avatar{border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--display);
  font-weight:800;color:#fff;flex-shrink:0;width:48px;height:48px;font-size:18px}
.avatar-lg{width:72px;height:72px;border-radius:16px;font-size:26px}
.avatar-sm{width:34px;height:34px;border-radius:9px;font-size:13px}
.av-free{background:linear-gradient(135deg,#888,#555)}
.av-standard{background:linear-gradient(135deg,#2DD98F,#4B8EF1)}
.av-pro{background:linear-gradient(135deg,#4B8EF1,#2DD98F)}
.av-premium{background:linear-gradient(135deg,#F5A623,#F1654B)}

/* ---------- Значки ---------- */
.badge{display:inline-flex;align-items:center;gap:3px;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.badge-free{background:rgba(255,255,255,.05);color:var(--muted)}
.badge-standard{background:rgba(75,142,241,.15);color:var(--blue)}
.badge-pro{background:rgba(245,166,35,.15);color:var(--amber)}
.badge-premium{background:rgba(168,85,247,.15);color:var(--purple)}
.badge-verified{background:rgba(45,217,143,.15);color:var(--green)}
.badge-new{background:var(--blue);color:#fff}
.chip{background:var(--surface);border:.5px solid var(--border);border-radius:20px;padding:6px 14px;font-size:13px;
  color:var(--muted);cursor:pointer;font-family:var(--body);transition:all .2s}
.chip:hover,.chip.active{background:var(--blue-glow);border-color:var(--blue);color:var(--blue)}
.tag{background:var(--surface2);border:.5px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--muted)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}

/* ---------- Зірки ---------- */
.stars{color:var(--amber);letter-spacing:-2px}
.stars-empty{color:rgba(255,255,255,.18)}

/* ---------- Модалки ---------- */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;backdrop-filter:blur(6px)}
.overlay.open{display:flex;align-items:center;justify-content:center;padding:1rem}
.modal{background:var(--surface);border:.5px solid var(--border);border-radius:20px;width:100%;max-width:480px;
  max-height:90vh;overflow-y:auto;padding:2rem;position:relative}
.modal-wide{max-width:640px}
.modal-close{position:absolute;top:1rem;right:1rem;background:var(--surface2);border:none;color:var(--muted);
  width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px}
.modal-title{font-family:var(--display);font-size:22px;font-weight:800;margin-bottom:.5rem}
.modal-sub{font-size:14px;color:var(--muted);margin-bottom:1.5rem}

/* ---------- Таблиці ---------- */
.table-wrap{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r);overflow:hidden}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{padding:10px 16px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);text-align:left;
  border-bottom:.5px solid var(--border);white-space:nowrap}
td{padding:12px 16px;font-size:14px;border-bottom:.5px solid rgba(255,255,255,.04);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(255,255,255,.02)}

/* ---------- Стани ---------- */
.empty{color:var(--muted);text-align:center;padding:3rem 1.5rem;line-height:1.7}
.empty strong{color:var(--text);display:block;margin-bottom:6px;font-weight:500;font-size:15px}
.skeleton{background:linear-gradient(90deg,var(--surface),var(--surface2),var(--surface));
  background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm);height:16px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- Тост ---------- */
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--surface);border:.5px solid var(--green);
  border-radius:10px;padding:12px 18px;font-size:14px;color:var(--green);z-index:999;max-width:340px;line-height:1.45;
  transform:translateY(120px);opacity:0;transition:all .3s}
.toast.show{transform:translateY(0);opacity:1}
.toast-error{border-color:var(--red);color:var(--red)}

/* ---------- Футер ---------- */
.footer{border-top:.5px solid var(--border);background:var(--surface);padding:2.5rem 2rem 2rem;margin-top:3rem}
.footer-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.footer-brand{font-family:var(--display);font-size:18px;font-weight:800;margin-bottom:8px}
.footer-brand span{color:var(--blue)}
.footer-col-title{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:.85rem}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a,.footer-links span{font-size:13px;color:var(--muted)}
.footer-links a:hover{color:var(--blue)}
.footer-text{font-size:13px;color:var(--muted);line-height:1.7}
.footer-bottom{max-width:1100px;margin:2rem auto 0;padding-top:1.25rem;border-top:.5px solid var(--border);
  font-size:12px;color:var(--muted);line-height:1.7}

/* ---------- Кабінет ---------- */
.cab-layout{max-width:1100px;margin:0 auto;padding:2.5rem 2rem;display:grid;grid-template-columns:230px 1fr;gap:22px}
.cab-menu{display:flex;flex-direction:column;gap:3px}
.cab-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);font-size:14px;
  color:var(--muted);cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--body);transition:all .2s}
.cab-item:hover,.cab-item.active{background:var(--surface);color:var(--text)}
.cab-item.active{color:var(--blue)}
.cab-badge{background:var(--blue);color:#fff;border-radius:5px;padding:1px 7px;font-size:11px;margin-left:auto}
.cab-pane{display:none}
.cab-pane.active{display:block}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stat{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r);padding:1.25rem}
.stat-val{font-family:var(--display);font-size:30px;font-weight:800;line-height:1;margin-bottom:4px}
.stat-label{font-size:12px;color:var(--muted)}

/* ---------- Адаптив ---------- */
@media(max-width:900px){.footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:768px){
  .nav{padding:0 1rem}
  .nav-links{display:none}
  .nav-burger{display:flex}
  .container,.container-narrow{padding:0 1.25rem}
  .field-row{grid-template-columns:1fr}
  .cab-layout{grid-template-columns:1fr;padding:1.5rem 1.25rem}
  .cab-menu{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:6px}
  .cab-item{width:auto;white-space:nowrap}
  .modal{padding:1.5rem}
  .footer-inner{grid-template-columns:1fr}
  .toast{left:1rem;right:1rem;bottom:1rem;max-width:none}
  td,th{padding:10px 12px}
}
