/* AI Dashboard — Custom theme */
/* ponytail: minimal CSS, Bootstrap 5 does the heavy lifting */

:root {
    --c-blue: #4680ff;
    --c-pink: #fc6180;
    --c-yellow: #ffb64d;
    --c-green: #93be52;
    --c-lite-green: #69d2e7;
    --c-purple: #7759de;
    --c-dark: #2c3e50;
    --c-sidebar: #3b4650;
    --c-sidebar-active: #4680ff;
    --c-body-bg: #f1f1f1;
    --c-card-shadow: 0 1px 3px rgba(0,0,0,.1);
}

body {
    font-family: 'Open Sans', sans-serif;
    background: var(--c-body-bg);
    font-size: 14px;
}

/* --- SIDEBAR --- */
.sidebar {
    position: fixed; top: 0; left: 0; bottom: 0;
    width: 250px; background: var(--c-sidebar);
    color: #fff; z-index: 1030; overflow-y: auto;
    transition: width .2s;
    display: flex; flex-direction: column;
}
.sidebar .brand {
    padding: 18px 20px; font-size: 20px; font-weight: 800;
    border-bottom: 1px solid rgba(255,255,255,.08);
    display: flex; align-items: center; gap: 10px;
}
.sidebar .brand span { /* color set inline from brand settings */ }
.sidebar .nav-label {
    padding: 15px 20px 5px; font-size: 11px; text-transform: uppercase;
    color: rgba(255,255,255,.35); letter-spacing: 1px;
}
.sidebar .nav-item a {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 20px; color: rgba(255,255,255,.7);
    text-decoration: none; font-size: 13px; transition: all .15s;
}
.sidebar .nav-item a:hover,
.sidebar .nav-item.active a {
    color: #fff; background: rgba(255,255,255,.06);
}
.sidebar .nav-item.active a {
    border-left: 3px solid var(--c-sidebar-active);
    padding-left: 17px;
}
.sidebar .nav-item a i { font-size: 16px; width: 20px; text-align: center; }

/* Submenu */
.sidebar .sub-menu {
    display: none; background: rgba(0,0,0,.15);
}
.sidebar .nav-item.has-sub.open .sub-menu { display: block; }
.sidebar .sub-menu .nav-item a {
    padding: 8px 20px 8px 46px; font-size: 12px;
}
.sidebar .sub-menu .nav-item.active a {
    border-left: 3px solid var(--c-sidebar-active);
    padding-left: 43px;
}
.sidebar .sub-arrow {
    margin-left: auto; width: 14px !important; height: 14px !important;
    transition: transform .2s;
}
.sidebar .nav-item.has-sub.open .sub-arrow { transform: rotate(90deg); }
.sidebar .sub-toggle { cursor: pointer; }

/* --- HEADER --- */
.main-header {
    margin-left: 250px; height: 60px; background: #fff;
    border-bottom: 1px solid #e8e8e8; display: flex;
    align-items: center; justify-content: space-between;
    padding: 0 25px; position: sticky; top: 0; z-index: 1020;
}
.main-header .header-right { display: flex; align-items: center; gap: 20px; }
.main-header .header-right .badge {
    position: absolute; top: -5px; right: -8px;
    font-size: 10px; padding: 2px 5px;
}

/* --- CONTENT --- */
.main-content {
    margin-left: 250px; padding: 25px;
    min-height: calc(100vh - 60px);
}

/* --- STAT CARDS --- */
.stat-card {
    border: none; border-radius: 6px;
    box-shadow: var(--c-card-shadow); color: #fff;
}
.stat-card .card-body { padding: 20px; }
.stat-card h4 { font-weight: 800; margin-bottom: 2px; }
.stat-card h6 { font-weight: 400; opacity: .85; margin: 0; }
.stat-card .card-footer {
    background: rgba(0,0,0,.1); border: none;
    padding: 10px 20px; font-size: 12px;
}

