:root{--bg0: #e8f4ef;--bg1: #d4ebe3;--bg2: #c5e0f0;--ink: #14323a;--ink-soft: #3d5c66;--muted: #6a8590;--brand: #0d7a5f;--brand-deep: #0a4f6c;--brand-bright: #1fa97a;--surface: rgba(255, 255, 255, .78);--surface-solid: #ffffff;--line: rgba(20, 50, 58, .08);--shadow: 0 10px 30px rgba(10, 79, 108, .08);--radius: 18px;--font-zh: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-brand: "ZCOOL XiaoWei", "Noto Sans SC", serif;--font-ug: "Noto Naskh Arabic", "Segoe UI", Tahoma, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-zh);background:#dfeee8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.ug{font-family:var(--font-ug);font-weight:500;letter-spacing:0;font-size:.72em;line-height:1.35;color:var(--ink-soft)}.app-shell{position:relative;min-height:100vh;display:flex;flex-direction:column}.bg-atmosphere{position:fixed;inset:0;z-index:-2;background:radial-gradient(1200px 700px at 10% -10%,rgba(31,169,122,.28),transparent 55%),radial-gradient(900px 600px at 100% 0%,rgba(10,79,108,.22),transparent 50%),radial-gradient(800px 500px at 50% 100%,rgba(197,224,240,.7),transparent 55%),linear-gradient(165deg,var(--bg0),var(--bg1) 45%,var(--bg2));animation:sky-shift 18s ease-in-out infinite alternate}@keyframes sky-shift{0%{filter:hue-rotate(0deg) saturate(1)}to{filter:hue-rotate(8deg) saturate(1.08)}}.topbar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 10px;backdrop-filter:blur(16px);background:#e8f4efeb;border-bottom:1px solid var(--line);box-shadow:0 4px 18px #0a4f6c0f}.brand{display:flex;align-items:center;gap:6px;margin-left:-4px}.leaf-mark{flex-shrink:0;width:28px;height:28px;filter:drop-shadow(0 4px 10px rgba(13,122,95,.25));animation:leaf-float 4.5s ease-in-out infinite}@keyframes leaf-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}.brand-text{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.1;gap:1px}.brand-zh{font-family:var(--font-brand);font-size:1.15rem;color:var(--brand-deep);font-weight:400}.brand-ug{display:block;font-size:.58rem;color:var(--brand);margin:0;align-self:flex-start;text-align:left}.topbar-actions{display:flex;align-items:center;gap:10px}.mine-nav-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:48px;padding:4px 10px;border:0;border-radius:999px;background:var(--brand);color:#fff;text-decoration:none;line-height:1.1;cursor:pointer;font:inherit}.mine-nav-btn .zh{font-size:.92rem;font-weight:800}.mine-nav-btn .ug{font-size:.62rem;color:#ffffffe0;font-weight:500}.mine-nav-btn:hover{background:var(--brand-deep)}.back-nav-btn{background:#1a7ab8}.back-nav-btn:hover{background:#0f5f96}.mine-card{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:14px;background:var(--surface-solid);border-radius:16px;box-shadow:var(--shadow)}.mine-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand-bright),var(--brand-deep));color:#fff;font-size:1.25rem;font-weight:900;flex-shrink:0}.mine-info h2{margin:0 0 6px;font-size:1.15rem;font-weight:900}.mine-info p{margin:0 0 2px;color:var(--ink-soft);font-size:.88rem}.mine-actions{margin-bottom:18px}.mine-section-title{margin:0 0 10px;font-size:1.05rem;font-weight:800}.mine-empty{text-align:center;padding:24px 12px}.mine-empty p{margin:0 0 16px;color:var(--ink-soft);line-height:1.6}.linkish{display:inline-flex;flex-direction:column;align-items:flex-end;gap:1px;border:0;background:transparent;color:var(--brand-deep);cursor:pointer;padding:4px 6px;font-weight:800;font-size:1rem}.linkish small,.linkish .ug{font-size:.68rem;font-weight:500;color:var(--muted)}.back-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 10px 5px 7px;cursor:pointer;color:var(--ink)}.back-btn span{display:flex;flex-direction:column;align-items:flex-start;font-size:.95rem;font-weight:800;line-height:1.1}.back-btn small,.back-btn .ug{font-size:.68rem;color:var(--muted);font-weight:500}.door{width:14px;height:14px;border-radius:3px;background:linear-gradient(90deg,#8b5a2b 0 28%,#c48a4a 28% 32%,#a66b35 32% 100%);box-shadow:inset -2px 0 #0000001f;position:relative;flex-shrink:0}.door:after{content:"";position:absolute;right:2px;top:6px;width:2px;height:2px;border-radius:50%;background:#f4e2c0}.main{flex:1;width:min(720px,100%);margin:0 auto;padding:76px 16px 28px}.home{padding-bottom:12px}.hero{text-align:center;padding:28px 8px 22px;animation:rise .7s ease both}.hero-compact{padding:18px 8px 16px}.hero-eyebrow{margin:0 0 8px;color:var(--muted);font-size:.85rem;letter-spacing:.12em}.hero-title{margin:0;line-height:1}.hero-brand{display:inline-block;font-family:var(--font-brand);font-size:clamp(2.6rem,10vw,3.4rem);color:var(--brand-deep);background:linear-gradient(120deg,var(--brand-deep),var(--brand),#1688a7);-webkit-background-clip:text;background-clip:text;color:transparent;animation:brand-in .9s cubic-bezier(.2,.8,.2,1) both}.hero-welcome{margin:14px 0 6px;font-size:clamp(1.15rem,4.2vw,1.35rem);font-weight:800;color:var(--ink)}.hero-ug{margin:8px 0 0;font-size:.85rem;color:var(--ink-soft)}@keyframes brand-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.category-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:108px;padding:18px 12px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow);backdrop-filter:blur(8px);overflow:hidden;transition:transform .22s ease,box-shadow .22s ease;animation:tile-in .55s ease both;animation-delay:calc(var(--i) * 40ms)}.category-tile:before{content:"";position:absolute;inset:auto -20% -40%;height:70%;background:radial-gradient(circle at 50% 0%,var(--tone),transparent 70%);opacity:.35;pointer-events:none}.category-tile:hover,.category-tile:focus-visible{transform:translateY(-3px);box-shadow:0 16px 36px #0a4f6c24;outline:none}.category-tile:active{transform:translateY(-1px) scale(.99)}@keyframes tile-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.tile-icon-wrap{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--tone-ink);background:color-mix(in srgb,var(--tone) 22%,white);margin-bottom:2px}.cat-icon{width:22px;height:22px}.tile-zh{font-size:1.12rem;font-weight:800;text-align:center;color:var(--ink);z-index:1}.tile-ug{font-size:.7rem;color:var(--ink-soft);text-align:center;line-height:1.35;z-index:1;max-width:100%}.tile-count{position:absolute;top:10px;right:10px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--brand-deep);color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center}.tone-sky{--tone: #5eb7e0;--tone-ink: #0a4f6c}.tone-leaf{--tone: #3ecf8e;--tone-ink: #0d7a5f}.tone-amber{--tone: #f0b429;--tone-ink: #8a5a00}.tone-violet{--tone: #8b7cf0;--tone-ink: #4338a8}.tone-steel{--tone: #7f93a8;--tone-ink: #334155}.tone-teal{--tone: #2dd4bf;--tone-ink: #0f766e}.tone-rose{--tone: #fb7185;--tone-ink: #9f1239}.tone-orange{--tone: #fb923c;--tone-ink: #9a3412}.tone-indigo{--tone: #818cf8;--tone-ink: #3730a3}.tone-mint{--tone: #6ee7b7;--tone-ink: #047857}.tone-navy{--tone: #60a5fa;--tone-ink: #1e3a8a}.site-footer{margin-top:auto;padding:22px 16px calc(22px + var(--safe-bottom));background:linear-gradient(180deg,transparent,rgba(10,79,108,.08));text-align:center}.footer-links{display:flex;justify-content:center;gap:28px;margin-bottom:12px}.footer-links a{display:inline-flex;flex-direction:column;align-items:center;gap:2px;font-weight:800;font-size:1rem;color:var(--brand-deep)}.footer-complaint-btn{display:inline-flex!important;flex-direction:row!important;align-items:center;justify-content:center;min-width:120px;padding:10px 28px;border-radius:999px;background:#c45c4a;color:#fff!important;font-size:1.05rem!important;font-weight:800;box-shadow:0 8px 18px #c45c4a47;text-decoration:none}.footer-complaint-btn:hover{background:#b04e3e}.footer-delete-btn{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:10px 28px;border:0;border-radius:999px;background:#5a6b73;color:#fff;font-size:1.05rem;font-weight:800;box-shadow:0 8px 18px #5a6b7347;cursor:pointer}.footer-delete-btn:hover:not(:disabled){background:#4a5960}.footer-delete-btn:disabled{opacity:.7;cursor:wait}.footer-links small,.footer-links .ug{font-size:.7rem;color:var(--muted);font-weight:500}.f-ico{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface-solid);box-shadow:var(--shadow);margin-bottom:4px;font-size:.95rem}.copyright{margin:0;color:var(--muted);font-size:.78rem}.complaint-target{margin:0 0 14px;padding:10px 12px;background:var(--surface);border-radius:12px;color:var(--ink-soft);font-size:.92rem}.complaint-target strong{color:var(--ink)}.feedback-sweet{margin:0 0 18px;padding:14px 16px;line-height:1.7;color:var(--ink-soft);background:#ffffffb8;border-radius:14px;font-size:.98rem}.feedback-contact-card{text-align:center;padding:22px 16px;background:var(--surface-solid);border-radius:16px;box-shadow:var(--shadow)}.feedback-contact-label{margin:0 0 8px;color:var(--muted);font-size:.88rem}.feedback-wechat{margin:0 0 10px;font-size:1.45rem;font-weight:900;color:var(--brand-deep);letter-spacing:.04em;user-select:all}.feedback-contact-card .hint{margin-bottom:4px}.feedback-hint-ug{margin:0;font-size:.72rem;color:var(--muted);font-weight:500}.page{padding:12px 0 24px;animation:rise .45s ease both}.page.narrow{width:min(440px,100%);margin:0 auto;overflow:visible}.page-head{text-align:center;margin-bottom:18px}.page-head h1{margin:0;font-size:1.55rem;font-weight:900}.detail-title{margin:0 0 8px;font-size:1.2rem;font-weight:800;text-align:center}.page-ug{margin:6px 0 0;color:var(--ink-soft);font-size:.82rem}.search-bar{display:flex;gap:8px;align-items:stretch;margin-bottom:14px}.search-bar input{flex:1;min-width:0;width:auto}.search-clear-btn{flex:0 0 auto;width:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid);color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer}.search-btn{flex:0 0 auto;border:0;border-radius:12px;padding:0 16px;min-width:72px;font-weight:800;cursor:pointer;background:var(--brand);color:#fff}.search-btn:active{filter:brightness(.95)}.search-bar input,.form input,.form textarea,.form select{border:1px solid var(--line);background:var(--surface-solid);border-radius:12px;padding:12px 14px;color:var(--ink);outline:none}.form input,.form textarea,.form select{width:100%}.search-bar input:focus,.form input:focus,.form textarea:focus,.form select:focus{border-color:color-mix(in srgb,var(--brand) 55%,white);box-shadow:0 0 0 3px #1fa97a2e}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer;background:#d7ebe3;color:var(--brand-deep)}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;box-shadow:0 8px 20px #0d7a5f47}.btn.wide{width:100%}.btn-camera{background:#0d7a5f;color:#fff;box-shadow:0 4px 12px #0d7a5f47}.btn-album{background:#0a4f6c;color:#fff;box-shadow:0 4px 12px #0a4f6c47}.page-actions{display:flex;justify-content:flex-end;margin-bottom:14px}.post-list,.tool-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.post-row,.tool-item,.contact-card,.success-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid rgba(255,255,255,.65);box-shadow:var(--shadow)}.post-thumb{width:64px;height:64px;object-fit:cover;border-radius:10px;flex-shrink:0;background:#dfeee8}.post-row-body{flex:1;min-width:0}.field-block{display:flex;flex-direction:column;gap:8px}.image-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.image-preview-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.image-preview-list li{position:relative;width:1.5cm;height:1.5cm;border-radius:6px;overflow:hidden;background:#e8f0ec;flex-shrink:0}.image-preview-list img{width:100%;height:100%;object-fit:cover;display:block}.img-remove{position:absolute;left:0;right:0;bottom:0;border:0;background:#0009;color:#fff;font-size:.55rem;font-weight:700;padding:2px 0;cursor:pointer;line-height:1.2}.valid-row{display:grid;grid-template-columns:1fr 110px;gap:8px}.detail-images{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.detail-image-btn{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:12px;overflow:hidden}.detail-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;display:block;background:#e8f0ec}.image-lightbox{position:fixed;inset:0;z-index:5000;background:#081014eb;display:flex;align-items:center;justify-content:center;padding:56px 16px 24px;box-sizing:border-box}.image-lightbox-close{position:absolute;top:max(10px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));width:44px;height:44px;border:0;border-radius:50%;background:#ffffff29;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;z-index:1}.image-lightbox-close:hover{background:#ffffff47}.image-lightbox-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;user-select:none}.tool-item,.contact-card,.success-panel{display:block}.post-row h2,.tool-item h2,.detail h1{margin:0;font-size:1.05rem;font-weight:800}.meta,.muted,.hint,.subtle{color:var(--muted);font-size:.85rem}.meta{margin:6px 0 0}.chevron{font-size:1.6rem;color:var(--muted);line-height:1}.empty{text-align:center;padding:28px 12px;color:var(--muted)}.banner-error{background:#ffe8e8;color:#9f1239;border-radius:12px;padding:10px 12px;font-size:.9rem}.banner-warn{background:#fff4e0;color:#9a5b00;border-radius:12px;padding:10px 12px;font-size:.9rem;text-align:center}.form{display:flex;flex-direction:column;gap:12px;overflow:visible}.form label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.95rem}.field-label{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px}.field-label .zh{font-size:1rem;font-weight:800;color:var(--ink)}.field-label .req{color:#dc2626;font-weight:900;margin-right:2px}.field-label .sep{color:var(--muted);font-size:.9rem}.field-label .ug{font-size:.72rem;font-weight:500;color:var(--ink-soft)}.cat-select{position:relative;z-index:5}.cat-select:has(.cat-select-menu){z-index:40}.cat-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);background:var(--surface-solid);border-radius:12px;padding:12px 14px;color:var(--ink);cursor:pointer;text-align:left}.cat-select-trigger:focus{border-color:color-mix(in srgb,var(--brand) 55%,white);box-shadow:0 0 0 3px #1fa97a2e;outline:none}.cat-select-label,.cat-select-option{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px}.cat-select-label .zh,.cat-select-option .zh{font-size:1rem;font-weight:800;color:var(--ink)}.cat-select-label .sep,.cat-select-option .sep{color:var(--muted);font-size:.9rem}.cat-select-label .ug,.cat-select-option .ug{font-size:.72rem;font-weight:500}.cat-select-placeholder{color:var(--muted);font-weight:600;font-size:.95rem}.cat-select-caret{color:var(--muted);flex-shrink:0}.cat-select-menu{margin:0;padding:6px;list-style:none;background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #0a4f6c2e;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.cat-select-option{width:100%;border:0;background:transparent;border-radius:10px;padding:10px 12px;cursor:pointer;text-align:left;touch-action:pan-y}.cat-select-option .placeholder-opt{color:var(--muted);font-weight:700}.cat-select-option:hover,.cat-select-option.active{background:#e8f6ef}.text-switch{display:block;margin:16px auto 0;border:0;background:transparent;color:var(--brand-deep);font-weight:700;cursor:pointer}.detail .content-block{margin:18px 0;padding:16px;border-radius:16px;background:var(--surface-solid);line-height:1.7;white-space:pre-wrap;box-shadow:var(--shadow)}.crumb{margin:0 0 10px;color:var(--brand);font-weight:700}.contact-card h2{margin:0 0 8px;font-size:1rem}.contact-card a{color:var(--brand-deep);font-weight:800}.contact-action{margin-top:16px;display:flex;flex-direction:column;gap:10px}.contact-card-reveal{width:100%;box-sizing:border-box}.contact-card-reveal p{margin:0;font-size:1.05rem;font-weight:700}@media(min-width:720px){.category-grid{gap:14px}.category-tile{min-height:118px}.tile-zh{font-size:1.2rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.admin-app{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:#eef3f1;color:#14323a;font-family:var(--font-zh)}.admin-side{background:#0a4f6c;color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:18px}.admin-brand strong{display:block;font-size:1.2rem}.admin-brand span{font-size:.78rem;opacity:.75}.admin-nav{display:flex;flex-direction:column;gap:6px}.admin-nav a{color:#ffffffe0;text-decoration:none;padding:10px 12px;border-radius:10px;font-weight:700}.admin-nav a.active,.admin-nav a:hover{background:#ffffff24;color:#fff}.admin-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}.admin-side-foot p{margin:0;opacity:.8;font-size:.85rem}.admin-side-foot button,.admin-back-site{border:0;background:#ffffff1f;color:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;text-align:center;text-decoration:none;font-weight:700}.admin-main{padding:22px 24px 40px;overflow:auto}.admin-page-head{margin-bottom:16px}.admin-page-head h1{margin:0 0 4px;font-size:1.45rem}.admin-page-head p{margin:0;color:#6a8590}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.admin-stat{background:#fff;border-radius:14px;padding:16px;box-shadow:0 8px 20px #0a4f6c0f}.admin-stat strong{display:block;font-size:1.8rem;margin-bottom:4px}.admin-stat span{color:#6a8590;font-size:.9rem}.admin-stat.warn strong{color:#c45c4a}.admin-quick{display:flex;flex-wrap:wrap;gap:14px}.admin-quick a{color:#0d7a5f;font-weight:800;text-decoration:none}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;align-items:stretch}.admin-toolbar input,.admin-toolbar select,.admin-login-card input{border:1px solid rgba(20,50,58,.12);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.admin-toolbar input{flex:1 1 180px;min-width:140px}.admin-search-field{position:relative;flex:1 1 180px;min-width:140px;display:flex}.admin-search-field input{flex:1;min-width:0;padding-right:36px}.admin-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:#6a8590;font-size:1.2rem;line-height:1;cursor:pointer}.admin-search-btn{flex:0 0 auto;border:0;border-radius:10px;padding:0 14px;min-height:40px;font-weight:800;cursor:pointer;background:#0d7a5f;color:#fff}.admin-search-btn:active{filter:brightness(.95)}.admin-batch-delete{flex:0 0 auto;align-self:stretch;padding:0 14px}.admin-batch-hint{margin:-6px 0 12px;color:#6a8590;font-size:.85rem}.admin-check-col{width:36px;text-align:center!important;vertical-align:middle!important}.admin-check-col input{width:16px;height:16px;cursor:pointer}.admin-row-selected{background:#e8f4ef}.admin-table-wrap{background:#fff;border-radius:14px;overflow:auto;box-shadow:0 8px 20px #0a4f6c0f}.admin-table{width:100%;border-collapse:collapse;min-width:720px}.admin-table th,.admin-table td{padding:12px 14px;border-bottom:1px solid rgba(20,50,58,.06);text-align:left;vertical-align:top;font-size:.92rem}.admin-table th{background:#f5faf8;font-weight:800;color:#3d5c66}.admin-title{font-weight:800}.admin-sub{color:#6a8590;font-size:.8rem;margin-top:2px}.admin-msg{max-width:260px;line-height:1.45;word-break:break-word}.admin-actions{display:flex;flex-direction:column;gap:6px}.admin-actions-row{display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;align-items:center}.admin-actions-row button,.admin-actions button,.admin-danger,.admin-btn-black,.admin-btn-restore,.admin-btn-delete{border:0;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:700;white-space:nowrap;color:#fff}.admin-btn-black{background:#d94841}.admin-btn-restore{background:#0d7a5f}.admin-btn-delete,.admin-danger{background:#4a5d66}.admin-actions button{background:#0a4f6c}.admin-actions-row button:disabled{opacity:.4;cursor:not-allowed}.admin-row-black{background:#fdeceb}.admin-row-black td{color:#8a3a32}.admin-row-pending{background:#fff6e8}.admin-idcard{font-family:ui-monospace,Consolas,monospace;letter-spacing:.02em;white-space:nowrap}.admin-device{display:flex;flex-direction:column;gap:4px;min-width:140px;max-width:260px}.admin-device-info{font-size:.9rem;font-weight:600;color:#1a4a58;line-height:1.35}.admin-device-id{display:block;width:100%;border:0;padding:0;background:transparent;color:#5a7580;font-family:ui-monospace,Consolas,monospace;font-size:.72rem;line-height:1.35;text-align:left;word-break:break-all;cursor:copy}.admin-row-black .admin-device-info{color:#8a3a32}.admin-row-black .admin-device-id{color:#a56a62}.admin-users-page .admin-table{min-width:680px}.admin-users-page .admin-table th,.admin-users-page .admin-table td{padding:8px 10px;font-size:.8rem;line-height:1.35}.admin-users-page .admin-table th{font-size:.78rem;font-weight:700}.admin-users-page .admin-idcard{font-size:.76rem}.admin-users-page .admin-device{min-width:120px;max-width:220px;gap:2px}.admin-users-page .admin-device-info{font-size:.78rem;font-weight:600}.admin-users-page .admin-device-id{font-size:.66rem}.admin-users-page .admin-actions-row{gap:4px}.admin-users-page .admin-actions-row button{padding:4px 8px;border-radius:6px;font-size:.72rem;font-weight:600}.admin-thumb-link{display:inline-block;line-height:0;padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:10px;overflow:hidden}.admin-thumb{width:72px;height:72px;object-fit:cover;border-radius:10px;background:#e8f0ec;display:block}.admin-no-img{color:#6a8590;font-size:.82rem}.admin-content-preview{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,#dfeee8,#c5e0f0);padding:20px}.admin-login-card{width:min(400px,100%);background:#fff;border-radius:18px;padding:28px 24px;box-shadow:0 16px 40px #0a4f6c1f;display:flex;flex-direction:column;gap:12px}.admin-login-card h1{margin:0;font-size:1.4rem}.admin-login-sub{margin:0 0 6px;color:#6a8590}.admin-login-card label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.92rem}.admin-loading{min-height:100vh;display:grid;place-items:center}.admin-panel{background:#fff;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 8px 20px #0a4f6c0f}.admin-panel h2{margin:0 0 12px;font-size:1.05rem}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:center}.admin-form-grid input{border:1px solid rgba(20,50,58,.12);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.admin-ok{color:#0d7a5f;font-weight:700;margin:0 0 12px}@media(max-width:900px){.admin-app{grid-template-columns:1fr;min-height:100dvh}.admin-side{position:sticky;top:0;z-index:40;flex-direction:column;gap:10px;padding:12px 12px 10px;padding-top:max(12px,env(safe-area-inset-top,0px))}.admin-brand{display:flex;align-items:baseline;gap:8px}.admin-brand strong{font-size:1.05rem}.admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:2px}.admin-nav a{flex:0 0 auto;white-space:nowrap;padding:9px 12px;font-size:.92rem}.admin-side-foot{margin-top:0;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.admin-side-foot p{flex:1 1 auto;min-width:0}.admin-side-foot button,.admin-back-site{flex:0 0 auto;min-height:40px;padding:8px 12px}.admin-main{padding:14px 12px 28px;padding-bottom:max(28px,env(safe-area-inset-bottom,0px));overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-page-head h1{font-size:1.25rem}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-login{padding:24px 14px;min-height:100dvh}.admin-login-card{width:100%;max-width:420px;margin:0 auto}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}.member-card{background:var(--surface-solid);border-radius:var(--radius);padding:18px 16px 22px;box-shadow:var(--shadow)}.member-price{display:flex;align-items:baseline;gap:8px;margin:0 0 12px}.member-price strong{font-size:2.4rem;color:var(--brand-deep);line-height:1}.member-price span{color:var(--muted);font-weight:700}.member-benefits{margin:0 0 16px;padding-left:1.2em;line-height:1.7;color:var(--ink-soft)}.member-status{margin-bottom:14px;padding:12px;border-radius:12px;background:#f3faf7}.member-status .ok{color:#0d7a5f}.member-pay{margin:12px 0 18px;padding:14px;border-radius:12px;background:#fff8ef;border:1px solid rgba(196,92,74,.15)}.member-pay h2{margin:0 0 8px;font-size:1.05rem}.member-pay ol{margin:0;padding-left:1.2em;line-height:1.7}.pay-page .page-head h1{font-size:1.45rem}.pay-sheet{background:var(--surface-solid);border-radius:var(--radius);padding:22px 18px 24px;box-shadow:var(--shadow)}.pay-label{margin:0;color:var(--muted);font-size:.92rem}.pay-amount{display:flex;align-items:baseline;gap:4px;margin:6px 0 14px}.pay-currency{font-size:1.35rem;font-weight:700;color:var(--brand-deep)}.pay-amount strong{font-size:2.75rem;line-height:1;color:var(--brand-deep);letter-spacing:-.02em}.pay-unit{margin-left:6px;color:var(--muted);font-weight:600}.pay-benefits{margin:0 0 18px;padding-left:1.15em;line-height:1.7;color:var(--ink-soft);font-size:.95rem}.wx-pay-btn{background:#07c160!important;border-color:#07c160!important;color:#fff!important;font-size:1.08rem;font-weight:700;min-height:48px}.wx-pay-btn:active{filter:brightness(.95)}.pay-tip{margin:12px 0 0;color:var(--muted);font-size:.86rem;line-height:1.55;text-align:center}.pay-guide{margin-top:4px}.pay-guide h2{margin:0 0 10px;font-size:1.08rem}.pay-guide ol{margin:0 0 16px;padding-left:1.2em;line-height:1.85}.pay-guide li{margin-bottom:8px}.pay-guide .btn.tiny{display:inline-flex;margin-left:8px;padding:2px 10px;min-height:28px;font-size:.8rem;vertical-align:middle}.pay-hl{color:#c45c4a;font-size:1.05em}.pay-qr-box{margin-top:8px;text-align:center}.pay-qr-box h2{margin:0 0 12px;font-size:1.08rem}.pay-qr{width:min(260px,72vw);height:auto;border-radius:12px;background:#fff;padding:10px;box-shadow:0 4px 18px #10302414}.pay-amount-sm{margin:12px 0 4px;font-size:1rem}.pay-amount-sm strong{color:var(--brand-deep);font-size:1.25rem}.phone-masked{font-family:ui-monospace,Consolas,monospace;letter-spacing:.04em}.banner-ok{background:#e7f7ef;color:#0a5c45;padding:10px 12px;border-radius:10px;margin:0 0 12px}.mine-actions{display:flex;flex-direction:column;gap:10px;margin:14px 0 18px}.form label.field-invalid input{border-color:#c45c4a;box-shadow:0 0 0 3px #c45c4a26}.register-hint{margin:0 0 14px;line-height:1.5}
