
:root{
  --bg:#fff7fb;--surface:#ffffff;--surface-warm:#fff2f7;--fg:#2f2026;--fg-2:#6f5b63;--muted:#9d8791;--meta:#c73b73;--border:#e5dde2;--border-soft:#f4dbe7;--accent:#fb7299;--accent-on:#ffffff;--accent-hover:#e85f8a;--accent-active:#831843;--danger:#d94663;--danger-soft:#fde8f2;--warn:#d97706;--warn-soft:#fff4df;--success:#20b486;--success-soft:#edf8f1;--admin:#4f46e5;--admin-soft:#eef2ff;--font-display:-apple-system,BlinkMacSystemFont,"PingFang SC","SF Pro Rounded",system-ui,sans-serif;--font-body:-apple-system,BlinkMacSystemFont,"PingFang SC",system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,monospace;--focus:0 0 0 3px color-mix(in oklab,var(--accent),transparent 70%);--shadow:0 18px 50px color-mix(in oklab,var(--accent),transparent 84%);--phone-shadow:0 28px 80px color-mix(in oklab,var(--fg),transparent 76%);--ease:cubic-bezier(.2,0,0,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--fg);background:radial-gradient(circle at 8% 8%,rgba(251,114,153,.15),transparent 28%),radial-gradient(circle at 90% 78%,rgba(255,184,77,.12),transparent 30%),var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:0;box-shadow:var(--focus)}
.page{width:min(100%,1440px);margin:0 auto;padding:26px clamp(14px,3vw,34px) 42px}.topbar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-bottom:22px}.kicker{display:inline-flex;align-items:center;gap:8px;color:var(--meta);font-size:12px;font-weight:900;letter-spacing:2px;text-transform:uppercase}.kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(251,114,153,.14)}h1{margin:8px 0 0;font-size:clamp(30px,4vw,50px);line-height:1.05;letter-spacing:-.045em;font-weight:900}.lead{margin:12px 0 0;color:var(--fg-2);font-size:15px;line-height:1.8;max-width:820px}.nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nav a{min-height:38px;display:inline-flex;align-items:center;border-radius:999px;padding:0 14px;background:var(--surface);border:1px solid var(--border);color:var(--fg-2);font-size:13px;font-weight:800}.nav a[aria-current="page"],.nav a:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.workspace{display:grid;grid-template-columns:minmax(350px,430px) minmax(480px,1fr) minmax(260px,330px);gap:clamp(18px,2.4vw,30px);align-items:start}.single-workspace{grid-template-columns:minmax(660px,1fr) minmax(270px,340px)}.phone{width:min(100%,390px);margin:0 auto;background:#1f151a;border-radius:46px;padding:12px;box-shadow:var(--phone-shadow);position:sticky;top:20px}.phone-screen{min-height:720px;border-radius:36px;background:linear-gradient(180deg,#fff 0%,#fff8fb 48%,#fff1f7 100%);overflow:hidden;position:relative}.status{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;color:#33242b;font-size:12px;font-weight:800}.island{width:88px;height:26px;background:#171014;border-radius:999px;position:absolute;left:50%;top:8px;transform:translateX(-50%)}.app-head{padding:20px 116px 14px 20px;position:relative;min-height:96px}.app-title{font-size:24px;font-weight:900;letter-spacing:-.04em}.app-sub{margin-top:6px;color:var(--fg-2);font-size:12px;line-height:1.6}.bunny-stage{position:absolute;right:16px;bottom:8px;width:92px;height:86px;pointer-events:none}
.bunny{position:absolute;right:8px;bottom:14px;width:74px;height:74px;object-fit:contain;z-index:2}
.bunny-base{display:none}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:22px;padding:18px;box-shadow:0 12px 30px rgba(203,161,177,.10)}.card+.card{margin-top:12px}.form-card{margin:0 14px 14px}.label{font-size:12px;color:var(--fg-2);font-weight:900;margin:0 0 8px}.input,.textarea,.select{width:100%;border:1px solid var(--border);background:#fff;border-radius:16px;min-height:46px;padding:0 14px;color:var(--fg);font-size:14px}.textarea{min-height:94px;padding-top:12px;resize:vertical}.row{display:flex;gap:8px;align-items:center}.row-wrap{display:flex;gap:8px;flex-wrap:wrap}.chip{border-radius:999px;border:1px solid var(--border-soft);background:#fff;padding:8px 11px;color:var(--fg-2);font-size:12px;font-weight:800}.chip.active,.chip:hover{background:var(--surface-warm);border-color:#f9a8d4;color:var(--accent-active)}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;background:var(--surface-warm);color:var(--accent-active)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.success{background:var(--success-soft);color:var(--success)}.pill.admin{background:var(--admin-soft);color:var(--admin)}.btn{min-height:44px;border-radius:16px;padding:0 16px;font-weight:900;background:#fff;border:1px solid var(--border);color:var(--fg);transition:transform .16s var(--ease),background .16s var(--ease)}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-hover));color:#fff;border-color:transparent}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}.btn.ghost{background:transparent}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.bottom-bar{position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.92);border-top:1px solid var(--border-soft);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 10px 12px;backdrop-filter:blur(12px)}.tab{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:10px;font-weight:800}.tab.active{color:var(--accent)}.tab-dot{width:22px;height:22px;border-radius:10px;background:currentColor;opacity:.18}.content-pad{padding:0 14px 78px}.notice{border-radius:18px;padding:14px;background:var(--warn-soft);color:#7c4a03;font-size:13px;line-height:1.6}.toast{position:absolute;left:20px;right:20px;bottom:78px;display:none;background:#2f2026;color:#fff;border-radius:16px;padding:12px 14px;font-size:13px;z-index:5}.toast.show{display:block;animation:rise .2s var(--ease)}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:26px;padding:20px;box-shadow:var(--shadow)}.panel h2{margin:0 0 8px;font-size:22px;letter-spacing:-.03em}.panel p{margin:0;color:var(--fg-2);line-height:1.75;font-size:14px}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{border:1px solid var(--border-soft);border-radius:18px;background:#fff;padding:14px}.metric strong{display:block;font-size:24px;letter-spacing:-.04em}.metric span{display:block;margin-top:4px;color:var(--fg-2);font-size:12px}.flow{display:grid;gap:10px;margin-top:14px}.flow-step{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:12px}.num{width:34px;height:34px;border-radius:12px;background:var(--surface-warm);color:var(--accent-active);display:grid;place-items:center;font-weight:900}.flow-title{font-weight:900;font-size:14px}.flow-desc{font-size:12px;color:var(--fg-2);margin-top:2px}.table{width:100%;border-collapse:separate;border-spacing:0 8px}.table th{text-align:left;color:var(--muted);font-size:12px;padding:0 10px}.table td{background:#fff;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);padding:12px 10px;font-size:13px}.table td:first-child{border-left:1px solid var(--border-soft);border-radius:14px 0 0 14px}.table td:last-child{border-right:1px solid var(--border-soft);border-radius:0 14px 14px 0}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.side-note{position:sticky;top:20px}.note-title{font-size:15px;font-weight:900;margin-bottom:8px}.note-desc{font-size:12px;color:var(--fg-2);line-height:1.7;margin-bottom:12px}.callout{position:relative;background:#fff;border:1px solid #f4bfd3;border-radius:18px;padding:13px 14px 13px 42px;margin-bottom:10px}.callout:before{content:attr(data-n);position:absolute;left:12px;top:13px;width:20px;height:20px;border-radius:999px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.callout h3{margin:0 0 4px;font-size:13px}.callout p{margin:0;color:var(--fg-2);font-size:12px;line-height:1.6}.callout:after{content:"";position:absolute;left:-32px;top:22px;width:26px;border-top:1px dashed #f08bb0}.launcher-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.launch-card{background:#fff;border:1px solid var(--border-soft);border-radius:22px;padding:18px;min-height:152px;display:flex;flex-direction:column;justify-content:space-between}.launch-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(203,161,177,.16)}.launch-card h2{font-size:18px;margin:10px 0 6px}.launch-card p{font-size:13px;color:var(--fg-2);line-height:1.6;margin:0}.admin-shell{background:#f7f8fb;border:1px solid #e8eaf1;border-radius:28px;overflow:hidden}.admin-top{height:58px;background:#fff;border-bottom:1px solid #e8eaf1;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.admin-body{display:grid;grid-template-columns:210px 1fr;min-height:640px}.admin-side{background:#fff;border-right:1px solid #e8eaf1;padding:18px}.admin-nav{display:grid;gap:8px}.admin-nav a{padding:11px 12px;border-radius:12px;color:#596074;font-size:13px;font-weight:800}.admin-nav a.active,.admin-nav a:hover{background:var(--admin-soft);color:var(--admin)}.admin-main{padding:18px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.audit-line{display:grid;grid-template-columns:112px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.audit-time{font:12px var(--font-mono);color:var(--muted)}.empty,.loading,.error{border:1px dashed var(--border);border-radius:18px;padding:16px;text-align:center;color:var(--fg-2);font-size:13px}.loading:before{content:"";display:inline-block;width:14px;height:14px;border:2px solid #f7bfd2;border-top-color:var(--accent);border-radius:50%;vertical-align:-2px;margin-right:8px;animation:spin .8s linear infinite}.error{background:var(--danger-soft);color:var(--danger)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (max-width:1180px){.workspace,.single-workspace{grid-template-columns:1fr}.phone,.side-note{position:relative;top:0}.callout:after{display:none}.launcher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.page{padding:18px 12px 30px}.topbar{grid-template-columns:1fr}.nav{justify-content:flex-start}.launcher-grid,.grid.two,.grid.three,.split{grid-template-columns:1fr}.phone-screen{min-height:660px}.admin-body{grid-template-columns:1fr}.admin-side{border-right:0;border-bottom:1px solid #e8eaf1}.table{display:block;overflow:auto}.workspace{gap:14px}}

/* iPhone 15 Pro fixed-ratio polish */
/* 2026-07-02: 川烈要求 App 端统一按苹果手机比例，不再一页高一页矮。 */
.workspace{grid-template-columns:minmax(390px,430px) minmax(480px,1fr) minmax(260px,330px)}
.phone{width:min(100%,390px);aspect-ratio:390/844;height:auto;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;padding:10px;border-radius:46px;overflow:hidden}
.phone-screen{height:100%;min-height:0;display:flex;flex-direction:column;border-radius:36px;overflow:hidden}
.phone-screen .status,.phone-screen .app-head,.phone-screen .bottom-bar{flex:0 0 auto}
.content-pad{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 14px 82px;scrollbar-width:none}
.content-pad::-webkit-scrollbar{display:none}
.bottom-bar{position:absolute;left:10px;right:10px;bottom:10px;border-radius:24px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 -10px 28px rgba(251,114,153,.12)}
.toast{bottom:92px}
.side-note{align-self:start}
.side-note .note-desc::after{content:" App 端已锁定 iPhone 15 Pro 390×844 比例；页面内容在手机内部滚动，不再拉高外框。";display:block;margin-top:8px;color:var(--meta);font-weight:800;line-height:1.55}
.workspace:has(.admin-shell){grid-template-columns:minmax(760px,1fr) minmax(270px,340px)}
.admin-shell{width:100%;min-height:720px;border-radius:28px}
.admin-body{min-height:660px}
@media (max-width:1180px){.workspace,.workspace:has(.admin-shell){grid-template-columns:1fr}.phone{position:relative;top:auto}.side-note{width:100%}}
@media (max-width:760px){.phone{width:min(100%,390px);max-height:calc(100vh - 24px)}.workspace{gap:16px}.page{padding-left:12px;padding-right:12px}.admin-shell{min-height:auto;overflow:auto}.admin-body{grid-template-columns:1fr;min-height:auto}.admin-side{display:none}}


/* report-post delivery polish v3 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.report-page .workspace{grid-template-columns:minmax(390px,430px) minmax(440px,1fr) minmax(280px,340px)}
.report-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-right:18px;min-height:112px}.report-hero .app-sub{max-width:210px}.clean-bunny{position:relative;right:auto;bottom:auto;flex:0 0 86px;width:86px;height:80px;margin-top:-2px}.clean-bunny .bunny{right:0;bottom:0;width:76px;height:76px;filter:none!important}.clean-bunny .bunny-base{display:none!important}.report-scroll{display:flex;flex-direction:column;gap:12px;margin-bottom:92px;padding-bottom:18px}.report-scroll .form-card{margin:0}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head.compact{align-items:center;margin-bottom:10px}.section-head strong{display:block;font-size:16px;letter-spacing:-.02em}.required-dot{font-size:11px;font-weight:900;color:var(--danger);background:var(--danger-soft);border-radius:999px;padding:4px 8px}.object-preview{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px;border-radius:16px;background:var(--surface-warm);border:1px solid var(--border-soft)}.object-preview b{display:block;font-size:13px;line-height:1.45}.object-preview small{display:block;margin-top:4px;color:var(--fg-2);line-height:1.5}.avatar-dot{width:34px;height:34px;border-radius:14px;background:linear-gradient(145deg,var(--accent),#ffb3c8);box-shadow:inset 0 0 0 4px rgba(255,255,255,.5);flex:0 0 auto}.reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reason-grid .chip{min-height:40px;text-align:left}.reason-grid .chip[aria-pressed="true"]{background:var(--danger-soft);border-color:#f4a1bd;color:var(--accent-active);box-shadow:0 0 0 2px rgba(251,114,153,.10)}.notice.danger-notice{margin-top:12px;background:var(--danger-soft);border:1px solid #f7b6c9;color:var(--accent-active);border-radius:16px;padding:11px 12px;font-size:12px;line-height:1.55}.field-help{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.upload-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.upload-row span{font-size:12px;color:var(--muted)}.mini-upload{min-height:34px;border-radius:12px;border:1px dashed #f0a9c0;background:#fff7fb;color:var(--accent-active);font-weight:900;padding:0 10px}.mini-upload:hover{background:var(--surface-warm)}.state-card .empty,.state-card .error,.state-card .loading{min-height:42px;border-radius:14px;padding:11px 12px;font-size:12px;line-height:1.5;margin-bottom:12px}.state-card .empty{background:var(--success-soft);color:#0f7d5f}.state-card .error{background:var(--danger-soft);color:var(--danger)}.state-card .loading{background:var(--warn-soft);color:var(--warn);position:relative;padding-left:34px}.state-card .loading:before{content:"";position:absolute;left:12px;top:50%;width:13px;height:13px;margin-top:-7px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.full-width{width:100%;justify-content:center}.delivery-panel{min-height:0}.check-grid{margin:16px 0}.report-page .side-note{padding-top:6px}.report-page .callout h3{margin:0 0 5px}.report-page .callout p{margin:0;color:var(--fg-2);font-size:12px;line-height:1.65}.tab[aria-current="page"]{color:var(--accent-active);font-weight:900}.btn:active,.chip:active,.mini-upload:active,.tab:active{transform:translateY(1px) scale(.99)}
.report-page .phone-screen{display:grid;grid-template-rows:38px auto minmax(0,1fr) auto}.report-page .card{padding:14px}.report-page .textarea{min-height:64px}.report-page .bottom-bar{position:static;left:auto;right:auto;bottom:auto;margin:0 10px 10px}.report-page .content-pad{min-height:0;overflow:auto;padding-bottom:12px}.report-page .report-scroll{margin-bottom:0}
@media (max-width:1180px){.report-page .workspace{grid-template-columns:1fr}.delivery-panel{order:2}.report-page .side-note{order:3}.phone{order:1}}
@media (max-width:760px){.report-hero{min-height:104px}.clean-bunny{flex-basis:72px;width:72px}.clean-bunny .bunny{width:66px;height:66px}.reason-grid{grid-template-columns:1fr}.report-hero .app-sub{max-width:190px}.delivery-panel{display:none}}
