:root { --ink:#172b33; --muted:#6f7f85; --line:#dce7e9; --teal:#087f83; --teal-dark:#05696d; --soft:#eef7f6; --danger:#c54747; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:linear-gradient(145deg,#eef7f5 0%,#f7faf9 42%,#edf3f4 100%); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
button,input,select { font:inherit; }
button { cursor:pointer; }
button:disabled{cursor:wait;pointer-events:none;opacity:.62}.is-loading{display:inline-flex;align-items:center;justify-content:center;gap:7px}.is-loading:before{content:"";width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .65s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}
.shell { width:min(1080px,calc(100% - 32px)); margin:0 auto; padding:64px 0 80px; }
.topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; }
.eyebrow { margin:0 0 7px; color:var(--teal); font-size:12px; font-weight:800; letter-spacing:.18em; }
h1 { margin:0; font-size:38px; line-height:1.15; letter-spacing:-.04em; }
.subtitle { margin:10px 0 0; color:var(--muted); }
.primary,.secondary,.danger { border:0; border-radius:10px; padding:11px 18px; font-weight:700; transition:.18s ease; }
.primary { color:white; background:var(--teal); box-shadow:0 8px 20px rgba(8,127,131,.18); }
.primary:hover { background:var(--teal-dark); transform:translateY(-1px); }
.primary:disabled { opacity:.65; cursor:wait; }
.secondary { color:var(--teal); background:var(--soft); border:1px solid #d2e7e5; }
.danger { color:var(--danger); background:#fff1f0; border:1px solid #f2d4d1; }
.toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:16px; margin-bottom:18px; }
.search-wrap { flex:1; max-width:500px; position:relative; }
.search-wrap span { position:absolute; left:15px; top:10px; color:var(--muted); font-size:22px; }
.search-wrap input { width:100%; border:1px solid var(--line); border-radius:12px; padding:13px 16px 13px 44px; color:var(--ink); background:rgba(255,255,255,.82); outline:none; }
.search-wrap input:focus { border-color:#78b9b9; box-shadow:0 0 0 4px rgba(8,127,131,.08); }
.authorized-domains{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-width:0}.domain-chip{display:inline-flex;align-items:center;gap:6px;max-width:210px;padding:7px 10px;color:#087f83;background:#e9f5f3;border:1px solid #d1e8e5;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.domain-chip i{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#20a36e;box-shadow:0 0 0 3px rgba(32,163,110,.1)}.domain-empty{padding:7px 10px;color:#9aa6aa;background:#f0f4f4;border-radius:999px;font-size:12px;white-space:nowrap}
.summary { justify-self:end; color:var(--muted); font-size:14px; }
.summary strong { color:var(--ink); }
.link-list { display:grid; gap:14px; }
.link-card { display:flex; justify-content:space-between; gap:30px; padding:20px 22px 20px 26px; background:rgba(255,255,255,.9); border:1px solid rgba(220,231,233,.9); border-radius:18px; box-shadow:0 12px 40px rgba(37,72,77,.06); }
.card-main { min-width:0; flex:1; }
.card-top { display:flex; align-items:center; gap:10px; }
.card-top h2 { margin:0; font-size:18px; letter-spacing:-.01em; }
.status { padding:3px 8px; border-radius:20px; color:#24734f; background:#e9f7ef; font-size:11px; font-weight:700; }
.short-row { display:flex; align-items:center; gap:8px; margin:9px 0 7px; }
.short-row a { color:var(--teal); font-size:17px; font-weight:700; text-decoration:none; }
.short-links{display:grid;gap:4px;margin:10px 0}.short-links .short-row{margin:0;padding:4px 0;background:transparent}.short-links .short-row a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy,.icon-button { border:0; background:transparent; color:var(--muted); padding:3px 6px; }.short-links .copy{flex:0 0 auto;padding:5px 9px;color:var(--teal);background:#e3f2f0;border-radius:7px;font-size:12px;font-weight:700}.short-links .copy:hover{background:#d3ebe8}.domain-warning{margin:0;color:#c08a35;font-size:13px}
.target { display:block; width:100%; color:#526269; font-size:14px; white-space:nowrap; overflow-x:auto; overflow-y:hidden; text-overflow:clip; text-decoration:none; scrollbar-width:thin; }
.target:hover { text-decoration:underline; }
.date { margin:9px 0 0; color:#94a0a4; font-size:12px; }
.card-side{flex:0 0 520px;display:flex;align-items:center;gap:28px}.analytics-panel{position:relative;flex:1;min-width:0;padding:12px 13px 9px;overflow:visible;background:linear-gradient(145deg,#effaf6,#f8fcfa);border:1px solid #d9eee6;border-radius:14px;box-shadow:inset 0 1px rgba(255,255,255,.9)}.analytics-panel:before{content:"";position:absolute;right:-20px;top:-34px;width:92px;height:92px;border-radius:50%;background:rgba(35,174,124,.09);pointer-events:none}.analytics-head{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between}.analytics-head span{color:#66837b;font-size:11px;font-weight:700;letter-spacing:.06em}.analytics-head strong{color:#087f68;font-size:24px;line-height:1}.chart-wrap{margin-top:6px}.chart-plot{position:relative}.chart-wrap svg{display:block;width:100%;height:66px;overflow:visible}.chart-wrap svg line{stroke:#d7ebe4;stroke-width:1;stroke-dasharray:3 4}.chart-area{fill:rgba(20,168,121,.13)}.chart-line{fill:none;stroke:#0b9b72;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 3px rgba(11,155,114,.18))}.chart-point{position:absolute;z-index:2;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#0b9b72;box-shadow:0 1px 5px rgba(11,155,114,.35);transform:translate(-50%,-50%);cursor:crosshair;outline:none}.chart-point:before{content:"";position:absolute;inset:-7px}.chart-point:after{content:attr(data-tip);position:absolute;z-index:5;left:50%;bottom:14px;padding:6px 8px;color:#fff;background:#123d36;border-radius:7px;box-shadow:0 5px 14px rgba(18,61,54,.2);font:600 10px/1.2 system-ui,sans-serif;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:.15s}.chart-point:first-of-type:after{left:0;transform:translate(0,4px)}.chart-point:last-of-type:after{left:auto;right:0;transform:translate(0,4px)}.chart-point:hover:after,.chart-point:focus:after{opacity:1;transform:translate(-50%,0)}.chart-point:first-of-type:hover:after,.chart-point:first-of-type:focus:after,.chart-point:last-of-type:hover:after,.chart-point:last-of-type:focus:after{transform:translate(0,0)}.chart-axis{display:grid;grid-template-columns:repeat(24,1fr);margin-top:1px;color:#829b94;font-size:7px;font-variant-numeric:tabular-nums;text-align:center}.card-actions { display:flex; flex-direction:column; align-items:stretch; gap:7px; }.card-actions button{white-space:nowrap}
.analytics-panel{border-left:3px solid #16a477;background:linear-gradient(145deg,#f2fbf7,#fbfdfc)}.analytics-panel:before{display:none}.analytics-head{align-items:center}.analytics-title{display:flex;align-items:center;gap:8px}.analytics-title small{padding:3px 6px;color:#699188;background:rgba(22,164,119,.08);border-radius:5px;font-size:8px;font-weight:700;letter-spacing:.04em}.analytics-total{display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:70px;padding:7px 11px;color:#fff;background:linear-gradient(135deg,#087f68,#18a97b);border:1px solid rgba(255,255,255,.55);border-radius:10px;box-shadow:0 7px 16px rgba(8,127,104,.18)}.analytics-head .analytics-total strong{color:#fff;font-size:22px}.analytics-total small{color:rgba(255,255,255,.8);font-size:10px;font-weight:700}
/* 今日跳转品牌色：#38968f */
.analytics-panel{border-color:rgba(56,150,143,.22);border-left-color:#38968f;background:linear-gradient(145deg,rgba(56,150,143,.075),rgba(56,150,143,.025))}.analytics-title small{color:#327f7a;background:rgba(56,150,143,.1)}.analytics-head span{color:#4d7774}.analytics-total{background:linear-gradient(135deg,#2d7c76,#38968f);box-shadow:0 7px 16px rgba(56,150,143,.24)}.chart-wrap svg line{stroke:rgba(56,150,143,.17)}.chart-area{fill:rgba(56,150,143,.14)}.chart-line{stroke:#38968f;filter:drop-shadow(0 3px 3px rgba(56,150,143,.22))}.chart-point{background:#38968f;box-shadow:0 1px 5px rgba(56,150,143,.38)}.chart-point:after{background:#285f5b;box-shadow:0 5px 14px rgba(40,95,91,.22)}
.loading,.empty { padding:72px 24px; text-align:center; color:var(--muted); background:rgba(255,255,255,.72); border:1px dashed #cadadc; border-radius:18px; }
.empty strong { display:block; color:var(--ink); font-size:18px; }
.empty p { margin:8px 0 20px; }
.empty-icon { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 14px; border-radius:50%; color:var(--teal); background:var(--soft); font-size:24px; }
.error strong { color:var(--danger); }
dialog { width:min(680px,calc(100% - 28px)); border:0; border-radius:20px; padding:0; color:var(--ink); box-shadow:0 30px 90px rgba(15,35,38,.25); }
dialog::backdrop { background:rgba(14,29,32,.52); backdrop-filter:blur(3px); }
#link-form { padding:30px; }
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px; }
.modal-head h2 { margin:0; font-size:24px; }
.icon-button { font-size:28px; line-height:1; }
label { display:block; margin-top:17px; color:#405159; font-size:14px; font-weight:700; }
label span { color:var(--danger); }
label input,label select { display:block; width:100%; margin-top:8px; padding:12px 14px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:white; outline:none; }
label input:focus { border-color:#68b2b3; box-shadow:0 0 0 4px rgba(8,127,131,.08); }
label select:disabled { background:#f3f7f7; color:#66777c; }
.domain-field{margin:17px 0 0;padding:0;border:0}.domain-field legend{padding:0;color:#405159;font-size:14px;font-weight:700}.domain-field legend span{color:var(--danger)}.domain-field>p{margin:6px 0 11px;color:#8b989d;font-size:12px}.domain-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:190px;overflow:auto}.domain-option{position:relative;display:flex;align-items:center;gap:9px;min-height:44px;margin:0;padding:10px 35px 10px 12px;color:#526269;background:#f8faf9;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-weight:500}.domain-option:hover{border-color:#9ac8c7}.domain-option input{position:absolute;width:1px;height:1px;margin:0;opacity:0}.domain-option span{min-width:0}.domain-option b{display:block;overflow:hidden;color:#284047;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.domain-option>i{position:absolute;right:11px;display:grid;place-items:center;width:18px;height:18px;color:transparent;background:#fff;border:1px solid #cbd9da;border-radius:5px;font-size:11px;font-style:normal}.domain-option:has(input:checked){color:var(--teal);background:#edf8f6;border-color:#7ab9b7}.domain-option input:checked~i{color:#fff;background:var(--teal);border-color:var(--teal)}.domain-option:focus-within{box-shadow:0 0 0 3px rgba(8,127,131,.1)}
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:28px; }
#toast { position:fixed; left:50%; bottom:26px; opacity:0; transform:translate(-50%,20px); pointer-events:none; padding:11px 18px; border-radius:10px; color:white; background:#1e393d; box-shadow:0 8px 24px rgba(0,0,0,.18); transition:.2s; }
#toast.show { opacity:1; transform:translate(-50%,0); }
#toast.error { background:var(--danger); }
.not-found { min-height:100vh; display:grid; place-content:center; text-align:center; padding:30px; }
.not-found p { color:var(--muted); }
.not-found a { color:var(--teal); font-weight:700; }
@media (max-width:900px){.link-card{flex-direction:column}.card-side{flex:0 0 auto;width:100%}.analytics-panel{max-width:none}.card-actions{flex-direction:row}.card-actions button{flex:1}}
@media (max-width:680px) { .shell{padding-top:34px}.topbar{align-items:flex-start}.subtitle{display:none}h1{font-size:30px}.create-button{white-space:nowrap}.link-card{display:block;padding:20px}.card-side{display:block}.card-actions{margin-top:12px}.card-actions button{flex:1}.toolbar{display:flex;align-items:stretch;flex-direction:column}.search-wrap{max-width:none}.authorized-domains{order:2}.summary{order:3;align-self:flex-end}.domain-options{grid-template-columns:repeat(2,minmax(0,1fr))}.short-row a{font-size:14px} }
@media (max-width:430px){.domain-options{grid-template-columns:1fr}}

/* 登录：由 Aurora React 组件转换而来的原生 HTML/CSS 背景 */
.auth-page{position:relative;isolation:isolate;min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;background:#030407}.aurora{position:absolute;z-index:-1;inset:0;overflow:hidden;background:linear-gradient(135deg,rgba(30,58,138,.38),rgba(88,28,135,.28) 48%,rgba(49,46,129,.38))}.aurora-wave{position:absolute;inset:-15%;will-change:transform;transform-origin:center}.aurora-wave-1{opacity:.72;background:radial-gradient(ellipse 800px 600px at 50% 20%,rgba(59,130,246,.55) 0%,transparent 53%);animation:aurora1 8s ease-in-out infinite alternate}.aurora-wave-2{opacity:.62;background:radial-gradient(ellipse 650px 430px at 80% 30%,rgba(139,92,246,.62) 0%,transparent 52%);animation:aurora2 6s ease-in-out infinite alternate-reverse}.aurora-wave-3{opacity:.48;background:radial-gradient(ellipse 720px 520px at 20% 65%,rgba(236,72,153,.5) 0%,transparent 52%);animation:aurora3 10s ease-in-out infinite alternate}.aurora-wave-4{opacity:.42;background:radial-gradient(ellipse 900px 330px at 60% 84%,rgba(34,197,94,.38) 0%,transparent 52%);animation:aurora4 7s ease-in-out infinite alternate-reverse}.aurora-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.28),transparent 48%,rgba(0,0,0,.15));box-shadow:inset 0 0 160px rgba(0,0,0,.32)}
@keyframes aurora1{0%{transform:translate(-100px,-50px) rotate(0) scale(1)}50%{transform:translate(50px,30px) rotate(180deg) scale(1.1)}100%{transform:translate(100px,-30px) rotate(360deg) scale(.9)}}@keyframes aurora2{0%{transform:translate(80px,40px) rotate(45deg) scale(.8)}50%{transform:translate(-30px,-20px) rotate(225deg) scale(1.2)}100%{transform:translate(-80px,60px) rotate(405deg) scale(.9)}}@keyframes aurora3{0%{transform:translate(-50px,20px) rotate(90deg) scale(1.1)}50%{transform:translate(70px,-40px) rotate(270deg) scale(.8)}100%{transform:translate(-20px,50px) rotate(450deg) scale(1)}}@keyframes aurora4{0%{transform:translate(30px,-20px) rotate(135deg) scale(.9)}50%{transform:translate(-60px,10px) rotate(315deg) scale(1.1)}100%{transform:translate(40px,-60px) rotate(495deg) scale(.8)}}
.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:center;padding:10vw;color:#fff;text-shadow:0 3px 24px rgba(0,0,0,.24)}.auth-brand .eyebrow{color:#bfdbfe}.auth-brand h1{font-size:58px;line-height:1.12;letter-spacing:-.05em}.auth-brand>p:last-child{color:#d8dee9;margin-top:24px}
.auth-card-shell{position:relative;width:min(390px,calc(100% - 40px));margin:auto;border-radius:20px;perspective:1200px;animation:card-enter .7s ease-out both;transition:transform .35s ease}.auth-card-shell:hover{transform:translateY(-3px)}.auth-card-shell:before{content:"";position:absolute;inset:-12px;border-radius:28px;background:rgba(255,255,255,.11);filter:blur(22px);opacity:.32;animation:card-glow 4s ease-in-out infinite;pointer-events:none}.auth-card{position:relative;padding:36px 34px 32px;overflow:hidden;color:#fff;background:rgba(5,5,12,.58);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 32px 90px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.auth-card:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.035;background-image:linear-gradient(135deg,#fff .5px,transparent .5px),linear-gradient(45deg,#fff .5px,transparent .5px);background-size:30px 30px}.card-beams{position:absolute;z-index:2;inset:-1px;overflow:hidden;border-radius:20px;pointer-events:none}.beam{position:absolute;display:block;opacity:.7;filter:blur(1px)}.beam-top,.beam-bottom{width:48%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent)}.beam-right,.beam-left{width:2px;height:48%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.9),transparent)}.beam-top{top:0;left:-50%;animation:beam-top 3.5s ease-in-out infinite}.beam-right{right:0;top:-50%;animation:beam-right 3.5s .75s ease-in-out infinite}.beam-bottom{bottom:0;right:-50%;animation:beam-bottom 3.5s 1.5s ease-in-out infinite}.beam-left{left:0;bottom:-50%;animation:beam-left 3.5s 2.25s ease-in-out infinite}.brand-mark,.logo span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--teal);color:#fff;font-weight:900}.auth-logo{display:block;width:152px;height:auto;margin:0 auto 4px;filter:drop-shadow(0 5px 18px rgba(78,208,191,.16))}.auth-card h2{margin:16px 0 6px;text-align:center;font-size:25px;background:linear-gradient(#fff,rgba(255,255,255,.78));-webkit-background-clip:text;background-clip:text;color:transparent}.auth-card>p.muted{text-align:center;color:rgba(255,255,255,.48);font-size:13px}.auth-card label{margin-top:18px;color:rgba(255,255,255,.62);font-size:12px}.auth-card input{display:block;width:100%;height:44px;margin-top:8px;padding:11px 13px;color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:10px;outline:none;background:rgba(255,255,255,.055);transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}.auth-card input:hover{background:rgba(255,255,255,.075)}.auth-card input:focus{transform:scale(1.01);border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(255,255,255,.055)}.auth-card .primary{height:44px;color:#111;background:#fff;border-radius:10px;box-shadow:0 8px 28px rgba(255,255,255,.08)}.auth-card .primary:hover{color:#000;background:#f4efff;box-shadow:0 10px 32px rgba(216,180,254,.22);transform:translateY(-1px)}.wide{width:100%;margin-top:25px}.auth-switch{position:relative;margin:23px 0 0;padding-top:20px;text-align:center;border-top:1px solid rgba(255,255,255,.07)}.auth-switch a{color:rgba(255,255,255,.62);font-size:12px;text-decoration:none;transition:color .2s}.auth-switch a:hover{color:#fff}
/* 登录页品牌配色：取自 Elph Links Logo 的深青与薄荷绿 */
.auth-page{background:#020d0e}.aurora{background:linear-gradient(135deg,rgba(3,63,66,.72),rgba(5,105,103,.45) 48%,rgba(31,118,106,.5))}.aurora-wave-1{opacity:.76;background:radial-gradient(ellipse 800px 600px at 50% 20%,rgba(8,137,139,.66) 0%,transparent 55%)}.aurora-wave-2{opacity:.64;background:radial-gradient(ellipse 650px 430px at 80% 30%,rgba(100,190,164,.58) 0%,transparent 53%)}.aurora-wave-3{opacity:.5;background:radial-gradient(ellipse 720px 520px at 20% 65%,rgba(20,112,111,.62) 0%,transparent 54%)}.aurora-wave-4{opacity:.46;background:radial-gradient(ellipse 900px 330px at 60% 84%,rgba(126,211,185,.45) 0%,transparent 53%)}.aurora-shade{background:linear-gradient(to top,rgba(0,12,13,.46),transparent 48%,rgba(0,24,25,.25));box-shadow:inset 0 0 180px rgba(0,16,17,.42)}.auth-brand .eyebrow{color:#8bdac6}.auth-brand>p:last-child{color:#c5dcda}.auth-card-shell:before{background:rgba(97,196,172,.18)}.auth-card{background:rgba(2,20,21,.64);border-color:rgba(126,211,185,.16);box-shadow:0 32px 90px rgba(0,10,11,.58),inset 0 1px rgba(183,239,224,.06)}.beam-top,.beam-bottom{background:linear-gradient(90deg,transparent,rgba(139,218,198,.92),transparent)}.beam-right,.beam-left{background:linear-gradient(180deg,transparent,rgba(139,218,198,.92),transparent)}.auth-card input:focus{border-color:rgba(105,202,178,.46);box-shadow:0 0 0 3px rgba(75,180,155,.12)}.auth-card .primary:hover{background:#dff8f0;box-shadow:0 10px 32px rgba(91,198,171,.24)}
/* 登录框品牌细节 */
.auth-logo{width:210px;margin-bottom:16px}.auth-card .primary{color:#fff;background:#5cb19d;box-shadow:0 9px 26px rgba(92,177,157,.24)}.auth-card .primary:hover{color:#fff;background:#4d9e8b;box-shadow:0 11px 32px rgba(92,177,157,.32)}.auth-brand .eyebrow{letter-spacing:.24em}.auth-brand h1{letter-spacing:.018em}.auth-brand>p:last-child{letter-spacing:.016em;line-height:1.65}
/* 科技感层：透视网格、扫描线与缓慢旋转的能量环 */
.aurora:before{content:"";position:absolute;z-index:2;left:-12%;right:-12%;bottom:-27%;height:66%;pointer-events:none;background-image:linear-gradient(rgba(104,225,198,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(104,225,198,.12) 1px,transparent 1px);background-size:52px 38px;transform:perspective(520px) rotateX(61deg) scale(1.18);transform-origin:center bottom;mask-image:linear-gradient(to top,#000 22%,transparent 86%);-webkit-mask-image:linear-gradient(to top,#000 22%,transparent 86%);animation:tech-grid 12s linear infinite}.aurora:after{content:"";position:absolute;z-index:2;right:7vw;top:50%;width:480px;height:480px;border:1px solid rgba(117,229,203,.18);border-radius:50%;pointer-events:none;box-shadow:0 0 0 46px rgba(89,210,181,.035),0 0 0 112px rgba(89,210,181,.025),inset 0 0 42px rgba(83,214,184,.06);transform:translateY(-50%);animation:tech-orbit 18s linear infinite}.aurora-shade{z-index:3}.aurora-shade:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(119,225,201,.022) 4px);mix-blend-mode:screen}.auth-card{border-color:rgba(126,225,202,.22);box-shadow:0 32px 90px rgba(0,10,11,.58),0 0 0 1px rgba(71,190,166,.05),inset 0 1px rgba(183,239,224,.08)}
.aurora:after{border-style:dashed}
@keyframes tech-grid{to{background-position:0 38px,52px 0}}@keyframes tech-orbit{from{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}@keyframes card-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes card-glow{0%,100%{opacity:.2}50%{opacity:.42}}@keyframes beam-top{0%,20%{left:-50%}75%,100%{left:105%}}@keyframes beam-right{0%,20%{top:-50%}75%,100%{top:105%}}@keyframes beam-bottom{0%,20%{right:-50%}75%,100%{right:105%}}@keyframes beam-left{0%,20%{bottom:-50%}75%,100%{bottom:105%}}
@media(prefers-reduced-motion:reduce){.aurora-wave,.aurora:before,.aurora:after,.auth-card-shell,.auth-card-shell:before,.beam{animation:none}.auth-card-shell:hover{transform:none}}

/* 用户工作台 */
.app-layout{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:28px 18px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:11px;padding:0 8px;font-size:17px}.logo img{display:block;width:154px;height:auto}.nav-caption{margin:42px 12px 10px;color:#9aa6aa;font-size:11px;font-weight:800;letter-spacing:.13em}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.admin-nav{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#55656b;text-align:left}.sidebar nav button span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#edf5f4;color:var(--teal);font-size:12px;font-weight:800}.sidebar nav button.active,.sidebar nav button:hover,.admin-nav.active,.admin-nav:hover{background:var(--soft);color:var(--teal);font-weight:700}.sidebar-user{margin-top:auto;padding:14px 6px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:36px 1fr 28px;align-items:center;gap:9px}.sidebar-user small{display:block;color:var(--muted);margin-top:3px;max-width:100px;overflow:hidden;text-overflow:ellipsis}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#dff1ef;color:var(--teal);font-weight:800}.logout{border:0;background:transparent;color:var(--muted);padding:8px}.content{padding:48px clamp(28px,5vw,76px);min-width:0}.content-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px}.content-head h1{font-size:34px}.content-head .muted{margin:9px 0 0}.muted{color:var(--muted)}

.sidebar>.logo img{width:195px}

/* 后台 */
.admin-layout{min-height:100vh;display:grid;grid-template-columns:225px 1fr;background:#f4f7f7}.admin-sidebar{position:sticky;top:0;height:100vh;padding:28px 16px;background:#102f33;color:#fff;display:flex;flex-direction:column}.admin-sidebar .logo{padding:0 10px}.admin-logo{display:block}.admin-logo img{width:160px;filter:brightness(1.3) saturate(.9)}.admin-logo small{display:block;margin:7px 0 0 3px;color:#a9c3c5;font-size:11px;letter-spacing:.18em}.admin-sidebar nav{display:grid;gap:5px;margin-top:38px}.admin-nav{color:#b9cbcd}.admin-nav.active,.admin-nav:hover{background:rgba(255,255,255,.1);color:#fff}.back-workspace{margin-top:auto;padding:12px;color:#b9cbcd;text-decoration:none;font-size:14px}.admin-logout{color:#b9cbcd;text-align:left}.admin-main{padding:46px clamp(25px,5vw,70px);min-width:0}.admin-main>header{display:flex;justify-content:space-between;align-items:flex-end}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0 20px}.stats div{padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:14px}.stats span{color:var(--muted);font-size:13px}.stats b{display:block;margin-top:6px;font-size:28px}.table-card{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.table-card table{width:100%;border-collapse:collapse;min-width:680px}.table-card th,.table-card td{padding:16px 18px;text-align:left;border-bottom:1px solid #edf1f2;font-size:14px}.table-card th{color:#819095;background:#f8faf9;font-size:12px}.table-card td small{display:block;color:var(--muted);margin-top:4px}.pill{display:inline-block;padding:4px 9px;border-radius:20px;font-size:12px}.pill.on{color:#24734f;background:#e9f7ef}.pill.off{color:#a14848;background:#fff0ee}.table-btn{border:0;background:transparent;color:var(--teal);padding:5px 7px}.table-btn.red{color:var(--danger)}#admin-editor,#permission-editor{width:min(600px,calc(100% - 28px))}#admin-form,#permission-form{padding:30px}.permission-list{display:grid;gap:12px;max-height:50vh;overflow:auto}.permission-list section{padding:16px;border:1px solid var(--line);border-radius:12px}.permission-list h3{margin:0 0 10px}.check{display:flex;align-items:center;gap:9px;margin:8px 0;font-weight:500}.check input{width:17px;height:17px;margin:0}.check span small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:400}.check.occupied{color:#829094;cursor:not-allowed}.check.occupied input{cursor:not-allowed}

@media(max-width:800px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-card-shell{width:min(390px,calc(100% - 30px))}.auth-card{padding:32px 26px}.app-layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:16px}.sidebar .logo,.nav-caption{display:none}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{white-space:nowrap;width:auto}.sidebar-user{display:none}.content{padding:28px 18px}.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;display:block}.admin-sidebar nav{display:flex;margin-top:22px}.back-workspace,.admin-logout{display:inline-block;margin-top:18px}.admin-main{padding:28px 16px}.stats{grid-template-columns:repeat(3,1fr)}}
