
   @import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;700;800&display=swap');

   :root {
     --color-background: #FCFCFC;
     --color-primary-text: #1A202C;
     --color-secondary-text: #718096;
     --color-card-bg: #FFFFFF;
     --color-accent: #0052D4;
     --color-gold: #B8860B;
     
     --color-status-green: #28a745;
     --color-status-orange: #fd7e14;
     --color-status-red: #dc3545;
     --color-status-blue: #17a2b8;
   
     --font-family: 'Plus Jakarta Sans', sans-serif;
     --card-shadow: 0 10px 30px -15px rgba(0, 0, 0, 0.07);
     --card-border-radius: 20px;
   }
   
   * { margin: 0; padding: 0; box-sizing: border-box; }
   
   body {
     font-family: var(--font-family);
     color: var(--color-primary-text);
     background-color: var(--color-background);
     background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0%25' stop-color='%23e0c383'/%3E%3Cstop offset='100%25' stop-color='%23B8860B'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect fill='%23FCFCFC' width='120' height='120'/%3E%3Cg fill-opacity='0.1'%3E%3Cpath d='M28.24 11.23L4.13 35.34 11.2 42.41 35.31 18.3 28.24 11.23z M91.76 11.23L115.87 35.34 108.8 42.41 84.69 18.3 91.76 11.23z M28.24 71.23L4.13 95.34 11.2 102.41 35.31 78.3 28.24 71.23z M91.76 71.23L115.87 95.34 108.8 102.41 84.69 78.3 91.76 71.23z' fill='url(%23g)'/%3E%3C/g%3E%3C/svg%3E");
     display: flex;
     justify-content: center;
     padding: 20px;
     min-height: 100vh;
   }
   
   .container { 
     width: 100%; 
     max-width: 420px; 
     display: flex; 
     flex-direction: column; 
   }
   
   @keyframes fadeIn { 
     from { opacity: 0; transform: translateY(10px); } 
     to { opacity: 1; transform: translateY(0); } 
   }
   
   header { 
     text-align: center; 
     margin-bottom: 25px; 
     animation: fadeIn 0.5s ease-out; 
     padding-top: 20px;
   }
   .logo { height: 70px; margin-bottom: 15px; }
   header h1 { font-size: 26px; font-weight: 800; margin-bottom: 4px; }
   header p { font-size: 16px; color: var(--color-secondary-text); }
   
   main { display: flex; flex-direction: column; gap: 20px; }
   .card { 
     background: var(--color-card-bg); 
     border-radius: var(--card-border-radius); 
     padding: 25px; 
     box-shadow: var(--card-shadow); 
     border: 1px solid #E2E8F0; 
     animation: fadeIn 0.5s ease-out forwards; 
     opacity: 0; 
     background-color: #FFFFFF;
   }
   
   .card-title { 
     font-size: 16px; 
     font-weight: 700; 
     color: var(--color-secondary-text); 
     display: flex; 
     align-items: center; 
     gap: 10px; 
     margin-bottom: 20px; 
   }
   .card-title svg { stroke: var(--color-secondary-text); }
   
   .card-input { text-align: center; padding: 30px 25px; }
   
   .input-group { margin-top: 15px; margin-bottom: 20px; }
   
   .input-group input {
     width: 100%;
     padding: 14px 18px;
     border-radius: 12px;
     border: 1px solid #E2E8F0;
     font-size: 18px;
     text-align: center;
     font-family: var(--font-family);
     font-weight: 700;
     color: var(--color-primary-text);
     transition: all 0.2s ease;
   }
   
   .input-group input:focus {
     outline: none;
     border-color: var(--color-accent);
     box-shadow: 0 0 0 3px rgba(0, 82, 212, 0.2);
   }
   
   .input-group input.shake {
     animation: shake 0.5s ease-in-out;
     border-color: var(--color-status-red);
   }
   
   .btn-submit {
     width: 100%;
     padding: 16px;
     background-color: var(--color-accent);
     color: white;
     border: none;
     border-radius: 12px;
     font-size: 16px;
     font-weight: 700;
     cursor: pointer;
     transition: background-color 0.2s ease;
   }
   .btn-submit:hover { background-color: #0045b3; }
   
   .input-info {
     font-size: 13px;
     color: var(--color-secondary-text);
     margin-top: 15px;
     line-height: 1.5;
   }
   
   .card-panggilan {
     background: linear-gradient(135deg, var(--color-gold), #D4AF37);
     color: white;
     position: relative;
     animation-delay: 0.1s;
   }
   
   .card-panggilan .card-title { color: rgba(255, 255, 255, 0.95); }
   .card-panggilan .card-title svg { stroke: rgba(255, 255, 255, 0.95); }
   
   .info-panggilan { 
     display: flex; 
     justify-content: space-around; 
     text-align: center;
     background-color: rgba(255, 255, 255, 0.15); 
     border-radius: 12px;
     padding: 15px;
     margin-top: 5px;
     border: 1px solid rgba(255, 255, 255, 0.3);
   }
   
   .info-item { display: flex; flex-direction: column; align-items: center; }
   
   .info-item .label {
     font-size: 12px;
     text-transform: uppercase;
     color: rgba(255, 255, 255, 0.9);
     margin-bottom: 4px;
     font-weight: 600;
   }
   
   .info-item .value {
     font-size: 32px;
     font-weight: 800;
     color: #FFFFFF;
     font-family: var(--font-family);
     text-shadow: 0 2px 4px rgba(0,0,0,0.1);
   }
   
   .last-sync {
       font-size: 11px;
       color: rgba(255, 255, 255, 0.85);
       text-align: right;
       margin-top: 10px;
       display: flex;
       align-items: center;
       justify-content: flex-end;
       gap: 5px;
       font-style: italic;
   }
   .last-sync .dot {
       width: 6px;
       height: 6px;
       background-color: #00ff40; 
       border-radius: 50%;
       display: inline-block;
       box-shadow: 0 0 6px rgba(0, 255, 64, 0.6);
       animation: pulse 2s infinite;
   }
   
   .no-data { text-align: center; color: rgba(255,255,255,0.9); font-style: italic; padding: 10px; }
   
   
   .card-kuota { animation-delay: 0.2s; }
   
   .quota-list {
     display: flex;
     flex-direction: column;
     gap: 10px;
     margin-top: 10px;
     max-height: 300px;
     overflow-y: auto;
   }
   
   .quota-item {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 12px 15px;
     background-color: #F8FAFC;
     border-radius: 10px;
     border: 1px solid #E2E8F0;
     transition: transform 0.1s ease;
   }
   .quota-item:hover { transform: translateY(-2px); border-color: #cbd5e1; }
   
   .quota-item.full {
     background-color: #FFF5F5;
     border-color: #FED7D7;
   }
   
   .quota-info { display: flex; flex-direction: column; text-align: left; }
   
   .quota-session {
     font-weight: 700;
     color: var(--color-primary-text);
     font-size: 14px;
   }
   .quota-time {
     font-size: 12px;
     color: var(--color-secondary-text);
     margin-top: 2px;
   }
   
   .quota-count {
     font-weight: 700;
     font-size: 14px;
     color: var(--color-accent);
     background: rgba(0, 82, 212, 0.1);
     padding: 5px 10px;
     border-radius: 6px;
   }
   
   .quota-item.full .quota-count {
     color: var(--color-status-red);
     background: rgba(220, 53, 69, 0.1);
   }
   
   .loading-text {
     text-align: center;
     color: var(--color-secondary-text);
     font-style: italic;
     padding: 15px;
   }
   
   footer { text-align: center; margin-top: auto; padding-top: 30px; }
   .copyright { margin-top: 25px; font-size: 12px; color: var(--color-secondary-text); }
   
   @keyframes shake {
     10%, 90% { transform: translateX(-1px); }
     20%, 80% { transform: translateX(2px); }
     30%, 50%, 70% { transform: translateX(-4px); }
     40%, 60% { transform: translateX(4px); }
   }
   @keyframes pulse {
     0% { opacity: 1; }
     50% { opacity: 0.4; }
     100% { opacity: 1; }
   }


.last-sync {
    font-size: 11px;
    text-align: right;
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    font-style: italic;
}


.card-panggilan .last-sync {
    color: rgba(255, 255, 255, 0.85);
}


.last-sync.gray {
    color: var(--color-secondary-text); 
    margin-top: 15px;
    padding-top: 10px;
    border-top: 1px dashed #e2e8f0; 
}

.dot-active {
    width: 6px;
    height: 6px;
    background-color: #00ff40;
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 0 6px rgba(0, 255, 64, 0.6);
    animation: pulse 2s infinite;
}

.dot-sync {
    width: 6px;
    height: 6px;
    background-color: #3b82f6; 
    border-radius: 50%;
    display: inline-block;
}

@keyframes pulse {
    0% { opacity: 1; }
    50% { opacity: 0.4; }
    100% { opacity: 1; }
}

.quota-footer-content {
  margin-top: 15px;
  padding-top: 10px;
  border-top: 1px dashed #E2E8F0;
}

.disclaimer-text {
  font-size: 11px;
  color: #f59e0b; 
  background-color: #fffbeb;
  padding: 6px 10px;
  border-radius: 6px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}

.last-sync.gray {
  font-size: 11px;
  color: var(--color-secondary-text);
  text-align: right;
  font-style: italic;
  margin-top: 0; 
  padding-top: 0;
  border-top: none;
}


.last-sync {
  font-size: 11px;
  text-align: right;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  font-style: italic;
}

.card-panggilan .last-sync {
  color: rgba(255, 255, 255, 0.85);
}

.dot-active {
  width: 6px;
  height: 6px;
  background-color: #00ff40;
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 6px rgba(0, 255, 64, 0.6);
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.4; }
  100% { opacity: 1; }
}