* {
  margin: 0;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  -webkit-user-select: none;
  -moz-user-select: none;
       user-select: none;
  width: 100%;
  height: 100%;
}

body {
  overflow-x: hidden;
  font-size: 16px;
}

uni-app,
uni-page,
uni-page-wrapper,
uni-page-body {
  display: block;
  box-sizing: border-box;
  width: 100%;
}

uni-page-wrapper {
  position: relative;
}

#app,
uni-app,
uni-page,
uni-page-wrapper {
  height: 100%;
}

/* toast,modal,actionSheet,picker,layout */
.uni-mask {
  position: fixed;
  z-index: 999;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}

/* toast,modal,actionSheet,picker */
.uni-fade-enter-active,
.uni-fade-leave-active {
  transition-duration: 0.25s;
  transition-property: opacity;
  transition-timing-function: ease;
}

.uni-fade-enter-from,
.uni-fade-leave-active {
  opacity: 0;
}

.uni-loading,
uni-button[loading]:before {
  background-color: transparent;
  background-image: url('data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=');
  background-repeat: no-repeat;
}

.uni-loading {
  width: 20px;
  height: 20px;
  display: inline-block;
  vertical-align: middle;
  animation: uni-loading 1s steps(12, end) infinite;
  background-size: 100%;
}

@keyframes uni-loading {
  0% {
    transform: rotate3d(0, 0, 1, 0deg);
  }

  100% {
    transform: rotate3d(0, 0, 1, 360deg);
  }
}

html {
  /* --UI-BG-0: #ededed; */
  --primary-color: #007aff;
  --UI-BG: #fff;
  --UI-BG-1: #f7f7f7;
  --UI-BG-2: #fff;
  --UI-BG-3: #f7f7f7;
  --UI-BG-4: #4c4c4c;
  --UI-BG-5: #fff;
  --UI-FG: #000;
  --UI-FG-0: rgba(0, 0, 0, 0.9);
  --UI-FG-HALF: rgba(0, 0, 0, 0.9);
  --UI-FG-1: rgba(0, 0, 0, 0.5);
  --UI-FG-2: rgba(0, 0, 0, 0.3);
  --UI-FG-3: rgba(0, 0, 0, 0.1);
}

uni-page[data-type] uni-page-body {
  background-color: transparent;
}
body::after {
  position: fixed;
  content: '';
  left: -1000px;
  top: -1000px;
  animation: shadow-preload 0.1s;
  animation-delay: 3s;
}

