*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#333;-webkit-font-smoothing:antialiased;background:#faf8f5;min-height:100vh;font-family:system-ui,-apple-system,sans-serif}.login-shell{background:#faf8f5;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:min(380px,90vw);padding:2.75rem 2.25rem;box-shadow:0 4px 32px #00000014}.login-logo{object-fit:cover;border-radius:50%;width:80px;height:80px;margin-bottom:1.1rem}.login-card h1{color:#1a1a1a;margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.login-sub{color:#aaa;margin-bottom:2rem;font-size:.88rem}.google-btn{color:#333;cursor:pointer;background:#fff;border:2px solid #dadce0;border-radius:50px;justify-content:center;align-items:center;gap:.65rem;width:100%;padding:.8rem 1.25rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.google-btn:hover{border-color:#4285f4;box-shadow:0 2px 8px #4285f426}.error-msg{color:#e05252;margin-top:1rem;font-size:.85rem}.admin-shell{min-height:100vh;display:flex}.sidebar{z-index:20;background:#1e2230;flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:.6rem;padding:1.1rem 1rem 1rem;display:flex}.sidebar-logo{object-fit:cover;border-radius:50%;flex-shrink:0;width:38px;height:38px}.sidebar-brand-text{color:#ffffffe6;letter-spacing:.06em;text-transform:uppercase;font-size:.6rem;font-weight:700;line-height:1.4}.sidebar-nav{flex:1;padding:.5rem 0;overflow-y:auto}.sidebar-link{color:#ffffff8c;border-left:3px solid #0000;flex-direction:column;padding:.72rem 1.25rem;font-size:.88rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex;position:relative}.sidebar-link:hover{color:#ffffffe6;background:#ffffff0f}.sidebar-link.active{color:#f8b02f;background:#f8b02f1f;border-left-color:#f8b02f}.sidebar-link-zh{font-weight:500;line-height:1}.sidebar-link-en{letter-spacing:.05em;text-transform:uppercase;opacity:.5;margin-top:.18rem;font-size:.68rem}.sidebar-link.active .sidebar-link-en{opacity:.7}.sidebar-logout{color:#ffffff59;cursor:pointer;text-align:left;background:0 0;border:none;border-top:1px solid #ffffff14;padding:1rem 1.25rem;font-family:inherit;font-size:.82rem;transition:color .15s}.sidebar-logout:hover{color:#ffffffbf}.admin-content{background:#f5f3ef;flex-direction:column;flex:1;min-height:100vh;margin-left:220px;display:flex}.page-header{background:#fff;border-bottom:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 2rem;display:flex}.page-title{color:#333;font-size:.95rem;font-weight:600}.container{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.item-list{flex-direction:column;gap:.75rem;display:flex}.list-item{background:#fff;border-radius:10px;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex;box-shadow:0 1px 4px #0000000d}.item-info{flex:1;min-width:0}.item-title{color:#333;white-space:nowrap;text-overflow:ellipsis;margin-bottom:.2rem;font-weight:600;overflow:hidden}.item-meta{color:#999;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8rem;display:flex}.actions{flex-shrink:0;gap:.5rem;display:flex}.empty{text-align:center;color:#bbb;padding:3rem;font-size:.95rem}.badge{border-radius:20px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-pub{color:#388e3c;background:#e8f5e9}.badge-draft{color:#f57c00;background:#fff3e0}.new-btn{color:#fff;cursor:pointer;background:#f8b02f;border:none;border-radius:8px;padding:.45rem 1rem;font-size:.88rem;font-weight:600;transition:background .15s}.new-btn:hover{background:#e09e25}.edit-btn,.del-btn{cursor:pointer;border:none;border-radius:6px;padding:.35rem .75rem;font-size:.82rem;font-weight:500}.edit-btn{color:#555;background:#f0f0f0}.edit-btn:hover{background:#e0e0e0}.del-btn{color:#e05252;background:#fff0f0}.del-btn:hover{background:#fde0e0}.add-btn{cursor:pointer;color:#666;background:#f5f5f5;border:1px dashed #ccc;border-radius:8px;width:100%;padding:.55rem;font-size:.85rem}.add-btn:hover{background:#eee}.cancel-btn{cursor:pointer;color:#666;background:#f5f5f5;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.9rem}.save-btn{cursor:pointer;color:#fff;background:#f8b02f;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600}.save-btn:hover{background:#e09e25}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:min(640px,100%);margin:auto;padding:2rem}.modal h2{color:#333;margin-bottom:1.5rem;font-size:1.1rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.field{margin-bottom:1.1rem}.field label{color:#666;margin-bottom:.35rem;font-size:.85rem;font-weight:500;display:block}.field input,.field select,.field textarea{background:#fff;border:1.5px solid #ddd;border-radius:8px;outline:none;width:100%;padding:.6rem .85rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#f8b02f}.field textarea{resize:vertical;min-height:200px;line-height:1.6}.hint{color:#aaa;margin-top:.25rem;font-size:.78rem}.row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.row3{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}.editor-wrap{border:1.5px solid #ddd;border-radius:8px;overflow:hidden}.editor-wrap .ql-toolbar{background:#fafafa;border:none!important;border-bottom:1px solid #ddd!important}.editor-wrap .ql-container{font-family:inherit;font-size:.95rem;border:none!important}.editor-wrap .ql-editor{padding:1rem;line-height:1.8}.editor-mode-bar{background:#f0f0f0;border-bottom:1px solid #ddd;gap:0;display:flex}.editor-mode-btn{letter-spacing:.04em;color:#888;cursor:pointer;background:0 0;border:none;border-right:1px solid #ddd;padding:.3rem .9rem;font-size:.75rem;font-weight:500;transition:background .15s,color .15s}.editor-mode-btn:last-child{border-right:none}.editor-mode-btn:hover{color:#333;background:#e4e4e4}.editor-mode-btn.active{color:#1a1a1a;background:#fff;font-weight:600}.editor-html-textarea{color:#2a2520;resize:vertical;box-sizing:border-box;background:#fafaf8;border:none;outline:none;width:100%;padding:1rem;font-family:Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.65;display:block}
