*{box-sizing:border-box}:root{--bg:#f7f8fb;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--soft:#f1f5f9;--black:#020617;--blue:#0284c7;--green:#059669;--red:#dc2626;--shadow:0 24px 80px #0f172a14;--radius:28px}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.shell{width:min(1180px,100% - 40px);margin:0 auto}.site-header{z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe0;border-bottom:1px solid #e2e8f0db;position:sticky;top:0}.header-inner,.header-actions,.brand,.hero-actions,.row-actions,.modal-actions,.link-actions{align-items:center;display:flex}.header-inner{justify-content:space-between;gap:16px;padding:14px 0}.brand{color:inherit;text-align:left;background:0 0;border:0;gap:12px}.brand-icon{background:var(--black);color:#fff;border-radius:16px;place-items:center;width:42px;height:42px;display:grid}.brand-title,.brand-subtitle{display:block}.brand-title{letter-spacing:-.02em;font-weight:800}.brand-subtitle{color:var(--muted);margin-top:2px;font-size:12px}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.btn{border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-weight:800;transition:all .18s;display:inline-flex}.btn-primary{background:var(--black);color:#fff}.btn-secondary{color:var(--text);border-color:var(--line);background:#f8fafc}.btn-danger{color:var(--red);background:#fff1f2;border-color:#fecdd3}.btn:hover{transform:translateY(-1px)}.full{width:100%}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px #0f172a0a}.hero{background:radial-gradient(circle at 0 0,#3b82f624,#0000 34%),radial-gradient(circle at 100% 0,#0ea5e91a,#0000 30%)}.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:40px;padding-top:70px;padding-bottom:60px;display:grid}.eyebrow,.admin-eyebrow{border:1px solid var(--line);color:#334155;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;display:inline-flex;box-shadow:0 1px 2px #0f172a0a}.hero h1{max-width:760px;color:var(--black);letter-spacing:-.06em;margin:18px 0 0;font-size:clamp(44px,6vw,76px);line-height:1.04}.hero h1 span{color:var(--blue);display:block}.hero-copy>p{color:#475569;max-width:700px;margin:22px 0 0;font-size:18px;line-height:1.9}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:620px;margin-top:28px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:24px;padding:18px}.stat-card strong{color:var(--black);font-size:28px;display:block}.stat-card span{color:var(--muted);margin-top:3px;font-size:14px;display:block}.weekly-card{box-shadow:var(--shadow);border-radius:34px;padding:30px}.weekly-top{justify-content:space-between;margin-bottom:22px;display:flex}.weekly-top span,.weekly-top strong{border-radius:999px;padding:6px 12px;font-size:12px}.weekly-top span{color:#0369a1;background:#eff6ff}.weekly-top strong{color:#047857;background:#ecfdf5}.weekly-card h2{letter-spacing:-.04em;margin:0;font-size:30px}.weekly-card>p{color:#475569;line-height:1.85}.weekly-points{gap:12px;margin:24px 0;display:grid}.weekly-points div{color:#334155;background:#f8fafc;border-radius:18px;align-items:center;gap:10px;padding:13px 14px;display:flex}.weekly-points svg{color:var(--green)}.main-content{padding:30px 0 70px}.category-board{background:#ffffffe6;border:1px solid #e2e8f0db;border-radius:34px;padding:24px;box-shadow:0 10px 30px #0f172a0a}.section-heading,.admin-list-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h2,.admin-list-head h2{color:var(--black);letter-spacing:-.04em;margin:0;font-size:28px}.section-heading p,.admin-list-head p{color:var(--muted);margin:6px 0 0;font-size:14px}.search-box{align-items:center;min-width:320px;display:flex;position:relative}.search-box svg{color:#94a3b8;position:absolute;left:14px}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#f8fafc;border-radius:18px;outline:none;padding:13px 15px;transition:all .18s}.search-box input{padding-left:42px}input:focus,select:focus,textarea:focus{background:#fff;border-color:#38bdf8;box-shadow:0 0 0 4px #38bdf826}.category-list{gap:14px;margin-top:24px;display:grid}.category-row-card{border:1px solid var(--line);background:#fff;border-radius:28px;overflow:hidden}.category-row-card.open{border-color:#bfdbfe;box-shadow:0 16px 50px #0f172a0f}.category-row-head{text-align:left;background:#fff;border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:20px;display:flex}.category-row-card.open .category-row-head{background:#eff6ff}.cat-main{align-items:center;gap:14px;display:flex}.cat-icon{background:var(--black);color:#fff;border-radius:18px;place-items:center;width:48px;height:48px;display:grid}.cat-main strong{letter-spacing:-.03em;font-size:20px;display:block}.cat-main p{color:var(--muted);margin:5px 0 0}.cat-side{color:#334155;align-items:center;gap:12px;font-weight:900;display:flex}.cat-side span{background:#fff;border-radius:999px;padding:8px 12px}.category-inside{border-top:1px solid var(--line);padding:20px}.sub-category-row{gap:10px;padding-bottom:18px;display:flex;overflow-x:auto}.sub-pill{color:#334155;background:#f1f5f9;border:0;border-radius:999px;flex:none;align-items:center;gap:7px;padding:10px 14px;font-weight:800;display:inline-flex}.sub-pill.active{background:var(--black);color:#fff}.sub-groups{gap:26px;display:grid}.sub-group-title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sub-group-title h3{letter-spacing:-.04em;margin:0;font-size:22px}.sub-group-title span{color:var(--muted);font-size:14px}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.project-card{flex-direction:column;min-height:100%;transition:all .22s;display:flex}.project-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px #0f172a14}.project-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags span,.discount{color:#334155;background:#f1f5f9;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.tags .blue{color:#0369a1;background:#eff6ff}.tags .green{color:#047857;background:#ecfdf5}.discount{background:var(--black);color:#fff;flex-shrink:0}.project-card h3{color:var(--black);letter-spacing:-.04em;margin:0;font-size:22px;line-height:1.35}.project-card>p{color:#475569;line-height:1.85}.meta-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0;display:grid}.meta-grid div,.mini-steps,.hint-box,.warning-box,.error-box,.empty-small,.link-panel,.tutorial-box{background:#f8fafc;border-radius:20px;padding:14px}.meta-grid strong{color:#334155;align-items:center;gap:6px;font-size:12px;display:flex}.meta-grid span{color:var(--muted);margin-top:6px;font-size:12px;display:block}.mini-steps{margin-bottom:20px}.mini-steps strong{margin-bottom:10px;display:block}.mini-steps ol{color:#475569;margin:0;padding-left:18px;font-size:14px;line-height:1.8}.login-wrap{place-items:center;min-height:calc(100vh - 146px);padding:44px 20px;display:grid}.login-card{width:min(450px,100%);box-shadow:var(--shadow)}.login-title,.admin-card-title{align-items:center;gap:14px;margin-bottom:22px;display:flex}.login-title>span,.admin-card-title>span{background:var(--black);color:#fff;border-radius:18px;place-items:center;width:48px;height:48px;display:grid}.login-title h1,.admin-card-title h2{color:var(--black);letter-spacing:-.04em;margin:0}.login-title p,.admin-card-title p{color:var(--muted);margin:5px 0 0;font-size:14px}.form-stack{gap:14px;display:grid}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.warning-box{color:#92400e;background:#fffbeb;gap:12px;margin-top:18px;line-height:1.75;display:flex}.error-box{color:#b91c1c;background:#fef2f2}.admin-page{padding:40px 0 64px}.admin-hero{background:var(--black);color:#fff;border-radius:34px;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:26px;padding:32px;display:flex}.admin-eyebrow{color:#e0f2fe;background:#ffffff1a;border-color:#ffffff1a}.admin-hero h1{letter-spacing:-.06em;margin:18px 0 0;font-size:clamp(36px,5vw,56px);line-height:1.05}.admin-hero p{color:#cbd5e1;max-width:680px;margin:18px 0 0;line-height:1.8}.admin-stats{grid-template-columns:repeat(3,1fr);gap:12px;width:min(440px,100%);display:grid}.stat-mini{background:#ffffff1a;border-radius:22px;padding:16px}.stat-mini svg{color:#bae6fd}.stat-mini strong,.stat-mini span{display:block}.stat-mini strong{margin-top:8px;font-size:28px}.stat-mini span{color:#cbd5e1;font-size:12px}.admin-grid{gap:20px;margin-bottom:20px;display:grid}.admin-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid.split{grid-template-columns:.95fr 1.05fr}.code-input{color:#e2e8f0;background:#020617;min-height:350px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.7}.hint-box{color:#475569;margin-top:14px;line-height:1.75}.admin-list-head{margin-bottom:18px}.admin-list-head>span{color:#334155;background:#f1f5f9;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800}.admin-list{gap:12px;display:grid}.admin-list-item{border:1px solid var(--line);border-radius:22px;padding:16px;transition:all .18s}.admin-list-item:hover{background:#f0f9ff6b;border-color:#bae6fd}.admin-list-item h3{margin:10px 0 0}.admin-list-item p{color:#475569;line-height:1.7}.admin-list-item small{color:#0369a1;word-break:break-all;display:block}.row-actions{flex-wrap:wrap;gap:10px;margin-top:14px}.empty-small{text-align:center;color:var(--muted)}.search-box.compact{min-width:240px}.modal-mask{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0206177a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:34px;width:min(850px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 120px #0f172a3d}.detail-modal{width:min(920px,100%)}.modal-head{z-index:1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;justify-content:space-between;gap:16px;padding:22px;display:flex;position:sticky;top:0}.modal-head h3{letter-spacing:-.04em;margin:6px 0 0;font-size:28px}.modal-head p{color:var(--muted);margin:6px 0 0}.back-link{color:#0369a1;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:800;display:inline-flex}.modal-body{gap:14px;padding:22px;display:grid}.detail-summary p{color:#475569;line-height:1.8}.link-panel{justify-content:space-between;align-items:center;gap:14px;display:flex}.link-panel strong{font-size:16px}.link-panel p{color:#0369a1;word-break:break-all;margin:8px 0 0}.link-actions{flex-wrap:wrap;gap:10px}.tutorial-box h4{margin:0 0 14px;font-size:20px}.tutorial-box ol{gap:12px;margin:0;padding:0;list-style:none;display:grid}.tutorial-box li{gap:12px;display:flex}.tutorial-box li span{border:1px solid var(--line);background:#fff;border-radius:999px;flex:none;place-items:center;width:26px;height:26px;font-weight:900;display:grid}.tutorial-box li p{color:#475569;margin:0;line-height:1.8}.footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);background:#fff;padding:28px 20px;font-size:14px}@media (width<=980px){.hero-grid,.admin-grid.two,.admin-grid.split{grid-template-columns:1fr}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-hero,.link-panel{flex-direction:column;align-items:stretch}.admin-stats{width:100%}}@media (width<=720px){.shell{width:min(100% - 28px,1180px)}.header-inner,.section-heading,.admin-list-head,.modal-head,.category-row-head{flex-direction:column;align-items:stretch}.hero-grid{padding-top:44px;padding-bottom:44px}.hero h1{font-size:42px}.stats-grid,.admin-stats,.form-grid,.meta-grid,.projects-grid{grid-template-columns:1fr}.search-box,.search-box.compact{width:100%;min-width:0}.header-actions .btn{flex:1}}.category-select-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.category-select-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:28px;align-items:center;gap:14px;min-height:132px;padding:18px;transition:all .18s;display:flex}.category-select-card:hover,.category-select-card.active{background:#eff6ff;border-color:#bfdbfe;transform:translateY(-2px);box-shadow:0 14px 38px #0f172a0f}.category-select-card strong{letter-spacing:-.03em;font-size:19px;display:block}.category-select-card p{color:var(--muted);margin:6px 0 0;line-height:1.55}.category-select-card em{color:#0369a1;margin-top:10px;font-size:13px;font-style:normal;font-weight:900;display:block}.category-expanded-panel{background:#fff;border:1px solid #bfdbfe;border-radius:28px;margin-top:18px;overflow:hidden;box-shadow:0 16px 50px #0f172a0f}.expanded-head{background:#eff6ff;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.category-inside.flat{border-top:1px solid var(--line)}@media (width<=980px){.category-select-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.category-select-grid{scroll-snap-type:x mandatory;padding-bottom:8px;display:flex;overflow-x:auto}.category-select-card{scroll-snap-align:start;min-width:270px}.expanded-head{flex-direction:column;align-items:stretch}}.tutorial-links-panel{background:#f8fafc;border-radius:20px;padding:14px}.tutorial-links-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tutorial-links-head>strong{font-size:16px}.tutorial-links-head>span{color:#0369a1;background:#e0f2fe;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.tutorial-links-list{gap:10px;display:grid}.tutorial-link-item{border:1px solid var(--line);background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.tutorial-link-item p{color:#0369a1;word-break:break-all;margin:6px 0 0;font-size:13px}@media (width<=720px){.tutorial-link-item{flex-direction:column;align-items:stretch}}
