#app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}nav a{font-weight:700;color:#2c3e50}nav a.router-link-exact-active{color:#42b983}#app{font-family:Avenir,Helvetica,Arial,sans-serif;text-align:center;color:#2c3e50;margin-top:0}header{margin-bottom:20px}header img{max-width:100%}.buttons{display:flex;justify-content:center;margin-top:20px}.buttons button{margin:0 10px;padding:10px 20px;background-color:orange;color:#fff;border:none;border-radius:5px;cursor:pointer}main{display:flex;flex-wrap:wrap}.art-item img{height:300px}.modal{display:none;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.modal-content{background-color:#fefefe;margin:15% auto;padding:20px;border:1px solid #888;width:80%;max-width:600px;height:80%;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer}*,:after,:before{box-sizing:border-box}.art-item{border:1px solid #ccc;padding:10px;text-align:center;width:50%}.art-item img{width:170px;height:200px;margin-bottom:10px}.art-item .info{text-align:center}.art-item .info p{margin:5px 0}.art-item .info button{padding:5px 10px;background-color:orange;color:#fff;border:none;border-radius:5px;cursor:pointer}.btn-theme-color{background:linear-gradient(90deg,#ff4500,orange);background:-moz-linear-gradient(right,#ff4500,orange)}.publicity img{width:100%;height:auto;display:block}.abtns-container{width:100%;display:flex}.abtns-item{flex:1;display:flex;justify-content:center;align-items:center}.abtns-btn{color:#fff;border-radius:.2rem;width:80%;text-align:center;line-height:2.5rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list{margin-right:.75rem;display:flex;flex-wrap:wrap}.list-item{box-sizing:border-box;flex:0 0 50%;padding-left:.75rem;padding-top:.75rem}.list-container{background-color:#fff;padding:.75rem;border:1px solid #ebebeb;border-radius:.2rem;display:flex;flex-direction:column}.list-c-img{width:100%}.list-c-img img{width:100%;height:7rem;display:block}.list-c-name{margin-top:.3rem}.list-c-name,.list-c-num{font-weight:700;text-align:center;font-size:1.1rem}.list-c-btn{border-radius:.2rem;color:#fffeff;width:100%;margin-top:.3rem;line-height:2.2rem;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:.875rem}.sub-page{position:fixed;z-index:99;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.3)}.sub-page-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.active-container{display:flex;flex-direction:column;background-color:#fff;border-radius:1rem;width:85%;height:85%;border:1px solid #eee;font-size:1rem}.active-header{width:100%;text-align:center;font-weight:700;border-bottom:1px solid #eeeeee80;padding:.7rem 0}.active-conents{width:100%;overflow-y:auto;padding:1rem;flex:1}.active-btn{text-align:center;font-size:.9375rem;line-height:2.625rem;border-top:1px solid #eee;color:#fff;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.to-auth-login-page-c{background-color:#fff;padding:2rem;border-radius:1rem;border:1px solid #eee;max-width:80%}.talp-title{text-align:center;font-weight:700;font-size:1.25rem}.talp-content{margin-top:1rem;padding:0 .5rem}.talp-btn{border-radius:.2rem;text-align:center;line-height:2.5rem;font-size:.9375rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.talp-btn-primary{background-color:#08bf5b;border:1px solid #08bf5b;color:#fff}.talp-btn-cancel{background-color:#fff;color:#555;border:1px solid #55555560}.sub-page-pc{width:31.25rem;margin:0 auto;left:auto}.to-auth-login-page-c-pc{max-width:66%}
/* 等待管理员确认时的半透明样式 */
.waiting-confirm { opacity: 0.5; pointer-events: none; }

/* LoadingDialog 组件容器（与 loading-overlay 共享 spinner 样式） */
.loading-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}
.loading-content {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 转圈加载图标容器 */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.loading-spinner {
    width: 60px;
    height: 60px;
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid #fff;
    border-radius: 50%;
    -webkit-animation: spin 1s linear infinite;
    animation: spin 1s linear infinite;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
}

@-webkit-keyframes spin {
    0%   { -webkit-transform: rotate(0deg);   transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}
@keyframes spin {
    0%   { -webkit-transform: rotate(0deg);   transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

/* 加载提示文字 */
.loading-text {
    position: absolute;
    bottom: 100px;
    color: #fff;
    font-size: 16px;
    text-align: center;
}

/* LINEログイン 按钮即时视觉反馈 */
.talp-btn { transition: opacity .1s, transform .1s; }
.talp-btn:active { opacity: .75; transform: scale(.97); }