.bg-c-blue { background: var(--c-blue) !important; }
.bg-c-pink { background: var(--c-pink) !important; }
.bg-c-yellow { background: var(--c-yellow) !important; }
.bg-c-green { background: var(--c-green) !important; }
.bg-c-lite-green { background: var(--c-lite-green) !important; }
.bg-c-purple { background: var(--c-purple) !important; }

/* --- CARDS --- */
.card {
    border: none; border-radius: 6px;
    box-shadow: var(--c-card-shadow); margin-bottom: 25px;
}
.card .card-header {
    background: #fff; border-bottom: 1px solid #f1f1f1;
    padding: 15px 20px; display: flex;
    align-items: center; justify-content: space-between;
    border-radius: 6px 6px 0 0;
}
.card .card-header h5 { margin: 0; font-size: 15px; font-weight: 600; }
.card .card-body { padding: 20px; }

.card-option { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; }
.card-option li { cursor: pointer; color: #aaa; }
.card-option li:hover { color: #333; }

/* --- TABLES --- */
.table th { font-size: 12px; text-transform: uppercase; color: #888; font-weight: 600; }
.table td { vertical-align: middle; }

/* --- STATUS BADGES --- */
.badge-status { font-size: 11px; padding: 4px 10px; border-radius: 20px; font-weight: 600; }

/* --- MISC --- */
.img-radius { border-radius: 50%; }
.text-c-blue { color: var(--c-blue) !important; }
.text-c-pink { color: var(--c-pink) !important; }
.text-c-green { color: var(--c-green) !important; }
.text-c-yellow { color: var(--c-yellow) !important; }

.f-12 { font-size: 12px; }
.f-14 { font-size: 14px; }
.f-20 { font-size: 20px; }
.f-30 { font-size: 30px; }

/* --- CHANNEL ICONS --- */
.channel-whatsapp { color: #25d366; }
.channel-telegram { color: #0088cc; }
.channel-web { color: var(--c-blue); }

/* --- PAGE LOADER --- */
#page-loader { display:flex; justify-content:center; align-items:center; padding:80px 0; }
#page-loader.hidden { display:none; }
.loader--page { --size: 0.7; }
.loader--page .box { mask: url(#clipping-page); -webkit-mask: url(#clipping-page); }

.loadingspinner {
  --square: 26px;
  --offset: 30px;
  --duration: 2.4s;
  --delay: 0.2s;
  --timing-function: ease-in-out;
  --in-duration: 0.4s;
  --in-delay: 0.1s;
  --in-timing-function: ease-out;
  width: calc(3 * var(--offset) + var(--square));
  height: calc(2 * var(--offset) + var(--square));
  position: relative;
}
.loadingspinner div {
  display: inline-block;
  background: darkorange;
  border: none;
  border-radius: 2px;
  width: var(--square);
  height: var(--square);
  position: absolute;
}
.loadingspinner #square1 {
  left: calc(0 * var(--offset)); top: calc(0 * var(--offset));
  animation: square1 var(--duration) var(--delay) var(--timing-function) infinite,
             squarefadein var(--in-duration) calc(1 * var(--in-delay)) var(--in-timing-function) both;
}
.loadingspinner #square2 {
  left: calc(0 * var(--offset)); top: calc(1 * var(--offset));
  animation: square2 var(--duration) var(--delay) var(--timing-function) infinite,
             squarefadein var(--in-duration) calc(1 * var(--in-delay)) var(--in-timing-function) both;
}
.loadingspinner #square3 {
  left: calc(1 * var(--offset)); top: calc(1 * var(--offset));
  animation: square3 var(--duration) var(--delay) var(--timing-function) infinite,
             squarefadein var(--in-duration) calc(2 * var(--in-delay)) var(--in-timing-function) both;
}
.loadingspinner #square4 {
  left: calc(2 * var(--offset)); top: calc(1 * var(--offset));
  animation: square4 var(--duration) var(--delay) var(--timing-function) infinite,
             squarefadein var(--in-duration) calc(3 * var(--in-delay)) var(--in-timing-function) both;
}
.loadingspinner #square5 {
  left: calc(3 * var(--offset)); top: calc(1 * var(--offset));
  animation: square5 var(--duration) var(--delay) var(--timing-function) infinite,
             squarefadein var(--in-duration) calc(4 * var(--in-delay)) var(--in-timing-function) both;
}
@keyframes square1{0%{left:calc(0*var(--offset));top:calc(0*var(--offset))}8.333%,100%{left:calc(0*var(--offset));top:calc(1*var(--offset))}}
@keyframes square2{0%{left:calc(0*var(--offset));top:calc(1*var(--offset))}8.333%{left:calc(0*var(--offset));top:calc(2*var(--offset))}16.67%{left:calc(1*var(--offset));top:calc(2*var(--offset))}25%,83.33%{left:calc(1*var(--offset));top:calc(1*var(--offset))}91.67%{left:calc(1*var(--offset));top:calc(0*var(--offset))}100%{left:calc(0*var(--offset));top:calc(0*var(--offset))}}
@keyframes square3{0%,100%{left:calc(1*var(--offset));top:calc(1*var(--offset))}16.67%{left:calc(1*var(--offset));top:calc(1*var(--offset))}25%{left:calc(1*var(--offset));top:calc(0*var(--offset))}33.33%{left:calc(2*var(--offset));top:calc(0*var(--offset))}41.67%,66.67%{left:calc(2*var(--offset));top:calc(1*var(--offset))}75%{left:calc(2*var(--offset));top:calc(2*var(--offset))}83.33%{left:calc(1*var(--offset));top:calc(2*var(--offset))}91.67%{left:calc(1*var(--offset));top:calc(1*var(--offset))}}
@keyframes square4{0%,33.33%{left:calc(2*var(--offset));top:calc(1*var(--offset))}41.67%{left:calc(2*var(--offset));top:calc(2*var(--offset))}50%{left:calc(3*var(--offset));top:calc(2*var(--offset))}58.33%,100%{left:calc(3*var(--offset));top:calc(1*var(--offset))}}
@keyframes square5{0%,50%{left:calc(3*var(--offset));top:calc(1*var(--offset))}58.33%{left:calc(3*var(--offset));top:calc(0*var(--offset))}66.67%{left:calc(2*var(--offset));top:calc(0*var(--offset))}75%,100%{left:calc(2*var(--offset));top:calc(1*var(--offset))}}
@keyframes squarefadein{0%{transform:scale(.75);opacity:0}100%{transform:scale(1);opacity:1}}

/* --- SIDEBAR COLLAPSE BUTTON --- */
.sidebar-collapse-btn {
    margin-left: auto; color: rgba(255,255,255,.4); text-decoration: none;
    display: flex; align-items: center; transition: color .2s;
}
.sidebar-collapse-btn:hover { color: #fff; }

/* --- SIDEBAR MINI (icons only) --- */
.sidebar.mini { width: 60px; }
.sidebar.mini .brand { padding: 18px 0; justify-content: center; }
.sidebar.mini .brand__logo { display: none; }
.sidebar.mini .brand__name { display: none; }
.sidebar.mini .sidebar-collapse-btn i { transform: rotate(180deg); }
.sidebar.mini .nav-label { display: none; }
.sidebar.mini .nav-item a { padding: 12px 0; justify-content: center; font-size: 0; gap: 0; }
.sidebar.mini .nav-item a svg { margin: 0; }
.sidebar.mini .nav-item.active a { padding-left: 0; border-left-width: 3px; }
.sidebar.mini .has-sub .sub-menu { display: none !important; }
.sidebar.mini .has-sub .sub-arrow { display: none; }
.sidebar.mini .has-sub > a > span { display: none; }
.sidebar.mini ~ .main-header { margin-left: 60px; }
.sidebar.mini ~ .main-content { margin-left: 60px; }

/* Tooltip on hover when mini */
.sidebar.mini .nav-item a { position: relative; }
.sidebar.mini .nav-item a::after {
    content: attr(data-title); position: absolute; left: 100%; top: 50%; transform: translateY(-50%);
    background: #333; color: #fff; padding: 4px 10px; border-radius: 4px; font-size: 12px;
    white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s; z-index: 9999;
    margin-left: 8px;
}
.sidebar.mini .nav-item a:hover::after { opacity: 1; }

/* --- SCRAPE LOADER OVERLAY --- */
.scrape-overlay {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 24px;
    background: rgba(0,0,0,.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.scrape-overlay__text { color: #fff; font-size: 14px; letter-spacing: 0.5px; text-align: center; line-height: 1.8; }

.loader {
    --color-one: #ffbf48; --color-two: #be4a1d; --color-three: #ffbf4780;
    --color-four: #bf4a1d80; --color-five: #ffbf4740; --time-animation: 2s; --size: 1;
    position: relative; border-radius: 50%; transform: scale(var(--size));
    box-shadow: 0 0 25px 0 var(--color-three), 0 20px 50px 0 var(--color-four);
    animation: colorize calc(var(--time-animation) * 3) ease-in-out infinite;
}
.loader::before {
    content: ""; position: absolute; top: 0; left: 0; width: 100px; height: 100px;
    border-radius: 50%; border-top: solid 1px var(--color-one); border-bottom: solid 1px var(--color-two);
    background: linear-gradient(180deg, var(--color-five), var(--color-four));
    box-shadow: inset 0 10px 10px 0 var(--color-three), inset 0 -10px 10px 0 var(--color-four);
}
.loader .box {
    width: 100px; height: 100px;
    background: linear-gradient(180deg, var(--color-one) 30%, var(--color-two) 70%);
    mask: url(#clipping); -webkit-mask: url(#clipping);
}
.loader svg { position: absolute; }
.loader svg #clipping { filter: contrast(15); animation: roundness calc(var(--time-animation) / 2) linear infinite; }
.loader svg #clipping polygon { filter: blur(7px); }
.loader svg #clipping polygon:nth-child(1) { transform-origin: 75% 25%; transform: rotate(90deg); }
.loader svg #clipping polygon:nth-child(2) { transform-origin: 50% 50%; animation: rotation var(--time-animation) linear infinite reverse; }
.loader svg #clipping polygon:nth-child(3) { transform-origin: 50% 60%; animation: rotation var(--time-animation) linear infinite; animation-delay: calc(var(--time-animation) / -3); }
.loader svg #clipping polygon:nth-child(4) { transform-origin: 40% 40%; animation: rotation var(--time-animation) linear infinite reverse; }
.loader svg #clipping polygon:nth-child(5) { transform-origin: 40% 40%; animation: rotation var(--time-animation) linear infinite reverse; animation-delay: calc(var(--time-animation) / -2); }
.loader svg #clipping polygon:nth-child(6) { transform-origin: 60% 40%; animation: rotation var(--time-animation) linear infinite; }
.loader svg #clipping polygon:nth-child(7) { transform-origin: 60% 40%; animation: rotation var(--time-animation) linear infinite; animation-delay: calc(var(--time-animation) / -1.5); }
@keyframes rotation { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes roundness { 0% { filter: contrast(15); } 20% { filter: contrast(3); } 40% { filter: contrast(3); } 60% { filter: contrast(15); } 100% { filter: contrast(15); } }
@keyframes colorize { 0% { filter: hue-rotate(0deg); } 20% { filter: hue-rotate(-30deg); } 40% { filter: hue-rotate(-60deg); } 60% { filter: hue-rotate(-90deg); } 80% { filter: hue-rotate(-45deg); } 100% { filter: hue-rotate(0deg); } }

/* --- RESPONSIVE --- */
@media (max-width: 991px) {
    .sidebar { width: 0; overflow: hidden; }
    .sidebar.open { width: 250px; }
    .main-header, .main-content { margin-left: 0; }
}
