
label 
{
    display: inline-block;
    margin-bottom: 5px;
    font-weight: 500;
}

textarea { 
    resize: vertical; 
}

.alert 
{
    padding: 15px;
    margin-top: 10px;
    margin-bottom: 10px;
    border: 1px solid transparent;
    border-color: #f44336;
    border-radius: 4px;
    font-weight: bold;
    color: #f44336;
    background-color: #fcf8e3;
}

.alert-success
{
    padding: 15px;
    margin-top: 10px;
    margin-bottom: 10px;
    border: 1px solid transparent;
    border-color: #4caf50;
    border-radius: 4px;
    font-weight: bold;
    color: #4caf50;
    background-color: #bbdfbc3d;
}

.success {
    color: green;
}

.invalid {
    color: red;
}

.error {
    color: red;
}

.required 
{
    color: red;
}

.container 
{
    /*margin: 5px;*/
}

.width-available
{
    width:-webkit-fill-available;
    width:-moz-available;
    width:fill-available;
max-width: 700px;
}

.panel 
{
    margin-bottom: 10px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}

.panel-primary 
{
    border-color: #9e9e9e8c; /*#019DE2;*/
    text-align: left;
}

.panel-heading 
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    background-color: var(--panel-heading-bg-color);
    border-color: var(--panel-heading-border-color);
    color: var(--panel-heading-text-color);
    padding: 10px 15px 10px 10px;
    border-bottom: 1px solid transparent;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    font-size: 16px;
    font-weight: 500;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
}

.panel-heading:hover {
  background-color: #0056b3 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.15);
}

.panel-heading i:first-child 
{
  margin-right: 10px;
}

.panel-heading span 
{
  flex: 1;
}

.panel-body
{
    padding-top: 10px; //5px;
    padding-right: 10px; //5px;
    padding-bottom: 10px; //5px;
    padding-left: 10px; //5px;
}

.open
{
    overflow: unset !important; //for multiselect-container dropdown-menu
}

select 
{
    border: 1px #d0d0d0 solid;
    padding: 5px 0 5px 10px;
    color: #000;
}

.form-group
{
    margin-bottom:10px;
    max-width: 430px;
    min-width: 250px;
}

.form-row 
{
    display: flex;
    flex-wrap: wrap;       /* Wrap to next line if no space */
    gap: 0px 16px;             /* Space between items */
    align-items: flex-end; /*bottom alignment*/
    margin-bottom: -5px;
}

/* Each form-group flex item */
.form-row .form-group {
    flex: 1 1 32%;       /* Grow/shrink, minimum width 250px */
}

.switch-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.switch {
    display: flex;
    align-items: center;
    cursor: pointer;
    gap: 10px;
}

.switch input {
    display: none;
}

/* Switch track */
.slider {
    width: 40px;
    height: 20px;
    background: #ccc;
    border-radius: 20px;
    position: relative;
    transition: background 0.3s;
}

/* Circle */
.slider::before {
    content: "";
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: transform 0.3s;
}

/* Checked state */
input:checked + .slider {
    background: #7b4dff;
}

input:checked + .slider::before {
    transform: translateX(20px);
}

/* Label text */
.label-text {
    font-size: 14px;
}

/* Disabled state */
.switch.disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.switch.disabled .slider {
    background: #e0e0e0;
}

.switch.disabled input:checked + .slider {
    background: #c7a8ff;
}

.form-element-group {
  position: relative;
  width: 100%;
  width: -moz-available;
  width: -webkit-fill-available;
  /*max-width: 400px;*/
  margin-left: 0px;
  margin-right: 0px;
  margin-top:17px;
  margin-bottom:17px;
}

.form-element-group>label {
  display: inline-block;  
  position:absolute;
  max-width: 100%;  
  top:-7px;
  left:15px;
  background-color: var(--form-label-bg-color);
  color: var(--form-label-color);
  margin: 0px;
  padding:0 0 0 5px;
  font-size: 12px;
  font-weight: 700;
}

.form-element-group .required {
  color: var(--form-required-color);
  padding:0 5px;
}

.form-groupelement->input{
  border:none;
  border:0;
  line-height;100%;
}

.form-element-group>input-icon{
  position:absolute;
  top: 10.6px; 
  left:5px;
  background-color:white;
  color:#666;
  font-size: 15px;
  padding:0 0 0 5px;
}

.form-element-group>status-icon{
  position:absolute;
  top: 10.6px; 
  right:12px;
  background-color:white;
  font-size: 16px;
  padding:0 0 0 5px;
}

.status-verified {
  color:green;
}

.status-not-verified {
  color:red;
}

