:root {
  --bg-deep: #0c0c14;
  --bg-surface: #161622;
  --bg-elevated: #1e1e2e;
  --bg-glass: rgba(255,255,255,0.04);
  --bg-glass-hover: rgba(255,255,255,0.07);
  --primary: #e84118;
  --primary-light: #ff6b47;
  --primary-glow: rgba(232,65,24,0.18);
  --primary-glow-strong: rgba(232,65,24,0.38);
  --coral: #ff8c69;
  --gold: #f9ca24;
  --text-primary: #f0f0f5;
  --text-secondary: rgba(240,240,245,0.6);
  --text-muted: rgba(240,240,245,0.3);
  --border: rgba(255,255,255,0.08);
  --border-glow: rgba(232,65,24,0.3);
  --shadow-card: 0 8px 32px rgba(0,0,0,0.5);
  --shadow-red: 0 0 40px rgba(232,65,24,0.15);
  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-xl: 30px;
  --ease: all 0.3s cubic-bezier(0.4,0,0.2,1);
  --sidebar: 360px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;width:100%;overflow:hidden;}
body{font-family:'Noto Sans SC',-apple-system,sans-serif;background:var(--bg-deep);color:var(--text-primary);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}

/* BG */
.bg-mesh{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse 80% 60% at 15% 15%,rgba(232,65,24,.09) 0%,transparent 55%),radial-gradient(ellipse 60% 70% at 85% 80%,rgba(255,100,50,.07) 0%,transparent 55%),var(--bg-deep);}
.grain{position:fixed;inset:0;z-index:1;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none;}

/* SCREENS */
.screen{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .4s ease,transform .4s ease;overflow:hidden;}
#screen-home{overflow:visible;}
#screen-home .top-bar{z-index:100;}
#screen-home .screen-body{position:relative;z-index:1;}
.screen.active{opacity:1;pointer-events:auto;transform:translateY(0);}
.screen-body{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:80px;scrollbar-width:thin;scrollbar-color:rgba(232,65,24,.25) transparent;}
.screen-body::-webkit-scrollbar{width:4px;}
.screen-body::-webkit-scrollbar-thumb{background:rgba(232,65,24,.25);border-radius:2px;}

/* TOP BAR */
.top-bar{position:relative;z-index:20;display:flex;align-items:center;gap:14px;padding:10px 24px;background:rgba(12,12,20,.88);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);flex-shrink:0;overflow:visible;}
.back-btn{width:40px;height:40px;border:none;background:var(--bg-glass);border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:var(--ease);flex-shrink:0;}
.back-btn:hover{background:var(--bg-glass-hover);transform:scale(1.05);}
.tb-title{flex:1;font-family:'ZCOOL XiaoWei',serif;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px;min-width:0;}
.tb-actions{display:flex;gap:10px;align-items:center;flex-shrink:0;}
.user-menu{position:relative;display:flex;align-items:center;gap:8px;flex-shrink:0;}
.user-menu-name{font-size:14px;font-weight:500;color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35;}
.user-dropdown{display:none;position:fixed;min-width:148px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:6px;box-shadow:var(--shadow-card);z-index:1000;}
.user-dropdown.open{display:block;}
.user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:var(--r-sm);color:var(--text-secondary);font-size:14px;font-family:'Noto Sans SC',sans-serif;cursor:pointer;transition:var(--ease);}
.user-dropdown-item:hover{background:var(--bg-glass-hover);color:var(--text-primary);}
#user-menu-btn.active{background:var(--bg-glass-hover);color:var(--text-primary);}

/* Lucide icons */
.icon{width:1em;height:1em;stroke-width:1.75;flex-shrink:0;vertical-align:-0.15em;}
.icon-sm{width:14px;height:14px;}
.icon-md{width:18px;height:18px;}
.icon-lg{width:22px;height:22px;}
.icon-xl{width:28px;height:28px;}
.icon-empty{width:52px;height:52px;opacity:.4;color:var(--text-muted);}
.icon.filled,.icon-heart.filled{fill:currentColor;}
.icon-row{display:inline-flex;align-items:center;gap:6px;}
.toast .icon{width:15px;height:15px;margin-right:2px;}
.pres-act-tag{display:inline-flex;align-items:center;gap:6px;}
.form-label .icon{width:15px;height:15px;margin-right:4px;vertical-align:-0.2em;}
.section-title .icon{width:18px;height:18px;opacity:.8;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 24px;border:none;border-radius:var(--r-md);font-family:'Noto Sans SC',sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:var(--ease);white-space:nowrap;}
.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;box-shadow:0 4px 20px var(--primary-glow);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--primary-glow-strong);}
.btn-primary:active{transform:translateY(0);}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary);}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow);}
.btn-ghost{background:var(--bg-glass);color:var(--text-secondary);}
.btn-ghost:hover{background:var(--bg-glass-hover);color:var(--text-primary);}
.btn-danger{background:rgba(255,50,50,.12);border:1px solid rgba(255,50,50,.28);color:#ff6b6b;}
.btn-danger:hover{background:rgba(255,50,50,.22);}
.btn-sm{padding:7px 16px;font-size:13px;border-radius:var(--r-sm);}
.btn-xs{padding:4px 10px;font-size:12px;border-radius:6px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;}

/* FORMS */
.form-group{margin-bottom:20px;}
.form-label{display:block;margin-bottom:8px;font-size:14px;color:var(--text-secondary);font-weight:500;}
.req{color:var(--primary);margin-left:3px;}
.form-input,.form-textarea,.form-select{width:100%;padding:13px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-family:'Noto Sans SC',sans-serif;font-size:15px;outline:none;transition:var(--ease);}
.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted);}
.form-textarea{resize:vertical;min-height:96px;}
.form-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23666' d='M5 7L1 3h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:5px;line-height:1.5;}
.field-example{font-size:12px;color:rgba(232,65,24,.7);font-style:italic;margin-bottom:8px;padding:6px 12px;background:rgba(232,65,24,.07);border-left:2px solid var(--primary);border-radius:0 var(--r-sm) var(--r-sm) 0;}

/* CARDS */
.glass-card{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-lg);backdrop-filter:blur(12px);transition:var(--ease);}
.glass-card:hover{background:var(--bg-glass-hover);border-color:rgba(232,65,24,.18);transform:translateY(-3px);box-shadow:var(--shadow-card),var(--shadow-red);}

