@import url('https://fonts.googleapis.com/css2?family=Clicker+Script&family=Poppins:wght@200;300;400;500;600;700&family=Roboto:ital,wght@0,100;1,100;1,300&display=swap');

:root{
  --bg-black-900:#151515;
  --bg-black-100:#222222;
  --bg-black-50:#393939;
  --text-black-900:#ffffff;
  --text-black-700:#e9e9e9;
  /* Nếu trang có đổi theme da, bạn nhớ đang có --skin-color trong các file color*.css */
}

body.dark{
  --bg-black-900:#f2f2fc;
  --bg-black-100:#fdf9ff;
  --bg-black-50:#e8dfec;
  --text-black-900:#302e4d;
  --text-black-700:#504e70;
}

body{
  line-height:1.5;
  font-size:16px;
  font-family:'Poppins',sans-serif;
  overflow:hidden;
}

*{margin:0;padding:0;outline:none;text-decoration:none;box-sizing:border-box}
::before,::after{box-sizing:border-box}
ul{list-style:none}

/* ===== Section ===== */
.section{
  background:var(--bg-black-900);
  min-height:100vh;
  display:block;
  padding:0 30px;
  opacity:1;
  position:fixed;
  left:270px;top:0;right:0;bottom:0;
  z-index:-1;
  overflow-y:auto;
  overflow-x:hidden;
  transition:all .3s ease;
}
.section.back-section{z-index:1}
.section.active{z-index:2;opacity:1;animation:sideSection 1s ease}
@keyframes sideSection{0%{transform:translateX(100%)}100%{transform:translateX(0)}}

.hidden{display:none!important}
.padd-15{padding-left:15px;padding-right:15px}
.section .container{padding-top:60px;padding-bottom:70px;position:relative}

.section-title{flex:0 0 100%;max-width:100%;margin-bottom:60px}
.section-title h2{
  font-size:40px;color:var(--text-black-900);font-weight:700;position:relative
}
.section-title h2::before{
  content:'';position:absolute;width:50px;height:4px;background:var(--skin-color);top:100%;left:0
}
.section-title h2::after{
  content:'';position:absolute;width:25px;height:4px;background:var(--skin-color);top:100%;left:0;margin-top:8px
}

.container{max-width:1100px;width:100%;margin:auto}
.home .container{margin-top:100px}
.row{display:flex;flex-wrap:wrap;margin-left:-15px;margin-right:-15px;position:relative}

.btn{
  font-size:15px;font-weight:500;padding:12px 20px;margin-bottom:10px;margin-right:5px;
  color:#fff;border-radius:40px;display:inline-block;white-space:nowrap;border:none;
  background:var(--skin-color);transition:all .3s ease
}
.btn:hover{transform:scale(1.05)}
.shadow-dark{box-shadow:0 0 20px rgba(48,46,77,.15)}

/* ===== Aside (sidebar) ===== */
.aside{
  width:270px;background:var(--bg-black-100);position:fixed;left:0;top:0;padding:30px;height:100%;
  border-right:1px solid var(--text-black-50);display:flex;justify-content:center;align-items:center;
  z-index:10;transition:all .3s ease
}
.aside .logo{position:absolute;top:50px;font-size:30px;text-transform:capitalize}
.aside .logo a{color:var(--text-black-900);font-weight:700;padding:15px 20px;font-size:30px;letter-spacing:1px;position:relative}
.aside .logo a span{font-family:'Clicker Script',cursive;font-size:40px}
.aside .logo a::before{
  content:'';position:absolute;width:20px;height:20px;border-bottom:5px solid var(--skin-color);border-left:5px solid var(--skin-color);bottom:0;left:0
}
.aside .logo a::after{
  content:'';position:absolute;width:20px;height:20px;border-top:5px solid var(--skin-color);border-right:5px solid var(--skin-color);top:0;right:0
}
.aside .nav-toggler{
  height:40px;width:45px;border:1px solid var(--bg-black-50);cursor:pointer;position:fixed;left:300px;top:20px;
  border-radius:5px;background:var(--bg-black-100);display:none;align-items:center;justify-content:center;transition:all .3s ease
}
.aside .nav-toggler span{height:2px;width:18px;background:var(--skin-color);display:inline-block;position:relative}
aside .nav-toggler.open span{background-color:transparent}
.aside .nav-toggler span::before,
.aside .nav-toggler span::after{
  content:'';height:2px;width:18px;background:var(--skin-color);position:absolute;left:0
}
.aside .nav-toggler span::before{top:-6px}
.aside .nav-toggler.open span::before{transform:rotate(45deg);top:0}
.aside .nav-toggler span::after{top:6px}
.aside .nav-toggler.open span::after{transform:rotate(-45deg);top:0}

