:root{--primary: #2D6A2D;--primary-dark: #1F4A1F;--primary-soft: #E8F0E5;--accent: #BA7517;--accent-soft: #FBF0DC;--bg: #F7F5F0;--surface: #FFFFFF;--border: rgba(31, 41, 31, .08);--border-strong: rgba(31, 41, 31, .14);--text: #1A1F18;--text-2: #4A5048;--text-3: #8A8E86;--healthy: #3B6D11;--warning: #BA7517;--danger: #A32D2D;--healthy-soft: #EAF2DF;--warning-soft: #FBF0DC;--danger-soft: #F7E5E5;--radius-card: 12px;--radius-btn: 8px;--shadow-card: 0 1px 2px rgba(31, 41, 31, .04);--shadow-elev: 0 4px 16px rgba(31, 41, 31, .08);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display: "Fraunces", "Inter", serif}[data-theme=dark]{--primary: #6FB95E;--primary-dark: #4A8C3D;--primary-soft: #1B2A18;--accent: #E1A04A;--accent-soft: #2A2014;--bg: #0E110D;--surface: #181C16;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #F0F2EE;--text-2: #B5BAB1;--text-3: #7A7E76;--healthy: #8FCC5E;--warning: #E1A04A;--danger: #D86E6E;--healthy-soft: #1F2A18;--warning-soft: #2A2014;--danger-soft: #2A1818}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:var(--font);background:#1a1f18;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}input,textarea,select{font-family:inherit}.app{width:100%;height:100%;background:var(--bg);color:var(--text);display:flex;flex-direction:column;overflow:hidden;position:relative}.app-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.topbar{padding:14px 20px 10px;display:flex;align-items:center;justify-content:space-between;background:var(--bg);position:sticky;top:0;z-index:10}.topbar-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:.5px solid var(--border-strong);border-radius:50%;color:var(--text)}.topbar-title{font-weight:600;font-size:17px;letter-spacing:-.2px}.topbar-right{display:flex;gap:8px;align-items:center}.bottomnav{background:var(--surface);border-top:.5px solid var(--border-strong);padding:8px 8px 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.bottomnav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;color:var(--text-3);font-size:11px;font-weight:500;min-height:48px;justify-content:center}.bottomnav-item.active{color:var(--primary)}.bottomnav-item svg{width:22px;height:22px}.card{background:var(--surface);border:.5px solid var(--border-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.section-title{font-size:13px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;margin:18px 20px 10px}.btn{min-height:48px;padding:0 18px;border-radius:var(--radius-btn);font-weight:500;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:var(--surface);color:var(--text);border:.5px solid var(--border-strong)}.btn-ghost{color:var(--primary)}.btn-accent{background:var(--accent);color:#fff}.btn-block{display:flex;width:100%}.input,.select,.textarea{width:100%;min-height:48px;padding:0 14px;border-radius:var(--radius-btn);background:var(--surface);border:.5px solid var(--border-strong);color:var(--text);font-size:15px;outline:none;transition:border-color .15s}.textarea{padding:12px 14px;resize:none;min-height:80px}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary)}.field-label{display:block;font-size:13px;font-weight:500;color:var(--text-2);margin-bottom:6px}.field{margin-bottom:14px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-healthy{background:var(--healthy)}.dot-warning{background:var(--warning)}.dot-danger{background:var(--danger)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500}.pill-healthy{background:var(--healthy-soft);color:var(--healthy)}.pill-warning{background:var(--warning-soft);color:var(--accent)}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-soft{background:var(--primary-soft);color:var(--primary-dark)}.pill-neutral{background:var(--bg);color:var(--text-2);border:.5px solid var(--border-strong)}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface);border:.5px solid var(--border-strong);border-radius:999px;font-size:13px;font-weight:500;color:var(--text-2);white-space:nowrap;min-height:36px}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.chip-row{display:flex;gap:8px;overflow-x:auto;padding:0 20px 4px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.list-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:.5px solid var(--border-strong);border-radius:var(--radius-card);min-height:64px}.list-stack{display:flex;flex-direction:column;gap:8px;padding:0 20px}.avatar{width:44px;height:44px;border-radius:10px;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;overflow:hidden}.avatar-circle{border-radius:50%}.avatar-img{width:100%;height:100%;object-fit:cover}.fab{position:absolute;right:20px;bottom:92px;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #2d6a2d59;z-index:5}.toast{position:absolute;top:60px;left:20px;right:20px;padding:12px 16px;background:var(--text);color:var(--bg);border-radius:10px;font-size:14px;font-weight:500;z-index:100;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-elev);animation:toastIn .3s ease}.toast-success{background:var(--healthy);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.skel{background:linear-gradient(90deg,var(--border) 0%,rgba(0,0,0,.04) 50%,var(--border) 100%);background-size:200% 100%;animation:skel 1.4s infinite;border-radius:8px}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;text-align:center;color:var(--text-3)}.empty-illust{width:96px;height:96px;border-radius:50%;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);margin-bottom:4px}.page-enter{animation:pageIn .25s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50;animation:fadeIn .2s ease}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-radius:20px 20px 0 0;padding:8px 0 28px;z-index:51;max-height:80%;overflow-y:auto;animation:sheetUp .28s cubic-bezier(.2,.9,.3,1)}.sheet-handle{width:36px;height:4px;background:var(--border-strong);border-radius:2px;margin:6px auto 12px}.sheet-title{font-weight:600;font-size:17px;padding:0 20px 12px}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.offline-banner{background:var(--text);color:var(--bg);font-size:12px;font-weight:500;text-align:center;padding:6px 12px;display:flex;align-items:center;justify-content:center;gap:6px}[data-theme=dark] .offline-banner{background:var(--accent-soft);color:var(--text)}.app-scroll::-webkit-scrollbar{width:0}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.grow{flex:1}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.text-sm{font-size:13px}.text-xs{font-size:12px}.text-lg{font-size:17px}.text-xl{font-size:22px}.text-2xl{font-size:28px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.px-20{padding-left:20px;padding-right:20px}.pb-20{padding-bottom:20px}.pt-12{padding-top:12px}.mb-12{margin-bottom:12px}.mb-20{margin-bottom:20px}.mt-12{margin-top:12px}.tabular{font-variant-numeric:tabular-nums}html,body,#root{height:100%}body{background:var(--bg);overscroll-behavior:none}@media(min-width:560px){body{background:#1a1f18}}.shell{position:relative;height:100dvh;max-width:520px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg);overflow:hidden;padding-top:env(safe-area-inset-top)}.bottomnav{padding-bottom:calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(var(--nav-cols, 4),1fr)}.sheet{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.sheet .field:last-child{margin-bottom:8px}.fab{bottom:24px;z-index:20}.err{color:var(--danger);font-size:13px;margin:4px 0 12px}.link{color:var(--primary);font-weight:600}.seg{display:flex;background:var(--surface);border:.5px solid var(--border-strong);border-radius:10px;padding:3px;gap:3px}.seg button{flex:1;padding:8px 6px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-2)}.seg button.active{background:var(--primary);color:#fff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:.5px solid var(--border);font-size:14px}.kv:last-child{border-bottom:none}.kv span:first-child{color:var(--text-2)}.bar{height:6px;border-radius:3px;background:var(--border-strong);overflow:hidden}.bar>div{height:100%;border-radius:3px}.danger-text{color:var(--danger)}.icon-btn{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:.5px solid var(--border-strong)}.badge-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--danger)}.auth-wrap{flex:1;overflow-y:auto;padding:48px 24px 24px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--primary-soft) 0%,var(--bg) 60%)}.brand{font-family:var(--font-display);font-size:44px;font-weight:600;letter-spacing:-1px;color:var(--primary-dark)}.h1{font-family:var(--font-display);font-size:26px;font-weight:600;margin-bottom:6px}.photo-lg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-card)}.scan-video{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:16px;background:#000}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}.toast{position:fixed;max-width:480px;margin:0 auto}@media print{.bottomnav,.fab,.topbar-right,.offline-banner{display:none!important}.shell{height:auto;max-width:none}.app,.app-scroll{overflow:visible;height:auto}body{background:#fff}}
