@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700;900&display=swap');

:root {
  --dark-bg:#0a0a1a; --card-bg:rgba(255,255,255,.05);
  --card-border:rgba(255,255,255,.15); --text-main:#f0f0ff; --text-sub:#aab0cc;
  --glow-pink:0 0 20px rgba(255,110,199,.6); --glow-blue:0 0 20px rgba(75,200,255,.6);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Noto Sans TC','微軟正黑體',sans-serif;background:var(--dark-bg);color:var(--text-main);min-height:100vh;overflow-x:hidden;}
body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 50%,rgba(120,40,200,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(255,110,199,.1) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(75,200,255,.1) 0%,transparent 50%);pointer-events:none;z-index:0;animation:bgPulse 8s ease-in-out infinite alternate;}
@keyframes bgPulse{0%{opacity:.6}100%{opacity:1}}
@keyframes rainbowText{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.rainbow-text{background:linear-gradient(90deg,#ff6ec7,#ff9a3c,#ffe04b,#4bffa5,#4bc8ff,#a78bfa,#ff6ec7);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rainbowText 3s linear infinite;}
.navbar{position:sticky;top:0;z-index:1000;background:rgba(10,10,26,.85);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);padding:12px 0;}
.navbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px;}
.site-logo{font-size:1.6rem;font-weight:900;text-decoration:none;}
.nav-links a{color:var(--text-sub);text-decoration:none;margin-left:20px;font-size:.9rem;transition:color .3s;}
.nav-links a:hover{color:#fff;}
.main-container{max-width:1200px;margin:0 auto;padding:30px 20px;position:relative;z-index:1;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:50px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;text-decoration:none;transition:all .3s;}
.btn-primary{background:linear-gradient(135deg,#ff6ec7,#a78bfa);color:#fff;box-shadow:0 4px 15px rgba(255,110,199,.4);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(255,110,199,.6);}
.btn-success{background:linear-gradient(135deg,#4bffa5,#4bc8ff);color:#0a0a1a;}
.btn-success:hover{transform:translateY(-2px);}
.btn-danger{background:linear-gradient(135deg,#ff5555,#ff9a3c);color:#fff;}
.btn-danger:hover{transform:translateY(-2px);}
.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.3);color:var(--text-sub);}
.btn-outline:hover{border-color:#ff6ec7;color:#ff6ec7;}
.btn-info{background:linear-gradient(135deg,#4bc8ff,#4bffa5);color:#0a0a1a;}
.btn-warn{background:linear-gradient(135deg,#ffe04b,#ff9a3c);color:#0a0a1a;}
.btn-sm{padding:6px 14px;font-size:.8rem;}
.btn-xs{padding:4px 10px;font-size:.75rem;}
.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:20px;transition:all .3s;position:relative;overflow:hidden;}
.card:hover{transform:translateY(-4px);border-color:rgba(255,110,199,.4);box-shadow:0 10px 30px rgba(255,110,199,.15);}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:20px;}
.site-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:12px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box;}
.site-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(75,200,255,.2);border-color:rgba(75,200,255,.4);}
.site-card .card-name{font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;}
.site-card .card-mid-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;width:100%;box-sizing:border-box;}
.site-card .card-stats{display:flex;align-items:center;justify-content:space-between;}
@keyframes auroraFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.aurora-card{border:2px solid transparent !important;background:linear-gradient(var(--dark-bg),var(--dark-bg)) padding-box,linear-gradient(90deg,#ff6ec7,#ffe04b,#4bffa5,#4bc8ff,#a78bfa,#ff6ec7) border-box !important;background-size:300% 300% !important;animation:auroraFlow 2s linear infinite !important;box-shadow:0 0 20px rgba(167,139,250,.4),0 0 40px rgba(75,200,255,.2) !important;}
.stars{color:#ffe04b;font-size:.9rem;letter-spacing:1px;}
.stars.s5{text-shadow:0 0 10px rgba(255,224,75,.8);}
.badge-clicks{background:rgba(75,200,255,.15);border:1px solid rgba(75,200,255,.3);color:#4bc8ff;padding:2px 8px;border-radius:20px;font-size:.75rem;}
.cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:25px;}
.cat-tab{padding:7px 16px;border-radius:30px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--text-sub);font-size:.85rem;cursor:pointer;transition:all .3s;text-decoration:none;}
.cat-tab:hover,.cat-tab.active{background:linear-gradient(135deg,rgba(255,110,199,.2),rgba(167,139,250,.2));border-color:#ff6ec7;color:#fff;}
.section-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.section-title{font-size:1.3rem;font-weight:800;}
.section-badge{background:linear-gradient(135deg,#ff6ec7,#a78bfa);padding:3px 12px;border-radius:20px;font-size:.75rem;font-weight:700;}
.data-table{width:100%;border-collapse:collapse;}
.data-table th{background:rgba(255,255,255,.06);padding:12px 14px;text-align:left;font-size:.85rem;color:var(--text-sub);font-weight:600;border-bottom:1px solid rgba(255,255,255,.08);}
.data-table td{padding:11px 14px;font-size:.88rem;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle;}
.data-table tr:hover td{background:rgba(255,255,255,.03);}
.form-group{margin-bottom:18px;}
.form-label{display:block;margin-bottom:6px;font-size:.88rem;color:var(--text-sub);font-weight:500;}
.form-control{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:11px 14px;color:#fff;font-size:.95rem;outline:none;transition:all .3s;font-family:inherit;}
.form-control:focus{border-color:#a78bfa;box-shadow:0 0 0 3px rgba(167,139,250,.15);}
select.form-control option{background:#1a1a2e;}
textarea.form-control{resize:vertical;min-height:80px;}
.star-rate{display:flex;flex-direction:row-reverse;gap:4px;width:fit-content;}
.star-rate input{display:none;}
.star-rate label{font-size:1.8rem;cursor:pointer;color:#333;transition:color .2s;}
.star-rate input:checked ~ label,.star-rate label:hover,.star-rate label:hover ~ label{color:#ffe04b;text-shadow:0 0 8px rgba(255,224,75,.7);}
.toggle-wrap{display:flex;align-items:center;gap:10px;}
.toggle{position:relative;width:46px;height:24px;display:inline-block;}
.toggle input{display:none;}
.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.15);border-radius:34px;cursor:pointer;transition:.3s;}
.toggle-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s;}
.toggle input:checked + .toggle-slider{background:linear-gradient(135deg,#4bffa5,#4bc8ff);}
.toggle input:checked + .toggle-slider::before{transform:translateX(22px);}
.pagination{display:flex;justify-content:center;gap:6px;margin-top:25px;flex-wrap:wrap;}
.page-link{padding:7px 13px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--text-sub);font-size:.85rem;text-decoration:none;cursor:pointer;transition:all .3s;}
.page-link:hover,.page-link.active{background:linear-gradient(135deg,#ff6ec7,#a78bfa);border-color:transparent;color:#fff;}
.lightbox-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);backdrop-filter:blur(10px);z-index:9000;align-items:center;justify-content:center;}
.lightbox-overlay.active{display:flex;}
.lightbox-box{background:linear-gradient(135deg,rgba(20,10,40,.98),rgba(10,20,40,.98));border:1px solid rgba(167,139,250,.3);border-radius:20px;padding:35px;max-width:520px;width:90%;position:relative;box-shadow:0 25px 80px rgba(0,0,0,.6);animation:lbIn .3s ease;}
@keyframes lbIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.lightbox-close{position:absolute;top:15px;right:18px;font-size:1.5rem;cursor:pointer;color:var(--text-sub);}
.lightbox-close:hover{color:#ff6ec7;}
.lightbox-site-name{font-size:1.5rem;font-weight:800;margin-bottom:12px;}
.lightbox-meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:15px;}
.lightbox-meta-item{background:rgba(255,255,255,.06);padding:5px 12px;border-radius:20px;font-size:.82rem;color:var(--text-sub);}
.lightbox-desc{color:var(--text-sub);font-size:.92rem;line-height:1.7;margin-bottom:20px;}
#toast-container{position:fixed;bottom:30px;right:30px;z-index:99999;display:flex;flex-direction:column;gap:10px;}
.toast{background:rgba(20,20,40,.95);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:12px 20px;color:#fff;font-size:.88rem;min-width:220px;animation:toastIn .3s ease,toastOut .3s ease 2.7s forwards;}
.toast.success{border-color:rgba(75,255,165,.4);color:#4bffa5;}
.toast.error{border-color:rgba(255,85,85,.4);color:#ff7070;}
@keyframes toastIn{from{transform:translateX(100px);opacity:0}to{transform:none;opacity:1}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateX(100px)}}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:30px;}
.stat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:20px;text-align:center;}
.stat-card .num{font-size:2rem;font-weight:900;}
.stat-card .label{color:var(--text-sub);font-size:.82rem;margin-top:4px;}
.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;}
.admin-sidebar{background:rgba(255,255,255,.03);border:1px solid var(--card-border);border-radius:16px;padding:20px;height:fit-content;position:sticky;top:80px;}
.admin-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:var(--text-sub);text-decoration:none;font-size:.9rem;margin-bottom:4px;transition:all .3s;cursor:pointer;background:none;border:none;width:100%;text-align:left;}
.admin-nav-item:hover,.admin-nav-item.active{background:rgba(167,139,250,.15);color:#fff;}
.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:.78rem;font-weight:800;}
.rank-1{background:linear-gradient(135deg,#ffd700,#ff9500);color:#000;box-shadow:0 0 12px rgba(255,215,0,.6);}
.rank-2{background:linear-gradient(135deg,#c0c0c0,#a0a0a0);color:#000;}
.rank-3{background:linear-gradient(135deg,#cd7f32,#8b4513);color:#fff;}
.rank-n{background:rgba(255,255,255,.1);color:var(--text-sub);}
.announcement-bar{background:rgba(255,224,75,.08);border:1px solid rgba(255,224,75,.3);border-radius:12px;padding:15px 20px;margin-bottom:30px;display:flex;align-items:center;gap:10px;}
.announcement-bar .text{color:#ffe04b;font-size:.95rem;}
.search-box{display:flex;gap:10px;max-width:600px;margin:0 auto 40px;}
.search-box input{flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:50px;padding:12px 20px;color:#fff;font-size:1rem;outline:none;transition:all .3s;}
.search-box input:focus{border-color:#ff6ec7;box-shadow:var(--glow-pink);}
.search-box select{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:50px;padding:12px 16px;color:#fff;font-size:.9rem;outline:none;}
.search-box select option{background:#1a1a2e;}
.hero-section{text-align:center;padding:60px 20px 40px;position:relative;z-index:1;}
.hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;margin-bottom:15px;}
.hero-subtitle{color:var(--text-sub);font-size:1.1rem;margin-bottom:30px;}
.checkbox-custom{width:16px;height:16px;cursor:pointer;accent-color:#a78bfa;}
.row{display:flex;gap:16px;flex-wrap:wrap;}
.col-6{flex:1;min-width:200px;}
.divider{border:none;border-top:1px solid rgba(255,255,255,.08);margin:20px 0;}
.text-muted{color:var(--text-sub);}
.text-success{color:#4bffa5;}
.text-danger{color:#ff7070;}
.text-warn{color:#ffe04b;}
.mb-4{margin-bottom:16px;}
.mb-3{margin-bottom:12px;}
.mt-4{margin-top:16px;}
.d-flex{display:flex;}
.align-center{align-items:center;}
.gap-2{gap:8px;}
.gap-3{gap:12px;}
.justify-between{justify-content:space-between;}
.justify-end{justify-content:flex-end;}
.font-bold{font-weight:700;}
.font-sm{font-size:.85rem;}
.w-100{width:100%;}
@keyframes marqueeGlow{0%,100%{text-shadow:0 0 10px #ff6ec7,0 0 20px #ff6ec7}33%{text-shadow:0 0 10px #4bc8ff,0 0 20px #4bc8ff}66%{text-shadow:0 0 10px #4bffa5,0 0 20px #4bffa5}}
.glow-title{animation:marqueeGlow 3s ease-in-out infinite;}
@media(max-width:768px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.row{flex-direction:column}.data-table{font-size:.78rem}.data-table th,.data-table td{padding:8px 9px}.hero-title{font-size:1.8rem}}
@media(max-width:480px){.main-container{padding:15px}.lightbox-box{padding:22px}}

/* ── 分頁元件 ── */
.pager-wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 0;}
.pager-info{color:var(--text-sub);font-size:.85rem;white-space:nowrap;}
.pager-pages{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.pager-pages a,.pager-pages span{padding:5px 10px;border-radius:6px;font-size:.82rem;text-decoration:none;border:1px solid rgba(255,255,255,.1);color:var(--text-sub);transition:all .2s;}
.pager-pages a:hover{border-color:#a78bfa;color:#a78bfa;}
.pager-pages a.active{background:linear-gradient(135deg,#ff6ec7,#a78bfa);border-color:transparent;color:#fff;}
.pager-pages .pager-disabled{opacity:.3;pointer-events:none;}
.pager-ps select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:4px 8px;color:#fff;font-size:.82rem;cursor:pointer;}
/* ── 頁尾 ── */
.footer-bar{background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.08);padding:16px 0;margin-top:40px;text-align:center;font-size:.85rem;color:var(--text-sub);}
.footer-bar a{color:#a78bfa;text-decoration:none;margin:0 10px;}
.footer-bar a:hover{color:#ff6ec7;}
/* ── 5欄卡片格 ── */
.cards-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:12px;}
@media(max-width:1100px){.cards-grid-5{grid-template-columns:repeat(4,1fr);}}
@media(max-width:800px){.cards-grid-5{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.cards-grid-5{grid-template-columns:repeat(2,1fr);}}

/* ── 首頁左右分欄 ── */
.home-layout{display:flex !important;flex-direction:row !important;align-items:flex-start !important;gap:24px;width:100%;}
.home-left{flex:1 1 0%;min-width:0;overflow:hidden;}
.home-right{width:280px !important;min-width:280px !important;flex-shrink:0 !important;position:sticky;top:72px;}
.home-left .cards-grid-5{display:flex !important;flex-wrap:wrap !important;gap:10px !important;}
.home-left .cards-grid-5 .site-card{width:calc(20% - 8px) !important;min-width:120px;flex:0 0 calc(20% - 8px);}
@media(max-width:1100px){.home-left .cards-grid-5 .site-card{width:calc(25% - 8px) !important;flex:0 0 calc(25% - 8px);}}
@media(max-width:800px){.home-left .cards-grid-5 .site-card{width:calc(33.33% - 7px) !important;flex:0 0 calc(33.33% - 7px);}}
@media(max-width:900px){.home-layout{flex-direction:column !important;}.home-right{width:100% !important;min-width:0 !important;position:static;max-height:none;}}

/* ── 右欄排行清單 ── */
.top-rank-list{display:flex;flex-direction:column;gap:4px;}
.top-rank-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;transition:all .25s;}
.top-rank-item:hover{border-color:rgba(167,139,250,.4);transform:translateX(3px);}
.aurora-item{border:1px solid transparent !important;background:linear-gradient(var(--dark-bg),var(--dark-bg)) padding-box,linear-gradient(90deg,#ff6ec7,#ffe04b,#4bffa5,#a78bfa) border-box !important;animation:auroraFlow 3s linear infinite !important;}
.top-rank-num{flex-shrink:0;}
.top-rank-info{flex:1;min-width:0;}
.top-rank-name{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.top-rank-meta{display:flex;align-items:center;gap:6px;margin-top:2px;}

/* ── Hero 全寬左右分欄 ── */
.hero-full{background:linear-gradient(135deg,rgba(167,139,250,.12),rgba(255,110,199,.08),rgba(75,200,255,.08));border-bottom:1px solid rgba(255,255,255,.08);padding:28px 2.5%;}
.hero-full-inner{display:flex;align-items:flex-start;gap:32px;max-width:100%;}
.hero-text-col{flex:1;min-width:0;}
.hero-stat-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:320px;flex-shrink:0;}
.hero-stat-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 16px;text-align:center;transition:all .3s;}
.hero-stat-card:hover{border-color:rgba(167,139,250,.4);transform:translateY(-2px);}
.hero-stat-num{font-size:1.8rem;font-weight:900;line-height:1;}
.hero-stat-label{font-size:.78rem;color:var(--text-sub);margin-top:4px;}
@media(max-width:900px){.hero-full-inner{flex-direction:column;}.hero-stat-col{width:100%;grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.hero-stat-col{grid-template-columns:1fr 1fr;}}

.site-card .card-desc{font-size:.75rem;color:var(--text-sub);margin-bottom:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;}