:root {
  --green: #16a34a;
  --green-deep: #0b5d32;
  --green-pale: #eaf7ee;
  --yellow: #fbbf24;
  --yellow-deep: #9f6900;
  --yellow-pale: #fff7d6;
  --ink: #17211b;
  --muted: #6e776f;
  --paper: #f7f8f2;
  --white: #fff;
  --danger: #bf3f32;
  --line: rgba(20,45,31,.11);
  --font: "Times New Roman", SimSun, "Songti SC", serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; color: var(--ink); background: var(--paper); font-family: var(--font); font-size: 16px; -webkit-font-smoothing: antialiased; }
body { overscroll-behavior: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(251,191,36,.75); outline-offset: 2px; }
.miniapp { min-height: 100vh; max-width: 520px; margin: 0 auto; position: relative; background: var(--paper); overflow-x: hidden; padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
.status-bar { height: calc(25px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 20px 0; display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 700; background: var(--paper); position: sticky; top: 0; z-index: 50; }
.status-icons { font-size: 8px; letter-spacing: 2px; }
.app-header { min-height: 56px; padding: 0 12px 6px; display: flex; align-items: center; background: rgba(247,248,242,.94); backdrop-filter: blur(12px); position: sticky; top: calc(25px + env(safe-area-inset-top)); z-index: 48; border-bottom: 1px solid rgba(20,45,31,.06); }
.app-header-main { width: 100%; display: grid; grid-template-columns: minmax(68px,auto) minmax(72px,1fr) auto 28px; align-items: center; gap: 8px; }
.app-header button { border: 0; background: transparent; padding: 9px 0; cursor: pointer; }
.location-button { min-width: 0; max-width: 94px; justify-self: start; display: flex; align-items: center; gap: 5px; overflow: hidden; font-size: 13px; font-weight: 700; }
.location-button [data-t="city"] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.location-button .pin { color: var(--green); font-size: 9px; }.location-button small { color: var(--muted); }
.mini-brand { min-width: 0; max-width: 100%; justify-self: center; display: flex; align-items: center; gap: 5px; }
.mini-brand strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; letter-spacing: .025em; color: var(--green-deep); }
.mini-logo { width: 25px; height: 20px; display: block; flex: 0 0 auto; object-fit: contain; border-radius: 4px; background: #fff; }
.notification-button { justify-self: end; width: 28px; position: relative; font-size: 18px; line-height: 1; }
.notification-button b { position: absolute; right: -3px; top: 3px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 10px; background: var(--danger); color: #fff; display: grid; place-items: center; font-size: 9px; }
.app-language { justify-self: end; display: inline-flex; align-items: center; gap: 2px; height: 26px; padding: 2px; border: 1px solid var(--line); border-radius: 999px; background: #fff; white-space: nowrap; }
.app-language span { color: #a2aaa4; font-size: 10px; }
.app-header .app-language button { min-height: 20px; padding: 0 5px; border-radius: 999px; color: var(--muted); font-size: 12px; line-height: 20px; }
.app-header .app-language button.active { color: #fff; background: var(--green-deep); }

.app-main { min-height: calc(100vh - 144px); outline: 0; }
.page { padding: 16px 17px 28px; animation: pageIn .22s ease; }
@keyframes pageIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 3px 0 18px; }
.page-head h1 { margin: 0; font-size: 18px; line-height: 1.2; letter-spacing: -.015em; }
.page-head p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.version-chip { padding: 6px 9px; border-radius: 99px; color: var(--muted); background: #fff; border: 1px solid var(--line); font-size: 9px; white-space: nowrap; }
.radar-page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; row-gap: 5px; }
.radar-page-head h1 { grid-column: 1; grid-row: 1; }
.radar-page-head .version-chip { grid-column: 2; grid-row: 1; justify-self: end; }
.radar-page-head p { grid-column: 1 / -1; grid-row: 2; margin: 0; white-space: nowrap; }
.section-label { margin: 23px 0 10px; display: flex; align-items: center; justify-content: space-between; }
.section-label h2 { margin: 0; font-size: 16px; }
.section-label button { border: 0; background: transparent; color: var(--green-deep); font-size: 11px; cursor: pointer; }
.compact-title { margin: 1px 0 14px; }
.compact-title h1 { margin: 0; font-size: 18px; line-height: 1.2; }
.compact-title p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.role-toggle { display: inline-flex; padding: 3px; border-radius: 99px; background: #e7ebe5; }
.role-toggle button { border: 0; min-height: 32px; padding: 7px 11px; border-radius: 99px; background: transparent; color: var(--muted); font-size: 11px; line-height: 1; white-space: nowrap; cursor: pointer; }
.role-toggle button.active { color: #fff; background: var(--green-deep); box-shadow: 0 5px 12px rgba(11,93,50,.18); }
.profile-page-head {
  --profile-head-type-size: 13px;
  display: grid;
  grid-template-columns: auto auto minmax(0,1fr);
  align-items: center;
  justify-content: initial;
  column-gap: 8px;
  margin-bottom: 16px;
}
.profile-page-head h1,
.profile-page-head p,
.profile-page-head .role-toggle button { font-size: var(--profile-head-type-size); line-height: 1; }
.profile-page-head h1 { letter-spacing: 0; white-space: nowrap; }
.profile-page-head .profile-version { justify-self: end; margin: 0; white-space: nowrap; }
.profile-role-switch { justify-self: start; max-width: none; padding: 2px; }
.profile-role-switch button { min-height: 30px; padding: 6px 10px; }
.role-control { display: flex; align-items: center; gap: 8px; margin: 1px 0 14px; }
.role-control > strong { font-size: 16px; font-weight: 700; }
.role-toggle { align-items: center; }
.role-toggle > span { color: #98a098; font-size: 10px; }

.prompt-card { padding: 18px; border-radius: 22px; color: #fff; background: linear-gradient(145deg,#123f2a,#0a5c32); box-shadow: 0 18px 45px rgba(11,93,50,.2); position: relative; overflow: hidden; }
.prompt-card::after { content: ""; position: absolute; width: 180px; height: 180px; border-radius: 50%; right: -88px; top: -90px; border: 28px solid rgba(251,191,36,.13); }
.prompt-card label { position: relative; z-index: 2; display: block; margin-bottom: 10px; color: rgba(255,255,255,.74); font-size: 11px; }
.prompt-card textarea { position: relative; z-index: 2; display: block; width: 100%; min-height: 98px; resize: none; overflow-y: auto; scrollbar-gutter: auto; padding: 0; border: 0; outline: 0; color: #fff; background: transparent; font-size: 16px; line-height: 1.45; }
.prompt-card textarea::placeholder { color: rgba(255,255,255,.52); }
.prompt-actions { position: relative; z-index: 2; margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.prompt-actions button { min-height: 43px; border-radius: 12px; border: 1px solid rgba(255,255,255,.13); color: #fff; background: rgba(255,255,255,.08); font-size: 12px; cursor: pointer; }
.prompt-actions button.primary { color: #241b04; background: var(--yellow); border-color: var(--yellow); font-weight: 700; }

.scene-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.scene-card { min-height: 92px; padding: 12px 10px; border: 1px solid var(--line); border-radius: 16px; background: #fff; text-align: left; cursor: pointer; display: grid; align-content: space-between; }
.scene-card:active { transform: scale(.98); }
.scene-icon { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; color: var(--green-deep); background: var(--green-pale); font-size: 15px; }
.scene-card:nth-child(even) .scene-icon { color: var(--yellow-deep); background: var(--yellow-pale); }
.scene-card strong { font-size: 11px; line-height: 1.3; }
.scene-heading { align-items: flex-end; }
.scene-heading > div small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.scene-list { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.scene-row { width: 100%; min-height: 45px; padding: 0 13px; border: 0; border-bottom: 1px solid var(--line); background: #fff; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; text-align: left; cursor: pointer; }
.scene-row:last-child { border-bottom: 0; }
.scene-row span { font-size: 12px; font-weight: 700; }
.scene-row small { color: var(--muted); font-size: 9px; }
.scene-row b { color: var(--green-deep); font-size: 12px; }

.order-card { padding: 16px; border-radius: 19px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 26px rgba(28,48,36,.05); cursor: pointer; }
.order-card + .order-card { margin-top: 10px; }
.order-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.order-id { color: var(--muted); font-size: 10px; }
.status-pill { padding: 5px 8px; border-radius: 99px; background: var(--yellow-pale); color: var(--yellow-deep); font-size: 9px; font-weight: 700; }
.status-pill.green { color: var(--green-deep); background: var(--green-pale); }
.status-pill.red { color: #9f2f27; background: #fde9e6; }
.order-card h3 { margin: 12px 0 5px; font-size: 15px; line-height: 1.35; }
.order-meta { display: flex; flex-wrap: wrap; gap: 10px; color: var(--muted); font-size: 10px; }
.order-progress { height: 5px; margin: 14px 0 9px; border-radius: 9px; overflow: hidden; background: #ecf0eb; }
.order-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green),var(--yellow)); }
.next-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--green-deep); font-size: 10px; }
.next-action b { font-size: 15px; }

.standin-summary { padding: 17px; border-radius: 21px; color: #fff; background: #142a1d; display: grid; grid-template-columns: 1.1fr .9fr; gap: 12px; }
.standin-summary small { color: rgba(255,255,255,.58); font-size: 10px; }.standin-summary strong { display: block; margin-top: 4px; font-size: 28px; line-height: 1; }
.availability { align-self: center; justify-self: end; text-align: right; }
.switch { display: inline-flex; width: 47px; height: 27px; padding: 3px; border: 0; border-radius: 30px; background: #46564c; cursor: pointer; }
.switch i { width: 21px; height: 21px; border-radius: 50%; background: #fff; transition: transform .18s ease; }
.switch.on { background: var(--green); }.switch.on i { transform: translateX(20px); }
.availability span { display: block; margin-top: 4px; color: rgba(255,255,255,.55); font-size: 9px; }

.task-card { padding: 16px; margin-bottom: 10px; border-radius: 19px; background: #fff; border: 1px solid var(--line); }
.task-card-head { display: grid; grid-template-columns: minmax(0,1fr) max-content; grid-template-areas: "type earning" "title title" "id id"; align-items: start; column-gap: 8px; row-gap: 0; }
.task-type { grid-area: type; color: var(--green); font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.task-card h3 { grid-area: title; min-width: 0; width: 100%; margin: 5px 0; font-size: 12.5px; line-height: 1.32; letter-spacing: -.02em; text-wrap: balance; overflow-wrap: normal; word-break: normal; }
.task-card p { grid-area: id; margin: 0; color: var(--muted); font-size: 10px; }
.earning { grid-area: earning; text-align: right; min-width: 60px; }.earning strong { display: block; color: var(--green-deep); font-size: 19px; }.earning small { color: var(--muted); font-size: 8px; }
.task-facts { margin: 13px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.task-facts div { min-height: 45px; padding: 7px; border-radius: 10px; background: #f3f5f1; }
.task-facts span { display: block; color: var(--muted); font-size: 8px; }.task-facts strong { display: block; margin-top: 2px; font-size: 10px; }
.task-card-actions { display: grid; grid-template-columns: .78fr 1.22fr; gap: 8px; }
.small-button { min-height: 39px; border-radius: 11px; border: 1px solid var(--line); background: #fff; font-size: 11px; cursor: pointer; }
.small-button.primary { border-color: var(--yellow); background: var(--yellow); font-weight: 700; }
@media (min-width: 340px) { html[lang="zh-CN"] .task-card h3 { white-space: nowrap; } }

.filter-row { display: flex; gap: 7px; margin-bottom: 14px; overflow-x: auto; scrollbar-width: none; }
.filter-row::-webkit-scrollbar { display: none; }
.filter-row button { min-width: max-content; padding: 8px 12px; border-radius: 99px; border: 1px solid var(--line); color: var(--muted); background: #fff; font-size: 10px; cursor: pointer; }
.filter-row button.active { color: #fff; background: var(--green-deep); border-color: var(--green-deep); }
.radar-page { padding-top: 10px; }
.radar-tools { margin-bottom: 10px; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.radar-tools button { min-height: 45px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--green-deep); text-align: left; cursor: pointer; }
.radar-tools button:last-child { min-width: 96px; text-align: center; }
.radar-tools strong { display: block; font-size: 12px; }
.radar-tools small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }

.builder-step { display: flex; align-items: center; gap: 6px; margin: 2px 0 18px; }
.builder-step i { height: 4px; flex: 1; border-radius: 9px; background: #dde2dc; }.builder-step i.done { background: var(--green); }.builder-step i.current { background: var(--yellow); }
.back-button { width: 38px; height: 38px; margin: -2px 0 12px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; }
.form-card { padding: 17px; border-radius: 20px; border: 1px solid var(--line); background: #fff; }
.form-card + .form-card { margin-top: 11px; }
.form-card h2 { margin: 0 0 13px; font-size: 15px; }
.field { display: grid; gap: 6px; margin-bottom: 13px; }
.field:last-child { margin-bottom: 0; }
.field label { color: var(--muted); font-size: 10px; }
.field input, .field textarea, .field select { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: #f8faf7; padding: 11px 12px; font-size: 12px; }
.field textarea { min-height: 94px; resize: vertical; line-height: 1.55; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.choice { min-height: 70px; padding: 12px; border-radius: 13px; border: 1px solid var(--line); background: #f8faf7; text-align: left; cursor: pointer; }
.choice.active { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); background: var(--green-pale); }
.choice strong { display: block; font-size: 11px; }.choice small { color: var(--muted); font-size: 9px; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 10px; padding: 3px; border-radius: 13px; background: #e8ece7; }
.segmented button { min-height: 36px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: 11px; cursor: pointer; }
.segmented button.active { color: #fff; background: var(--green-deep); }
.template-tabs { display: flex; gap: 7px; margin-bottom: 10px; overflow-x: auto; scrollbar-width: none; }
.template-tabs button { min-width: max-content; padding: 8px 10px; border: 1px solid var(--line); border-radius: 99px; background: #fff; color: var(--muted); font-size: 10px; cursor: pointer; }
.template-tabs button.active { color: var(--green-deep); border-color: var(--green); background: var(--green-pale); }
.checklist { display: grid; gap: 0; }
.checklist label { min-height: 39px; display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: 8px; border-top: 1px solid var(--line); font-size: 11px; }
.checklist label:first-child { border-top: 0; }
.checklist input { width: 16px; height: 16px; accent-color: var(--green-deep); }
.objective-list { display: grid; gap: 8px; }
.objective-row { display: grid; grid-template-columns: 24px minmax(0,1fr) 28px; align-items: center; gap: 7px; }
.objective-row b { width: 24px; height: 24px; border-radius: 50%; background: var(--green-pale); color: var(--green-deep); display: grid; place-items: center; font-size: 10px; }
.objective-row input { width: 100%; min-height: 40px; border: 1px solid var(--line); border-radius: 11px; padding: 8px 10px; background: #f8faf7; font-size: 11px; }
.objective-row button, .text-button { border: 0; background: transparent; color: var(--green-deep); cursor: pointer; }
.text-button { margin-top: 9px; padding: 4px 0; font-size: 10px; }
.budget-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 12px; }
.budget-grid .field { grid-template-rows: 18px 44px; margin: 0; }
.budget-grid input { height: 44px; }
.counter-row { min-height: 38px; margin-top: 10px; display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: 7px; font-size: 11px; }
.counter-row input { width: 17px; height: 17px; margin: 0; accent-color: var(--green-deep); }
.form-hint { margin: 9px 0 0; color: var(--muted); font-size: 9px; }
.full-button { width: 100%; min-height: 48px; margin-top: 14px; border: 0; border-radius: 14px; color: #241b04; background: var(--yellow); font-weight: 700; font-size: 12px; cursor: pointer; }
.full-button.secondary { color: var(--green-deep); background: var(--green-pale); }
.full-button:disabled { color: #7f857f; background: #e3e6e1; cursor: not-allowed; }

.ai-brief { padding: 17px; border-radius: 20px; color: #fff; background: #143e29; }
.ai-brief-head { display: flex; align-items: center; justify-content: space-between; }
.ai-brief-head span { color: var(--yellow); font-size: 9px; letter-spacing: .08em; }.ai-brief-head b { font-size: 9px; font-weight: 400; color: rgba(255,255,255,.55); }
.ai-brief h2 { margin: 12px 0 5px; font-size: 18px; }.ai-brief p { margin: 0; color: rgba(255,255,255,.65); font-size: 10px; }
.brief-list { margin-top: 12px; padding: 0; list-style: none; }
.brief-list li { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.11); display: grid; grid-template-columns: 88px 1fr; gap: 10px; font-size: 10px; }
.brief-list li span { color: rgba(255,255,255,.5); }.brief-list li strong { font-weight: 400; }
.risk-box { margin-top: 11px; padding: 13px; border-radius: 14px; background: var(--yellow-pale); border: 1px solid rgba(183,121,0,.15); }
.risk-box strong { color: var(--yellow-deep); font-size: 11px; }.risk-box p { margin: 5px 0 0; color: #6d5b2f; font-size: 9px; }
.platform-safety-warning { margin-top: 12px; padding: 11px 12px; border: 1px solid rgba(194,65,52,.38); border-left: 4px solid var(--danger); border-radius: 12px; background: #fff3f1; }
.platform-safety-warning strong, .platform-safety-warning h3 { display: block; margin: 0; color: var(--danger); font-size: 11px; line-height: 1.35; }
.platform-safety-warning p { margin: 5px 0 0; color: #70443f; font-size: 9px; line-height: 1.55; }
.platform-safety-warning.compact { padding: 9px 11px; }
.agreement-links { margin-top: 10px; padding: 0; border: 0; color: var(--green-deep); background: transparent; font-size: 10px; text-decoration: underline; cursor: pointer; }
.agreement-check { margin-top: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf7; display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: start; cursor: pointer; }
.agreement-check input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--green-deep); }
.agreement-check span { color: var(--ink); font-size: 9px; line-height: 1.55; }
.price-lock { margin-top: 11px; padding: 14px; border-radius: 15px; background: var(--green-pale); display: flex; align-items: center; justify-content: space-between; }
.price-lock span { color: var(--green-deep); font-size: 10px; }.price-lock span small { display: block; }.price-lock strong { color: var(--green-deep); font-size: 21px; }
.brief-objectives { margin: 12px 0 0; padding-left: 20px; }
.brief-objectives li { padding: 5px 0; color: rgba(255,255,255,.9); font-size: 10px; line-height: 1.45; }
.payment-placeholder { margin-top: 11px; padding: 13px; border: 1px dashed rgba(11,93,50,.35); border-radius: 14px; background: #fff; }
.payment-placeholder strong { font-size: 11px; }
.payment-placeholder p { margin: 4px 0 9px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.payment-placeholder span { display: inline-flex; margin-right: 6px; padding: 5px 8px; border-radius: 99px; color: var(--green-deep); background: var(--green-pale); font-size: 9px; }
.action-pair { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9px; }

.timeline { position: relative; margin-top: 8px; }
.timeline::before { content: ""; position: absolute; top: 8px; bottom: 20px; left: 11px; width: 1px; background: #dce2dc; }
.timeline-item { position: relative; display: grid; grid-template-columns: 24px 1fr; gap: 12px; padding-bottom: 19px; }
.timeline-dot { width: 23px; height: 23px; z-index: 2; border-radius: 50%; display: grid; place-items: center; background: #e3e8e3; color: #7e887f; font-size: 9px; }
.timeline-item.done .timeline-dot { color: #fff; background: var(--green); }.timeline-item.current .timeline-dot { color: #241b04; background: var(--yellow); box-shadow: 0 0 0 5px rgba(251,191,36,.14); }
.timeline-copy strong { display: block; font-size: 12px; }.timeline-copy small { color: var(--muted); font-size: 9px; }
.responsibility { margin-top: 5px; padding: 8px 9px; border-radius: 9px; color: var(--green-deep); background: var(--green-pale); font-size: 9px; display: inline-block; }
.evidence-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.evidence-item { min-height: 90px; padding: 10px; border-radius: 13px; border: 1px dashed #cdd5ce; background: #fff; display: grid; align-content: space-between; }
.evidence-item.done { border-style: solid; background: var(--green-pale); }.evidence-item span { font-size: 18px; }.evidence-item strong { font-size: 9px; }.evidence-item small { color: var(--muted); font-size: 8px; }

.profile-card { padding: 18px; border-radius: 21px; color: #fff; background: linear-gradient(135deg,#113822,#17623a); }
.profile-line { display: flex; align-items: center; gap: 12px; }
.avatar { width: 48px; height: 48px; border-radius: 16px; display: grid; place-items: center; color: var(--green-deep); background: #fff; font-weight: 700; }
.profile-line h2 { margin: 0; font-size: 17px; }.profile-line p { margin: 3px 0 0; color: rgba(255,255,255,.6); font-size: 9px; }
.profile-stats { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); display: grid; grid-template-columns: repeat(3,1fr); }
.profile-stats div { text-align: center; }.profile-stats strong { display: block; font-size: 16px; }.profile-stats span { color: rgba(255,255,255,.54); font-size: 8px; }
.credit-line { margin-top: 15px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.credit-line > div { min-width: 0; }
.credit-line span { display: block; color: rgba(255,255,255,.62); font-size: 9px; }
.credit-line strong { display: block; margin-top: 3px; font-size: 21px; }
.credit-line strong small { font-size: 9px; color: rgba(255,255,255,.55); }
.stars { margin-top: 5px; color: var(--yellow); font-size: 16px; letter-spacing: 1px; white-space: nowrap; }
.stars.red { color: #ff6a5c; }
.credit-note { margin-top: 10px; padding: 10px 12px; border-radius: 12px; color: var(--green-deep); background: var(--green-pale); font-size: 9px; line-height: 1.5; }
.settings-list { overflow: hidden; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.setting-row { width: 100%; min-height: 54px; padding: 0 14px; border: 0; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; text-align: left; }
.setting-row:last-child { border-bottom: 0; }.setting-row span { font-size: 12px; }.setting-row small { color: var(--muted); font-size: 10px; }.setting-row.danger span { color: var(--danger); }
.language-inline { display: flex; gap: 5px; }
.language-inline button { border: 1px solid var(--line); border-radius: 99px; padding: 5px 8px; background: #fff; color: var(--muted); font-size: 9px; }.language-inline button.active { color: #fff; background: var(--green-deep); }
.prototype-banner { margin-top: 14px; padding: 13px; border-radius: 14px; color: #72551a; background: var(--yellow-pale); font-size: 9px; line-height: 1.6; }
.prototype-banner > span { display: block; }.prototype-banner > span + span { margin-top: 9px; }

.empty-state { padding: 48px 24px; text-align: center; border-radius: 20px; background: #fff; border: 1px solid var(--line); }
.empty-state span { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 50%; color: var(--green-deep); background: var(--green-pale); font-size: 24px; }
.empty-state h3 { margin: 0 0 7px; font-size: 15px; }.empty-state p { margin: 0; color: var(--muted); font-size: 10px; }

.tabbar { position: fixed; z-index: 60; bottom: 0; left: 50%; transform: translateX(-50%); width: min(520px,100%); min-height: calc(67px + env(safe-area-inset-bottom)); padding: 6px 5px env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(5,1fr); background: rgba(255,255,255,.95); border-top: 1px solid var(--line); backdrop-filter: blur(15px); }
.tab { position: relative; border: 0; background: transparent; color: #869088; display: grid; place-items: center; align-content: center; gap: 1px; cursor: pointer; }
.tab.active { color: var(--green-deep); }.tab-icon { font-size: 21px; line-height: 1; }.tab small { font-size: 9px; }
.tab b { position: absolute; right: calc(50% - 22px); top: 3px; min-width: 15px; height: 15px; padding: 0 3px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--danger); font-size: 8px; }

.conversation-list { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.conversation { width: 100%; min-height: 72px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--line); background: #fff; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.conversation:last-child { border-bottom: 0; }
.avatar.small { width: 42px; height: 42px; border-radius: 13px; background: var(--green-pale); }
.conversation-copy { min-width: 0; }
.conversation-copy strong, .conversation-copy small, .conversation-copy em { display: block; }
.conversation-copy strong { font-size: 12px; }
.conversation-copy small { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.conversation-copy em { margin-top: 3px; color: #9aa19b; font-size: 8px; font-style: normal; }
.conversation-meta { align-self: stretch; display: grid; justify-items: end; align-content: space-between; }
.conversation-meta time { color: var(--muted); font-size: 8px; }
.conversation-meta b { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 9px; background: var(--danger); color: #fff; display: grid; place-items: center; font-size: 8px; }
.chat-page { min-height: calc(100vh - 82px); padding-bottom: 178px; }
.chat-head { min-height: 55px; padding: 7px 12px; position: sticky; top: calc(81px + env(safe-area-inset-top)); z-index: 30; background: rgba(247,248,242,.96); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; gap: 8px; }
.chat-head button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; cursor: pointer; }
.chat-head strong, .chat-head small { display: block; }
.chat-head strong { font-size: 12px; }.chat-head small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.chat-body { padding: 14px; display: grid; gap: 9px; }
.bubble { max-width: 82%; padding: 9px 11px; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.bubble.me { justify-self: end; background: var(--green-pale); border-color: rgba(22,163,74,.2); }
.bubble p { margin: 0; font-size: 11px; line-height: 1.5; }
.bubble > span { display: block; margin-top: 6px; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,.65); color: var(--green-deep); font-size: 9px; }
.bubble time { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; text-align: right; }
.chat-composer { position: fixed; z-index: 59; left: 50%; bottom: calc(67px + env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(520px,100%); padding: 7px 11px 8px; background: rgba(255,255,255,.98); border-top: 1px solid var(--line); }
.chat-attachments { display: flex; gap: 8px; margin-bottom: 6px; }
.chat-attachments label { padding: 5px 8px; border-radius: 8px; color: var(--green-deep); background: var(--green-pale); font-size: 9px; cursor: pointer; }
.chat-send { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.chat-send input { min-width: 0; height: 39px; padding: 0 11px; border: 1px solid var(--line); border-radius: 11px; background: #f7f8f4; font-size: 11px; }
.chat-send button { min-width: 55px; border: 0; border-radius: 11px; color: #fff; background: var(--green-deep); font-size: 10px; cursor: pointer; }
.chat-composer > small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; }

.sheet-backdrop { position: fixed; z-index: 89; inset: 0; background: rgba(7,14,9,.44); backdrop-filter: blur(2px); }
.bottom-sheet { position: fixed; z-index: 90; left: 50%; bottom: 0; transform: translateX(-50%); width: min(520px,100%); max-height: 82vh; padding: 12px 17px calc(22px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; background: #fff; box-shadow: 0 -20px 60px rgba(12,31,20,.22); overflow-y: auto; animation: sheetIn .22s ease; }
@keyframes sheetIn { from { transform: translate(-50%,100%); } to { transform: translate(-50%,0); } }
.sheet-handle { width: 36px; height: 4px; margin: 0 auto 17px; border-radius: 9px; background: #dfe4df; }
.sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sheet-head h2 { margin: 0; font-size: 19px; }.sheet-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }.sheet-close { width: 33px; height: 33px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; }
.notice-list { margin-top: 14px; }
.notice-item { width: 100%; padding: 14px 0; border: 0; border-top: 1px solid var(--line); background: #fff; display: grid; grid-template-columns: 35px 1fr auto; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.notice-item.unread::after { content: ""; position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--danger); }
.notice-icon { width: 35px; height: 35px; border-radius: 12px; display: grid; place-items: center; color: var(--green-deep); background: var(--green-pale); }.notice-copy strong { display: block; font-size: 11px; }.notice-copy small { color: var(--muted); font-size: 9px; }.notice-arrow { color: var(--muted); }
.confirm-summary { margin: 18px 0; padding: 14px; border-radius: 15px; background: #f4f6f3; }
.confirm-summary p { margin: 0 0 6px; color: var(--muted); font-size: 10px; }.confirm-summary strong { display: block; font-size: 14px; }.confirm-summary small { color: var(--danger); font-size: 9px; }
.confirm-actions { display: grid; grid-template-columns: minmax(100px,.72fr) 1.28fr; gap: 42px; margin-top: 20px; }
.confirm-actions button { min-height: 46px; border-radius: 13px; border: 1px solid var(--line); background: #fff; cursor: pointer; font-size: 11px; }
.confirm-actions button:last-child { border-color: var(--yellow); background: var(--yellow); font-weight: 700; }
.sheet-form { margin-top: 14px; }
.contact-actions, .payment-options { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.contact-actions a, .contact-actions button, .payment-options button { min-height: 70px; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: #f8faf7; color: var(--ink); text-align: left; text-decoration: none; cursor: pointer; }
.contact-actions strong, .contact-actions small, .payment-options strong, .payment-options small { display: block; }
.contact-actions strong, .payment-options strong { font-size: 11px; }.contact-actions small, .payment-options small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.language-list { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; }
.language-list button { width: 100%; min-height: 42px; padding: 0 12px; border: 0; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; text-align: left; font-size: 11px; cursor: pointer; }
.language-list button:last-child { border-bottom: 0; }
.language-list button.active { color: #fff; background: var(--green-deep); }
.language-list button:disabled { color: var(--muted); background: #f6f7f4; cursor: not-allowed; }
.language-list small { font-size: 8px; }
.policy-copy { margin-top: 14px; padding: 13px; border-radius: 14px; background: #f4f6f3; }
.policy-copy section + section { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.policy-copy section.platform-safety-warning { padding: 11px 12px; border: 1px solid rgba(194,65,52,.38); border-left: 4px solid var(--danger); }
.policy-copy h3 { margin: 0 0 5px; color: var(--green-deep); font-size: 11px; }
.policy-copy p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.top-gap { margin-top: 10px; }
.toast { position: fixed; z-index: 110; left: 50%; bottom: calc(88px + env(safe-area-inset-bottom)); transform: translate(-50%,16px); max-width: calc(100% - 42px); padding: 10px 14px; border-radius: 12px; color: #fff; background: rgba(12,28,18,.93); box-shadow: 0 12px 30px rgba(0,0,0,.22); font-size: 10px; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (min-width: 521px) { body { background: #e8ebe6; } }
@media (max-width: 380px) {
  .page { padding-left: 13px; padding-right: 13px; }
  .app-header { padding-left: 10px; padding-right: 10px; }
  .scene-grid { grid-template-columns: repeat(2,1fr); }
  .task-facts { grid-template-columns: repeat(2,1fr); }
  .prompt-card textarea { font-size: 15px; }
  .profile-role-switch button { padding-left: 8px; padding-right: 8px; }
  .location-button { max-width: 72px; font-size: 12px; }
  .mini-logo { width: 22px; height: 18px; }
  .mini-brand strong { font-size: 12.5px; }
  .app-header-main { gap: 4px; }
  .app-language { height: 24px; }
  .app-header .app-language button { min-height: 18px; padding: 0 4px; font-size: 11px; line-height: 18px; }
  .notification-button { width: 26px; }
  .tab small { font-size: 8px; }
}
@media (max-width: 340px) {
  .app-header { padding-left: 8px; padding-right: 8px; }
  .app-header-main { grid-template-columns: minmax(56px,auto) minmax(62px,1fr) auto 24px; gap: 3px; }
  .location-button { max-width: 60px; gap: 3px; font-size: 11.5px; }
  .mini-brand { gap: 3px; }
  .mini-logo { width: 20px; height: 17px; }
  .mini-brand strong { font-size: 11.5px; letter-spacing: 0; }
  .app-language { height: 22px; gap: 1px; padding: 1px; }
  .app-language span { font-size: 9px; }
  .app-header .app-language button { min-height: 18px; padding: 0 3px; font-size: 10.5px; line-height: 18px; }
  .notification-button { width: 24px; font-size: 17px; }
}
@media (min-width: 440px) {
  .page { padding-left: 21px; padding-right: 21px; }
  .scene-card { min-height: 98px; }
  .prompt-card { padding: 21px; }
}
@media (min-width: 600px) and (max-width: 900px) {
  .miniapp { max-width: 760px; }
  .tabbar, .chat-composer, .bottom-sheet { width: min(760px,100%); }
  .home-page, .radar-page, .messages-page, .profile-page, .builder-page { padding-left: 28px; padding-right: 28px; }
  .scene-list { display: grid; grid-template-columns: 1fr 1fr; }
  .scene-row:nth-child(odd) { border-right: 1px solid var(--line); }
  .task-card { display: grid; grid-template-columns: 1fr; }
}
body.web-mode { background: #e9ede8; }
.web-mode .miniapp { max-width: 1180px; min-height: 100vh; padding-bottom: 30px; }
.web-mode .status-bar { display: none; }
.web-mode .app-header { top: 0; max-width: 1180px; margin: 0 auto; }
.web-mode .tabbar { top: 56px; bottom: auto; width: min(1180px,100%); min-height: 52px; padding: 4px 16px; border-top: 0; border-bottom: 1px solid var(--line); }
.web-mode .app-main { min-height: calc(100vh - 108px); padding-top: 58px; }
.web-mode .page { max-width: 980px; margin: 0 auto; padding-left: 28px; padding-right: 28px; }
.web-mode .home-page { display: grid; grid-template-columns: 1.05fr .95fr; gap: 0 22px; align-items: start; }
.web-mode .home-page .prompt-card { grid-row: span 4; }
.web-mode .home-page .section-label { margin-top: 0; }
.web-mode .home-page .scene-list { grid-column: 2; }
.web-mode .home-page .order-card { grid-column: 2; }
.web-mode .radar-page { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.web-mode .radar-tools, .web-mode .radar-page .filter-row { grid-column: 1 / -1; }
.web-mode .chat-composer { bottom: 0; width: min(980px,100%); }
.web-mode .chat-head { top: 108px; }
@media (max-width: 760px) {
  .web-mode .home-page, .web-mode .radar-page { display: block; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