/* TAGS */
.tag{display:inline-block;padding:4px 11px;border-radius:20px;font-size:12px;font-weight:500;}
.tag-red{background:var(--primary-glow);color:var(--coral);border:1px solid var(--border-glow);}
.tag-blue{background:rgba(100,150,255,.12);color:#8ab4f8;border:1px solid rgba(100,150,255,.25);}
.tag-green{background:rgba(50,200,100,.12);color:#6fcf97;border:1px solid rgba(50,200,100,.25);}
.tag-yellow{background:rgba(249,202,36,.12);color:var(--gold);border:1px solid rgba(249,202,36,.25);}

/* NOTICE */
.notice{padding:14px 16px;border-radius:var(--r-md);display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.55;}
.notice-icon{flex-shrink:0;margin-top:2px;display:inline-flex;align-items:center;}
.notice-icon .icon,.notice-icon.icon{width:18px;height:18px;}
.notice-warn{background:rgba(249,202,36,.09);border:1px solid rgba(249,202,36,.22);color:#e6b800;}
.notice-info{background:rgba(100,150,255,.09);border:1px solid rgba(100,150,255,.22);color:#8ab4f8;}
.notice-ok{background:rgba(50,200,100,.09);border:1px solid rgba(50,200,100,.22);color:#6fcf97;}
.notice-err{background:rgba(255,50,50,.09);border:1px solid rgba(255,50,50,.22);color:#ff6b6b;}

/* EMPTY */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 20px;gap:16px;text-align:center;}
.empty-icon{display:flex;align-items:center;justify-content:center;opacity:.85;}
.empty-title{font-size:20px;font-family:'ZCOOL XiaoWei',serif;color:var(--text-secondary);}
.empty-desc{font-size:14px;color:var(--text-muted);max-width:260px;}

/* TOAST */
#toast-c{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.toast{padding:10px 22px;background:rgba(25,25,40,.95);border:1px solid var(--border);border-radius:30px;color:var(--text-primary);font-size:14px;backdrop-filter:blur(20px);animation:toastIn .3s ease,toastOut .3s ease 2.5s forwards;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;}
@keyframes toastIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
@keyframes toastOut{from{opacity:1;}to{opacity:0;}}

/* FAB */
.fab{position:fixed;bottom:28px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));border:none;color:#fff;font-size:26px;cursor:pointer;box-shadow:0 4px 22px var(--primary-glow-strong);transition:var(--ease);display:flex;align-items:center;justify-content:center;z-index:50;}
.fab:hover{transform:scale(1.1) translateY(-3px);box-shadow:0 8px 32px var(--primary-glow-strong);}

/* DIVIDER */
.divider{height:1px;background:var(--border);margin:20px 0;}

/* TOGGLE */
.toggle-wrap{display:flex;align-items:center;gap:10px;}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;position:absolute;}
.toggle-slider{position:absolute;inset:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:var(--ease);}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:var(--text-muted);top:3px;left:3px;transition:var(--ease);}
.toggle input:checked+.toggle-slider{background:var(--primary-glow);border-color:var(--primary);}
.toggle input:checked+.toggle-slider::before{background:var(--primary);transform:translateX(20px);}

/* STAGGER */
.stagger>*{opacity:0;transform:translateY(16px);animation:stIn .45s ease forwards;}
.stagger>*:nth-child(1){animation-delay:.04s}.stagger>*:nth-child(2){animation-delay:.08s}.stagger>*:nth-child(3){animation-delay:.12s}.stagger>*:nth-child(4){animation-delay:.16s}.stagger>*:nth-child(5){animation-delay:.2s}.stagger>*:nth-child(6){animation-delay:.24s}.stagger>*:nth-child(7){animation-delay:.28s}.stagger>*:nth-child(8){animation-delay:.32s}.stagger>*:nth-child(9){animation-delay:.36s}.stagger>*:nth-child(10){animation-delay:.4s}
@keyframes stIn{to{opacity:1;transform:translateY(0);}}

/* CENTER MODAL */
.cmo{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s;}
.cmo.active{opacity:1;pointer-events:auto;}
.cmo-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:32px;width:100%;max-width:400px;transform:scale(.92);transition:transform .3s;}
.cmo.active .cmo-box{transform:scale(1);}
.cmo-title{font-family:'ZCOOL XiaoWei',serif;font-size:24px;text-align:center;margin-bottom:8px;display:flex;align-items:center;justify-content:center;gap:8px;}
.cmo-desc{font-size:14px;color:var(--text-muted);text-align:center;margin-bottom:24px;}

/* SECTION */
.section{padding:0 20px;margin-bottom:20px;}
.section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.section-title{font-family:'ZCOOL XiaoWei',serif;font-size:18px;color:var(--text-secondary);display:flex;align-items:center;gap:8px;}

/* ========== LOGIN ========== */
#screen-login{align-items:center;justify-content:center;padding:28px;}
.login-wrap{width:100%;max-width:440px;text-align:center;}
.vinyl-wrap{width:160px;height:160px;margin:0 auto 34px;position:relative;}
.vinyl-glow{position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(circle,var(--primary-glow) 0%,transparent 70%);animation:vglow 3s ease-in-out infinite alternate;}
@keyframes vglow{from{opacity:.5;transform:scale(.9);}to{opacity:1;transform:scale(1.1);}}
.vinyl{width:100%;height:100%;animation:vspin 7s linear infinite;}
@keyframes vspin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.login-title{font-family:'ZCOOL XiaoWei',serif;font-size:42px;background:linear-gradient(135deg,#fff 25%,var(--coral) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;}
.login-sub{font-size:15px;color:var(--text-muted);margin-bottom:40px;line-height:1.6;}
.login-form{display:flex;flex-direction:column;gap:16px;}
.login-input{width:100%;padding:17px 22px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:100px;color:var(--text-primary);font-size:18px;font-family:'Noto Sans SC',sans-serif;text-align:center;letter-spacing:4px;outline:none;transition:var(--ease);}
.login-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.login-input::placeholder{letter-spacing:1px;color:var(--text-muted);font-size:15px;}
.login-btn{width:100%;padding:17px;font-size:17px;border-radius:100px;}
.admin-entry{margin-top:16px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:color .2s;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.admin-entry:hover{color:var(--primary);}
.admin-entry .icon{width:14px;height:14px;}

/* Desktop login: side by side */
@media(min-width:900px){
  .login-wrap{max-width:800px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;text-align:left;}
  .login-left{display:flex;flex-direction:column;align-items:center;}
  .vinyl-wrap{margin:0 auto 20px;}
  .login-title{font-size:52px;text-align:center;}
  .login-tagline{font-size:15px;color:var(--text-muted);text-align:center;line-height:1.8;}
  .login-sub{display:none;}
  .login-form{gap:18px;}
}

/* ========== HOME ========== */
.home-header{padding:28px 24px 20px;}
.home-greet{font-size:14px;color:var(--text-muted);margin-bottom:4px;}
.home-name{font-family:'ZCOOL XiaoWei',serif;font-size:34px;background:linear-gradient(135deg,#fff 0%,var(--coral) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.activity-list{padding:0 20px;display:flex;flex-direction:column;gap:14px;}
.act-card{padding:22px 24px;cursor:pointer;position:relative;overflow:hidden;}
.act-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary),var(--coral));}
.act-name{font-family:'ZCOOL XiaoWei',serif;font-size:22px;margin-bottom:10px;}
.act-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.act-desc{font-size:14px;color:var(--text-muted);}
.act-stats{margin-top:16px;display:flex;gap:24px;}
.stat-v{font-family:'ZCOOL XiaoWei',serif;font-size:30px;color:var(--primary);display:block;}
.stat-l{font-size:12px;color:var(--text-muted);}
.create-cta{margin:20px;padding:20px 22px;background:linear-gradient(135deg,rgba(232,65,24,.13) 0%,rgba(255,140,105,.09) 100%);border:1px solid var(--border-glow);border-radius:var(--r-lg);display:flex;align-items:center;gap:16px;cursor:pointer;transition:var(--ease);}
.create-cta:hover{background:linear-gradient(135deg,rgba(232,65,24,.22) 0%,rgba(255,140,105,.15) 100%);}
.cta-icon{flex-shrink:0;display:flex;align-items:center;color:var(--coral);}
.cta-icon .icon{width:28px;height:28px;}
.cta-title{font-family:'ZCOOL XiaoWei',serif;font-size:18px;margin-bottom:4px;}
.cta-sub{font-size:13px;color:var(--text-muted);}

@media(min-width:900px){
  .activity-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;}
}

/* ========== GALLERY ========== */
#screen-gallery .screen-body{padding-top:8px;}
#screen-gallery .screen-body.gallery-pending{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.gallery-create-cta{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;cursor:pointer;}
.gallery-create-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:44px 36px;max-width:340px;width:100%;transition:var(--ease);}
.gallery-create-inner .icon-xl{opacity:.9;color:var(--coral);margin-bottom:4px;}
.gallery-create-title{font-size:22px;font-weight:600;font-family:'ZCOOL XiaoWei',serif;color:var(--text-primary);}
.gallery-create-desc{font-size:14px;color:var(--text-muted);line-height:1.6;max-width:260px;}
.gallery-create-btn{margin-top:8px;pointer-events:none;}
.gallery-create-cta:hover .gallery-create-inner{transform:translateY(-3px);border-color:var(--border-glow);box-shadow:0 12px 40px rgba(232,65,24,.12);}
#gallery-notice{margin:16px 20px 24px!important;}
.cards-grid{padding:8px 20px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;}
@media(min-width:600px){.cards-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;}}
@media(min-width:900px){.cards-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;padding:0 28px 28px;}}
@media(min-width:1200px){.cards-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}}