.aside .nav{margin-top:50px}
.aside .nav li{margin-bottom:20px;display:block}
.aside .nav li a{
  font-size:16px;font-weight:600;display:block;border-bottom:1px solid var(--bg-black-50);color:var(--text-black-900);padding:5px 15px
}
.aside .nav li a.active{color:var(--skin-color)}
.aside .nav li a i{margin-right:15px}
.aside ul li a img{width:24px;height:20px;margin-right:10px}

/* ===== Home ===== */
.home{min-height:100vh;display:flex;color:var(--text-black-900);flex-direction:column}
.marquee{margin:25px 0;font-weight:550}
.home .home-info{flex:0 0 100%;max-width:100%}
h3.hello{font-size:28px;margin:15px 0}
h3.hello span{font-family:'aria',cursive;font-size:30px;font-weight:700;color:var(--skin-color)}
h3.my-profession{font-size:30px;margin:15px 0}
.typing{color:var(--skin-color)}
.home-info p{margin-top:15px;margin-bottom:70px;font-size:20px;color:var(--text-black-700)}

/* ===== About ===== */
.about .about-content{flex:0 0 100%;max-width:100%}
.about .about-content .about-text{flex:0 0 100%;max-width:100%}
.about .about-content .about-text h3{font-size:24px;margin-bottom:15px;font-weight:700;color:var(--text-black-900)}
.about .about-content .about-text h3 span{color:var(--skin-color)}
.about .about-content .about-text p{font-size:16px;line-height:25px;color:var(--text-black-700)}
.about .about-content .personal-info{flex:0 0 60%;max-width:60%;margin-top:40px}
.about .about-content .personal-info .info-item{flex:0 0 50%;max-width:50%}
.about .about-content .personal-info p{
  font-weight:600;padding:10px 0;font-size:16px;color:var(--text-black-900);border-bottom:1px solid var(--bg-black-50)
}
.about .about-content .personal-info .info-item p span{font-weight:400;color:var(--text-black-700);margin-left:4px;display:inline-block}
.about .about-content .skills{flex:0 0 40%;max-width:40%;margin-top:40px}
.about .about-content .skills .row{justify-content:center;font-size:15px}
.about .about-content .skills .skill-item{flex:0 0 100%;max-width:100%;margin-bottom:20px}
.about .about-content .skills .skill-item h5{line-height:40px;font-weight:600;font-size:16px;color:var(--text-black-900);text-transform:capitalize}
.cre-source h5{line-height:25px!important}
.about .about-content .skills .skill-item .progress{height:7px;background:var(--bg-black-50);border-radius:4px;width:100%;position:relative}
.about .about-content .skills .skill-item .progress-in{position:absolute;left:0;height:100%;border-radius:4px;background-color:var(--skin-color)}
.about .about-content .skills .skill-item .skill-percent{position:absolute;right:0;color:var(--text-black-900);top:-40px;font-weight:400;line-height:40px}

/* Timeline */
.about .about-content .education,.about .about-content .experience{flex:0 0 50%;max-width:50%;margin-top:30px}
.about .about-content h3.title{font-size:24px;margin-bottom:30px;font-weight:700;color:var(--text-black-900)}
.about .about-content .timeline-box{flex:0 0 100%;max-width:100%}
.about .about-content .timeline{
  background-color:var(--bg-black-100);padding:30px 15px;border:1px solid var(--bg-black-50);border-radius:10px;width:100%;position:relative
}
.about .about-content .timeline .timeline-item{position:relative;padding-left:37px;padding-bottom:50px}
.about .about-content .timeline .timeline-item:last-child{padding-bottom:0}
.about .about-content .timeline .timeline-item::before{
  content:'';position:absolute;width:1px;height:100%;left:7px;top:0;background-color:var(--skin-color)
}
.about .about-content .timeline .circle-dot{position:absolute;left:0;top:0;height:15px;width:15px;border-radius:50%;background-color:var(--skin-color)}
.about .about-content .timeline .timeline-date{font-weight:400;font-size:14px;margin-bottom:12px;color:var(--text-black-700)}
.about .about-content .timeline .timeline-date .fa{margin-right:5px}
.about .about-content .timeline .timeline-title{font-weight:700;font-size:18px;margin-bottom:15px;text-transform:capitalize;color:var(--text-black-900)}
.about .about-content .timeline .timeline-text{font-size:16px;line-height:25px;text-align:justify;color:var(--text-black-700)}
.iframe{border:none;margin-top:20px}

