/* ══════════════════════════════════════
   layout.css — 布局、Header、侧边栏、登录页、响应式
   智能反馈工单系统 V7.0
══════════════════════════════════════ */

/* ── Header — Glass ── */
.hd{height:var(--hd-h);background:rgba(12,14,20,.85);backdrop-filter:blur(20px) saturate(150%);border-bottom:1px solid var(--border);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:200}
.hd h1{font-size:15px;font-weight:700;letter-spacing:-.2px;display:flex;align-items:center;gap:10px}
.hd-left{display:flex;align-items:center;gap:12px}
.hd-right{display:flex;align-items:center;gap:10px;font-size:12px}
.hd-badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;background:rgba(124,127,255,.15);border:1px solid rgba(124,127,255,.2);color:var(--primary)}
.hd-badge.v5{background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(20,184,166,.2));border:1px solid rgba(16,185,129,.25);color:var(--teal)}
.hd-user{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);padding:5px 14px;border-radius:20px;cursor:pointer;transition:all var(--tr);border:1px solid transparent}
.hd-user:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.08)}

/* ── Hamburger ── */
.hamburger{display:none;width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.04);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;transition:all var(--tr);flex-shrink:0}
.hamburger:hover{background:rgba(255,255,255,.08);border-color:rgba(124,127,255,.3)}
.hamburger span{display:block;width:16px;height:1.5px;background:#fff;border-radius:2px;transition:all .3s}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(3px,3px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}

/* ── Layout ── */
.wrap{display:flex;min-height:calc(100vh - var(--hd-h))}
.content{flex:1;padding:20px 24px;overflow-y:auto;max-width:1400px;position:relative}

/* ── Sidebar ── */
.nav{width:220px;background:linear-gradient(180deg,var(--bg2) 0%,rgba(12,14,20,.95) 100%);border-right:1px solid var(--border);padding:12px 0;flex-shrink:0;transition:all .3s;overflow-y:auto;overflow-x:hidden;position:relative;z-index:100}
.nav::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(124,127,255,.3),transparent)}
.nav-group{padding:10px 20px 4px;font-size:10px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:1.2px;margin-top:8px;display:flex;align-items:center;gap:6px}
.nav-group::after{content:'';flex:1;height:1px;background:var(--border);opacity:.6}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 16px 10px 20px;cursor:pointer;color:var(--text2);font-size:13px;font-weight:500;border-left:3px solid transparent;transition:all var(--tr);margin:1px 0;position:relative;border-radius:0 var(--radius-s) var(--radius-s) 0}
.nav-item:hover{background:rgba(124,127,255,.07);color:var(--text)}
.nav-item.on{background:linear-gradient(90deg,rgba(124,127,255,.18),rgba(124,127,255,.06));color:var(--primary);border-left-color:var(--primary);font-weight:600;box-shadow:inset 0 1px 0 rgba(124,127,255,.1),inset 0 -1px 0 rgba(124,127,255,.05)}
.nav-item .ni{width:18px;height:18px;flex-shrink:0;color:var(--text3);transition:color .2s,transform .2s}
.nav-item:hover .ni{color:var(--text2);transform:scale(1.08)}
.nav-item.on .ni{color:var(--primary);transform:none}
.nav-item::before{content:'';position:absolute;inset:0;background:var(--primary);opacity:0;transition:opacity .2s;border-radius:0 var(--radius-s) var(--radius-s) 0}
.nav-item:hover::before{opacity:.04}
.nav-item.on::before{opacity:.08}
.nav-badge{margin-left:auto;background:var(--orange);color:#fff;font-size:10px;padding:1px 7px;border-radius:10px;font-weight:700;animation:badgePulse 2s infinite;box-shadow:0 0 8px rgba(245,158,11,.3)}
.nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:99;backdrop-filter:blur(4px);opacity:0;transition:opacity .3s}
.nav-overlay.show{display:block;opacity:1}