.form-control 
{
    display: block;
    max-width: 500px;
    width: 100%;
    width: -webkit-fill-available;
    width: -moz-available;
    /*height: 32px;*/
    padding: 6px 12px;
    font-size: 15px;
    line-height: 1.42857143;
    vertical-align: middle;
    color: #555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}

.form-control:focus 
{
    border-color: var(--form-control-focus-border-color);
    color: var(--form-control-focus-text-color);
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}

.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control 
{
    /* background-color: #eee; */
    /*background:#ccc;*/
    cursor:not-allowed;
}

/* Error style on blur if empty */
.form-control.error 
{
    border-color: #f4433685 !important;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 0, 0, .35) !important;
}

.input-lg {
  height: 37px;
  padding-left: 30px;
  padding-right: 10px;
  padding-top: 7.6px;
  /*padding-bottom: 2px;*/
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 5px;
}

.radio-group
{
    gap: 20px;
    display: flex;
}

.radio-inline 
{
    display: inline-flex;
    align-items: stretch;
    gap: 6px;
    cursor: pointer;
}

.radio-inline input[type="radio"] 
{
    margin: 0px 0px 0px 2px;
}

.search-box {
  position: relative;
  display: inline-block;
}

.search-box i.fa-search {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #888;
  font-size: 14px;
  pointer-events: none; /* icon won't block typing */
}

.search-control 
{
    display: block;
    max-width: 200px;
    width: -webkit-fill-available;
    width: -moz-available;
    width: fill-available;
    height: 25px;
    margin-right: 10px;
    padding: 8px 10px 8px 30px; /* left padding for icon space */
    font-size: 15px;
    line-height: 1.42857143;
    color: #555;
    vertical-align: middle;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 20px;
    box-sizing: border-box; /* ✅ Include padding in width */
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    -webkit-transition: border-color 
    ease-in-out .15s, -webkit-box-shadow 
    ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    transition: border-color 
    ease-in-out .15s, box-shadow 
    ease-in-out .15s;
}

.search-control:focus 
{
    border-color: #66afe9;
    color: #03a9f4;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}

.real 
{
    display: block;
    max-width: 500px;
    width: -webkit-fill-available;
    width: -moz-available;
    width: fill-available;
}

.btn-primary 
{
    color: #fff;
    background-color: var(--form-button-bg-color);
    border-color: #2e6da4;
}

.btn-primary:hover
{
    background: var(--form-button-hover-bg-color);
}

.btn-primary:active
{
    transform:scale(0.98);
}

.btn-primary:disabled
{
    background:#ccc;
    cursor:not-allowed;
    box-shadow:none;
}

.btn 
{
    display: inline-block;
    height: auto;
    padding: 7px 12px;
    margin-bottom: 0;
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 5px;
    transition:0.25s ease;
    box-shadow:0 6px 7px rgba(123,44,191,0.25);
}

.profile-card
{
    max-width:420px;
    background:#fff;
    border-radius:12px;
    padding:20px;
    box-shadow:0 2px 10px rgba(0,0,0,0.08);
}

.profile-title
{
    font-size:20px;
    font-weight:600;
    margin-bottom:15px;
}

.profile-row
{
    display:flex;
    justify-content:space-between;
    margin-bottom:8px;
    color:#666;
    font-size:15px;
}

.profile-row span:last-child
{
    color:#333;
    font-weight:500;
}

.divider
{
    height:1px;
    background:#eee;
    margin:15px 0;
}

.last-info
{
    color:#777;
    font-size:14px;
}

.last-info strong
{
    color:#333;
}

.points-rate
{
    font-size:18px;
    font-weight:600;
    text-align: center;
    color: #7b2cbf;
    padding-top: 5px;
}

/* Amount Input */
.amount-box
{
    border:2px solid #e0e0e0;
    border-radius:5px;
    padding:8px 14px;
    margin:10px 0px 15px 0px;
    display:flex;
    align-items:center;
}

.amount-box span
{
    font-size:17px;
    font-weight:600;
    margin-right:8px;
}

.amount-box input
{
    border:none;
    outline:none;
    font-size:17px;
    font-weight:600;
    width:100%;
}

.amount-error
{
    color:#d32f2f;
    font-size:14px;
    margin-top:-10px;
    margin-bottom:10px;
    display:none;
}

.amount-negative
{
    color: red !important;
}

.quick-amounts
{
    display:flex;
    gap:10px;
    justify-content:space-between;
    margin-bottom:15px;
}

.quick-amounts button
{
    flex:1;
    padding:3px 0;
    border-radius:14px;
    border:1px solid #7b2cbf;
    background:#fff;
    color:#7b2cbf;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:0.2s;
}

.quick-amounts button:hover
{
    background:#7b2cbf;
    color:#fff;
}

.last-paid
{
    color:#777;
    font-size:14px;
}

.last-paid strong
{
    color:#333;
}

.points-info
{
    font-size:14px;
    color:#555;
    background:#f6f0ff;
    border-left:4px solid #7b2cbf;
    padding:10px 12px;
    border-radius:8px;
    margin:10px 0 15px;
    display:none;
    transition:all 0.3s ease;
}

/* Highlight when amount positive or amount >= MIN_AMOUNT*/
.points-info.highlight_positive{
    background:#e9ddff;
    border-left-color:#4a148c;
    color:#3c096c;
    font-weight:600;
}

/* Highlight when amount negative*/
.points-info.highlight_negative{
    background:#e9ddff;
    border-left-color:red;
    color:red;
    font-weight:600;
}

/* Animation */
.points-info.animate
{
    transform:scale(1.03);
}

#addFundBtn{
    width:100%;
    padding:14px;
    font-size:17px;
    font-weight:600;
    border:none;
    border-radius:14px;
    background:#7b2cbf;
    color:#fff;
    cursor:pointer;
    transition:0.25s ease;
    box-shadow:0 6px 14px rgba(123,44,191,0.25);
}

#addFundBtn:hover{
    background:#6a1fb0;
}

