
/* ==========================================================================
   Universal dole-page shell
   ========================================================================== */
   body.dole-page .topTit,
   body.dole-page .top span {
       color: #fff;
   }
   
   body.dole-page .coupon-main,
   body.dole-page .message-main,
   body.dole-page .service-main,
   body.dole-page .faq-main,
   body.dole-page .rule-main,
   body.dole-page .annual-main,
   body.dole-page .invite-main,
   body.dole-page .culture-main,
   body.dole-page .password-main,
   body.dole-page .task-main,
   body.dole-page .events-main {
       padding: 58px 12px calc(72px + env(safe-area-inset-bottom, 0));
   }
   
   /* Coupon */
   body.dole-coupon-page .coupon-main {
       padding: 58px 12px calc(72px + env(safe-area-inset-bottom, 0));
   }
   
   body.dole-coupon-page .coupon-item {
       background: #fff;
       border-radius: 14px;
       padding: 12px;
       margin-top: 10px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-coupon-page .coupon-item-tit {
       display: flex;
       align-items: center;
       justify-content: space-between;
       margin-bottom: 10px;
       font-size: 13px;
       font-weight: 700;
       color: var(--theme-accent);
   }
   
   body.dole-coupon-page .coupon-item-box {
       display: flex;
       gap: 10px;
       align-items: center;
   }
   
   body.dole-coupon-page .coupon-item-box img {
       width: 48px;
       height: 48px;
       object-fit: contain;
   }
   
   body.dole-coupon-page .coupon-item-attr p {
       font-size: 12px;
       color: #333;
       margin: 2px 0;
   }
   
   body.dole-coupon-page .coupon-item-attr p:first-child {
       font-size: 16px;
       font-weight: 700;
       color: var(--theme-primary-dark);
   }
   
   /* Calculator */
   body.dole-page .calculator-main {
       background: #fff;
       border-radius: 14px;
       padding: 16px 14px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-page .calculator-main h3 {
       margin: 0 0 12px;
       font-size: 14px;
       font-weight: 700;
       color: var(--theme-accent);
       text-align: center;
   }
   
   body.dole-page .calculator-hd {
       display: grid;
       grid-template-columns: repeat(3, minmax(0, 1fr));
       gap: 10px;
       margin-bottom: 12px;
   }

   body.dole-page .calculator-bd {
       display: flex;
       flex-direction: column;
       align-items: stretch;
       min-width: 0;
       padding: 8px 6px 6px;
       border: none;
       border-bottom: 1px solid var(--theme-primary);
       border-radius: 0;
       background: transparent;
       box-shadow: none;
   }

   body.dole-page .calculator-bd__label {
       display: block;
       text-align: center;
       font-size: 14px;
       font-weight: 700;
       line-height: 1;
       color: var(--theme-primary);
       margin-bottom: 6px;
   }

   body.dole-page .calculator-bd__input,
   body.dole-page .calculator-bd input {
       width: 100%;
       min-width: 0;
       box-sizing: border-box;
       border: none;
       background: transparent;
       text-align: center;
       font-size: clamp(14px, 4.2vw, 18px);
       font-weight: 600;
       color: #333;
       padding: 0 2px 4px;
       line-height: 1.3;
   }

   body.dole-page .calculator-bd__input:focus,
   body.dole-page .calculator-bd input:focus {
       outline: none;
   }

   body.dole-page .calculator-select {
       display: flex;
       align-items: center;
       gap: 8px;
       margin-bottom: 12px;
       padding-bottom: 6px;
       border-bottom: 1px solid var(--theme-primary);
   }

   body.dole-page .calculator-select__label {
       flex-shrink: 0;
       font-size: 15px;
       font-weight: 600;
       color: var(--theme-primary);
   }

   body.dole-page .calculator-select__picker {
       flex: 1;
       min-width: 0;
       position: relative;
       display: flex;
       align-items: center;
   }

   body.dole-page .calculator-select__native {
       flex: 1;
       min-width: 0;
       width: 100%;
       border: none;
       background: transparent;
       text-align: right;
       text-align-last: right;
       font-size: 15px;
       font-weight: 600;
       color: #333;
       padding-right: 22px;
       appearance: none;
       -webkit-appearance: none;
   }

   body.dole-page .calculator-select__native:focus {
       outline: none;
   }

   body.dole-page .calculator-select__arrow {
       position: absolute;
       right: 0;
       top: 50%;
       transform: translateY(-50%);
       pointer-events: none;
       font-size: 14px;
       color: var(--theme-primary);
   }
   
   body.dole-page .calculator-btn,
   body.dole-page .calculator-main button {
       width: 100%;
       min-height: 44px;
       margin-top: 12px;
       border: none;
       border-radius: 999px;
       color: #fff;
       font-size: 15px;
       font-weight: 700;
       background: var(--theme-primary);
       box-shadow: 0 4px 14px rgba(132, 195, 30, 0.35);
   }
   
   body.dole-page .calculator-rule {
       margin-top: 4px;
   }

   body.dole-page .calculator-rule ul {
       margin: 0;
       padding: 12px 14px;
       list-style: none;
       min-height: 120px;
       border-radius: 10px;
       border: 1px solid var(--theme-primary);
       background: #fff;
   }
   
   body.dole-page .calculator-rule li {
       padding: 4px 0;
       font-size: 13px;
       line-height: 1.55;
       word-break: break-word;
       height: auto;
   }

   body.dole-page .calculator-rule__title {
       margin-top: 10px;
       font-size: 14px;
       color: #222;
       font-weight: 700;
   }

   body.dole-page .calculator-rule__title:first-child {
       margin-top: 0;
   }

   body.dole-page .calculator-rule__line {
       color: var(--theme-primary);
       font-weight: 600;
   }

   body.dole-page .calculator-rule__sum {
       margin-top: 2px;
       padding-top: 0;
       border-top: none;
   }
   
   /* Contract */
   body.dole-page .contract-main {
       padding-top: 58px;
   }
   
   body.dole-page .contract-img {
       background: #fff;
       border-radius: 14px;
       overflow: hidden;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-page .contract-img input {
       width: 100%;
       border: none;
       border-top: 1px solid var(--theme-border-light);
       padding: 12px;
       font-size: 14px;
   }
   
   body.dole-page .contract-btn button {
       width: 100%;
       min-height: 46px;
       margin-top: 14px;
       border: none;
       color: #fff;
       background: var(--theme-primary);
       border-radius: 999px;
       font-weight: 700;
   }
   
   /* Card / bank bind */
   body.dole-page .card-main .card-item label {
       color: var(--theme-accent);
       font-weight: 600;
   }
   
   body.dole-page .card-btn {
       width: 100%;
       min-height: 46px;
       border: none;
       color: #fff;
       background: var(--theme-primary);
       border-radius: 999px;
       font-weight: 700;
   }
   
   /* News list */
   body.dole-page .news-main .banner {
       border-radius: 14px;
       overflow: hidden;
       margin-bottom: 12px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-page .news-item {
       display: flex;
       gap: 10px;
       background: #fff;
       border-radius: 12px;
       padding: 10px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-page .news-item img {
       width: 72px;
       height: 72px;
       object-fit: cover;
       border-radius: 8px;
       flex-shrink: 0;
   }
   
   body.dole-page .news-item-tit {
       font-size: 13px;
       font-weight: 700;
       color: #111;
       line-height: 1.35;
   }
   
   body.dole-page .news-item-time {
       margin-top: 6px;
       font-size: 11px;
       color: #888;
   }
   
   /* Message / service */
   body.dole-page .message-item,
   body.dole-page .service-item {
       background: #fff;
       border-radius: 12px;
   }
   
   body.dole-page .message-item-tit,
   body.dole-page .service-item-tit {
       font-size: 13px;
       font-weight: 700;
       color: var(--theme-accent);
   }
   
   /* FAQ / Rule accordion */
   body.dole-page .faru-main .layui-colla-item {
       background: #fff;
       border-radius: 12px !important;
       margin-bottom: 10px;
       overflow: hidden;
   }
   
   body.dole-page .layui-colla-title {
       color: var(--theme-accent) !important;
       font-weight: 600;
   }
   
   /* Invite */
   body.dole-page .invite-hero {
       margin-top: 12px;
   }

   body.dole-page .invite-qr img {
       width: 100%;
       display: block;
   }
   
   /* Redeem */
   body.dole-page .redeem-list dl {
       text-align: center;
   }
   
   body.dole-page .redeem-list dt {
       font-size: 22px;
       font-weight: 700;
       color: var(--theme-accent);
   }
   
   body.dole-page .redeem-btn {
       width: 100%;
       min-height: 44px;
       border: none;
       color: #fff;
       background: var(--theme-primary);
   }
   
   body.dole-page.redeem-page .redeem-list--code dd {
       margin: 8px 0 0;
       font-size: 13px;
       line-height: 1.45;
       color: #666;
   }
   
   body.dole-page .redeem-history__list {
       display: flex;
       flex-direction: column;
       gap: 10px;
   }
   
   body.dole-page .redeem-history__item {
       display: flex;
       align-items: center;
       justify-content: space-between;
       gap: 12px;
       padding: 12px 14px;
       border-radius: 10px;
       background: #f7f9f7;
   }
   
   body.dole-page .redeem-history__code {
       flex: 1;
       min-width: 0;
       font-size: 14px;
       font-weight: 600;
       color: #222;
       word-break: break-all;
   }
   
   body.dole-page .redeem-history__meta {
       flex-shrink: 0;
       text-align: right;
   }
   
   body.dole-page .redeem-history__amount {
       display: block;
       font-size: 15px;
       font-weight: 700;
       color: var(--theme-accent, #1b5e20);
   }
   
   body.dole-page .redeem-history__meta time {
       display: block;
       margin-top: 4px;
       font-size: 12px;
       color: #888;
   }
   
   body.dole-page .redeem-history__empty {
       margin: 0;
       padding: 18px 0 6px;
       text-align: center;
       color: #888;
       font-size: 14px;
   }
   
   /* Integral */
   body.dole-page .integral-main .integral-item,
   body.dole-page .integral-detail-main {
       background: #fff;
       border-radius: 12px;
       box-shadow: var(--theme-card-shadow);
   }
   
   /* Culture / official feed */
   body.dole-page .official .banner {
       border-radius: 14px;
       overflow: hidden;
       margin-bottom: 12px;
   }
   
   body.dole-page .official-list li {
       background: #fff;
       border-radius: 12px;
       margin-bottom: 10px;
       padding: 12px;
       box-shadow: var(--theme-card-shadow);
   }
   
   /* Egg page — green theme harmony */
   body.egg-page .egg0807_wrap {
       padding: 58px 12px calc(80px + env(safe-area-inset-bottom, 0));
   }
   
   body.egg-page .egg0807_desc,
   body.egg-page .egg-prizes,
   body.egg-page .egg-history {
       background: rgba(255, 255, 255, 0.95);
       border-radius: 14px;
       padding: 12px;
       margin-top: 12px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.egg-page .egg-prize-chip {
       display: inline-block;
       margin: 4px;
       padding: 4px 8px;
       border-radius: 999px;
       font-size: 11px;
       background: var(--theme-primary-light);
       color: var(--theme-accent);
   }
   
   /* Bonus grid */
   body.bonus-grid-page .bonus-grid-wrap {
       padding: 58px 12px calc(80px + env(safe-area-inset-bottom, 0));
   }
   
   body.bonus-grid-page .bonus-grid-meta,
   body.bonus-grid-page .bonus-grid-rule {
       background: rgba(255, 255, 255, 0.95);
       border-radius: 14px;
       padding: 12px;
       margin-top: 12px;
       box-shadow: var(--theme-card-shadow);
       color: #333;
   }
   
   /* Info center */
   body.info-page .info-main {
       padding: 58px 12px calc(80px + env(safe-area-inset-bottom, 0));
   }
   
   body.info-page .info-item {
       background: #fff;
       border-radius: 14px;
       padding: 12px;
       margin-bottom: 10px;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.info-page .info-fab {
       background: var(--theme-primary);
       box-shadow: 0 4px 16px rgba(132, 195, 30, 0.45);
   }
   
   /* Weeks salary */
   body.weeks-page .weeks-head {
       display: grid;
       grid-template-columns: repeat(3, 1fr);
       gap: 8px;
   }
   
   body.weeks-page .weeks-head button {
       width: 100%;
       min-height: 40px;
       border: none;
       color: #fff;
       background: var(--theme-primary);
   }
   
   /* Password */
   body.dole-page .password-main .password-item input {
       border-radius: 10px;
       border-color: var(--theme-border-input);
   }
   
   body.dole-page .password-btn {
       width: 100%;
       min-height: 44px;
       border: none;
       color: #fff;
       background: var(--theme-primary);
       border-radius: 999px;
       font-weight: 700;
   }
   
   /* Activity list — same as product list */
   body.activity-page.dole-product-page--list .product-main {
       padding-top: 14px;
   }
   
   /* Integral shop — 2-col cards */
   body.dole-page .product-main .product-list {
       display: grid;
       grid-template-columns: repeat(2, minmax(0, 1fr));
       gap: 10px;
       padding-top: 58px;
   }
   
   body.dole-page .product-item {
       background: #fff;
       border-radius: 14px;
       overflow: hidden;
       box-shadow: var(--theme-card-shadow);
   }
   
   body.dole-page .product-item .product-img img {
       width: 100%;
       height: 100px;
       object-fit: cover;
   }
   
   body.dole-page .product-item .product-tit {
       padding: 6px 8px;
       font-size: 12px;
       font-weight: 700;
       color: #111;
   }
   
   body.dole-page .product-item .product-attr {
       padding: 0 8px;
       font-size: 10px;
       color: #666;
   }
   
   body.dole-page .product-item .product-attr span {
       color: var(--theme-accent);
       font-weight: 700;
   }
   
   body.dole-page .product-item .product-btn .rental,
   body.dole-page .product-item .product-btn a {
       display: flex;
       align-items: center;
       justify-content: center;
       min-height: 32px;
       margin: 8px;
       border-radius: 999px;
       font-size: 11px;
       font-weight: 700;
       color: #fff;
       background: var(--theme-primary);
       text-decoration: none;
   }
   
   body.dole-page .product-item .product-btn .disabled {
       background: #e0e0e0;
       color: #999;
   }
   
   body.dole-page .product-tag {
       background: var(--theme-primary);
       color: #fff;
       font-size: 9px;
       padding: 2px 6px;
   }
   