/* PROFILE CARD */
.profile-card{cursor:pointer;overflow:hidden;}
.pc-header{padding:20px 18px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;background:linear-gradient(180deg,rgba(232,65,24,.07) 0%,transparent 100%);border-bottom:1px solid var(--border);}
.av{width:70px;height:70px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.av-circle{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;flex-shrink:0;font-family:'ZCOOL XiaoWei',serif;}
.pc-name-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:100%;}
.pc-name{font-size:16px;font-weight:600;font-family:'ZCOOL XiaoWei',serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.pc-my-tag,.pc-hidden-tag{font-size:11px;flex-shrink:0;}
.pc-hidden-tag{background:rgba(255,50,50,.1);color:#ff6b6b;border:1px solid rgba(255,50,50,.2);}
.pc-body{padding:14px 16px;}
.pc-field{display:flex;gap:7px;margin-bottom:7px;font-size:13px;}
.pc-fk{color:var(--text-muted);flex-shrink:0;min-width:54px;}
.pc-fv{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.pc-footer{padding:10px 12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:6px;flex-wrap:nowrap;}
.pc-footer .act-btn{padding:5px 8px;font-size:12px;gap:4px;}
.act-btn{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--text-secondary);font-size:13px;cursor:pointer;padding:6px 10px;border-radius:var(--r-sm);transition:var(--ease);font-family:'Noto Sans SC',sans-serif;flex-shrink:0;white-space:nowrap;}
.act-btn:hover{color:var(--text-primary);background:var(--bg-glass-hover);border-color:rgba(232,65,24,.25);}
.act-btn.liked{color:var(--primary)!important;}
@keyframes hpop{0%{transform:scale(1);}50%{transform:scale(1.5);}100%{transform:scale(1);}}
.act-btn.liked .hi{animation:hpop .35s ease;fill:currentColor;}
.act-btn .hi{width:14px;height:14px;}
.edit-badge{margin-left:auto;flex-shrink:0;font-size:12px;color:var(--text-muted);padding:5px 10px;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:var(--ease);white-space:nowrap;}
.edit-badge:hover{color:var(--text-primary);border-color:rgba(232,65,24,.25);background:var(--bg-glass-hover);}

/* ========== CARD DETAIL ========== */
/* full-screen split: vinyl left 1/3, card right 2/3 */
#screen-card-detail .screen-body,
#pres-songs-panel .screen-body{display:flex;flex-direction:row;padding:16px 90px;overflow-x:hidden;overflow-y:auto;align-items:flex-start;gap:56px;min-height:0;}
#screen-card-detail .screen-body,
#pres-songs-panel .screen-body{justify-content:center;align-items:safe center;}
#screen-card-detail .detail-vinyl-panel,
#pres-songs-panel .detail-vinyl-panel{position:static;top:auto;align-self:center;}
.detail-vinyl-panel{width:280px;flex-shrink:0;display:flex;align-items:center;justify-content:center;pointer-events:none;position:sticky;top:16px;align-self:flex-start;}
.detail-vinyl-panel .vinyl-wrap{width:280px;height:280px;margin:0;}
.detail-card-panel{flex:1;min-width:0;padding:0;overflow:visible;}
.detail-content{background:rgba(20,20,32,.93);border:1px solid rgba(232,65,24,.28);border-radius:32px;padding:36px 44px;max-width:none;margin:0;display:grid;grid-template-columns:3fr 2fr;gap:36px;align-items:stretch;box-shadow:0 20px 80px rgba(0,0,0,.6),0 0 60px rgba(232,65,24,.13);width:100%;min-height:min(640px,calc(100vh - 120px));height:auto;overflow:visible;}
.detail-content .pres-left{display:flex;flex-direction:column;min-width:0;}
.detail-content .pres-fields-wide{max-height:calc(100vh - 340px);overflow-y:auto;overflow-x:visible;scrollbar-width:thin;scrollbar-color:rgba(232,65,24,.2) transparent;padding-right:4px;}
.detail-content .pres-fields-wide::-webkit-scrollbar{width:4px;}
.detail-content .pres-fields-wide::-webkit-scrollbar-thumb{background:rgba(232,65,24,.25);border-radius:2px;}
.detail-content .pres-field-wide{overflow:visible;}
.detail-content .pres-fv-wide{overflow:visible;}
.detail-content .pres-right{display:flex;flex-direction:column;}
.detail-content .pres-right>div{display:flex;flex-direction:column;flex:1;min-height:0;}
.detail-card-panel .pres-cm-list{max-height:none;overflow-x:hidden;overflow-y:visible;}
.detail-content .pres-right .cm-input-row{flex-shrink:0;margin-top:16px;}
#pres-songs-panel .detail-content .pres-fields-wide{max-height:calc(100vh - 300px);}
#screen-presentation.has-tabs #pres-songs-panel .detail-content .pres-fields-wide{max-height:calc(100vh - 354px);}
@media(max-width:900px){
  #screen-card-detail .screen-body,
  #pres-songs-panel .screen-body{display:flex;flex-direction:column;overflow-y:auto;align-items:center;gap:0;padding:0;}
  .detail-vinyl-panel{width:100%;height:180px;flex-shrink:0;position:static;align-self:auto;}
  .detail-vinyl-panel .vinyl-wrap{width:160px;height:160px;}
  .detail-card-panel{flex:none;width:100%;padding:0 16px 80px;max-width:100%;}
  .detail-content{grid-template-columns:1fr;gap:20px;padding:28px 24px;max-width:100%;margin:0 auto;min-height:0;}
  .detail-content .pres-fields-wide{max-height:none;overflow-y:visible;padding-right:0;}
}/* avatar + name: same glass card as pres-av-name-row */
.detail-av-sec{display:flex;flex-direction:row;align-items:center;gap:24px;margin-bottom:20px;padding:22px 24px;background:rgba(255,255,255,.04);border:1px solid rgba(232,65,24,.15);border-radius:20px;}
.detail-av{width:140px;height:140px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.detail-av-circle{width:140px;height:140px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:52px;font-family:'ZCOOL XiaoWei',serif;color:#fff;flex-shrink:0;}
.detail-av-info{display:flex;flex-direction:column;gap:8px;}
.detail-name{font-family:'ZCOOL XiaoWei',serif;font-size:44px;line-height:1.1;}
/* fields — same card-block style as pres-field-wide */
.fields-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:0;}
.field-item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 18px;}
.field-lbl{font-size:15px;color:var(--primary);font-weight:500;margin-bottom:7px;letter-spacing:.3px;}
.field-val{font-size:22px;color:var(--text-primary);line-height:1.55;white-space:pre-wrap;}
.detail-left-col{position:sticky;top:10px;}
.detail-right-col{display:flex;flex-direction:column;gap:16px;}
/* detail like: large heart + count below, beside name */
.pres-name-block{flex:1;min-width:0;}
.detail-like-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex-shrink:0;margin-left:12px;padding:4px 8px;border:none;background:none;cursor:pointer;color:rgba(232,65,24,.55);transition:var(--ease);font-family:'ZCOOL XiaoWei',serif;}
.detail-like-btn .icon{width:52px;height:52px;stroke-width:1.5;}
.detail-like-btn:hover{color:rgba(232,65,24,.85);transform:scale(1.05);}
.detail-like-btn.liked{color:var(--primary);}
.detail-like-btn.liked .icon{fill:var(--primary);stroke:var(--primary);animation:hpop .35s ease;}
.detail-like-btn .like-num{font-size:22px;line-height:1;color:inherit;}
.detail-like-readonly{cursor:default;pointer-events:none;}
/* scroll-to-comment btn */
.detail-cm-btn{padding:13px 20px;background:var(--bg-glass);border:1px solid var(--border);border-radius:14px;color:var(--text-secondary);font-size:16px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:var(--ease);font-family:'Noto Sans SC',sans-serif;width:100%;}
.detail-cm-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary);}
/* comments */
.comments-sec{flex:1;}
.comments-title{font-family:'ZCOOL XiaoWei',serif;font-size:20px;margin-bottom:16px;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:10px;}
.cm-item{display:flex;gap:10px;margin-bottom:14px;}
.cm-av{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;}
.cm-body{flex:1;background:var(--bg-glass);border:1px solid var(--border);border-radius:4px 16px 16px 16px;padding:10px 15px;}
.cm-author{font-size:12px;color:var(--primary);margin-bottom:4px;}
.cm-time{font-size:11px;color:var(--text-muted);margin-left:7px;}
.cm-text{font-size:14px;color:var(--text-secondary);}
.cm-input-row{display:flex;gap:10px;margin-top:16px;}
.cm-input{flex:1;}
/* hide old button classes */
.detail-acts,.like-big,.comment-big{display:none!important;}
/* notification badge */
.notif-btn{position:relative;width:40px;height:40px;border:none;background:var(--bg-glass);border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:var(--ease);}
.notif-btn .icon{width:18px;height:18px;}
.notif-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary);}
.notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--primary);border-radius:50%;border:1.5px solid var(--bg-deep);animation:dotPulse 1.5s ease-in-out infinite;}
@keyframes dotPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.3);opacity:.7;}}
/* notification screen */
#screen-notif .notif-item{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);transition:var(--ease);cursor:pointer;}
#screen-notif .notif-item:hover{background:var(--bg-glass);}
#screen-notif .notif-item.unread{background:rgba(232,65,24,.05);}
.notif-av{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;}
.notif-body{flex:1;}
.notif-text{font-size:14px;color:var(--text-primary);line-height:1.5;margin-bottom:3px;}
.notif-text .icon{width:14px;height:14px;vertical-align:-0.2em;display:inline;color:var(--text-secondary);}
.notif-time{font-size:12px;color:var(--text-muted);}
.notif-unread-dot{width:8px;height:8px;background:var(--primary);border-radius:50%;flex-shrink:0;margin-top:6px;}
/* presentation 3-col wide card */
.pres-card-wide{background:rgba(20,20,32,.93);border:1px solid rgba(232,65,24,.28);border-radius:32px;padding:40px 48px;max-width:1280px;width:100%;box-shadow:0 20px 80px rgba(0,0,0,.6),0 0 60px rgba(232,65,24,.13);animation:crevy .5s cubic-bezier(.4,0,.2,1);display:grid;grid-template-columns:160px 3fr 2fr;gap:36px;align-items:start;}
@media(max-width:900px){.pres-card-wide{grid-template-columns:3fr 2fr;}.card-vinyl-col{display:none;}}
@media(max-width:800px){.pres-card-wide{grid-template-columns:1fr;padding:28px 24px;}.pres-av-name-row{flex-wrap:wrap;justify-content:center;text-align:center;}}
/* LEFT: avatar-name row + fields */
.pres-left{display:flex;flex-direction:column;gap:0;}
.pres-av-name-row{display:flex;flex-direction:row;align-items:center;gap:18px;margin-bottom:24px;padding:16px 20px;background:rgba(255,255,255,.04);border:1px solid rgba(232,65,24,.15);border-radius:20px;min-width:0;}
.pres-av-img,.pres-av-init{width:120px;height:120px;border-radius:50%;flex-shrink:0;}
.pres-av-img{object-fit:cover;}
.pres-av-init{display:flex;align-items:center;justify-content:center;font-size:44px;font-family:'ZCOOL XiaoWei',serif;color:#fff;}
.pres-right{display:flex;flex-direction:column;gap:20px;}
.pres-fields-wide{display:flex;flex-direction:column;gap:14px;min-width:0;}
.pres-field-wide{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 18px;display:flex;flex-direction:row;align-items:flex-start;gap:14px;min-width:0;}
.pres-fk-wide{font-size:15px;color:var(--primary);font-weight:500;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;padding-top:4px;}
.pres-fv-wide{font-size:24px;color:rgba(240,240,245,.92);line-height:1.5;flex:1;min-width:0;word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap;}
.pres-name-wide{font-family:'ZCOOL XiaoWei',serif;font-size:40px;color:#fff;line-height:1.1;word-break:break-word;overflow-wrap:break-word;}
/* RIGHT: likes + comments */
.pres-likes-row{display:flex;align-items:center;gap:10px;padding:16px 20px;background:rgba(232,65,24,.1);border:1px solid rgba(232,65,24,.25);border-radius:16px;font-size:20px;color:var(--primary);}
.pres-likes-row .icon{width:22px;height:22px;}
.pres-likes-row.liked .icon{fill:currentColor;}
.pres-comments-title{font-family:'ZCOOL XiaoWei',serif;font-size:20px;color:var(--text-secondary);margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:10px;display:flex;align-items:center;gap:8px;}
.pres-comments-title .icon{width:20px;height:20px;opacity:.75;}
.pres-cm-list{display:flex;flex-direction:column;gap:11px;max-height:520px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(232,65,24,.2) transparent;}
.pres-cm-list.cm-flash{border-radius:12px;animation:cmFlash .6s ease;}
@keyframes cmFlash{0%,100%{background:transparent}50%{background:rgba(232,65,24,.1)}}
.pres-cm-item{background:rgba(255,255,255,.04);border-radius:10px;padding:12px 16px;}
.pres-cm-text{font-size:16px;color:rgba(240,240,245,.78);line-height:1.5;word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap;}
.pres-cm-auto{font-size:19px;color:rgba(232,65,24,.68);font-style:italic;line-height:1.5;}
.pres-cm-meta{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;font-size:15px;color:#8b7cc4;}
.pres-cm-author{display:inline-flex;align-items:center;gap:8px;}
.pres-cm-dash{display:inline-block;width:2em;height:1px;background:currentColor;opacity:.85;flex-shrink:0;}
.pres-cm-time{opacity:.75;}
@media(max-width:800px){.pres-card-wide{grid-template-columns:1fr;padding:28px 24px;}.pres-av-name-row{flex-wrap:wrap;justify-content:center;text-align:center;}}

/* ========== CARD FORM ========== */
.form-content{padding:24px;max-width:640px;margin:0 auto;}
.av-upload-sec{display:flex;flex-direction:column;align-items:center;gap:11px;margin-bottom:26px;padding:20px;background:var(--bg-glass);border:2px dashed var(--border);border-radius:var(--r-lg);cursor:pointer;transition:var(--ease);}
.av-upload-sec:hover{border-color:var(--primary);background:var(--primary-glow);}
.av-pre-big{width:80px;height:80px;border-radius:50%;object-fit:cover;}
.av-circle-big{width:80px;height:80px;border-radius:50%;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--text-muted);}
.av-circle-big .icon{width:28px;height:28px;}
.av-upload-hint{font-size:13px;color:var(--text-muted);}

@media(min-width:900px){
  .form-content{max-width:760px;}
}

/* ========== ADMIN ========== */
.admin-content{padding:20px;max-width:900px;margin:0 auto;}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px;}
.ast{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-md);padding:18px;text-align:center;}
.ast-v{font-family:'ZCOOL XiaoWei',serif;font-size:36px;color:var(--primary);}
.ast-l{font-size:13px;color:var(--text-muted);}
.admin-act-item{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 22px;margin-bottom:14px;transition:var(--ease);}
.admin-act-item:hover{border-color:rgba(232,65,24,.18);background:var(--bg-glass-hover);}
.aai-hd{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;}
.aai-name{font-family:'ZCOOL XiaoWei',serif;font-size:20px;flex:1;}
.aai-acts{display:flex;gap:8px;flex-wrap:wrap;}

