*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--abyss: #050a13;--deep: #080f1c;--surface: rgba(15, 25, 45, .55);--surface-solid: #0f192d;--elevated: rgba(20, 35, 55, .6);--raised: rgba(28, 45, 68, .5);--cherenkov: #00b8de;--cherenkov-dim: #006d8a;--cherenkov-glow: #56cee8;--cherenkov-ghost: rgba(0, 180, 216, .06);--cherenkov-halo: rgba(0, 180, 216, .12);--amber: #f0a05a;--amber-light: #f5b878;--amber-glow: rgba(240, 160, 90, .12);--danger: #e0735d;--danger-glow: rgba(224, 115, 93, .12);--success: #2ea899;--success-glow: rgba(46, 168, 153, .12);--warning: #e4c060;--text: #d5dfe8;--text-bright: #ecf2f7;--text-dim: #8a9bb0;--text-muted: #5c6e84;--border: rgba(40, 65, 95, .4);--border-glow: rgba(0, 180, 216, .18);--radius: 6px;--radius-lg: 10px;--shadow: 0 2px 16px rgba(0,0,0,.25);--shadow-lg: 0 4px 24px rgba(0,0,0,.35), 0 0 0 1px var(--border-glow);--max-width: 1200px}html{font-size:16px;scroll-behavior:smooth}body{font-family:Georgia,"Noto Serif SC",SimSun,Microsoft YaHei,serif;color:var(--text);background:var(--abyss);background-image:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(0,170,210,.07) 0%,transparent 70%),radial-gradient(ellipse 40% 60% at 80% 80%,rgba(0,150,200,.04) 0%,transparent 60%),radial-gradient(ellipse 30% 40% at 20% 30%,rgba(60,200,230,.03) 0%,transparent 50%);background-attachment:fixed;line-height:1.7;min-height:100vh;text-shadow:0 0 2px rgba(180,210,230,.15)}a{color:var(--cherenkov);text-decoration:none;transition:color .2s}a:hover{color:var(--cherenkov-glow)}img{max-width:100%;height:auto}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1}.navbar{background:#080f1cb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(40,65,95,.3);padding:0 1rem;position:sticky;top:0;z-index:100}.navbar-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;height:60px;gap:1rem}.navbar-logo{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--cherenkov-glow);white-space:nowrap;letter-spacing:.02em}.navbar-logo .logo-icon{font-size:1.4rem;filter:drop-shadow(0 0 6px var(--cherenkov-dim))}.navbar-links{display:flex;gap:.25rem;margin-left:auto;align-items:center}.navbar-links a,.navbar-links button{padding:.4rem .75rem;border-radius:var(--radius);font-size:.9rem;color:var(--text-dim);transition:all .2s;border:none;background:none;cursor:pointer;font-family:inherit;white-space:nowrap}.navbar-links a:hover,.navbar-links button:hover{color:var(--cherenkov-glow);background:var(--cherenkov-ghost)}.navbar-links a.active{color:var(--cherenkov);font-weight:600;background:var(--cherenkov-ghost)}.nav-user{font-size:.85rem;color:var(--text-dim);margin-right:.5rem;padding:.25rem .5rem;border-left:1px solid var(--border)}.navbar-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;color:var(--text-dim)}.footer{background:#080f1c80;border-top:1px solid rgba(40,65,95,.3);color:var(--text-muted);padding:2rem 1rem 1rem;margin-top:auto;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.footer-inner{max-width:var(--max-width);margin:0 auto;text-align:center}.footer p{margin-bottom:.5rem;font-size:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.5rem;border-radius:var(--radius);font-size:.95rem;font-weight:500;cursor:pointer;border:none;transition:all .25s;font-family:inherit;letter-spacing:.01em}.btn-primary{background:var(--cherenkov);color:var(--abyss);box-shadow:0 0 16px #00b4d840}.btn-primary:hover{background:var(--cherenkov-glow);box-shadow:0 0 28px #00b4d866;transform:translateY(-1px)}.btn-accent{background:#f0a05a26;border:1px solid rgba(240,160,90,.35);color:var(--amber);box-shadow:0 0 14px #f0a05a1a}.btn-accent:hover{background:#f0a05a38;border-color:#f0a05a80;color:var(--amber-light);box-shadow:0 0 24px #f0a05a33;transform:translateY(-1px)}.btn-outline{background:transparent;border:1.5px solid var(--cherenkov-dim);color:var(--cherenkov)}.btn-outline:hover{background:var(--cherenkov-ghost);border-color:var(--cherenkov);color:var(--cherenkov-glow)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 0 12px var(--danger-glow)}.btn-danger:hover{opacity:.9;box-shadow:0 0 20px var(--danger-glow)}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.3rem;font-weight:500;font-size:.9rem;color:var(--text-dim)}.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .8rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-family:inherit;transition:all .25s;background:#0f192d59;color:var(--text)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--cherenkov);box-shadow:0 0 0 3px var(--cherenkov-ghost),0 0 12px var(--cherenkov-ghost);background:#1423378c}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--danger);font-size:.85rem;margin-top:.25rem}.form-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-dim)}.form-checkbox input{width:1rem;height:1rem;accent-color:var(--cherenkov)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:all .35s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card:hover{border-color:var(--border-glow);box-shadow:0 0 30px var(--cherenkov-ghost),inset 0 0 30px #00b4d805}.hero{background:radial-gradient(ellipse 60% 40% at 50% 30%,rgba(0,170,210,.12) 0%,transparent 60%),linear-gradient(180deg,rgba(8,15,28,.8) 0%,var(--abyss) 100%);color:#fff;padding:5rem 1rem;text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,160,200,.012) 2px,rgba(0,160,200,.012) 4px);pointer-events:none}.hero h1{font-size:2.2rem;margin-bottom:.75rem;font-weight:700;letter-spacing:.03em;text-shadow:0 0 60px rgba(0,170,210,.25),0 0 8px rgba(180,210,240,.15)}.hero p{font-size:1.1rem;opacity:.75;margin-bottom:1.75rem;max-width:600px;margin-left:auto;margin-right:auto}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:var(--max-width);margin:-2rem auto 2rem;padding:0 1rem;position:relative;z-index:10}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;transition:all .35s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.stat-card:hover{border-color:var(--border-glow);box-shadow:0 0 24px var(--cherenkov-ghost)}.stat-card .stat-number{font-size:2rem;font-weight:700;color:var(--cherenkov-glow);text-shadow:0 0 12px rgba(72,202,228,.3)}.stat-card .stat-label{font-size:.85rem;color:var(--text-dim);margin-top:.25rem}.section{max-width:var(--max-width);margin:2rem auto;padding:0 1rem}.section-title{font-size:1.4rem;font-weight:700;margin-bottom:1rem;color:var(--text);letter-spacing:.02em}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.resource-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:all .35s;display:flex;flex-direction:column;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.resource-card:hover{border-color:var(--border-glow);box-shadow:0 0 28px var(--cherenkov-ghost),inset 0 0 20px #00b4d804;transform:translateY(-2px)}.resource-card .rc-category{display:inline-block;font-size:.72rem;background:var(--cherenkov-ghost);color:var(--cherenkov-glow);padding:.15rem .6rem;border-radius:999px;margin-bottom:.5rem;width:fit-content;border:1px solid rgba(0,180,216,.15)}.resource-card .rc-title{font-size:1.05rem;font-weight:600;margin-bottom:.4rem;line-height:1.4}.resource-card .rc-title a{color:var(--text)}.resource-card .rc-title a:hover{color:var(--cherenkov)}.resource-card .rc-desc{font-size:.85rem;color:var(--text-dim);margin-bottom:.75rem;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-card .rc-meta{font-size:.8rem;color:var(--text-muted);display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--border)}.content-layout{display:grid;grid-template-columns:220px 1fr;gap:1.5rem}.filter-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;height:fit-content;position:sticky;top:80px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.filter-panel h3{font-size:.95rem;margin-bottom:.75rem;color:var(--text-dim);letter-spacing:.03em;text-transform:uppercase}.filter-categories{list-style:none}.filter-categories li{margin-bottom:.15rem}.filter-categories button{width:100%;text-align:left;padding:.4rem .6rem;border:none;background:none;cursor:pointer;border-radius:var(--radius);font-size:.9rem;font-family:inherit;color:var(--text-dim);transition:all .15s}.filter-categories button:hover{background:var(--cherenkov-ghost);color:var(--cherenkov)}.filter-categories button.active{background:var(--cherenkov);color:var(--abyss);font-weight:600}.pagination{display:flex;justify-content:center;gap:.25rem;margin-top:2rem}.pagination button{min-width:2.25rem;height:2.25rem;border:1px solid var(--border);background:#0f192d66;border-radius:var(--radius);cursor:pointer;font-size:.9rem;font-family:inherit;color:var(--text-dim);transition:all .15s}.pagination button:hover:not(:disabled){border-color:var(--cherenkov);color:var(--cherenkov)}.pagination button.active{background:var(--cherenkov);color:var(--abyss);border-color:var(--cherenkov);font-weight:600;box-shadow:0 0 12px #00b4d840}.pagination button:disabled{opacity:.25;cursor:not-allowed}.detail-header{margin-bottom:1.5rem}.detail-header h1{font-size:1.5rem;margin-bottom:.5rem}.detail-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;background:#0a142380;border:1px solid var(--border);padding:1rem;border-radius:var(--radius-lg);margin-bottom:1.5rem;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.detail-meta-item{font-size:.9rem;color:var(--text-dim)}.detail-meta-item strong{color:var(--text)}.detail-desc{line-height:1.8;margin-bottom:1.5rem}.download-section{text-align:center;padding:2.5rem 2rem;background:#0a142366;border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.upload-page{max-width:700px;margin:2rem auto;padding:0 1rem}.upload-page h1{margin-bottom:1.5rem}.upload-success{max-width:600px;margin:3rem auto;text-align:center;padding:0 1rem}.upload-success .success-icon{font-size:4rem;margin-bottom:1rem}.upload-success h1{color:var(--success);margin-bottom:.5rem}.upload-success p{color:var(--text-dim);margin-bottom:1.5rem;line-height:1.8}.auth-page{max-width:440px;margin:3rem auto;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 0 40px #0000004d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.auth-page h1{text-align:center;margin-bottom:1.5rem}.auth-page .auth-link{text-align:center;margin-top:1rem;font-size:.9rem;color:var(--text-dim)}.auth-page .auth-link a{color:var(--cherenkov)}.admin-layout{display:grid;grid-template-columns:200px 1fr;min-height:calc(100vh - 160px)}.admin-sidebar{background:#080f1c99;border-right:1px solid var(--border);padding:1.5rem 0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.admin-sidebar a{display:block;padding:.6rem 1.5rem;color:var(--text-dim);font-size:.9rem;transition:all .15s}.admin-sidebar a:hover,.admin-sidebar a.active{background:var(--cherenkov-ghost);color:var(--cherenkov);border-right:2px solid var(--cherenkov)}.admin-content{padding:1.5rem}.admin-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;font-size:.9rem;border-bottom:1px solid var(--border);color:var(--text-dim)}.admin-table th{background:#0a142699;font-weight:600;color:var(--text-bright);text-transform:uppercase;font-size:.78rem;letter-spacing:.04em}.admin-table tr:hover td{background:var(--cherenkov-ghost)}.admin-table a{color:var(--cherenkov)}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:500}.badge-success{background:var(--success-glow);color:var(--success)}.badge-warning{background:var(--amber-glow);color:var(--amber)}.badge-danger{background:var(--danger-glow);color:var(--danger)}.text-center{text-align:center}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.loading{text-align:center;padding:2rem;color:var(--text-muted)}.empty{text-align:center;padding:3rem;color:var(--text-muted);font-size:1rem}.error-message{background:var(--danger-glow);color:var(--danger);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;border:1px solid rgba(231,111,81,.2)}.success-message{background:var(--success-glow);color:var(--success);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;border:1px solid rgba(42,157,143,.2)}.toast{position:fixed;top:1rem;right:1rem;z-index:1000;padding:.75rem 1.25rem;border-radius:var(--radius);animation:slideIn .3s}.toast-error{background:var(--danger);color:#fff}.toast-success{background:var(--success);color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.navbar-links{display:none}.navbar-links.open{display:flex;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:#080f1cd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:.5rem;border-bottom:1px solid var(--border)}.navbar-toggle{display:block;margin-left:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-layout{grid-template-columns:1fr}.filter-panel{position:static}.admin-layout{grid-template-columns:1fr}.admin-sidebar{display:flex;overflow-x:auto;padding:.5rem}.admin-sidebar a{white-space:nowrap;padding:.4rem .75rem;border-right:none}.hero h1{font-size:1.5rem}.resource-grid{grid-template-columns:1fr}.detail-meta{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr 1fr}.detail-meta{grid-template-columns:1fr}.hero{padding:3rem 1rem}.hero h1{font-size:1.3rem}}
