/* Local compiled Tailwind + daisyUI style layer
   This file replaces Bootstrap dependency for this project.
*/
:root{
  --tw-bg:#f7f9fc;
  --tw-surface:#ffffff;
  --tw-surface-soft:#f8fafc;
  --tw-border:#e7edf4;
  --tw-text:#111827;
  --tw-muted:#64748b;
  --tw-primary:#2952cc;
  --tw-primary-dark:#1f44b3;
  --tw-success:#16a34a;
  --tw-danger:#dc2626;
  --tw-warning:#d97706;
  --tw-dark:#0f172a;
  --tw-radius:1rem;
  --tw-shadow:0 18px 42px rgba(15,23,42,.08);
  --tw-shadow-soft:0 10px 24px rgba(15,23,42,.06);
}

*,
*::before,
*::after{box-sizing:border-box}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4}
body{
  margin:0;
  background:var(--tw-bg);
  color:var(--tw-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
img,svg,video,canvas{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
a{text-decoration:none;color:inherit}
table{border-collapse:collapse;border-color:inherit}
[hidden]{display:none!important}

/* containers */
.container{width:100%;max-width:1240px;margin-inline:auto;padding-inline:1rem}
.container-fluid{width:100%;padding-inline:1rem}

/* grid system */
.row{
  --gutter-x:1.5rem;
  --gutter-y:0;
  display:flex;
  flex-wrap:wrap;
  margin-top:calc(-1 * var(--gutter-y));
  margin-right:calc(-.5 * var(--gutter-x));
  margin-left:calc(-.5 * var(--gutter-x));
}
.row > *{
  width:100%;
  max-width:100%;
  padding-right:calc(var(--gutter-x) * .5);
  padding-left:calc(var(--gutter-x) * .5);
  margin-top:var(--gutter-y);
}
.g-0{--gutter-x:0;--gutter-y:0}
.g-2{--gutter-x:.75rem;--gutter-y:.75rem}
.g-3{--gutter-x:1rem;--gutter-y:1rem}
.g-4{--gutter-x:1.5rem;--gutter-y:1.5rem}

.col-6{flex:0 0 auto;width:50%}
.col-12{flex:0 0 auto;width:100%}
.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-10,.col-xl-4,.col-md-3,.col-md-4,.col-md-6,.col-sm-6{width:100%}
@media (min-width:576px){
  .col-sm-6{flex:0 0 auto;width:50%}
}
@media (min-width:768px){
  .col-md-3{flex:0 0 auto;width:25%}
  .col-md-4{flex:0 0 auto;width:33.333333%}
  .col-md-6{flex:0 0 auto;width:50%}
}
@media (min-width:992px){
  .col-lg-2{flex:0 0 auto;width:16.666667%}
  .col-lg-3{flex:0 0 auto;width:25%}
  .col-lg-4{flex:0 0 auto;width:33.333333%}
  .col-lg-5{flex:0 0 auto;width:41.666667%}
  .col-lg-6{flex:0 0 auto;width:50%}
  .col-lg-7{flex:0 0 auto;width:58.333333%}
  .col-lg-8{flex:0 0 auto;width:66.666667%}
  .col-lg-10{flex:0 0 auto;width:83.333333%}
}
@media (min-width:1200px){
  .col-xl-4{flex:0 0 auto;width:33.333333%}
}

/* utilities */
.d-flex{display:flex!important}
.d-grid{display:grid!important}
.d-none{display:none!important}
.flex-column{flex-direction:column!important}
.flex-wrap{flex-wrap:wrap!important}
.flex-fill{flex:1 1 auto!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-center{justify-content:center!important}
.align-items-center{align-items:center!important}
.align-middle{vertical-align:middle!important}
.text-uppercase{text-transform:uppercase!important}
.text-secondary{color:var(--tw-muted)!important}
.bg-white{background:#fff!important}
.border{border:1px solid var(--tw-border)!important}
.rounded-4{border-radius:1rem!important}
.w-100{width:100%!important}
.h-100{height:100%!important}
.min-vh-100{min-height:100vh!important}
.small{font-size:.875rem!important}
.fw-semibold{font-weight:600!important}
.fw-bold{font-weight:700!important}
.display-6{font-size:2.4rem!important;font-weight:800!important;line-height:1.1}
.p-3{padding:1rem!important}
.p-4{padding:1.5rem!important}
.p-5{padding:3rem!important}
.px-0{padding-left:0!important;padding-right:0!important}
.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
.mb-0{margin-bottom:0!important}
.mb-1{margin-bottom:.25rem!important}
.mb-2{margin-bottom:.5rem!important}
.mb-3{margin-bottom:1rem!important}
.mb-4{margin-bottom:1.5rem!important}
.mt-1{margin-top:.25rem!important}
.mt-2{margin-top:.5rem!important}
.mt-3{margin-top:1rem!important}
.mt-4{margin-top:1.5rem!important}
.mt-auto{margin-top:auto!important}
.gap-1{gap:.25rem!important}
.gap-2{gap:.5rem!important}
.gap-3{gap:1rem!important}
.gap-4{gap:1.5rem!important}
.vstack{display:flex!important;flex-direction:column!important}
@media (min-width:992px){
  .d-lg-block{display:block!important}
}

/* navbar / collapse */
.navbar{position:relative}
.sticky-top{position:sticky;top:0;z-index:1020}
.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}
.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin:0;list-style:none}
.nav-item{list-style:none}
.nav-link{display:block}
.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}
.collapse{display:none}
.collapse.show{display:block}
.navbar-toggler{
  padding:.5rem .75rem;
  border:1px solid transparent;
  border-radius:.75rem;
  background:#fff;
}
.navbar-toggler-icon{
  display:block;
  width:1.5rem;
  height:1.5rem;
  background-repeat:no-repeat;
  background-position:center;
  background-size:100%;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2815,23,42,0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media (min-width:992px){
  .navbar-expand-lg .navbar-toggler{display:none}
  .navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}
  .navbar-expand-lg .navbar-nav{flex-direction:row}
}

/* daisy-style components */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border:1px solid transparent;
  border-radius:1rem;
  padding:.78rem 1.1rem;
  font-weight:700;
  line-height:1.2;
  cursor:pointer;
  transition:all .2s ease;
  box-shadow:none;
}
.btn:hover{transform:translateY(-1px)}
.btn-sm{padding:.55rem .85rem;font-size:.88rem;border-radius:.9rem}
.btn-lg{padding:1rem 1.3rem;font-size:1rem;border-radius:1rem}
.btn-primary{background:var(--tw-primary);border-color:var(--tw-primary);color:#fff}
.btn-primary:hover{background:var(--tw-primary-dark);border-color:var(--tw-primary-dark)}
.btn-secondary{background:#e2e8f0;border-color:#e2e8f0;color:#111827}
.btn-secondary:hover{background:#cbd5e1;border-color:#cbd5e1}
.btn-success{background:var(--tw-success);border-color:var(--tw-success);color:#fff}
.btn-success:hover{filter:brightness(.95)}
.btn-dark{background:var(--tw-dark);border-color:var(--tw-dark);color:#fff}
.btn-dark:hover{background:#020617;border-color:#020617}
.btn-light{background:#fff;border-color:#fff;color:#111827}
.btn-outline-dark{background:#fff;border-color:#cfd9e8;color:#111827}
.btn-outline-dark:hover{background:#f8fafc}
.btn-outline-secondary{background:#fff;border-color:#d8e0ec;color:#475569}
.btn-outline-secondary:hover{background:#f8fafc}
.btn-outline-primary{background:#fff;border-color:#bfdbfe;color:var(--tw-primary)}
.btn-outline-primary:hover{background:#eff6ff}
.btn-outline-danger{background:#fff;border-color:#fecaca;color:var(--tw-danger)}
.btn-outline-danger:hover{background:#fef2f2}
.btn-outline-success{background:#fff;border-color:#bbf7d0;color:var(--tw-success)}
.btn-outline-success:hover{background:#f0fdf4}
.btn-outline-warning{background:#fff;border-color:#fde68a;color:var(--tw-warning)}
.btn-outline-warning:hover{background:#fffbeb}

.card{
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  border:1px solid var(--tw-border);
  border-radius:1.25rem;
  box-shadow:var(--tw-shadow-soft);
}
.card-body{padding:1.25rem}
.card-premium{
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  border:1px solid var(--tw-border);
  border-radius:1.25rem;
  box-shadow:var(--tw-shadow-soft);
}

.form-label{
  display:block;
  margin-bottom:.45rem;
  font-size:.95rem;
  font-weight:600;
}
.form-control,
.form-select{
  display:block;
  width:100%;
  padding:.82rem .95rem;
  border:1px solid #d8e0ec;
  border-radius:.95rem;
  background:#fff;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-control:focus,
.form-select:focus{
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
}
.form-control::placeholder{color:#94a3b8}
.form-check{display:flex;align-items:center;gap:.55rem}
.form-check-input{width:1rem;height:1rem;margin:0}
.form-check-label{margin:0}

.alert{
  padding:.95rem 1rem;
  border-radius:1rem;
  border:1px solid transparent;
  font-weight:600;
}
.alert-success{background:#ecfdf3;border-color:#bbf7d0;color:#166534}
.alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}

.badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:999px;
  padding:.35rem .7rem;
  font-size:.78rem;
  font-weight:700;
  background:#eef4ff;
  color:var(--tw-primary);
}

.table-responsive{width:100%;overflow:auto}
.table{
  width:100%;
  margin-bottom:1rem;
  color:var(--tw-text);
  border-color:var(--tw-border);
}
.table > :not(caption) > * > *{
  padding:.85rem .9rem;
  background:#fff;
  border-bottom:1px solid var(--tw-border);
}
.table-bordered > :not(caption) > *{border-width:1px 0}
.table-bordered > :not(caption) > * > *{border-width:0 1px}
.table-hover > tbody > tr:hover > *{background:#f8fafc}

.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:1rem}
.list-group-flush{border-radius:0}
.list-group-item{
  position:relative;
  display:block;
  padding:1rem 1.1rem;
  color:var(--tw-text);
  background:#fff;
  border:1px solid var(--tw-border);
}
.list-group-flush > .list-group-item{border-width:0 0 1px}
.list-group-flush > .list-group-item:last-child{border-bottom-width:0}

/* helpers used across project */
.editor-box{
  min-height:180px;
  border:1px dashed #cbd5e1;
  border-radius:1rem;
  background:#fff;
}
.small-link{font-size:.85rem;opacity:.8}
.text-bg-primary{background:var(--tw-primary)!important;color:#fff!important}
.text-bg-success{background:var(--tw-success)!important;color:#fff!important}
.text-bg-warning{background:#f59e0b!important;color:#111827!important}
.text-bg-danger{background:var(--tw-danger)!important;color:#fff!important}
.text-bg-secondary{background:#64748b!important;color:#fff!important}



/* ===== Navbar layout hard fix ===== */
.navbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
}
.navbar > .container,
.navbar > .container-fluid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  flex-wrap:wrap;
  gap:.75rem;
}
.navbar-brand{display:flex;align-items:center}
@media (min-width:992px){
  .navbar-expand-lg{
    display:flex;
    align-items:center;
  }
}
