:root{
    --contest-bg:#eef6ef;
    --contest-card:#ffffff;
    --contest-text:#24311f;
    --contest-muted:#6f7d6a;
    --contest-primary:#6dbd2b;
    --contest-primary-dark:#4f9e17;
    --contest-border:#d8e6d2;
    --contest-soft:#f7fbf5;
}

html,body{
    margin:0;
    padding:0;
    background:var(--contest-bg);
    color:var(--contest-text);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button,input,select,textarea{font:inherit;}

.contest-page{
    min-height:100vh;
    padding-bottom:84px;
}

.contest-shell{
    max-width:480px;
    margin:0 auto;
    background:linear-gradient(180deg,#f7fbf5 0%,#edf6ea 100%);
    min-height:100vh;
}

.contest-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 16px 8px;
    font-size:16px;
    font-weight:600;
}

.contest-topbar .topbar-action{
    font-size:12px;
    color:var(--contest-primary-dark);
}

.contest-hero{
    margin:0 16px 14px;
    border-radius:16px;
    overflow:hidden;
    background:#dfe8da;
    box-shadow:0 10px 24px rgba(89,119,70,.08);
}

.contest-hero img{
    width:100%;
    height:180px;
    object-fit:cover;
}

.contest-hero .hero-body{
    padding:14px 16px 16px;
}

.contest-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:999px;
    background:#eef8e6;
    color:var(--contest-primary-dark);
    font-size:12px;
    font-weight:600;
}

.contest-title{
    margin:10px 0 4px;
    font-size:22px;
    line-height:1.25;
}

.contest-subtitle{
    margin:0;
    color:var(--contest-muted);
    font-size:13px;
    line-height:1.5;
}

.contest-card{
    margin:0 16px 14px;
    padding:14px;
    border:1px solid var(--contest-border);
    border-radius:14px;
    background:var(--contest-card);
    box-shadow:0 8px 20px rgba(63,90,48,.04);
}

.contest-card h3{
    margin:0 0 10px;
    font-size:16px;
}

.contest-rule-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.contest-rule-item{
    padding:12px;
    border:1px solid var(--contest-border);
    border-radius:12px;
    background:var(--contest-soft);
}

.contest-rule-item strong{
    display:block;
    font-size:16px;
    color:var(--contest-primary-dark);
    margin-bottom:4px;
}

.contest-rule-item span{
    display:block;
    font-size:12px;
    color:var(--contest-muted);
}

.contest-actions{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:0 16px 14px;
}

.contest-action{
    padding:12px 8px;
    border:1px solid var(--contest-border);
    border-radius:14px;
    background:var(--contest-card);
    text-align:center;
    font-size:12px;
    font-weight:600;
    color:var(--contest-text);
}

.contest-action .icon{
    display:block;
    width:40px;
    height:40px;
    margin:0 auto 8px;
    border-radius:12px;
    background:linear-gradient(180deg,#eff8e5 0%,#d9efc9 100%);
    color:var(--contest-primary-dark);
    line-height:40px;
    font-size:18px;
}

.contest-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.contest-stat{
    text-align:center;
}

.contest-stat strong{
    display:block;
    font-size:24px;
    line-height:1.1;
    color:var(--contest-primary-dark);
}

.contest-stat span{
    display:block;
    margin-top:4px;
    font-size:12px;
    color:var(--contest-muted);
}

.contest-countdown{
    padding:12px 14px;
    border-radius:14px;
    background:#fff7e7;
    border:1px solid #f1d7a6;
    color:#9a6a13;
    font-weight:600;
}

.contest-countdown .time{
    display:inline-flex;
    gap:6px;
    margin-top:8px;
    font-size:18px;
    color:#dc8400;
}

.contest-countdown .time i{
    font-style:normal;
    min-width:28px;
    padding:0 6px;
    border-radius:8px;
    background:#fff;
    text-align:center;
    line-height:32px;
    box-shadow:inset 0 0 0 1px #f2cb8f;
}

.contest-search{
    display:flex;
    gap:10px;
    align-items:center;
}

.contest-input,.contest-select,.contest-textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid var(--contest-border);
    border-radius:12px;
    background:#fff;
    color:var(--contest-text);
    outline:none;
}

.contest-input,.contest-select{
    height:44px;
    padding:0 14px;
}

.contest-textarea{
    min-height:120px;
    padding:12px 14px;
    resize:vertical;
}

.contest-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    height:44px;
    padding:0 16px;
    border:0;
    border-radius:12px;
    background:var(--contest-primary);
    color:#fff;
    font-weight:700;
}

.contest-btn.secondary{
    background:#fff;
    color:var(--contest-primary-dark);
    box-shadow:inset 0 0 0 1px var(--contest-primary);
}

.mine-page .contest-shell{
    padding-top:6px;
}

.mine-hero{
    margin:0 16px 10px;
}

.mine-profile{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:72px;
    padding:8px 2px 4px;
}

.mine-avatar{
    width:48px;
    height:48px;
    border-radius:999px;
    object-fit:cover;
    background:#fff;
    box-shadow:0 0 0 4px rgba(255,255,255,.55);
    flex:0 0 auto;
}

.mine-copy{
    flex:1;
    min-width:0;
}

.mine-copy h1{
    margin:0;
    font-size:19px;
    line-height:1.25;
}

