:root{
  --viwi-bg:#0B0F14;
  --viwi-surface:#151B23;
  --viwi-surface-soft:#1C2430;
  --viwi-border:#2A3442;
  --viwi-text:#F3F6FA;
  --viwi-text-soft:#A9B4C2;
  --viwi-primary:#F97316;
  --viwi-primary-hover:#EA580C;
  --viwi-primary-soft:#FED7AA;
  --viwi-success:#22C55E;
  --viwi-warning:#F59E0B;
  --viwi-danger:#EF4444;
  --viwi-radius-lg:18px;
  --viwi-radius-md:12px;
  --viwi-shadow-soft:0 12px 32px rgba(0,0,0,.20);
  --viwi-safe-bottom:env(safe-area-inset-bottom, 0px);
  --viwi-safe-top:env(safe-area-inset-top, 0px);
}

html,body.viwi-theme-app{
  background:var(--viwi-bg);
  color:var(--viwi-text);
  min-height:100%;
}

body.viwi-theme-app{
  padding-bottom:var(--viwi-safe-bottom);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.viwi-theme-app a{
  color:var(--viwi-primary);
}
body.viwi-theme-app a:hover{
  color:var(--viwi-primary-hover);
}

body.viwi-theme-app .btn-primary,
body.viwi-theme-app .bg-primary{
  background-color:var(--viwi-primary)!important;
  border-color:var(--viwi-primary)!important;
}
body.viwi-theme-app .btn-primary:hover,
body.viwi-theme-app .btn-primary:focus{
  background-color:var(--viwi-primary-hover)!important;
  border-color:var(--viwi-primary-hover)!important;
}

body.viwi-theme-app .text-primary{
  color:var(--viwi-primary)!important;
}

body.viwi-theme-app .card,
body.viwi-theme-app .box,
body.viwi-theme-app .panel,
body.viwi-theme-app .small-box,
body.viwi-theme-app .info-box,
body.viwi-theme-app .widget,
body.viwi-theme-app .tile,
body.viwi-theme-app .content-wrapper,
body.viwi-theme-app .content,
body.viwi-theme-app .main-content,
body.viwi-theme-app .modal-content,
body.viwi-theme-app .dropdown-menu{
  border-radius:var(--viwi-radius-lg)!important;
}

body.viwi-theme-app .form-control:focus,
body.viwi-theme-app input:focus,
body.viwi-theme-app select:focus,
body.viwi-theme-app textarea:focus{
  border-color:var(--viwi-primary)!important;
  box-shadow:0 0 0 .2rem rgba(249,115,22,.18)!important;
}

body.viwi-theme-app .nav-pills .nav-link.active,
body.viwi-theme-app .nav-tabs .nav-link.active,
body.viwi-theme-app .page-item.active .page-link{
  background-color:var(--viwi-primary)!important;
  border-color:var(--viwi-primary)!important;
  color:#fff!important;
}

body.viwi-theme-app .badge-warning,
body.viwi-theme-app .bg-warning{
  background-color:var(--viwi-warning)!important;
  color:#111!important;
}

body.viwi-theme-app .badge-success,
body.viwi-theme-app .bg-success{
  background-color:var(--viwi-success)!important;
}

body.viwi-theme-app .badge-danger,
body.viwi-theme-app .bg-danger{
  background-color:var(--viwi-danger)!important;
}

body.viwi-theme-app table{
  border-color:var(--viwi-border)!important;
}
body.viwi-theme-app table th,
body.viwi-theme-app table td{
  vertical-align:middle;
}

body.viwi-theme-app .viwi-mobile-safe{
  padding-bottom:calc(16px + var(--viwi-safe-bottom));
}

body.viwi-theme-app .viwi-app-shell{
  min-height:100vh;
}

body.viwi-theme-app .viwi-app-card{
  background:var(--viwi-surface);
  border:1px solid var(--viwi-border);
  border-radius:var(--viwi-radius-lg);
  box-shadow:var(--viwi-shadow-soft);
}

body.viwi-theme-app .viwi-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:999px;
  padding:.35rem .70rem;
  font-size:.78rem;
}

body.viwi-theme-app .viwi-empty-state{
  padding:24px;
  border:1px dashed var(--viwi-border);
  border-radius:var(--viwi-radius-lg);
  color:var(--viwi-text-soft);
}

body.viwi-theme-app .viwi-mobile-bottom-bar{
  position:fixed;
  left:12px;
  right:12px;
  bottom:calc(12px + var(--viwi-safe-bottom));
  z-index:1040;
  background:rgba(21,27,35,.95);
  backdrop-filter:blur(12px);
  border:1px solid var(--viwi-border);
  border-radius:20px;
  box-shadow:var(--viwi-shadow-soft);
  padding:10px 12px;
}

@media (max-width: 991.98px){
  body.viwi-theme-app .container,
  body.viwi-theme-app .container-fluid{
    padding-left:14px;
    padding-right:14px;
  }

  body.viwi-theme-app .table-responsive{
    border-radius:var(--viwi-radius-lg);
    overflow:hidden;
  }

  body.viwi-theme-app .btn,
  body.viwi-theme-app .form-control,
  body.viwi-theme-app select,
  body.viwi-theme-app input{
    min-height:44px;
  }

  body.viwi-theme-app .card,
  body.viwi-theme-app .box,
  body.viwi-theme-app .panel{
    border-radius:16px!important;
  }
}

@media (max-width: 767.98px){
  body.viwi-theme-app .hide-mobile{
    display:none!important;
  }

  body.viwi-theme-app .content-wrapper,
  body.viwi-theme-app .content,
  body.viwi-theme-app .main-content{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  body.viwi-theme-app .modal-dialog{
    margin:.75rem;
  }

  body.viwi-theme-app table{
    font-size:.92rem;
  }
}
