﻿/* Codex修改 2026-10-09：迁移至 ASP.NET Core 静态资源目录，保留原样式。 */
/* Codex修改 2026-09-19：H5 基础布局、加载反馈及原生标签补齐。 */
html { font-size: min(13.333333vw, 64px); background: #ece9eb; -webkit-text-size-adjust: 100%; }
body { max-width: 480px; margin: 0 auto; min-height: 100vh; font: .28rem/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; color: #454349; background: #f1f1f1; overflow-wrap: anywhere; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
button, input, textarea, select { font: inherit; }
/* Codex修改 2026-09-20：补齐原小程序按钮默认整行样式，避免登录与保存按钮缩成文字宽度。 */
button { display: block; width: 100%; border: 0; cursor: pointer; padding: .2rem .3rem; line-height: 1.5; background: #fff; color: inherit; }
button:disabled { cursor: default; opacity: .62; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid #ed3c76; outline-offset: 3px; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; object-fit: cover; }
input, textarea { width: 100%; border: 0; border-radius: .12rem; background: #f7f5f6; padding: .18rem; }
textarea { resize: vertical; min-height: 2rem; }
a[class*="button"] { display: block; text-align: center; }
.app-nav { display: flex; position: sticky; top: 0; z-index: 70; height: .88rem; align-items: center; justify-content: space-between; padding: 0 .2rem; background: rgba(255,248,251,.96); border-bottom: 1px solid #eee; }
.app-nav button, .app-nav a { width: auto; padding: .08rem .14rem; background: transparent; min-width: .6rem; }
.app-nav-title { font-size: .32rem; font-weight: 600; }
.app-error { position: relative; margin: .2rem; padding: .22rem; border-radius: .14rem; color: #a7204c; background: #fff0f5; white-space: pre-wrap; }
.app-toast { position: fixed; left: 50%; bottom: 20%; transform: translateX(-50%); z-index: 200; max-width: 85%; padding: .25rem .4rem; border-radius: .16rem; background: #302b2fe8; color: #fff; text-align: center; }
.app-wait { position: fixed; inset: 0; z-index: 180; display: grid; place-content: center; background: #ffffff55; pointer-events: none; }
.app-wait span { display: block; border-radius: .18rem; padding: .3rem .5rem; background: #302b2fe8; color: #fff; }
.app-state { margin: .25rem; padding: .35rem; border-radius: .18rem; background: #fff; }
.app-muted { color: #888; font-size: .24rem; }
.app-primary { display: block; width: 100%; background: #ed3c76; color: #fff; border-radius: .18rem; margin-top: .2rem; text-align: center; padding: .22rem; }
.app-secondary { display: block; width: 100%; background: #fff0f5; color: #cc3468; border-radius: .18rem; margin-top: .2rem; text-align: center; padding: .22rem; }
.app-actions { display: flex; gap: .2rem; margin: .2rem 0; }
.app-actions > * { flex: 1; }
.task-gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; position: relative; z-index: 2; background: #fff; }
.task-gallery > img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: contain; scroll-snap-align: center; }
.gallery-hint { position: relative; text-align: center; color: #888; font-size: .22rem; margin: .1rem 0 .2rem; }
.detail-text, .memo-text, .content-value { white-space: pre-wrap; }
.bottom-nav, .publish-bar, .upload-bar { max-width: 480px; margin: 0 auto; }
.tab-content { min-height: calc(100vh - .88rem) !important; }
/* Codex修改 2026-09-20：扣除 H5 顶部和底部导航，避免短页产生空白滚动。 */
.tab-content [data-component] > section, .tab-content [data-component] > .mine-page { min-height: calc(100vh - 2rem - env(safe-area-inset-bottom)); }
a.primary, a.secondary { display: block; width: 100%; text-align: center; padding: .2rem; }
.nav-item { background: transparent; border-radius: 0; padding: 0; }
.task-card { cursor: pointer; }
.task-card:focus-visible { outline: 2px solid #ed3c76; }
.state-message, .task-message { padding: .3rem; }
.tab-content button.contact-row { width: 100%; }
a.shortcut-card, a.tool-row, a.tile, a.card, a.footer { display: block; }
a.tool-row { display: flex; }
.app-form-note { color: #777; margin-top: .2rem; font-size: .24rem; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; animation: none !important; } }