@keyframes shadow-preload {
  0% {
    background-image: url(https://cdn.dcloud.net.cn/img/shadow-grey.png);
  }
  100% {
    background-image: url(https://cdn.dcloud.net.cn/img/shadow-grey.png);
  }
}
.uni-async-error {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  color: #999;
  padding: 100px 10px;
  text-align: center;
}
.uni-async-loading {
  box-sizing: border-box;
  width: 100%;
  padding: 50px;
  text-align: center;
}

.uni-async-loading .uni-loading {
  width: 30px;
  height: 30px;
}
uni-page-head {
  display: block;
  box-sizing: border-box;
}

.uni-page-head {
  position: fixed;
  left: var(--window-left);
  right: var(--window-right);
  height: 44px;
  height: calc(44px + constant(safe-area-inset-top));
  height: calc(44px + env(safe-area-inset-top));
  padding: 7px 3px;
  padding-top: calc(7px + constant(safe-area-inset-top));
  padding-top: calc(7px + env(safe-area-inset-top));
  display: flex;
  overflow: hidden;
  justify-content: space-between;
  box-sizing: border-box;
  z-index: 998;
  color: #fff;
  background-color: #000;
  transition-property: all;
}

.uni-page-head * {
  box-sizing: border-box;
}

.uni-page-head .uni-btn-icon {
  overflow: hidden;
  min-width: 1em;
  font-style: normal;
}

.uni-page-head-titlePenetrate,
.uni-page-head-titlePenetrate .uni-page-head-bd,
.uni-page-head-titlePenetrate .uni-page-head-bd * {
  pointer-events: none;
}

.uni-page-head-titlePenetrate * {
  pointer-events: auto;
}

.uni-page-head.uni-page-head-transparent .uni-page-head-ft > div {
  justify-content: center;
}

.uni-page-head ~ .uni-placeholder {
  width: 100%;
  height: 44px;
  height: calc(44px + constant(safe-area-inset-top));
  height: calc(44px + env(safe-area-inset-top));
}

.uni-placeholder-titlePenetrate {
  pointer-events: none;
}

.uni-page-head-hd {
  display: flex;
  align-items: center;
  font-size: 16px;
}

.uni-page-head-bd {
  position: absolute;
  left: 70px;
  right: 70px;
  min-width: 0;
  -webkit-user-select: auto;
     -moz-user-select: auto;
          user-select: auto;
}

.uni-page-head-btn {
  position: relative;
  width: auto;
  margin: 0 2px;
  word-break: keep-all;
  white-space: pre;
  cursor: pointer;
  font-size: 0px;
}

/* .uni-page-head-btn svg {
} */

.uni-page-head-transparent .uni-page-head-btn {
  display: flex;
  align-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.5);
}

.uni-page-head-btn-red-dot::after {
  content: attr(badge-text);
  position: absolute;
  right: 0;
  top: 0;
  background-color: red;
  color: white;
  width: 18px;
  height: 18px;
  line-height: 18px;
  border-radius: 18px;
  overflow: hidden;
  transform: scale(0.5) translate(40%, -40%);
  transform-origin: 100% 0;
}

.uni-page-head-btn-red-dot[badge-text]::after {
  font-size: 12px;
  width: auto;
  min-width: 18px;
  max-width: 42px;
  text-align: center;
  padding: 0 3px;
  transform: scale(0.7) translate(40%, -40%);
}

.uni-page-head-btn-select svg {
  vertical-align: middle;
  margin-left: 2px;
  transform: rotate(270deg) scale(0.8);
}

.uni-page-head-search {
  position: relative;
  display: flex;
  flex: 1;
  margin: 0 2px;
  line-height: 30px;
  font-size: 15px;
}

.uni-page-head-search-input {
  width: 100%;
  height: 100%;
  padding-left: 34px;
  text-align: left;
}

.uni-page-head-search-input .uni-input-input:disabled {
  pointer-events: none;
}

.uni-page-head-search-placeholder {
  position: absolute;
  max-width: 100%;
  height: 100%;
  padding-left: 34px;
  overflow: hidden;
  word-break: keep-all;
  white-space: pre;
}

.uni-page-head-search-placeholder-right {
  right: 0;
}

.uni-page-head-search-placeholder-center {
  left: 50%;
  transform: translateX(-50%);
}

.uni-page-head-search-icon {
  position: absolute;
  top: 0;
  left: 2px;
  width: 30px;
  height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.uni-page-head-ft {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  font-size: 13px;
}

.uni-page-head__title {
  font-weight: bold;
  font-size: 16px;
  line-height: 30px;
  text-align: center;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.uni-page-head__title .uni-loading {
  width: 16px;
  height: 16px;
  margin-top: -3px;
}

.uni-page-head__title .uni-page-head__title_image {
  width: auto;
  height: 26px;
  vertical-align: middle;
}

.uni-page-head-shadow {
  overflow: visible;
}

.uni-page-head-shadow::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 5px;
  background-size: 100% 100%;
}

uni-page-head[uni-page-head-type='default'] ~ uni-page-wrapper {
  height: calc(100% - 44px);
  height: calc(100% - 44px - constant(safe-area-inset-top));
  height: calc(100% - 44px - env(safe-area-inset-top));
}

.uni-page-head-shadow-grey::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-grey.png');
}

.uni-page-head-shadow-blue::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-blue.png');
}

.uni-page-head-shadow-green::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-green.png');
}

.uni-page-head-shadow-orange::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-orange.png');
}

.uni-page-head-shadow-red::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-red.png');
}

.uni-page-head-shadow-yellow::after {
  background-image: url('https://cdn.dcloud.net.cn/img/shadow-yellow.png');
}
            