/* ===== Services ===== */
.service .container{padding-bottom:40px}
.service .service-item{margin-bottom:30px;flex:0 0 33.33%;max-width:33.33%}
.service .service-item .service-item-inner{
  background-color:var(--bg-black-100);border:1px solid var(--bg-black-50);border-radius:10px;padding:30px 15px;text-align:center;transition:all .3s ease
}
.service .service-item .service-item-inner p{text-align:left}
.service .service-item .service-item-inner:hover{box-shadow:0 0 20px rgba(48,46,77,.15)}
.service .service-item .service-item-inner .icon{height:60px;width:60px;border-radius:50%;display:block;margin:0 auto 30px;text-align:center;transition:all .3s ease}
.service .service-item .service-item-inner .iconnf img{width:40px;height:40px;margin-top:13px}
.service .service-item .service-item-inner .icon .fa-solid,
.service .service-item .service-item-inner .icon .fa-brands{font-size:40px;line-height:60px;color:var(--skin-color);transition:all .3s ease}
.service .service-item .service-item-inner:hover .icon{background:var(--skin-color)}
.service .service-item .service-item-inner:hover .icon .fa-solid,
.service .service-item .service-item-inner:hover .icon .fa-brands{font-size:25px;color:#fff}
.service .service-item .service-item-inner h4{font-size:18px;margin-bottom:15px;color:var(--text-black-900);font-weight:700;text-transform:capitalize}
.service .service-item .service-item-inner p{font-size:16px;color:var(--text-black-700);line-height:25px}

/* ===== Telejson ===== */
.telejson .container{padding-bottom:40px}
.telejson .telejson-heading{flex:0 0 100%;max-width:100%;margin-bottom:40px}
.tp-search{border-radius:8px;height:30px;width:300px;padding:0 8px}
.telejson .telejson-heading h2,h3{color:var(--text-black-900)}
.telejson .telejson-item{flex:0 0 8.3%;max-width:33.33%;margin-bottom:30px;position:relative}
.overflow-auto{width:100%;height:285px;overflow:auto;overflow-x:hidden;border:1px solid #000;padding:5px 10px}
.telejson .telejson-item h4{text-align:center}
.telejson .telejson-item-inner{border:6px solid var(--bg-black-100);overflow:hidden;cursor:pointer;border-radius:10px}
.telejson .telejson-item-inner .telejson-img img{width:100%;display:block;background-color:#747474}

/* ===== Contact ===== */
.contact-title{color:var(--skin-color);text-align:center;font-size:25px;margin-bottom:10px}
.contact-sub-title{color:var(--text-black-900);text-align:center;font-size:15px;margin-bottom:30px}
.contact .contact-info-item{flex:0 0 25%;max-width:25%;text-align:center;margin-bottom:44px}
.contact .contact-info-item .icon{display:inline-block}
.contact .contact-info-item .icon .fa-solid,
.contact .contact-info-item .icon .fa-brands{font-size:25px;color:var(--skin-color)}
.contact .contact-info-item h4{font-size:18px;font-weight:700;color:var(--text-black-900);text-transform:capitalize;margin:15px 0 5px}
.contact .contact-info-item p{font-size:16px;line-height:25px;color:var(--text-black-700);font-weight:400}
.contact .contact-form{flex:0 0 100%;max-width:100%}
.contact .contact-form .col-6{flex:0 0 50%;max-width:50%}
.contact .contact-form .col-12{flex:0 0 100%;max-width:100%}
.contact .contact-form .form-item{margin-bottom:30px}
.contact .contact-form .form-item .form-control{
  width:100%;height:50px;border-radius:25px;background:var(--bg-black-100);border:1px solid var(--bg-black-50);
  padding:10px 25px;font-size:16px;color:var(--text-black-700);transition:all .3s ease
}
.contact .contact-form .form-item .form-control:focus{box-shadow:0 0 20px rgba(48,46,77,.15)}
.contact .contact-form .form-item textarea.form-control{height:140px}
.contact .contact-form .btn{height:50px;padding:0 50px}

#audio-player{display:none}

/* ===== Responsive ===== */
@media (max-width:1199px){
  .section .container{padding-top:70px}
  .aside{left:-270px}
  .aside.open{left:0}
  .aside .nav-toggler{display:flex;left:30px}
  .aside .nav-toggler.open{left:300px}
  .section{left:0}
  .section.open{left:270px}
  .about .about-content .personal-info .info-item p span{display:block;margin-left:0}
}
@media (max-width:991px){
  .contact .contact-info-item,
  .telejson .telejson-item,
  .service .service-item{flex:0 0 50%;max-width:50%}
  .home .home-info{flex:0 0 100%;max-width:100%}
}
@media (max-width:767px){
  .contact .contact-form .col-6,
  .contact .contact-info-item,
  .telejson .telejson-item,
  .service .service-item,
  .about .about-content .experience,
  .about .about-content .education,
  .about .about-content .skills,
  .about .about-content .personal-info{flex:0 0 100%;max-width:100%}
  .telejson .telejson-item{flex:0 0 100%;max-width:100%}
}

/* ===== Dọn dẹp: đã bỏ toàn bộ style khung đăng nhập cũ ===== */

/* Liên kết nổi bật */
.info-item p a[href*="zalo.me"]{color:blue}
.info-item p a[href*="facebook.com"]{color:rgb(0,30,255)!important}

/* ===== User menu (top-right dropdown) ===== */
.user-menu{
  position:fixed;
  top:72px;            /* hạ thấp tránh đè icon gear/moon */
  right:16px;
  z-index:5000;        /* luôn nổi trên cùng */
  font-size:14px;
  pointer-events:auto;
}
.user-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  background:#111827;
  color:#e5e7eb;
  border:1px solid #2a2f42;
  border-radius:999px;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
  box-shadow:0 10px 20px rgba(0,0,0,.15);
  z-index:5001;
}
.user-pill:hover{background:#0f1420;border-color:#3b435e}
.user-name{font-weight:600}
.user-dot{opacity:.6}
.user-role{opacity:.85}
.user-pill .chevron{font-size:12px;opacity:.7;transition:transform .15s ease}
.user-menu.open .user-pill .chevron{transform:rotate(180deg)}

.user-dropdown{
  position:absolute;
  right:0;
  margin-top:8px;
  min-width:220px;
  background:#0b0f18;
  border:1px solid #1f2436;
  border-radius:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
  padding:8px;
  display:none;
  z-index:5002;
}
.user-menu.open .user-dropdown{display:block !important}

.ud-header{padding:8px 10px;border-radius:8px;background:#0f1420}
.ud-name{font-weight:700;color:#e9eef6}
.ud-role{margin-top:2px;font-size:12px;color:#9aa4b2}
.ud-divider{height:1px;background:#1f2436;margin:8px 0}
.ud-item{
  display:flex;align-items:center;gap:10px;padding:10px;color:#e9eef6;
  text-decoration:none;border-radius:8px
}
.ud-item:hover{background:#121a2a}
.ud-item i{width:16px;text-align:center;opacity:.9}

/* Typed.js cursor: ổn định animation, tránh nhấp nháy khó chịu */
.typed-cursor {
  display: inline-block;
  opacity: 1;
  animation: typed-blink 0.7s infinite;
}
@keyframes typed-blink {
  0% { opacity: 1; }
  50% { opacity: 0; }
  100% { opacity: 1; }
}

.tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 15px;
}
.tab {
  padding: 8px 15px;
  background: #1e293b;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}
.tab.active { background: #2563eb; }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* Biểu Mẫu Hợp Đồng: đổi màu link thành trắng */
#form .tab-content a,
#form .tab-content a:visited {
  color: var(--text-black-900) !important; /* trắng ở theme tối, đậm ở theme sáng */
  text-decoration: none;
}

#form .tab-content a:hover {
  color: var(--skin-color);      /* tùy chọn: đổi màu khi hover */
  text-decoration: underline;    /* gợi ý: giúp nhận biết là link */
}


/* Container chính cho CNTT */
  #cntt .cntt-container {
    display: grid;
    gap: 12px;
  }
  /* Card/Container cho từng dịch vụ */
  #cntt .svc {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    background: var(--bg-black-100, #fff);
  }
  /* Header có thể bấm */
  #cntt .svc-head {
    width: 100%;
    text-align: left;
    padding: 10px 14px;
    font-weight: 600;
    background: var(--bg-black-50, #f7f7f7);
    border: 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  #cntt .svc-head[aria-expanded="true"] {
    background: var(--bg-black-50, #eee);
  }
  /* Nội dung biểu mẫu */
  #cntt .svc-body {
    padding: 8px 14px;
  }
  #cntt .form-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  #cntt .form-list li {
    padding: 6px 0;
    border-top: 1px dashed #eaeaea;
  }
  #cntt .form-list li:first-child {
    border-top: 0;
  }
  /* Icon mũi tên */
  #cntt .chev {
    transform: rotate(-90deg);
    transition: transform .2s ease;
  }
  #cntt .svc-head[aria-expanded="true"] .chev {
    transform: rotate(0);
  }
