:root{--bg: #f4f8fb;--surface: #ffffff;--border: #e2eaf1;--text: #132033;--muted: #5b6b7f;--c1: #0ea5e9;--c2: #3b82f6;--c3: #7c3aed;--grad: linear-gradient(135deg, #0ea5e9 0%, #3b82f6 55%, #7c3aed 100%);--radius: 16px;--shadow: 0 10px 30px rgba(14, 165, 233, .12)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;color:var(--text);background:radial-gradient(1100px 500px at 8% -8%,rgba(14,165,233,.12),transparent 60%),radial-gradient(900px 450px at 100% 0%,rgba(124,58,237,.1),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}.page{max-width:980px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding:0 22px}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 4px 8px}.brand{display:flex;align-items:center;gap:12px}.logo{display:grid;place-items:center;width:46px;height:46px;font-size:26px;border-radius:14px;background:var(--grad);box-shadow:var(--shadow)}.brand h1{margin:0;font-size:21px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.brand p{margin:2px 0 0;font-size:12px;color:var(--muted)}.tabs{display:flex;gap:8px}.tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;padding:9px 16px;border-radius:999px;cursor:pointer;transition:all .15s ease}.tabs button:hover{border-color:var(--c2)}.tabs button.active{background:var(--grad);color:#fff;border-color:transparent;font-weight:600}.content{flex:1;padding:16px 0 40px}.intro{text-align:center;margin:12px 0 26px}.intro h2{margin:0;font-size:28px}.intro p{margin:8px 0 0;color:var(--muted);font-size:15px}.hint{text-align:center;color:var(--muted);padding:48px 0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.work-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.work-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.work-cover{height:120px;display:grid;place-items:center;font-size:56px;background:var(--grad)}.work-cover img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.2))}.work-body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}.work-body h3{margin:0;font-size:17px}.work-desc{margin:0;font-size:13.5px;line-height:1.6;color:var(--muted);flex:1}.work-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:12px;color:var(--c2);background:#3b82f614;padding:3px 10px;border-radius:999px}.work-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.work-open{display:block;text-align:center;padding:9px 0;border-radius:10px;background:var(--grad);color:#fff;font-size:14px;font-weight:600;text-decoration:none;margin-top:4px}.work-open:hover{opacity:.92}.publish-form,.admin-panel{max-width:560px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px}.form-head{margin-bottom:18px}.form-head h2{margin:0;font-size:22px}.form-head p{margin:6px 0 0;font-size:13px;color:var(--muted)}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-field span{font-size:13px;font-weight:600}.req{color:#e11d48;font-style:normal;margin-left:3px}.form-field input,.form-field textarea,.admin-login input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text);outline:none;background:#fbfdff;transition:border-color .15s ease}.form-field input:focus,.form-field textarea:focus,.admin-login input:focus{border-color:var(--c2)}.form-field textarea{resize:vertical}.form-status{font-size:13px;margin:10px 0 0;padding:10px 12px;border-radius:10px}.form-status.ok{color:#047857;background:#ecfdf5}.form-status.error{color:#b91c1c;background:#fef2f2}.field-error{display:block;font-style:normal;font-size:12px;color:#b91c1c;margin-top:4px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.emoji-option{border:1px solid var(--border);background:#fbfdff;font-size:22px;height:40px;border-radius:10px;cursor:pointer;transition:all .12s ease}.emoji-option:hover{border-color:var(--c2);transform:scale(1.06)}.emoji-option.active{border-color:var(--c2);background:#3b82f61f;box-shadow:0 0 0 2px #3b82f64d}.icon-upload-row{display:flex;align-items:center;gap:10px;margin-top:10px}.upload-btn{border:1px dashed var(--c2);background:#3b82f60f;color:var(--c2);font-size:13px;font-weight:600;padding:8px 16px;border-radius:10px;cursor:pointer;transition:all .15s ease}.upload-btn:hover{background:#3b82f61f}.icon-preview{width:40px;height:40px;object-fit:contain;border:1px solid var(--border);border-radius:10px;background:#fff}.icon-clear{border:none;background:transparent;color:#b91c1c;font-size:12px;cursor:pointer}.submit-btn{width:100%;border:none;background:var(--grad);color:#fff;font-size:15px;font-weight:600;padding:12px;border-radius:12px;cursor:pointer;transition:opacity .15s ease}.submit-btn:hover:not(:disabled){opacity:.92}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.admin-login{display:flex;gap:10px;margin-bottom:16px}.admin-login input{flex:1}.admin-login button{border:none;background:var(--grad);color:#fff;font-size:14px;padding:0 20px;border-radius:10px;cursor:pointer}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:12px}.admin-name{font-weight:600}.badge{font-size:12px;padding:3px 10px;border-radius:999px}.badge.pending{color:#b45309;background:#fef3c7}.badge.published{color:#047857;background:#d1fae5}.admin-url{flex:1;min-width:160px;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-actions{display:flex;gap:8px}.admin-actions button{border:none;font-size:13px;padding:6px 14px;border-radius:8px;cursor:pointer}.admin-actions .ok{background:#10b981;color:#fff}.admin-actions .danger{background:#fee2e2;color:#b91c1c}.section-divider{margin:36px 0 20px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.section-divider h2{margin:0;font-size:22px}.section-divider p{margin:6px 0 0;font-size:13px;color:var(--muted)}.rec-group{margin-bottom:28px}.rec-cat{font-size:15px;color:var(--muted);margin:0 0 12px;padding-left:12px;border-left:3px solid var(--c2)}.rec-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.rec-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.rec-item:hover{transform:translateY(-2px);border-color:var(--c2);box-shadow:var(--shadow)}.rec-emoji{flex:none;font-size:26px;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:#3b82f614}.rec-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rec-name{font-size:14.5px;font-weight:600}.rec-desc{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-arrow{flex:none;color:var(--muted);font-size:16px}.footer{text-align:center;padding:20px 0 28px;color:var(--muted);font-size:13px}@media(max-width:640px){.header{justify-content:center}}