.mine-copy p{
    margin:4px 0 0;
    font-size:13px;
    line-height:1.4;
    color:var(--contest-muted);
}

.mine-chevron{
    flex:0 0 auto;
    font-size:18px;
    line-height:1;
    color:var(--contest-text);
}

.mine-summary-card,
.mine-link-card{
    padding:0;
    overflow:hidden;
}

.mine-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.mine-stat{
    padding:14px 8px 15px;
    text-align:center;
    border-right:1px solid var(--contest-border);
}

.mine-stat:last-child{
    border-right:0;
}

.mine-stat strong{
    display:block;
    font-size:24px;
    line-height:1.1;
    color:var(--contest-primary-dark);
}

.mine-stat span{
    display:block;
    margin-top:5px;
    font-size:12px;
    color:var(--contest-text);
}

.mine-link{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:54px;
    padding:14px;
}

.mine-link-mark{
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--contest-primary);
    box-shadow:0 0 0 4px #e5f3d8;
    flex:0 0 auto;
}

.mine-link-text{
    flex:1;
    min-width:0;
    font-size:14px;
    font-weight:600;
    color:var(--contest-text);
}

.mine-page .contest-btmnav a{
    font-size:12px;
}

.mine-page .contest-btmnav a .icon{
    font-size:16px;
    line-height:1;
}

.mine-page .contest-btmnav a.active .icon{
    color:var(--contest-primary-dark);
}

.contest-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.contest-work{
    overflow:hidden;
    border:1px solid var(--contest-border);
    border-radius:14px;
    background:#fff;
}

.contest-work .cover{
    width:100%;
    aspect-ratio: 1.2;
    object-fit:cover;
}

.contest-work .body{
    padding:10px 10px 12px;
}

.contest-work .title{
    margin:0 0 6px;
    font-size:14px;
    line-height:1.35;
}

.contest-work .meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    font-size:12px;
    color:var(--contest-muted);
}

.contest-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.contest-list-item{
    display:flex;
    gap:12px;
    padding:12px;
    border:1px solid var(--contest-border);
    border-radius:14px;
    background:#fff;
}

.contest-list-item .thumb{
    width:96px;
    height:96px;
    object-fit:cover;
    border-radius:12px;
    flex:0 0 auto;
}

.contest-list-item .info{
    flex:1;
    min-width:0;
}

.contest-list-item .info h4{
    margin:0 0 6px;
    font-size:15px;
}

.contest-list-item .info p{
    margin:0;
    color:var(--contest-muted);
    font-size:12px;
    line-height:1.6;
}

.contest-list-item .tools{
    margin-top:10px;
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.contest-chip{
    display:inline-flex;
    align-items:center;
    padding:0 10px;
    min-height:28px;
    border-radius:999px;
    background:#f1f7ec;
    color:#4e6c33;
    font-size:12px;
}

.contest-btmnav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:30;
    background:#fff;
    border-top:1px solid var(--contest-border);
}

.contest-btmnav .wrap{
    max-width:480px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.contest-btmnav a{
    padding:10px 4px 8px;
    text-align:center;
    font-size:12px;
    color:var(--contest-muted);
}

.contest-btmnav a.active{
    color:var(--contest-primary-dark);
    font-weight:700;
}

.contest-btmnav .icon{
    display:block;
    margin:0 auto 4px;
    font-size:18px;
}

.contest-form{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.benefit-section{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:12px;
    border:1px solid var(--contest-border);
    border-radius:12px;
    background:var(--contest-soft);
}

.benefit-title{
    font-size:14px;
    font-weight:700;
}

.benefit-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.benefit-option{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--contest-border);
    border-radius:12px;
    background:#fff;
    font-size:14px;
    font-weight:600;
}

.benefit-address{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.contest-help{
    font-size:12px;
    color:var(--contest-muted);
    line-height:1.6;
}

.contest-gallery{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.contest-gallery-detail{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.contest-gallery .item{
    aspect-ratio:1;
    border:1px dashed var(--contest-border);
    border-radius:12px;
    overflow:hidden;
    background:#fff;
}

.contest-gallery .item img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.contest-file{
    display:block;
    border:1px solid var(--contest-border);
    border-radius:12px;
    overflow:hidden;
    background:#fff;
    min-height:120px;
}

.contest-file img,
.contest-file video{
    width:100%;
    height:100%;
    max-height:220px;
    object-fit:cover;
    display:block;
    background:#000;
}

.contest-empty{
    padding:32px 16px;
    text-align:center;
    color:var(--contest-muted);
}

.contest-panel{
    margin:0 16px 14px;
    padding:14px;
    border-radius:14px;
    background:#fff;
    border:1px solid var(--contest-border);
}

.contest-panel h3{
    margin:0 0 8px;
}

.contest-figure{
    margin:0;
}

.contest-figure img{
    width:100%;
    border-radius:14px;
    object-fit:cover;
}

@media (max-width:420px){
    .contest-grid{grid-template-columns:1fr;}
    .contest-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
    .contest-rule-grid{grid-template-columns:1fr;}
    .contest-gallery-detail{grid-template-columns:1fr;}
    .mine-copy h1{font-size:18px;}
    .mine-profile{padding:10px 0 6px;}
}
