*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  font-size:14px;
  line-height:1.5;
  color:var(--text);
  background:var(--bg-app);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4{font-family:var(--font);color:var(--text);margin:0;letter-spacing:-.01em}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-600)}

/* Form polish */
.form-control,.form-select{
  border-radius:var(--r-sm);
  border-color:var(--border-strong);
  font-size:14px;
  padding:.55rem .75rem;
  background:#fff;
}
.form-control:focus,.form-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(52,87,255,.12);
}
.form-label{font-size:12.5px;font-weight:500;color:var(--text);margin-bottom:6px}
.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}

/* Buttons */
.btn{border-radius:var(--r-sm);font-weight:500;font-size:13.5px;padding:.5rem .9rem;display:inline-flex;align-items:center;gap:.45rem;transition:.15s}
.btn-primary{background:var(--primary);border-color:var(--primary);box-shadow:0 4px 10px -4px rgba(52,87,255,.4)}
.btn-primary:hover{background:var(--primary-600);border-color:var(--primary-600)}
.btn-soft{background:#fff;border:1px solid var(--border-strong);color:var(--text)}
.btn-soft:hover{background:#f8fafc;border-color:#bfc8d9;color:var(--text)}
.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-muted)}
.btn-ghost:hover{background:#f1f5f9;color:var(--text)}
.btn-sm{padding:.35rem .65rem;font-size:12.5px}
.btn-group .btn{box-shadow:none}

/* Utility */
.muted{color:var(--text-muted)}
.small{font-size:12px}
.link-sm{font-size:13px;font-weight:500;color:var(--primary)}
.vr-sep{width:1px;height:24px;background:var(--border);margin:0 4px}
.text-success{color:var(--success)!important}
.text-danger{color:var(--danger)!important}
.text-warning{color:var(--warning)!important}
.text-info{color:var(--info)!important}
.text-primary{color:var(--primary)!important}