#addFundBtn:active{
    transform:scale(0.98);
}

#addFundBtn:disabled{
    background:#ccc;
    cursor:not-allowed;
    box-shadow:none;
}


.table-container { overflow-x: auto; }

table { width: 100%; border-collapse: collapse; font-size: 16px; }

th, td 
{ 
    padding: 6px 10px;
    border: 1px solid #9e9e9e8c;
    /*border: 1px solid #428bca;*/
    white-space: nowrap;
}

th 
{ 
    background: var(--table-th-bg-color);
    color: var(--table-th-text-color); 
    text-align: center; 
    font-size: 14.5px; 
    font-weight: 500;
}

    tr.success-online { background: #66cc66; }
    tr.success-offline { background: #66ccff; }
    tr.failed { background: #ff6666; }
    tr.highlight { background-color: #ff980078 !important; }

    .highlight-row-hover tr:hover { background-color: #ff980054 !important; cursor: pointer; }
    .no-highlight-row-hover tr:hover { background-color: unset !important; cursor: pointer; } /*Can be used for inner table*/

    td.warning { background: yellow; }
    .action-icons img { height: 20px; width: 20px; cursor: pointer; }

.SearchInput {
  background-image: url('/images/search-icon.png');
  background-position: 5px 2px;
  background-repeat: no-repeat;
  width: 100%;
  font-size: 15px;
  padding: 3px 3px 3px 35px;
  border: 1px solid #ddd;
  margin-bottom: 1px;
}

.phone
{
    font-size: 14px;
    font-weight: 500;
}


.templates { 
    padding: 5px; 
    max-height: 700px; 
    overflow-y: auto; 
    font-family: Arial, sans-serif;
}

.template-item {
    justify-content: space-between;
    align-items: center;
    /*background-color: #f9f9f9;*/
    border: 1px solid #eee;
    border-radius: 5px;
    margin-bottom: 5px;
    padding: 8px;
    cursor: pointer;
}

.template-item:hover { 
    background-color: #f0f0f0; 
}

.template-name { 
    flex: 1;
    //font-weight: bold;
}

.template-content { 
    flex: 1;
    margin-top: 5px; 
    font-size: 14px; 
    color: #333; 
    white-space: pre-wrap;
    max-height: 100px;
    overflow-y: hidden;
}

.template-action-icons {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    min-width: 60px;
}

hr 
{
    height: 0;
    box-sizing: content-box;
    -moz-box-sizing: content-box;
    margin-top: 5px;
    margin-bottom: 5px;
    border: 0;
    border-top: 1px solid #eee;
}

/* Keep text in one line and allow hidden horizontal scroll with scroll hint animation =================== */
.single-line-scroll {
    position: relative;
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;

    /* Hide scrollbar */
    scrollbar-width: none;
}

.single-line-scroll::-webkit-scrollbar {
    display: none;
}

/* Scroll hint animation */
.single-line-scroll.hint {
    animation: scrollHint 1.5s ease-in-out 2;
}

@keyframes scrollHint {
    0%   { transform: translateX(0); }
    50%  { transform: translateX(-10px); }
    100% { transform: translateX(0); }
}
/* Keep text in one line and allow hidden horizontal scroll with scroll hint animation =================== */
