
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,sans-serif;font-size:14px;background:#f4f6f8;color:#1a1a1a}
.container {
    min-width: 90% !important;
}
.hdr{background:#fff;border-bottom:1px solid #dde2e8;padding:12px 20px;position:sticky;top:0;z-index:100}
.hdr-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.brand{display:flex;align-items:center;gap:10px}
.brand-logo{width:38px;height:38px;border-radius:8px;background:#0F6E56;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;letter-spacing:.5px;flex-shrink:0}
.brand-name{font-size:16px;font-weight:700;color:#0F6E56}
.brand-sub{font-size:11px;color:#6b7280;margin-top:1px}
.project-pill{background:#E1F5EE;color:#0F6E56;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;border:1px solid #5DCAA5}
.tabs{display:flex;gap:4px;background:#f1f5f9;border-radius:8px;padding:3px;flex-wrap:wrap}
.tab{padding:7px 16px;border-radius:6px;font-size:13px;cursor:pointer;
    border:none;background:#fff !important;color:#64748b;font-weight:500}
.tab.active{background:#fff;color:#0F6E56;font-weight:700;border:1px solid #dde2e8;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.panel{display:none;padding:20px}
.panel.active{display:block}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}
.mcard{background:#fff;border-radius:10px;padding:14px 16px;border:1px solid #e2e8f0}
.mcard .lbl{font-size:11px;color:#64748b;margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.mcard .val{font-size:22px;font-weight:700;color:#1a1a1a}
.mcard .val.green{color:#0F6E56}
.mcard .val.amber{color:#b45309}
.card{background:#fff;border-radius:10px;border:1px solid #e2e8f0;padding:18px 20px;margin-bottom:16px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px;margin-bottom:14px}
label{font-size:12px;color:#374151;display:block;margin-bottom:4px;font-weight:600}
input,select,textarea{width:100%;font-size:13px;padding:9px 11px;border:1.5px solid #d1d5db;border-radius:7px;background:#fff;color:#1a1a1a;outline:none;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:#0F6E56;box-shadow:0 0 0 3px rgba(15,110,86,.1)}
.btn{padding:9px 18px;border-radius:8px;font-size:13px;cursor:pointer;border:1.5px solid #d1d5db;background:#fff;color:#374151;font-weight:600;transition:all .15s}
/* .btn:hover{background:#f8fafc;border-color:#9ca3af} */
.btn.primary{background:#0F6E56;border-color:#0F6E56;color:#fff}
.btn.primary:hover{background:#0a5a47}
.btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}
.btn.danger:hover{background:#b91c1c}
button.tab a {
  all: unset; /* removes default link styles */
  color: inherit; /* inherits button text color */
  text-decoration: none;
}
.btn.sm{padding:6px 12px;font-size:12px}
.tbl-wrap{overflow-x:auto;border-radius:10px;border:1px solid #e2e8f0;background:#fff}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:750px}
th{background:#f8fafc;padding:10px 13px;text-align:left;font-weight:700;font-size:11px;color:#64748b;border-bottom:1px solid #e2e8f0;text-transform:uppercase;letter-spacing:.4px}
td{padding:10px 13px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
tr:last-child td{border-bottom:none}
/* tr:hover td{background:#f8fafc} */
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}
.badge.bank{background:#dbeafe;color:#1d4ed8}
.badge.cash{background:#dcfce7;color:#166534}
.badge.cheque{background:#fef3c7;color:#92400e}
.badge.upi{background:#ede9fe;color:#5b21b6}
.badge.Contractor{background:#fee2e2;color:#991b1b}
.badge.Labour{background:#fef3c7;color:#92400e}
.badge.Vendor{background:#dbeafe;color:#1d4ed8}
.row-actions{display:flex;gap:6px}
.section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}
.section-hdr h2{font-size:15px;font-weight:700;color:#1a1a1a}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:flex-end;background:#fff;padding:12px 16px;border-radius:10px;border:1px solid #e2e8f0}
.filter-bar>div{display:flex;flex-direction:column}
.filter-bar select,.filter-bar input{width:auto;min-width:110px}
.empty{text-align:center;padding:2.5rem;color:#94a3b8;font-size:14px}
.modal-bg{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:#fff;border-radius:14px;padding:24px;width:min(540px,96vw);max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.modal h2{font-size:17px;font-weight:700;margin-bottom:16px;color:#1a1a1a}
.toast{position:fixed;bottom:24px;right:24px;background:#0F6E56;color:#fff;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.2);transition:opacity .3s;pointer-events:none}
.prog-wrap{height:7px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-top:5px}
.prog-fill{height:100%;border-radius:4px;background:#0F6E56;transition:width .3s}
.req{color:#dc2626;margin-left:2px}
.hint{font-size:11px;color:#94a3b8;margin-top:3px}
.outstanding-bar{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:10px 14px;margin-bottom:16px;display:flex;align-items:center;gap:10px;font-size:13px;color:#92400e}
.card-body {
    overflow: hidden !important;
}


@media(max-width:600px){
  .form-grid{grid-template-columns:1fr 1fr}
  .tabs{width:100%}
  .tab{padding:7px 10px;font-size:12px}
  .filter-bar{flex-direction:column}
}
@media print{
  .hdr,.tabs,.filter-bar,.row-actions,.btn{display:none!important}
  body{background:#fff}
  .tbl-wrap{border:none}
  table{min-width:0;font-size:11px}
}

/* Analysis page  */

.analysis-page{
    display:flex;
    height:calc(100vh - 70px); /* Adjust if navbar height differs */
    width:100%;
    overflow:hidden;
}

.chart-panel{
    flex:3;
    height:100%;
}

.signal-panel{
    flex:1;
    background:#111827;
    color:white;
    padding:20px;
    overflow-y:auto;
    border-left:1px solid #333;
}

#tv_chart{
    width:100%;
    height:100%;
}

.signal-title{
    font-size:24px;
    font-weight:bold;
    margin-bottom:20px;
}

.signal-box{
    background:#1f2937;
    padding:15px;
    border-radius:10px;
    margin-bottom:15px;
}

.buy-btn{
    width:100%;
    padding:12px;
    background:#16a34a;
    border:none;
    color:white;
    font-size:16px;
    cursor:pointer;
    border-radius:8px;
    margin-bottom:10px;
}

.sell-btn{
    width:100%;
    padding:12px;
    background:#dc2626;
    border:none;
    color:white;
    font-size:16px;
    cursor:pointer;
    border-radius:8px;
}

.user-card{
    background:#1e1e1e;
    color:white;
    padding:15px;
    margin-bottom:15px;
    border-radius:10px;
}

.card-header{
    margin-bottom:10px;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,td{
    padding:8px;
    border-bottom:1px solid #333;
}

/* All Position page */
.all-user-card {
    margin-bottom:20px;
            padding:15px;
            border:1px solid #444;
            border-radius:10px;
            background:#88938f;
            color:white;
}
.all-user-card tr {
}
.tr-row{
}

.all-user-card tr:hover {
  
}

/* From Uiverse.io by Na3ar-17 */ 
.radio-input {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}

.radio-input * {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

.radio-input label {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 0px 20px;
  width: 220px;
  cursor: pointer;
  height: 50px;
  position: relative;
  background: #69acda;
}

.radio-input label::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 220px;
  height: 45px;
  z-index: -1;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  border-radius: 10px;
  border: 2px solid transparent;
}
.radio-input label:hover::before {
  transition: all 0.2s ease;
  background-color: #2a2e3c;
}

.radio-input .label:has(input:checked)::before {
  background-color: #2d3750;
  border-color: #435dd8;
  height: 50px;
}
.radio-input .label .text {
  color: #fff;
}

.radio-input .label input[type="radio"] {
  appearance: none;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.radio-input .label input[type="radio"]:checked {
  background-color: #435dd8;
  -webkit-animation: puls 0.7s forwards;
  animation: pulse 0.7s forwards;
}

.radio-input .label input[type="radio"]:before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  transition: all 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  background-color: #fff;
  transform: scale(0);
}

.radio-input .label input[type="radio"]:checked::before {
  transform: scale(1);
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
  }
}
