/* AILINE · AIGC创作大赛合集
   页眉复用主页（ailine-homepage/assets/css/style.css 的 nav 段），
   列表区参考 aibetas.com competitions.css 的数值复刻。 */
:root{
  --bg:#fff; --bg2:#f5f5f7;
  --text:#1d1d1f; --text2:#6e6e73; --hair:#d2d2d7; --blue:#0071e3;
  --nav-h:52px;
  --sans:-apple-system,"SF Pro Display","SF Pro SC","PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased}
body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;overflow-x:hidden}
img{display:block}
a{color:inherit;text-decoration:none}
.en{font-family:"SF Pro Display",-apple-system,Arial,sans-serif}

/* ---------- 页眉：与主页一致 ---------- */
nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;
  background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid transparent;transition:border-color .3s}
nav.solid{border-bottom-color:var(--hair)}
.nav-inner{max-width:1040px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 22px}
.logo{font-size:15px;font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:9px}
.logo-img{width:27px;height:27px;border-radius:8px;display:block;flex:none}
.logo span{font-weight:400;color:var(--text2)}
.nav-links{display:flex;align-items:baseline;gap:28px}
.nav-links a{font-size:12.5px;color:rgba(29,29,31,.78);transition:color .2s}
.nav-links a:hover{color:var(--text)}
.nav-drop{position:relative}
.drop-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;font-family:inherit;font-size:12.5px;line-height:inherit;color:rgba(29,29,31,.78);cursor:pointer;transition:color .2s}
.drop-btn:hover,.nav-drop.open .drop-btn{color:var(--text)}
.caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid currentColor;transition:transform .25s}
.nav-drop.open .caret{transform:rotate(180deg)}
.drop-menu a{display:block;padding:9px 14px;border-radius:9px;font-size:13px;color:var(--text);white-space:nowrap}
.drop-menu a:hover{background:var(--bg2);color:var(--text)}
@media(min-width:861px){
  .drop-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,8px);min-width:136px;padding:6px;
    background:#fff;border:1px solid var(--hair);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.10);
    opacity:0;visibility:hidden;transition:.22s}
  .drop-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
  .nav-drop:hover .drop-menu,.nav-drop.open .drop-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
}
@media(max-width:860px){
  .nav-links{display:none}
  nav.open .nav-links{display:flex;position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;
    background:rgba(255,255,255,.97);border-bottom:1px solid var(--hair);padding:8px 22px 16px}
  nav.open .nav-links a{padding:11px 0;border-bottom:1px solid #ececed;font-size:15px}
  nav.open .nav-drop{border-bottom:1px solid #ececed}
  nav.open .drop-btn{width:100%;padding:11px 0;font-size:15px;justify-content:flex-start}
  nav.open .caret{display:none}
  nav.open .drop-menu{position:static;transform:none;min-width:0;padding:0 0 4px;border:0;box-shadow:none;background:none;opacity:1;visibility:visible}
  nav.open .drop-menu a{padding:10px 0 10px 14px;font-size:14.5px;color:rgba(29,29,31,.78);border:0}
}
.burger{display:none;width:36px;height:36px;border:0;background:none;cursor:pointer;position:relative}
.burger span{position:absolute;left:8px;right:8px;height:1.5px;background:var(--text);transition:.3s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:21px}
nav.open .burger span:nth-child(1){top:17px;transform:rotate(45deg)}
nav.open .burger span:nth-child(2){top:17px;transform:rotate(-45deg)}
@media(max-width:860px){.burger{display:block}}

/* ---------- 页面骨架 ---------- */
.page{padding-top:calc(var(--nav-h) + 28px);padding-bottom:56px}
.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* ---------- 筛选栏 ---------- */
.competition-filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;
  padding:20px 24px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:28px}
.competition-filter-bar>*{margin-right:12px;margin-bottom:0}
.competition-filter-bar>*:last-child{margin-right:0}
.filter-search{flex:1;min-width:200px;position:relative}
.filter-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none}
.filter-search input{width:100%;padding:8px 12px 8px 36px;border:1px solid #e5e7eb;border-radius:8px;
  font-size:14px;font-family:inherit;outline:none;background:#f9fafb;color:#111827;
  transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.filter-search input::-webkit-search-cancel-button{display:none}
.filter-search input::placeholder{color:#9ca3af}
.filter-search input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1);background:#fff}
.filter-group{display:flex;flex-direction:column;min-width:120px}
.filter-group label{font-size:12px;font-weight:500;color:#6b7280;margin-bottom:5px}
.filter-group select{padding:8px 30px 8px 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-family:inherit;
  background:#f9fafb;color:#111827;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s}
.filter-group select:focus{border-color:#6366f1}
.filter-reset{display:flex;align-items:center;padding:8px 14px;background:transparent;color:#6b7280;
  border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;
  transition:background .15s,color .15s;white-space:nowrap}
.filter-reset svg{margin-right:6px;transition:transform .3s}
.filter-reset:hover{background:#f3f4f6;color:#374151}
.filter-reset:hover svg{transform:rotate(-180deg)}

/* ---------- 卡片栅格：桌面4列 ---------- */
.competition-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;margin-bottom:28px}

/* ---------- 卡片 ---------- */
.competition-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}
.competition-card:hover{border-color:#d1d5db;box-shadow:0 4px 20px rgba(0,0,0,.07)}
.competition-card.is-ended{filter:grayscale(.5);opacity:.75}

/* 封面 */
.competition-thumbnail{position:relative;width:100%;padding-bottom:56%;overflow:hidden;background:#f3f4f6}
.competition-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;
  transition:transform .4s cubic-bezier(.4,0,.2,1)}
.competition-card:hover .competition-thumbnail img{transform:scale(1.05)}
.competition-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,0,.4) 0%,transparent 50%)}
.competition-type-badge{position:absolute;bottom:8px;right:8px}
.competition-type-badge .type-label{display:inline-block;background:rgba(0,0,0,.5);color:#fff;
  padding:2px 8px;border-radius:100px;font-size:10px;font-weight:500;letter-spacing:.3px}

/* 内容区 */
.competition-content{padding:12px 14px 14px;flex:1;display:flex;flex-direction:column}

/* 标题行：标题 + 倒计时 */
.competition-title-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.competition-title{font-size:13px;font-weight:700;color:#111827;line-height:1.4;flex:1;margin-right:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.competition-title a{color:inherit;transition:color .15s}
.competition-title a:hover{color:#6366f1}
.competition-countdown{display:inline-flex;align-items:center;padding:2px 7px;border-radius:100px;
  font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0;margin-top:2px}
.competition-countdown .countdown-dot{width:4px;height:4px;border-radius:50%;background:currentColor;flex-shrink:0;margin-right:4px}
.status-active{color:#059669;background:#f0fdf4}
.status-ending{color:#d97706;background:#fffbeb}
.status-ended{color:#9ca3af;background:#f3f4f6}
.status-blink .countdown-dot{animation:compBlink 1.2s ease-in-out infinite}
@keyframes compBlink{0%,100%{opacity:1}50%{opacity:.2}}

/* 主办方 */
.competition-organizer{display:flex;align-items:center;padding-bottom:8px;border-bottom:1px solid #f3f4f6;margin-bottom:8px}
.competition-organizer .org-label{color:#9ca3af;flex-shrink:0;font-size:11px;margin-right:4px;font-weight:500}
.competition-organizer .org-value{color:#6b7280;font-weight:500;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 奖金 + 截止日期：两列 */
.competition-meta-grid{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:8px;grid-row-gap:6px;margin-bottom:10px}
.meta-item{display:flex;flex-direction:column;min-width:0}
.meta-label{font-size:10px;color:#9ca3af;font-weight:500;margin-bottom:4px}
.meta-value{font-size:12px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meta-value.prize{color:#f59e0b}
.meta-value.deadline{color:#f97316}

/* 按钮 */
.competition-actions{display:flex;margin-top:auto;padding-top:10px}
.comp-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:7px 8px;border-radius:100px;
  font-size:12px;font-weight:600;border:1.5px solid;transition:background .15s,opacity .15s,color .15s,border-color .15s;white-space:nowrap;cursor:pointer}
.comp-btn+.comp-btn{margin-left:6px}
.comp-btn-outline{background:transparent;border-color:#e5e7eb;color:#374151}
.comp-btn-outline:hover{background:#f9fafb;border-color:#d1d5db}
.comp-btn-fill{background:#111827;border-color:#111827;color:#fff}
.comp-btn-fill:hover{opacity:.85;color:#fff}

/* 空状态 / 加载更多 */
.comp-empty{padding:56px 0;text-align:center;color:#9ca3af;font-size:14px}
.loadmore-wrap{text-align:center;padding:20px 0}
#comp-loadmore{padding:10px 32px;background:transparent;color:#374151;border:1px solid #e5e7eb;border-radius:8px;
  font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}
#comp-loadmore:hover{background:#f9fafb;border-color:#d1d5db}

/* ---------- 赛事详情弹窗 ---------- */
.comp-modal{display:none;position:fixed;inset:0;z-index:200}
.comp-modal.open{display:block}
.comp-modal-mask{position:absolute;inset:0;background:rgba(29,29,31,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.comp-modal-panel{position:relative;margin:5vh auto;width:min(720px,92vw);max-height:90vh;overflow:auto;
  background:#fff;border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.22);animation:compModalIn .22s ease}
@keyframes compModalIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.comp-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;border-radius:50%;
  background:rgba(0,0,0,.45);color:#fff;font-size:14px;cursor:pointer;z-index:2;transition:background .15s}
.comp-modal-close:hover{background:rgba(0,0,0,.65)}
.comp-modal-cover{position:relative;width:100%;padding-bottom:48%;overflow:hidden;background:#f3f4f6;border-radius:18px 18px 0 0}
.comp-modal-cover img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.comp-modal-content{padding:22px 26px 26px}
.comp-modal-badges{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.comp-modal-badges .type-label{display:inline-block;background:#f3f4f6;color:#374151;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:600}
.comp-modal-title{font-size:19px;font-weight:700;color:#111827;line-height:1.35;margin-bottom:6px}
.comp-modal-intro{font-size:13.5px;color:#6b7280;line-height:1.7;margin-bottom:16px}
.comp-modal-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding:14px 16px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:12px;margin-bottom:18px}
.comp-modal-meta .meta-item{min-width:0}
.comp-modal-meta .meta-label{margin-bottom:3px}
.comp-modal-meta .meta-value{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.comp-modal-section{margin-bottom:18px}
.comp-modal-section h4{font-size:12px;font-weight:600;color:#9ca3af;letter-spacing:.04em;margin-bottom:8px}
.comp-modal-section ul{list-style:none}
.comp-modal-section li{position:relative;padding-left:16px;font-size:13.5px;color:#374151;line-height:1.75}
.comp-modal-section li::before{content:"";position:absolute;left:2px;top:.72em;width:5px;height:5px;border-radius:50%;background:#d1d5db}
.comp-modal-actions{display:flex;gap:10px;padding-top:6px}
.comp-modal-actions .comp-btn{flex:1;padding:10px 16px;font-size:13px}
@media(max-width:560px){
  .comp-modal-content{padding:18px 18px 22px}
  .comp-modal-meta{grid-template-columns:1fr}
  .comp-modal-actions{flex-direction:column}
}

/* ---------- 响应式 ---------- */
@media(max-width:1024px){
  .competition-grid{grid-template-columns:repeat(2,1fr);grid-gap:12px}
  .competition-filter-bar{padding:16px}
  .filter-search{min-width:100%;margin-bottom:12px}
  .competition-filter-bar>*{margin-bottom:0}
}
@media(max-width:560px){
  .container{padding:0 16px}
  .competition-grid{grid-template-columns:1fr}
  .filter-group{flex:1;min-width:0}
  .filter-group select{width:100%}
  .filter-reset{width:100%;justify-content:center;margin-top:12px}
  .competition-actions{flex-direction:column}
  .comp-btn{width:100%}
  .comp-btn+.comp-btn{margin-left:0;margin-top:6px}
}