@media(min-width:900px){
  .admin-content{max-width:1100px;}
  .admin-stats{grid-template-columns:repeat(3,1fr);}
}

/* ========== ACTIVITY EDIT ========== */
.ae-content{padding:0;max-width:900px;margin:0 auto;}
@media(min-width:900px){
  .ae-content{max-width:1100px;}
}
.ae-page-title{font-family:'ZCOOL XiaoWei',serif;font-size:32px;text-align:center;padding:28px 24px 12px;margin:0;color:var(--text-primary);background:var(--bg-deep);}
.ae-tabs{position:sticky;top:0;z-index:6;display:flex;margin:0;padding:0 24px;background:var(--bg-deep);border-bottom:1px solid var(--border);}
.ae-tabs .tab{display:flex;align-items:center;gap:4px;flex:1;justify-content:center;border:none;background:transparent;font-family:inherit;font-size:13px;padding:10px 8px;white-space:nowrap;}
@media(max-width:480px){.ae-tabs .tab{font-size:12px;padding:10px 4px;gap:2px;}.ae-tabs .tab .icon{display:none;}}
.ae-tab-panel{display:none;padding:24px;}
.ae-tab-panel.active{display:block;}
.ae-tab-hd{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.ae-tab-hd .section-title{margin:0;}
.ae-tab-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
@media(max-width:560px){.ae-tab-hd .ae-tab-actions .btn{font-size:12px;padding:6px 10px;}}
.ae-view-group{margin-bottom:20px;}
.ae-view-row{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;}
.ae-view-row:last-child{border-bottom:none;}
.ae-view-label{flex-shrink:0;width:80px;color:var(--text-muted);}
.ae-view-val{flex:1;color:var(--text-primary);word-break:break-word;}
.ae-emp-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;}
.ae-emp-table th,.ae-emp-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);}
.ae-emp-table th{color:var(--text-muted);font-weight:500;background:var(--bg-elevated);}
.ae-emp-table th:nth-child(1),.ae-emp-table td:nth-child(1){width:72px;min-width:72px;white-space:nowrap;}
.ae-emp-table th:nth-child(2),.ae-emp-table td:nth-child(2){width:88px;min-width:88px;white-space:nowrap;}
.ae-field-view-list{display:flex;flex-direction:column;gap:10px;}
.ae-field-view-item{padding:12px 14px;background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-md);}
.ae-fv-label{font-size:14px;font-weight:500;margin-bottom:4px;}
.ae-fv-meta{font-size:12px;color:var(--text-muted);}
.ae-fv-ex{font-size:12px;color:var(--text-muted);margin-top:4px;}
.ae-empty-hint{font-size:13px;color:var(--text-muted);padding:12px 0;text-align:center;}
.ae-survey-q-list{display:flex;flex-direction:column;gap:10px;}
.ae-survey-q-item{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;}
.ae-survey-q-hd{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:transparent;border:none;color:var(--text-primary);font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:var(--ease);}
.ae-survey-q-hd:hover{background:var(--bg-elevated);}
.ae-sq-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .2s ease;}
.ae-survey-q-item.expanded .ae-sq-chevron{transform:rotate(90deg);}
.ae-sq-title{flex:1;font-weight:500;}
.ae-sq-meta{font-size:12px;color:var(--text-muted);flex-shrink:0;}
.ae-survey-q-body{border-top:1px solid var(--border);overflow-x:auto;}
.ae-sq-table{margin:0;border-radius:0;table-layout:fixed;min-width:360px;}
.ae-sq-table th:nth-child(1),.ae-sq-table td:nth-child(1){width:72px;min-width:72px;white-space:nowrap;}
.ae-sq-table th:nth-child(2),.ae-sq-table td:nth-child(2){width:88px;min-width:88px;white-space:nowrap;}
.ae-sq-table th:nth-child(3),.ae-sq-table td:nth-child(3){min-width:140px;word-break:break-word;}
.ae-sq-row-empty td{color:var(--text-muted);}
.ae-sq-empty{color:var(--text-muted);}
.ae-cards-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.ae-cards-table-wrap{overflow-x:auto;margin:0 -14px;padding:0 14px;}
.ae-cards-table{min-width:max-content;}
.ae-cards-table-hd,.ae-card-row{
  display:grid;
  grid-template-columns:var(--ae-cards-cols,40px 72px 88px 52px);
  gap:10px 12px;
  align-items:center;
  padding:10px 14px;
}
.ae-cards-table-hd{font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border);}
.ae-cards-list{display:flex;flex-direction:column;}
.ae-card-row{border-bottom:1px solid var(--border);font-size:14px;color:var(--text-primary);}
.ae-card-row:hover{background:var(--bg-elevated);}
.ae-card-row-miss{opacity:.85;}
.ae-card-av{display:flex;align-items:center;}
.ae-card-av .psi-av,.ae-card-av .psi-av-c{width:36px!important;height:36px!important;border-radius:50%;object-fit:cover;font-size:13px;}
.ae-card-id{font-size:13px;color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ae-card-name{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ae-card-col-fld,.ae-card-cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
.ae-card-col-fld{color:var(--text-muted);}
.ae-card-cell-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ae-card-cell-img{width:32px;height:32px;border-radius:var(--r-sm);object-fit:cover;vertical-align:middle;}
.ae-card-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:rgba(255,107,107,.15);color:#ff6b6b;white-space:nowrap;}
.ae-sub-view{margin-bottom:14px;padding:16px;background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-lg);}
.ae-sub-view-name{font-size:15px;font-weight:500;margin-bottom:10px;}
.ae-sub-mod-view{margin-top:10px;padding:10px 12px;background:var(--bg-elevated);border-radius:var(--r-md);}
.ae-sub-mod-title{font-size:13px;font-weight:500;color:var(--text-muted);margin-bottom:6px;}
.ae-sub-mod-item{font-size:13px;padding:4px 0;color:var(--text-primary);}
.field-builder-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.fbi{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);padding:13px 15px;display:flex;align-items:center;gap:10px;}
.fbi.fbi-editing{border-color:var(--primary);background:rgba(232,65,24,.07);}
.fbi-drag{color:var(--text-muted);cursor:grab;font-size:16px;flex-shrink:0;user-select:none;}
.fbi-info{flex:1;}
.fbi-lbl{font-size:14px;color:var(--text-primary);}
.fbi-type{font-size:12px;color:var(--text-muted);}
.fbi-ex{font-size:11px;color:rgba(232,65,24,.6);font-style:italic;margin-top:2px;}
.fbi.required-field .fbi-lbl::after{content:' *';color:var(--primary);}
.fadd-form{background:var(--bg-glass);border:1px dashed var(--border);border-radius:var(--r-md);padding:16px;}
.fadd-row{display:grid;grid-template-columns:1fr auto auto auto auto;gap:9px;align-items:end;margin-bottom:10px;}
.fadd-row2{display:grid;grid-template-columns:1fr;gap:9px;}
@media(max-width:560px){.fadd-row{grid-template-columns:1fr 1fr;}}
.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:20px;}
.tab{padding:10px 18px;font-size:14px;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;transition:var(--ease);}
.tab.active{color:var(--primary);border-bottom-color:var(--primary);}

