:root{--purple:#4a197d;--purple2:#6d3f98;--bg:#f4f2f6;--line:#e3dee7;--ink:#272329;--muted:#77717b}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}.login-page,.setup-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 20% 10%,#8554af,#34104f 60%,#1e0c2b)}.login-card,.setup-card{width:min(440px,100%);background:#fff;padding:42px;border-radius:4px;box-shadow:0 28px 70px rgba(17,2,27,.3)}.login-card>img,.setup-card>img{width:82px;height:102px;object-fit:contain;margin:auto}.login-card h1,.setup-card h1{text-align:center;font-size:25px;margin:8px 0}.login-card>p,.setup-card>p{text-align:center;color:var(--muted);line-height:1.7}.login-card label,.setup-card label,.edit-form label{display:flex;flex-direction:column;gap:8px;font-size:14px;margin-top:18px}.login-card input,.setup-card input,.edit-form input,.edit-form textarea,.edit-form select,.media-grid input{width:100%;border:1px solid var(--line);padding:12px 14px;background:#fff;outline:none}.login-card input:focus,.setup-card input:focus,.edit-form input:focus,.edit-form textarea:focus{border-color:var(--purple)}.login-card button,.setup-card button{width:100%;border:0;background:var(--purple);color:#fff;padding:14px;margin:24px 0 15px}.login-card>a{display:block;text-align:center;color:var(--purple);font-size:13px}.setup-card small{color:#999}.notice{padding:14px 18px;border-radius:3px;margin-bottom:20px}.notice.success{background:#e6f6ee;color:#176c43}.notice.error{background:#fff0f0;color:#9b2929}.admin-body{display:flex;min-height:100vh}.admin-side{position:fixed;inset:0 auto 0 0;width:245px;background:#24132f;color:#d9cfe0;display:flex;flex-direction:column;z-index:20}.admin-logo{height:86px;padding:10px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #3b2747}.admin-logo img{width:48px;height:62px;object-fit:contain;filter:brightness(0) invert(1)}.admin-logo span{display:flex;flex-direction:column}.admin-logo b{color:#fff}.admin-logo small{font-size:11px;margin-top:4px}.admin-side nav{padding:18px 10px;overflow:auto}.admin-side nav strong{display:block;color:#8f7d99;font-size:11px;letter-spacing:2px;padding:20px 12px 8px}.admin-side nav a{display:block;padding:11px 13px;border-radius:4px;font-size:14px}.admin-side nav a:hover{background:#4a2a5c;color:#fff}.admin-side-bottom{margin-top:auto;padding:16px;border-top:1px solid #3b2747;display:flex;justify-content:space-between;font-size:12px}.admin-side-bottom form,.admin-side-bottom button{display:inline;margin:0}.admin-side-bottom button{border:0;background:transparent;color:#d9cfe0;padding:0}.admin-main{margin-left:245px;width:calc(100% - 245px)}.admin-top{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:10}.admin-top h1{font-size:20px;margin:0}.admin-top>span{margin-left:auto;color:var(--muted)}.side-toggle{display:none}.admin-content{padding:32px;max-width:1450px;margin:auto}.welcome{min-height:250px;background:linear-gradient(110deg,#35134e,#70449a);color:#fff;padding:40px 50px;display:flex;align-items:center;justify-content:space-between}.welcome small{letter-spacing:4px;color:#d5c1e5}.welcome h2{font-size:30px}.welcome p{max-width:720px;line-height:1.8;color:#e8dff0}.welcome img{width:150px;height:190px;object-fit:contain;filter:brightness(0) invert(1)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.stat-grid a{background:#fff;padding:25px;display:flex;flex-direction:column;border-bottom:3px solid transparent}.stat-grid a:hover{border-color:var(--purple)}.stat-grid b{font-size:34px;color:var(--purple)}.stat-grid span{color:var(--muted);font-size:13px;margin-top:5px}.panel{background:#fff;border:1px solid var(--line);padding:28px;margin-top:20px}.panel h2{margin-top:0}.check-list{line-height:2;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}.form-grid label.wide{grid-column:1/-1}.edit-form label.check{flex-direction:row;align-items:center}.edit-form label.check input{width:auto}.form-actions{border-top:1px solid var(--line);margin-top:28px;padding-top:24px;display:flex;align-items:center;gap:22px}.button{display:inline-block;border:0;background:var(--purple);color:#fff;padding:12px 20px;border-radius:3px;cursor:pointer}.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-actions p{color:var(--muted)}.table-wrap{overflow:auto;padding:0}.table-wrap table{width:100%;border-collapse:collapse;min-width:850px}.table-wrap th,.table-wrap td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);font-size:13px}.table-wrap th{background:#faf9fb;color:var(--muted)}.table-wrap td b,.table-wrap td small{display:block}.table-wrap td small{color:#999;margin-top:5px}.thumb{width:62px;height:50px;object-fit:cover;background:#eee}.status{display:inline-block;padding:5px 9px;border-radius:20px}.status.published{background:#e7f5ed;color:#237349}.status.draft{background:#eee;color:#777}.image-preview{width:240px;height:180px;object-fit:contain;background:#f4f0f6;margin-top:22px}.danger-form{margin-top:18px;text-align:right}.danger-form button{border:1px solid #c94747;color:#a62e2e;background:#fff;padding:10px 16px}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.media-grid article{background:#fff;border:1px solid var(--line);padding:12px}.media-grid img{width:100%;height:180px;object-fit:contain;background:#f5f3f6}.media-grid b,.media-grid small{display:block;margin:9px 0;font-size:12px}.upload-inline{display:flex;gap:10px;align-items:center}
@media(max-width:900px){.admin-side{transform:translateX(-100%);transition:.25s}.side-open .admin-side{transform:none}.admin-main{margin-left:0;width:100%}.side-toggle{display:block;border:0;background:transparent;font-size:22px;margin-right:16px}.admin-content{padding:18px}.stat-grid{grid-template-columns:1fr 1fr}.welcome{padding:30px}.welcome img{display:none}.form-grid{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.media-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.admin-top{padding:0 15px}.admin-top h1{font-size:16px}.page-actions{display:block}.upload-inline{display:block}.upload-inline>*{margin:6px 0}.stat-grid,.media-grid{grid-template-columns:1fr}.panel{padding:18px}.login-card,.setup-card{padding:28px}.welcome h2{font-size:24px}}

.image-field{margin-top:18px}.image-field>label,.image-input-row label{margin-top:0}.image-input-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.admin-image-preview{width:100%;min-height:210px;margin:12px 0 0;border:1px solid var(--line);background:#f7f5f8;display:grid;place-items:center;position:relative;overflow:hidden}.admin-image-preview img{display:block;width:100%;height:220px;object-fit:contain;padding:10px}.admin-image-preview figcaption{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:5px 9px;background:rgba(36,19,47,.78);color:#fff;font-size:12px;border-radius:3px}.admin-image-preview img[hidden]{display:none}.admin-image-preview img[hidden]+figcaption{position:static;background:transparent;color:var(--muted)}
@media(max-width:900px){.image-input-row{grid-template-columns:1fr}.admin-image-preview img{height:200px}}
.media-page-actions{align-items:flex-start}.media-page-actions .upload-inline{flex-wrap:wrap;max-width:620px;justify-content:flex-end}.media-page-actions .admin-image-preview{flex:0 0 100%;min-height:150px}.media-page-actions .admin-image-preview img{height:170px}
.button.secondary{background:#eee9f2;color:var(--purple)}.image-field-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.image-field-heading b{font-size:14px}.image-field-heading small{color:var(--muted);text-align:right}.image-field-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.upload-image-button{margin:0!important;display:inline-flex!important;flex-direction:row!important;cursor:pointer}.upload-image-button input{position:absolute;width:1px!important;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.media-picker[hidden]{display:none}.media-picker{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(20,9,29,.72)}.media-picker-dialog{display:flex;flex-direction:column;width:min(1000px,100%);max-height:calc(100vh - 48px);background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35)}.media-picker-dialog>header,.media-picker-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid var(--line)}.media-picker-dialog>header h2{margin:0 0 4px;font-size:20px}.media-picker-dialog>header p{margin:0;color:var(--muted);font-size:13px}.media-picker-dialog>header>button{border:0;background:transparent;font-size:30px;cursor:pointer}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:22px;overflow:auto}.media-picker-card{border:2px solid transparent;background:#f6f3f8;padding:8px;text-align:left;cursor:pointer}.media-picker-card:hover,.media-picker-card:focus-visible{border-color:var(--purple)}.media-picker-card img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#fff}.media-picker-card span,.media-picker-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-picker-card span{margin-top:8px;font-weight:700}.media-picker-card small{margin-top:4px;color:var(--muted)}.media-picker-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted)}.media-picker-empty b{display:block;color:var(--ink);font-size:17px}.media-picker-dialog>footer{border-top:1px solid var(--line);border-bottom:0}.media-picker-dialog>footer a{color:var(--purple);font-weight:700}.media-picker-open{overflow:hidden}
@media(max-width:620px){.image-field-heading{display:block}.image-field-heading small{display:block;text-align:left;margin-top:5px}.media-picker{padding:10px}.media-picker-dialog{max-height:calc(100vh - 20px)}.media-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.media-picker-dialog>header,.media-picker-dialog>footer{padding:14px}}
