:root{--ink: #0f172a;--ink-soft: #334155;--muted: #64748b;--line: #e8ecf2;--line-soft: #f1f4f8;--bg: #f6f8fb;--card: #ffffff;--primary: #4f6bff;--primary-deep: #3b54e0;--primary-soft: rgba(79, 107, 255, .1);--nav-top: #1b2436;--nav-bottom: #141b2a;--nav-soft: rgba(255, 255, 255, .07);--danger: #e5484d;--danger-soft: #fdeceb;--success: #16a34a;--success-soft: #e7f6ee;--radius: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--shadow-nav: 0 10px 30px rgba(15, 23, 42, .18);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--primary);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease,border-color .15s ease}button:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cfd6e0;border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#b7c0cd}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 20% -10%,#26324a 0%,transparent 55%),radial-gradient(900px 500px at 100% 110%,#2b2050 0%,transparent 50%),linear-gradient(160deg,#141b2a,#0f1420)}.card{width:408px;max-width:100%;background:var(--card);border-radius:18px;padding:36px 34px 30px;box-shadow:0 24px 60px #080c1873}.card h1{margin:0;font-size:25px;font-weight:700;letter-spacing:.2px}.card .brand-kicker{margin:0 0 16px;color:var(--primary);font-size:12px;font-weight:700;letter-spacing:2px}.card p,.muted{color:var(--muted);font-size:13px;line-height:1.6}.card input,.toolbar input,.detail input:not([type=checkbox]),.studio input[type=text],.studio input[type=number]{width:100%;height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 13px;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.card input{margin:9px 0}.card input:focus,.toolbar input:focus,.toolbar select:focus,.detail input:focus,.studio input:focus,select:focus,input[type=date]:focus,.edit-grid input:focus,.edit-grid select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.card button,.toolbar button,table button,.links button,.studio button,button.more{border:0;background:var(--primary);color:#fff;border-radius:var(--radius-sm);height:38px;padding:0 16px;font-weight:600;box-shadow:0 1px 2px #3b54e040}.card button{width:100%;height:46px;margin-top:10px;font-size:15px}.card button:hover,.toolbar button:hover,table button:hover,.links button:hover,.studio button:hover,button.more:hover{background:var(--primary-deep)}.card button:active,.toolbar button:active,table button:active,.studio button:active,button.more:active{transform:translateY(1px)}.err{color:var(--danger);min-height:20px;font-size:13px}.layout{display:flex;min-height:100vh}aside{width:252px;flex:none;background:linear-gradient(180deg,var(--nav-top),var(--nav-bottom));color:#cdd5e1;padding:22px 14px 18px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;box-shadow:var(--shadow-nav);z-index:2}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 14px;border-bottom:1px solid rgba(255,255,255,.07)}.mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800;box-shadow:0 6px 16px #4f6bff66}.brand strong{display:block;color:#fff;font-size:15px;font-weight:700}.brand small{color:#8793a6;font-size:12px}nav{display:flex;flex-direction:column;gap:2px}.nav-label{margin:14px 10px 6px;color:#6b788c;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}aside a{position:relative;padding:10px 12px;border-radius:var(--radius-sm);color:#cdd5e1;font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease}aside a:hover{background:var(--nav-soft);color:#fff}aside a.router-link-active{background:var(--primary-soft);color:#fff}aside a.router-link-active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--primary)}aside button.logout{margin-top:auto;height:40px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#cdd5e1;border-radius:var(--radius-sm);font-weight:500}aside button.logout:hover{background:var(--nav-soft);color:#fff}main{flex:1;min-width:0;padding:30px 36px 48px;max-width:1360px}main h2{margin:0 0 18px;font-size:24px;font-weight:700;letter-spacing:-.2px}main h3{margin:24px 0 10px;font-size:15px;font-weight:650}.toolbar{display:flex;gap:10px;margin-bottom:16px;align-items:center;flex-wrap:wrap}.toolbar input{flex:1;width:auto;margin:0;min-width:180px}.toolbar button,.toolbar select,.toolbar input[type=date]{flex:none}.toolbar select,.toolbar input[type=date],.detail select{height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 12px;background:#fff;color:var(--ink)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line-soft);font-size:14px;vertical-align:middle}tr:last-child td{border-bottom:0}th{background:#f8fafc;color:#5b6778;font-weight:650;font-size:11px;letter-spacing:.5px;text-transform:uppercase}tbody tr{transition:background .12s ease}tbody tr:hover td{background:#f6f9ff}table button.ghost,button.ghost,.studio button.ghost{background:#fff;color:var(--ink-soft);border:1px solid var(--line);box-shadow:none}table button.ghost:hover,button.ghost:hover,.studio button.ghost:hover{background:#f7f9fb;color:var(--ink);border-color:#d7dee8}.detail,.studio{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 16px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.detail p{margin:6px 0}.links{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}table img,table video{width:96px;max-height:72px;object-fit:cover;border-radius:8px;background:#111;display:block}table a{margin-right:10px;font-weight:600}.text-link{color:var(--primary);font-weight:600}.detail label{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-size:14px}.detail input:not([type=checkbox]){max-width:320px}button.more{margin-top:14px}td small{display:block;color:var(--muted);margin-top:2px}.studio h3{margin:0 0 6px}.studio h3 small{color:var(--muted);font-weight:400;margin-left:6px}.studio .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.studio .grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-soft)}.studio .check{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:13px}.studio .row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:14px}.studio input[type=text],.studio input[type=number]{padding:0 12px}.profile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 18px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.profile-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.profile-top .links{margin:0}.who{margin:0 0 4px;font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin:0}.facts div{min-width:0}.facts dt{margin:0 0 4px;color:var(--muted);font-size:12px}.facts dd{margin:0;font-size:14px;line-height:1.5;word-break:break-all}.badge{display:inline-flex;align-items:center;height:23px;padding:0 10px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:12px;font-weight:650;border:1px solid rgba(22,163,74,.15)}.badge.muted{background:#eef1f6;color:var(--muted);border-color:var(--line)}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#e5484d2e}.ops{white-space:nowrap}.empty-cell{text-align:center;color:var(--muted);padding:28px 16px}.pager{display:flex;align-items:center;gap:12px;margin:14px 0 8px;color:var(--muted);font-size:13px}.edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}.edit-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-soft)}.edit-grid label.span,.edit-grid .span{grid-column:1 / -1}.edit-grid .span{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-soft)}.announce-editor{margin-top:2px}.editor-bar{display:flex;gap:8px}.editor-bar button{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:600;box-shadow:none}.editor-bar button:hover{background:var(--bg)}.editor-box{min-height:140px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:#fff;line-height:1.6}.editor-box:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.editor-box img{display:block;max-width:280px;margin:8px 0;border-radius:8px}.editor-hint{margin:8px 0 0}.edit-grid textarea{min-height:96px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;background:#fff;color:var(--ink);resize:vertical;font:inherit}.edit-grid input,.edit-grid select{height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 12px;background:#fff;color:var(--ink)}.checks{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:14px}.check{display:flex;align-items:center;gap:7px;font-size:14px}button.danger{background:#fff;color:var(--danger);border:1px solid rgba(229,72,77,.35);box-shadow:none}button.danger:hover{background:var(--danger-soft);color:var(--danger)}@media (max-width: 1100px){.facts,.studio .grid,.edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
