:root{
  --blue:#0071e3;--blue-pressed:#0062c4;--blue-soft:#e8f2ff;--ink:#1d1d1f;
  --muted:#6e6e73;--tertiary:#86868b;--line:rgba(0,0,0,.09);--bg:#f5f5f7;
  --surface:#fff;--success:#248a3d;--danger:#d70015;--warning:#b25000;
  --shadow:0 10px 32px rgba(0,0,0,.055);--radius:22px;--radius-sm:14px;
}
html{background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--bg)!important;color:var(--ink)!important;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif!important}
button,input,select,textarea{font:inherit;-webkit-tap-highlight-color:transparent}
button{touch-action:manipulation}
.shell{max-width:720px!important;padding:12px 12px 88px!important}
.hero{padding:10px 2px 6px!important;border-radius:0!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important}
.hero h1{font-size:26px!important;line-height:1.15;letter-spacing:-.45px;margin:0 0 5px!important}
.hero .sub{color:var(--muted);font-size:13px!important;opacity:1!important}
.identity-line{margin-top:10px!important}.identity{font-size:14px!important;color:var(--ink)}
.admin-entry,.back{border:0!important;border-radius:999px!important;padding:7px 10px!important;background:var(--blue-soft)!important;color:var(--blue)!important;box-shadow:none!important}
.card{background:rgba(255,255,255,.94)!important;border:1px solid rgba(0,0,0,.055);border-radius:18px!important;margin-top:10px!important;box-shadow:0 7px 24px rgba(0,0,0,.045)!important;overflow:hidden}
.head{padding:13px 16px 10px!important;border-bottom:1px solid var(--line)!important;font-size:17px!important;letter-spacing:-.15px}
.row{grid-template-columns:minmax(0,1fr) 86px!important;padding:11px 16px!important;border-bottom:1px solid var(--line)!important;gap:9px 12px!important;min-width:0}
.name{font-size:15px!important;font-weight:650!important;line-height:1.3!important;letter-spacing:-.1px;overflow-wrap:anywhere}.rule{font-size:11px!important;line-height:1.35!important;color:var(--muted)!important;margin-top:3px!important}
.qty{width:86px!important;height:40px!important;border:1px solid rgba(0,0,0,.13)!important;border-radius:11px!important;background:#fff!important;font-size:17px!important;transition:border .18s,box-shadow .18s}
.qty:focus{border-color:var(--blue)!important;box-shadow:0 0 0 4px rgba(0,113,227,.12)!important}
.photo-line{padding-top:0;align-items:center!important;flex-wrap:wrap}.photo-btn{padding:7px 11px!important;border:0!important;border-radius:10px!important;background:#fff1e8!important;color:#a63f00!important}.photo-state{flex:1;min-width:150px;line-height:1.4!important}
.photo-progress{grid-column:1/-1;width:100%;margin-top:-2px}.photo-progress-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--muted);font-size:12px}.photo-progress-track{height:5px;overflow:hidden;border-radius:999px;background:#e8e8ed}.photo-progress-fill{height:100%;width:0;border-radius:inherit;background:var(--blue);transition:width .25s ease}
.actions{z-index:50;background:rgba(248,248,250,.86)!important;backdrop-filter:saturate(180%) blur(22px)!important;-webkit-backdrop-filter:saturate(180%) blur(22px)!important;border-top:1px solid rgba(0,0,0,.08)!important;padding:8px max(12px,calc((100vw - 720px)/2 + 12px)) calc(8px + env(safe-area-inset-bottom))!important;gap:7px!important}
.btn{height:44px!important;border-radius:12px!important;font-size:14px!important;font-weight:650!important;transition:transform .12s,background .18s,opacity .18s}.btn:active:not(:disabled){transform:scale(.98)}.primary{background:var(--blue)!important}.secondary{background:#fff!important;color:var(--blue)!important;border:1px solid rgba(0,113,227,.28)!important}
.toast{z-index:1100!important;top:calc(14px + env(safe-area-inset-top))!important;border-radius:999px!important;background:rgba(29,29,31,.94)!important;box-shadow:0 10px 32px rgba(0,0,0,.2)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.panel{padding:14px!important}.metric{gap:7px!important}.box{padding:10px 6px!important;background:#f7f7f9!important;border:1px solid rgba(0,0,0,.035);border-radius:12px!important}.num{color:var(--ink)!important;font-size:21px!important}.lab{font-size:11px!important}
.points-table{margin-top:10px!important;border-color:var(--line)!important;border-radius:13px!important}.points-table th{background:#f7f7f9!important;color:var(--muted)!important}.points-table th,.points-table td{border-color:var(--line)!important;padding:9px 7px!important}
.copy,.share-btn{border-radius:999px!important;background:var(--blue-soft)!important;color:var(--blue)!important;padding:8px 12px!important}
.loading{position:relative;color:var(--muted)!important}.loading:after{content:"";display:block;width:72%;height:5px;margin:15px auto 0;border-radius:999px;background:linear-gradient(90deg,#e8e8ed 0,#e8e8ed 35%,#c9e2ff 50%,#e8e8ed 65%,#e8e8ed 100%);background-size:220% 100%;animation:apple-shimmer 1.35s ease-in-out infinite}
@keyframes apple-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.app-progress-top{position:fixed;z-index:1200;top:0;left:0;right:0;height:3px;pointer-events:none;background:transparent;opacity:1;transition:opacity .2s}.app-progress-top.hide{opacity:0}.app-progress-top span{display:block;height:100%;width:22%;border-radius:0 999px 999px 0;background:var(--blue);box-shadow:0 0 10px rgba(0,113,227,.4);animation:top-progress 1.25s ease-in-out infinite}.app-progress-top[data-mode="determinate"] span{animation:none;transition:width .25s ease}
@keyframes top-progress{0%{transform:translateX(-120%);width:18%}55%{width:45%}100%{transform:translateX(560%);width:18%}}
.app-progress-panel{position:fixed;z-index:1050;left:50%;bottom:calc(68px + env(safe-area-inset-bottom));width:min(440px,calc(100vw - 24px));transform:translate(-50%,10px);padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 14px 45px rgba(0,0,0,.16);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.app-progress-panel.show{opacity:1;transform:translate(-50%,0)}.app-progress-title{font-size:13px;font-weight:650}.app-progress-detail{display:flex;justify-content:space-between;gap:10px;margin-top:4px;color:var(--muted);font-size:11px}.app-progress-track{height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e8e8ed}.app-progress-bar{height:100%;width:24%;border-radius:inherit;background:var(--blue);animation:panel-progress 1.25s ease-in-out infinite}.app-progress-panel[data-mode="determinate"] .app-progress-bar{animation:none;transition:width .25s ease}.app-progress-panel[data-mode="indeterminate"] .app-progress-value{display:none}@keyframes panel-progress{0%{transform:translateX(-110%)}100%{transform:translateX(430%)}}
@media(max-width:520px){.hero h1{font-size:25px!important}.row{padding:10px 12px!important;grid-template-columns:minmax(0,1fr) 82px!important}.qty{width:82px!important}.head{padding-left:12px!important;padding-right:12px!important}.panel{padding:12px!important}.app-progress-panel{bottom:calc(66px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v35 visual theme C: mobile-first warm vitality. Visual-only, no behavior changes. */
:root{
  --brand-orange:#ff7800;--brand-orange-pressed:#e96700;--brand-orange-soft:#fff1e5;
  --blue:#1677ff;--blue-pressed:#0e66df;--blue-soft:#edf5ff;
  --ink:#14213d;--muted:#6f7787;--tertiary:#9096a2;--line:rgba(20,33,61,.09);
  --bg:#fffaf5;--surface:#fff;--success:#2da44e;--danger:#ef233c;--warning:#c45b00;
  --shadow:0 8px 24px rgba(91,57,24,.055);
}
html,body{background:linear-gradient(180deg,#fffdf9 0,#fff8f2 100%)!important}
.card,.summary{border-color:rgba(150,91,35,.09)!important;box-shadow:var(--shadow)!important}
.hero{color:var(--ink)!important}
.announcement-board{border-color:rgba(255,120,0,.2)!important;background:linear-gradient(135deg,#fffaf5,#fff0df)!important;box-shadow:0 6px 18px rgba(255,120,0,.08)!important}
.announcement-label{color:var(--brand-orange)!important}.announcement-label small{color:#916f57!important}
.announcement-summary{color:var(--ink)!important}
.admin-entry,.name-remark,.exit-preview{background:var(--blue-soft)!important;color:var(--blue)!important}
.primary,.save{background:linear-gradient(135deg,#ff850d,#ff7000)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 5px 14px rgba(255,120,0,.18)!important}
.primary:active:not(:disabled),.save:active:not(:disabled){background:var(--brand-orange-pressed)!important}
.secondary{background:#fff!important;color:#244a7c!important;border-color:rgba(36,74,124,.2)!important}
.secondary:active:not(:disabled){background:#f7fbff!important}
.weekly-pending{background:linear-gradient(135deg,#ff3548,#ef233c)!important;border-color:#ef233c!important;color:#fff!important;box-shadow:0 5px 14px rgba(239,35,60,.2)!important}
.qty:focus,input:focus,select:focus,textarea:focus{border-color:var(--brand-orange)!important;box-shadow:0 0 0 4px rgba(255,120,0,.12)!important}
.photo-btn{background:var(--brand-orange-soft)!important;color:#a94700!important}
.photo-progress-fill,.app-progress-top span,.app-progress-bar{background:linear-gradient(90deg,#ff9b2f,#ff7000)!important;box-shadow:none!important}
.box{background:#fffaf6!important;border-color:rgba(255,120,0,.07)!important}.num{color:var(--brand-orange)!important}
.points-table{border-color:rgba(150,91,35,.11)!important}.points-table th{background:#fff7ef!important;color:#765f4c!important}
.copy,.share-btn{background:var(--brand-orange-soft)!important;color:#b04a00!important}
.loading:after{background:linear-gradient(90deg,#f1e8df 0,#f1e8df 35%,#ffc98f 50%,#f1e8df 65%,#f1e8df 100%)!important;background-size:220% 100%!important}
.app-progress-panel{border-color:rgba(150,91,35,.12)!important;background:rgba(255,253,249,.96)!important}
.metric .value,.value{color:var(--brand-orange)!important}
@media(max-width:520px){.shell{padding-left:10px!important;padding-right:10px!important}.actions{gap:6px!important;padding-left:8px!important;padding-right:8px!important}.btn{padding-left:6px!important;padding-right:6px!important;font-size:13px!important}.identity-actions{max-width:100%}}