/* ── Login Page — Sci-fi Glass ── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#040710;position:relative;overflow:hidden}
.login-wrap::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(124,127,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(124,127,255,.07) 1px,transparent 1px);background-size:50px 50px;animation:gridMove 25s linear infinite}
@keyframes gridMove{0%{transform:translate(0,0)}100%{transform:translate(50px,50px)}}
.login-wrap .scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(124,127,255,.3),rgba(45,217,244,.4),rgba(124,127,255,.3),transparent);animation:scanMove 4s ease-in-out infinite;pointer-events:none;z-index:0}
@keyframes scanMove{0%{top:-2px;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}
.login-wrap::after{content:'';position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(124,127,255,.18) 0%,transparent 70%);top:-150px;right:-150px;border-radius:50%;animation:orbFloat 8s ease-in-out infinite alternate}
@keyframes orbFloat{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-60px,40px) scale(1.1)}}
.login-orb2{position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(45,217,244,.12) 0%,transparent 70%);bottom:-100px;left:-80px;border-radius:50%;animation:orbFloat2 10s ease-in-out infinite alternate;z-index:0}
@keyframes orbFloat2{0%{transform:translate(0,0) scale(1)}100%{transform:translate(50px,-30px) scale(1.15)}}
.login-orb3{position:absolute;width:300px;height:300px;background:radial-gradient(circle,rgba(139,92,246,.1) 0%,transparent 70%);top:40%;left:30%;border-radius:50%;animation:orbFloat 12s ease-in-out infinite alternate-reverse;z-index:0}

.login-card{background:rgba(16,18,28,.8);backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(124,127,255,.15);border-radius:24px;padding:48px 44px;width:420px;position:relative;z-index:1;box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 0 1px rgba(124,127,255,.08),inset 0 1px 0 rgba(255,255,255,.06);animation:cardEnter .7s cubic-bezier(.16,1,.3,1) both}
.login-card::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(124,127,255,.5),rgba(45,217,244,.4),rgba(124,127,255,.5),transparent);border-radius:0 0 2px 2px}
@keyframes cardEnter{0%{opacity:0;transform:translateY(30px) scale(.95);filter:blur(6px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.login-card h2{font-size:22px;font-weight:800;text-align:center;margin-bottom:4px;color:#fff;letter-spacing:-.3px}
.login-card .login-sub{text-align:center;font-size:13px;color:var(--text3);margin-bottom:28px}
.login-card .login-logo{text-align:center;margin-bottom:16px;animation:logoGlow 3s ease-in-out infinite alternate}
@keyframes logoGlow{0%{filter:drop-shadow(0 0 8px rgba(124,127,255,.4))}100%{filter:drop-shadow(0 0 20px rgba(124,127,255,.7))}}
.login-card .el-input__wrapper{background:rgba(255,255,255,.04)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important;box-shadow:none!important;transition:all .3s!important}
.login-card .el-input__wrapper:hover{border-color:rgba(124,127,255,.3)!important;background:rgba(124,127,255,.04)!important}
.login-card .el-input__wrapper.is-focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(124,127,255,.15),0 0 24px rgba(124,127,255,.12)!important;background:rgba(124,127,255,.05)!important}
.login-card .el-input__inner{color:#fff!important;background:transparent!important}
.login-card .el-input__inner::placeholder{color:var(--text3)!important}
/* 覆盖 Chrome/Safari 密码自动填充的白色背景 */
.login-card .el-input__inner:-webkit-autofill,
.login-card .el-input__inner:-webkit-autofill:hover,
.login-card .el-input__inner:-webkit-autofill:focus,
.login-card .el-input__inner:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px rgba(20,22,32,.95) inset!important;-webkit-text-fill-color:#fff!important;caret-color:#fff!important;transition:background-color 9999s ease-in-out 0s}
.login-card .el-button--primary{background:linear-gradient(135deg,#5b5fc7,var(--primary),#818cf8)!important;background-size:200%!important;border:none!important;border-radius:12px!important;font-weight:700!important;letter-spacing:.8px;box-shadow:0 4px 20px rgba(124,127,255,.35)!important;transition:all .3s!important;height:44px!important;font-size:15px!important}
.login-card .el-button--primary:hover{background-position:right!important;transform:translateY(-2px);box-shadow:0 8px 32px rgba(124,127,255,.5)!important}
.login-card .el-button--primary:active{transform:translateY(0) scale(.98)}

/* V8.3.2 登录页备案信息（位于卡片内部底部）*/
.login-beian{margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);font-size:11px;color:rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 8px;width:100%;box-sizing:border-box;line-height:1.8}
.login-beian a{color:rgba(255,255,255,.55);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color .2s;white-space:nowrap}
.login-beian a:hover{color:var(--primary)}
.login-beian img{width:14px;height:14px;vertical-align:middle}
.login-beian .sep{color:rgba(255,255,255,.2)}

/* V8.3.2 主界面页脚备案（位于 content 底部）*/
.site-footer{margin:48px -24px 0;padding:18px 24px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--text3)}
.site-footer a{color:var(--text3);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color .2s}
.site-footer a:hover{color:var(--primary)}
.site-footer img{width:14px;height:14px;vertical-align:middle}
.site-footer .sep{color:var(--border-l);margin:0 2px}
.site-footer .copyright{opacity:.7}

/* ── Responsive ── */
@media(max-width:768px){
  .hamburger{display:flex}
  .nav{position:fixed;top:var(--hd-h);left:0;bottom:0;transform:translateX(-100%);z-index:100;width:260px;box-shadow:4px 0 24px rgba(0,0,0,.4);transition:transform .3s cubic-bezier(.4,0,.2,1)}
  .nav.mobile-open{transform:translateX(0)}
  .nav-overlay.show{display:block}
  .d-grid{grid-template-columns:1fr}.content{padding:16px}.hd{padding:0 16px}
  .login-card{width:92%;padding:32px 28px}
  .hd-badge,.hd-right>span:nth-child(2){display:none}
}