/* Shared UI contract: themes change palette, not control geometry. */
.ui-theme{--ui-primary:#2f6b4f;--ui-surface:#fffefa;--ui-ink:#263d33;--ui-muted:#737d70;--ui-border:#dce3d8;--ui-radius:12px;--ui-gap:16px;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:var(--ui-ink)}
.ui-theme--abode{--ui-surface:#f7f3ea;--ui-border:#d4bc88;--ui-muted:#7c806f}
uni-page-body { background: #f4f3ee; color: #243c36;
}
body{ background: #f4f3ee}
.page { max-width: 540px; margin: auto; padding: 32px 20px 48px; box-sizing: border-box;
}
uni-text { display: block;
}
.eyebrow { font-size: 12px; letter-spacing: 2px; color: #62766b;
}
.heading { font-size: 28px; font-weight: 650; margin: 14px 0 10px;
}
.intro { color: #66736c; font-size: 13px; line-height: 1.7;
}
.card { margin-top: 26px; padding: 24px; background: #fffefa; border: 1px solid #e0e5dc; border-radius: 20px;
}
.title { font-size: 22px; font-weight: 600; line-height: 1.5;
}
.duration { color: #607769; font-size: 13px; margin-bottom: 10px;
}
.body { font-size: 15px; line-height: 1.8; margin: 12px 0;
}
.steps { margin: 22px 0; font-size: 16px; line-height: 2;
}
.standard { font-size: 13px; color: #66736c; line-height: 1.8; margin-bottom: 24px;
}
uni-button { font-size: 16px; border-radius: 12px; margin-top: 12px;
}
uni-button::after { border: none;
}
.primary { background: #315f4d; color: white;
}
.secondary { background: #eaf0e8; color: #315440;
}
.message { margin: 18px 4px; font-size: 14px; line-height: 1.8;
}
.error { background: #fff0e8; padding: 14px; margin-top: 20px; color: #9c4023;
}
.probe { margin-top: 30px; padding: 0 4px;
}
.probe .intro { margin-top: 12px;
}

/* Shared daily-use visual system; diagnostic pages use the same controls. */
uni-page-body{background:#faf8f2;color:#243c36}
body{background:#faf8f2}
.page{padding:28px 22px 120px}
.heading{font-size:28px;font-weight:700;letter-spacing:-.5px;margin:14px 0 8px}
.card{margin-top:24px;border-color:#e5e7df;border-radius:22px;padding:24px;background:#fffefb}
.title{font-size:21px}.intro{line-height:1.8}
uni-button{min-height:48px;line-height:1.5;padding:14px 16px;font-weight:500}
.primary{background:#316b50;color:white}
.secondary{background:transparent;border:1px solid #92aa99;color:#315f4d}
uni-button[disabled]{opacity:.48}
.text-action{min-height:40px;background:transparent;color:#62786a;font-size:13px;padding:10px}
.setting-row{display:flex;align-items:center;justify-content:space-between;text-align:left;background:transparent;border-bottom:1px solid #e8eae3;border-radius:0;font-size:15px;padding:18px 2px;color:#243c36}
.setting-row uni-text{color:#718276}.test-entry{padding:20px;background:#eeefe8;border:0;border-radius:16px;margin-top:28px}
.status-note{font-size:13px;color:#47775b;text-align:center;margin:22px 0 8px}
.test-badge{display:inline-block;margin-top:20px;padding:8px 14px;border-radius:20px;background:#fff0ce;color:#856022;font-size:12px}

/* H5 renders uni-* custom elements; keep the same spacing as Android. */
uni-text{display:block}
uni-button{font-size:16px;border-radius:12px;margin-top:12px;min-height:48px;line-height:1.5;padding:14px 16px;font-weight:500}
uni-button::after{border:none}
uni-button[disabled]{opacity:.48}
.steps uni-text{display:block}
.options uni-button{font-size:14px;background:#f0f3ed;color:#315f4d}
.setting-row::after,.nav-button::after,.primary::after,.secondary::after,.text-action::after{border:0!important}
.row-label{display:flex;align-items:center;gap:14px;min-width:0}.row-label uni-text,.row-label uni-text{color:#263d33}
.setting-row{min-height:58px;gap:10px;margin:0}.setting-row:last-child{border-bottom:0}
.eyebrow{letter-spacing:.3px;font-size:15px;color:#34473f}.primary{background:linear-gradient(115deg,#306849,#3d7858)}.secondary{background:#fffefa}
uni-button,uni-button,.primary,.secondary,.setting-row,.text-action,.compact{box-sizing:border-box}
.primary,.secondary{border-radius:12px}
/* Browser only. Android continues using its existing layout and navigation. */
@media(min-width:760px){
 .life-web body,.life-web uni-page-body{background:#faf7ee url('/static/desktop/garden.png') center/cover fixed!important}
 .life-web uni-page-head{display:none}
 .life-web uni-page-wrapper{--window-top:0px;margin-top:0!important}
 .life-web .pilot-page{max-width:none!important;width:calc(100% - 196px)!important;margin-left:196px!important;padding:38px clamp(26px,5vw,90px) 40px!important;min-height:100vh;box-sizing:border-box}
 .life-web .pilot-page.screen-settings{position:relative!important;inset:auto!important;min-height:100vh;height:auto;overflow:auto;background:transparent}
 .life-web .pilot-page>.card,.life-web .pilot-page>.cultivation-summary,.life-web .pilot-page>.status-note,.life-web .pilot-page>.setting-row{max-width:900px}
 .life-web .pilot-page .heading{font-size:34px;font-family:serif;margin-bottom:18px}
 .life-web .pilot-page.screen-settings>.setting-row{background:#fffdf6e6;border:1px solid #dcdccc;border-radius:15px;padding:24px;margin-top:30px}
 .life-web .pilot-page .life-entry{display:none}
 .life-web .pilot-page>.card{background:#fffdf7ed;box-shadow:0 8px 32px #4b59300a}
 .life-web uni-button{cursor:pointer}
 .life-web uni-button:focus-visible{outline:2px solid #638347;outline-offset:3px}
 .life-web .abode-page{left:196px!important;width:calc(100% - 196px)!important}
}
@media(min-width:760px) and (max-width:960px){.life-web .pilot-page{margin-left:156px!important;width:calc(100% - 156px)!important;padding:28px!important}.life-web .abode-page{left:156px!important;width:calc(100% - 156px)!important}}