/* ========== PRESENTATION SETUP ========== */
#screen-pres-setup .admin-content{padding-top:16px;}
.pres-setup-tabs{padding:0;margin-bottom:0;}
.pres-setup-tabs .tab{flex:1;justify-content:center;border:none;background:transparent;font-family:inherit;font-size:14px;padding:12px 8px;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;transition:var(--ease);}
.pres-setup-tabs .tab.active{color:var(--primary);border-bottom-color:var(--primary);}
.pres-setup-notice-wrap{margin:16px 0 20px;}
.pres-setup-list{padding:0;display:flex;flex-direction:column;gap:9px;}
.psi{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;display:flex;align-items:center;gap:13px;transition:var(--ease);}
.psi.drag-over{border-color:var(--primary);background:var(--primary-glow);}
.psi.hidden-card{opacity:.4;}
.psi-drag{cursor:grab;font-size:17px;color:var(--text-muted);flex-shrink:0;user-select:none;}
.psi-av{width:44px;height:44px;border-radius:50%;flex-shrink:0;object-fit:cover;}
.psi-av-c{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-family:'ZCOOL XiaoWei',serif;color:#fff;}
.psi-info{flex:1;}
.psi-name{font-size:15px;}
.psi-id{font-size:12px;color:var(--text-muted);}

/* ========== PRESENTATION FULLSCREEN ========== */
#screen-presentation{background:#050508;z-index:300;display:flex;flex-direction:column;}
.pres-bg{position:absolute;inset:0;animation:pbg 8s ease-in-out infinite alternate;}
@keyframes pbg{from{background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(232,65,24,.1) 0%,transparent 70%);}to{background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(255,100,50,.14) 0%,transparent 70%);}}
#pres-songs-panel{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;z-index:10;}
#pres-songs-panel .screen-body{flex:1;min-height:0;padding-bottom:0;}
.pres-card{background:rgba(20,20,32,.93);border:1px solid rgba(232,65,24,.28);border-radius:32px;padding:48px 42px;max-width:560px;width:100%;text-align:center;box-shadow:0 20px 80px rgba(0,0,0,.6),0 0 60px rgba(232,65,24,.13);animation:crevy .5s cubic-bezier(.4,0,.2,1);}
@keyframes crevy{from{opacity:0;transform:scale(.9) translateY(18px);}to{opacity:1;transform:scale(1) translateY(0);}}
.pres-av{width:120px;height:120px;border-radius:50%;margin:0 auto 20px;object-fit:cover;display:block;}
.pres-av-c{width:120px;height:120px;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-size:42px;font-family:'ZCOOL XiaoWei',serif;color:#fff;}
.pres-name{font-family:'ZCOOL XiaoWei',serif;font-size:40px;color:#fff;margin-bottom:22px;}
.pres-fields{display:flex;flex-direction:column;gap:13px;text-align:left;}
.pres-field{display:flex;gap:14px;align-items:flex-start;}
.pres-fk{font-size:13px;color:var(--primary);min-width:80px;flex-shrink:0;padding-top:2px;}
.pres-fv{font-size:16px;color:var(--text-secondary);line-height:1.55;flex:1;}
.pres-likes{margin-top:24px;font-size:17px;color:var(--primary);display:flex;align-items:center;justify-content:center;gap:7px;}
.pres-nav{position:fixed;bottom:40px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;z-index:20;}
.pnav-btn{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);color:#fff;font-size:22px;cursor:pointer;transition:var(--ease);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);}
.pnav-btn:hover{background:rgba(232,65,24,.28);border-color:var(--primary);}
.pres-counter{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);font-family:'ZCOOL XiaoWei',serif;font-size:15px;color:var(--text-muted);z-index:320;background:rgba(12,12,20,.7);padding:4px 16px;border-radius:20px;backdrop-filter:blur(8px);}
.pres-exit{position:fixed;top:20px;right:20px;z-index:360;padding:8px 18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:30px;color:var(--text-muted);cursor:pointer;font-size:13px;backdrop-filter:blur(10px);transition:var(--ease);font-family:'Noto Sans SC',sans-serif;}
.pres-exit:hover{color:#fff;background:rgba(255,255,255,.14);}
/* side nav — shared style for detail + pres */
.side-nav-btn{position:fixed;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:30px;cursor:pointer;transition:var(--ease);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);z-index:50;line-height:1;}
.side-nav-btn:hover{background:rgba(232,65,24,.3);border-color:var(--primary);}
.side-nav-btn.disabled{opacity:.2;pointer-events:none;}
#detail-prev-btn,#pres-prev-side{left:14px;}
#detail-next-btn,#pres-next-side{right:14px;}
#pres-prev-side,#pres-next-side{z-index:320;}
.pres-act-tag{position:fixed;top:20px;left:20px;z-index:20;padding:6px 16px;background:var(--primary-glow);border:1px solid var(--border-glow);border-radius:30px;color:var(--coral);font-size:13px;}

/* ========== PRES TABS ========== */
.pres-tabs-bar{position:fixed;top:0;left:0;right:0;z-index:350;display:flex;justify-content:center;align-items:stretch;background:rgba(5,5,8,.96);border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(24px);}
.pres-tab-btn{padding:14px 32px;font-size:15px;color:rgba(240,240,245,.45);cursor:pointer;border:none;background:transparent;border-bottom:2px solid transparent;transition:all .25s;font-family:'Noto Sans SC',sans-serif;letter-spacing:.3px;}
.pres-tab-btn.active{color:#fff;border-bottom-color:var(--primary);}
.pres-tab-btn:hover:not(.active){color:rgba(240,240,245,.75);}
/* shift pres-act-tag down when tabs visible */
.pres-tabs-bar~.pres-act-tag{top:62px;}
#screen-presentation.has-tabs #pres-songs-panel .screen-body{padding-top:54px;}
#screen-presentation.has-tabs .pres-act-tag{top:62px;}
/* Sub-act view */
.pres-subact-panel{position:relative;z-index:10;height:100%;overflow-y:auto;padding:70px 60px 60px;scrollbar-width:thin;scrollbar-color:rgba(232,65,24,.2) transparent;}
.pres-subact-panel::-webkit-scrollbar{width:4px;}
.pres-subact-panel::-webkit-scrollbar-thumb{background:rgba(232,65,24,.25);border-radius:2px;}
.pres-module-block{background:rgba(20,20,32,.93);border:1px solid rgba(232,65,24,.22);border-radius:24px;padding:34px 40px;margin-bottom:26px;max-width:860px;margin-left:auto;margin-right:auto;animation:crevy .4s cubic-bezier(.4,0,.2,1);}
.pres-module-ttl{font-family:'ZCOOL XiaoWei',serif;font-size:30px;color:var(--coral);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(232,65,24,.18);}
.pres-module-item{font-size:20px;color:rgba(240,240,245,.88);line-height:1.75;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);}
.pres-module-item:last-child{border-bottom:none;}
/* ========== SUB-ACTIVITY EDITOR ========== */
.sae-wrap{background:var(--bg-glass);border:1px solid rgba(232,65,24,.18);border-radius:var(--r-lg);padding:20px;margin-bottom:14px;}
.sae-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.sae-name-input{flex:1;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:'Noto Sans SC',sans-serif;font-size:15px;outline:none;transition:var(--ease);}
.sae-name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.sae-mod-block{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;margin-bottom:10px;}
.sae-mod-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.sae-mod-title-input{flex:1;padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:'Noto Sans SC',sans-serif;font-size:14px;outline:none;transition:var(--ease);}
.sae-mod-title-input:focus{border-color:var(--primary);}
.sae-item-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;}
.sae-item-input{flex:1;padding:7px 11px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:'Noto Sans SC',sans-serif;font-size:13px;outline:none;transition:var(--ease);}
.sae-item-input:focus{border-color:var(--primary);}

/* ========== SURVEY REPORT ========== */
.sv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.sv-table-wrap{
  width:100%;max-width:100%;padding:0;margin-bottom:24px;
  overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:rgba(232,65,24,.35) transparent;
}
.sv-table-wrap::-webkit-scrollbar{height:8px;}
.sv-table-wrap::-webkit-scrollbar-thumb{background:rgba(232,65,24,.35);border-radius:4px;}
.sv-table-wrap::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:4px;}
.sv-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:14px;table-layout:auto;}
.sv-table thead{background:rgba(232,65,24,.08);}
.sv-th{padding:12px 16px;text-align:left;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border);vertical-align:top;}
.sv-td{padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-primary);vertical-align:top;line-height:1.55;overflow:visible;text-overflow:clip;max-width:none;}
.sv-th-sticky,.sv-td-sticky{position:sticky;background:var(--bg-glass);box-shadow:2px 0 8px rgba(0,0,0,.12);}
.sv-th-idx,.sv-td-idx{left:0;z-index:4;min-width:42px;width:42px;text-align:center;color:var(--text-muted);white-space:nowrap;}
.sv-th-id,.sv-td-id{left:42px;z-index:4;min-width:80px;white-space:nowrap;}
.sv-th-name,.sv-td-name{left:122px;z-index:4;min-width:96px;font-weight:500;white-space:nowrap;}
.sv-td-status,.sv-th-status{white-space:nowrap;}
.sv-th-answer,.sv-td-answer{
  white-space:pre-wrap;word-break:break-word;overflow:visible;
  min-width:140px;max-width:none;text-overflow:clip;
}
.sv-th-answer{white-space:normal;min-width:120px;}
.sv-row-miss .sv-td-sticky{background:rgba(18,18,28,.98);}
.sv-empty{color:var(--text-muted);opacity:.5;}
.sv-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.sv-badge-ok{background:rgba(46,204,113,.12);color:#2ecc71;}
.sv-badge-partial{background:rgba(241,196,15,.12);color:#f1c40f;}
.sv-badge-miss{background:rgba(255,255,255,.06);color:var(--text-muted);}
.sv-scroll-hint{font-size:12px;color:var(--text-muted);margin:-12px 0 16px;display:flex;align-items:center;gap:6px;}
#screen-admin-survey .admin-content{max-width:100%;padding:20px 24px;}
.sv-view-tabs{display:flex;gap:8px;margin-bottom:20px;}
.sv-view-tab{
  display:inline-flex;align-items:center;gap:6px;padding:8px 16px;
  background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--r-md);
  color:var(--text-secondary);font-size:14px;cursor:pointer;transition:var(--ease);
}
.sv-view-tab:hover{border-color:rgba(232,65,24,.35);color:var(--text-primary);}
.sv-view-tab.active{background:rgba(232,65,24,.12);border-color:var(--primary);color:var(--primary);}
.sv-ai-toolbar{margin-bottom:16px;}
.sv-ai-empty{text-align:center;padding:48px 24px;margin-bottom:24px;}
.sv-ai-empty-icon{margin-bottom:16px;opacity:.6;}
.sv-ai-empty-title{font-size:18px;font-weight:500;margin-bottom:8px;}
.sv-ai-empty-desc{font-size:14px;color:var(--text-muted);margin-bottom:24px;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.6;}
.sv-ai-loading{text-align:center;padding:56px 24px;margin-bottom:24px;}
.sv-ai-spinner{
  width:36px;height:36px;margin:0 auto 20px;border:3px solid rgba(232,65,24,.15);
  border-top-color:var(--primary);border-radius:50%;animation:sv-spin .8s linear infinite;
}
@keyframes sv-spin{to{transform:rotate(360deg);}}
.sv-ai-loading-txt{font-size:16px;font-weight:500;margin-bottom:6px;}
.sv-ai-loading-sub{font-size:13px;color:var(--text-muted);}
.sv-ai-questions{display:flex;flex-direction:column;gap:20px;margin-bottom:24px;}
.sv-ai-question{display:flex;gap:16px;padding:20px 22px;}
.sv-ai-q-num{
  flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:rgba(232,65,24,.15);color:var(--primary);border-radius:50%;font-weight:600;font-size:14px;
}
.sv-ai-q-body{flex:1;min-width:0;}
.sv-ai-q-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}
.sv-ai-q-header .sv-ai-q-title{margin-bottom:0;flex:1;min-width:0;}
.sv-ai-q-header .btn{flex-shrink:0;}
.sv-ai-q-title{font-size:16px;font-weight:500;margin-bottom:16px;line-height:1.5;}
.sv-ai-no-answer{font-size:14px;color:var(--text-muted);padding:12px 0;}
.sv-ai-categories{display:flex;flex-direction:column;gap:12px;}
.sv-ai-category{padding:14px 16px;}
.sv-ai-cat-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:12px;}
.sv-ai-cat-type{font-size:15px;font-weight:500;color:var(--primary);}
.sv-ai-cat-count{font-size:12px;color:var(--text-muted);white-space:nowrap;}
.sv-ai-items{list-style:none;padding:0;margin:0;}
.sv-ai-item{
  font-size:14px;line-height:1.6;color:var(--text-primary);padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.sv-ai-item:last-child{border-bottom:none;}
.sv-ai-item-hidden{display:none;}
.sv-ai-cat-expanded .sv-ai-item-hidden{display:list-item;}
.sv-ai-cat-toggle{
  margin-top:10px;padding:0;background:none;border:none;color:var(--primary);
  font-size:13px;cursor:pointer;transition:var(--ease);
}
.sv-ai-cat-toggle:hover{opacity:.8;}
.ae-ai-q-label-input{font-size:16px;font-weight:500;padding:10px 12px;}
.ae-ai-cat-edit{padding:14px 16px;}
.ae-ai-cat-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ae-ai-cat-type-input{flex:1;font-size:14px;padding:8px 12px;}
.ae-ai-items-edit{display:flex;flex-direction:column;gap:8px;}
.ae-ai-item-row{display:flex;gap:8px;align-items:center;}
.ae-ai-item-input{flex:1;font-size:13px;padding:7px 11px;}
