:root{--color-brand-50: #e8f5e9;--color-brand-100: #c8e6c9;--color-brand-300: #81c784;--color-brand-400: #66bb6a;--color-brand-500: #4caf50;--color-brand-600: #43a047;--color-brand-700: #388e3c;--color-brand-800: #2e7d32;--color-brand: var(--color-brand-500);--color-brand-strong: var(--color-brand-700);--gradient-brand: linear-gradient(135deg, var(--color-brand-700) 0%, var(--color-brand-400) 100%);--gradient-brand-hover: linear-gradient(135deg, var(--color-brand-800) 0%, var(--color-brand-600) 100%);--color-brand-ring: rgba(67, 160, 71, .15);--color-brand-ring-strong: rgba(67, 160, 71, .3);--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-bg: #fef2f2;--color-danger-border: #fca5a5;--color-text: #1f2937;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--color-text-faint: #9ca3af;--color-bg: #f5f5f5;--color-surface: #ffffff;--color-surface-alt: #fafafa;--color-border: #e0e0e0;--color-border-strong: #d0d7de;--color-border-subtle: #eeeeee;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .3);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--font-xs: 12px;--font-sm: 13px;--font-base: 14px;--font-md: 15px;--font-lg: 16px;--font-xl: 18px;--font-2xl: 20px;--font-3xl: 26px;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--z-dropdown: 500;--z-drawer: 1000;--z-dialog: 1000;--z-overlay: 2000}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-family-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}.footer{padding:12px 20px;background-color:#f7f7f7;text-align:center;font-size:12px;color:#888}.footer-content{display:inline-flex;align-items:center;gap:8px}.footer-separator{color:#ccc}.footer-icp{color:inherit;text-decoration:none}.footer-icp:hover{text-decoration:underline}.search-container{position:relative;width:100%;z-index:500}.search-bar{display:flex;background:#fffffff2;border-radius:12px;padding:8px;box-shadow:0 4px 20px #00000026;border:1px solid rgba(67,160,71,.2);transition:all .3s ease}.search-bar:focus-within{box-shadow:0 4px 25px #43a04740;border-color:var(--color-brand-700)}.search-input-wrapper{flex:1;position:relative}.plant-input{width:100%;padding:12px 40px 12px 12px;border:none;border-radius:8px;font-size:15px;outline:none;background:transparent;color:#333;line-height:1.2}.plant-input::placeholder{color:#888;font-size:15px;line-height:1.2}.clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0 5px;line-height:1;transition:color .2s}.clear-btn:hover{color:var(--color-brand-700)}.search-btn{padding:12px 30px;background:linear-gradient(135deg,var(--color-brand-700) 0%,var(--color-brand-400) 100%);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;margin-left:8px}.search-btn:hover{background:linear-gradient(135deg,var(--color-brand-800) 0%,var(--color-brand-700) 100%);box-shadow:0 4px 12px #43a0474d}.search-btn:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.suggestions-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border-radius:12px;box-shadow:0 8px 30px #00000026;max-height:70vh;overflow-y:auto;z-index:1001;border:1px solid rgba(67,160,71,.2);padding:6px 0}.seg-control{display:flex;gap:4px;padding:6px 10px 8px;border-bottom:1px solid #f0f0f0;margin-bottom:4px;position:sticky;top:0;background:#fff;z-index:1;border-radius:12px 12px 0 0}.seg-tab{flex:1;padding:6px 0;border:none;border-radius:6px;background:transparent;color:#666;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px}.seg-tab:hover{background:#f5f5f5;color:#333}.seg-tab.active{background:var(--color-brand-50);color:var(--color-brand-700);font-weight:600}.suggestion-divider{height:1px;background:#e8e8e8;margin:4px 10px}.suggestion-item{padding:8px 14px;cursor:pointer;transition:background-color .15s}.suggestion-item.selected{background-color:#43a04714}.suggestion-item:hover{background-color:#43a0470d}.suggestion-content{flex:1;min-width:0}.plant-common-name{font-size:14px;color:#333;font-weight:500;line-height:1.3}.plant-scientific-name{font-size:12px;color:#888;font-family:Georgia,Times New Roman,Times,serif;margin-top:1px}.plant-parent-name{font-size:11px;color:#aaa;margin-top:1px}.um-wrap{position:relative}.um-trigger{width:36px;height:36px;padding:0;border-radius:50%;border:1px solid #e0e0e0;background:#fff;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center}.um-avatar{width:100%;height:100%;object-fit:cover;border-radius:50%}.um-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--color-brand-50);color:var(--color-brand-500);font-weight:700;font-size:15px}.um-login{padding:7px 16px;font-size:14px;font-weight:600;color:var(--color-brand-500);background:#fff;border:1px solid var(--color-brand-500);border-radius:8px;cursor:pointer;transition:all .18s}.um-login:hover{background:var(--color-brand-500);color:#fff}.um-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:188px;background:#fff;border:1px solid #eaecef;border-radius:12px;box-shadow:0 8px 28px #0000001f;padding:6px;z-index:1000}.um-account{display:flex;align-items:center;gap:10px;padding:8px 10px}.um-account-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.um-account-name{font-size:14px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.um-divider{height:1px;background:#f0f0f0;margin:6px 0}.um-item{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:9px 10px;font-size:14px;color:#374151;text-decoration:none;border:none;background:none;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s}.um-item:hover{background:#f3f4f6}.um-item-current,.um-item-current:hover{color:#9ca3af;cursor:default;background:none}.um-tag{font-size:11px;color:var(--color-brand-500);background:var(--color-brand-50);padding:1px 7px;border-radius:999px}.um-logout{color:var(--color-danger)}.um-logout:hover{background:var(--color-danger-bg)}.overlay-hint{position:absolute;inset:0;display:flex;justify-content:center;align-items:flex-start;padding-top:33vh;background:#00000040;z-index:var(--z-overlay);animation:fadeInOut 3s forwards;pointer-events:none}.overlay-hint-card{background:#fffffff2;padding:28px 36px;border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);box-shadow:var(--shadow-lg)}.overlay-hint-text{font-size:var(--font-xl);font-weight:600;color:var(--color-text-secondary)}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 20px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--gradient-brand);color:#fff}.ui-btn--primary:not(:disabled):hover{background:var(--gradient-brand-hover);box-shadow:0 4px 12px var(--color-brand-ring-strong)}.ui-btn--secondary{background:var(--color-surface);color:var(--color-text-secondary);border-color:var(--color-border-strong)}.ui-btn--secondary:not(:disabled):hover{background:var(--color-surface-alt)}.ui-btn--danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger-border)}.ui-btn--danger:not(:disabled):hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.ui-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:var(--z-dialog)}.ui-dialog{width:100%;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh}.ui-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.ui-dialog-title{font-size:var(--font-lg);font-weight:600;color:var(--color-text)}.ui-dialog-close{background:none;border:none;font-size:var(--font-lg);line-height:1;color:var(--color-text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.ui-dialog-close:hover{color:var(--color-text);background:var(--color-surface-alt)}.ui-dialog-body{padding:var(--space-5);overflow-y:auto}.ui-dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-subtle)}.zhm-tooltip{position:relative;display:inline-flex}.zhm-tooltip:after{content:attr(data-tooltip);position:absolute;padding:5px 10px;background:#000000c7;color:#fff;font-size:13px;font-weight:400;line-height:1.4;white-space:nowrap;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:600}.zhm-tooltip:before{content:"";position:absolute;border:6px solid transparent;opacity:0;transition:opacity .15s ease;z-index:600}.zhm-tooltip:hover:after,.zhm-tooltip:hover:before{opacity:1}.zhm-tooltip--top:after{left:50%;bottom:calc(100% + 10px);transform:translate(-50%)}.zhm-tooltip--top:before{left:50%;bottom:calc(100% + 4px);transform:translate(-50%);border-top-color:#000000c7}.zhm-tooltip--bottom:after{left:50%;top:calc(100% + 10px);transform:translate(-50%)}.zhm-tooltip--bottom:before{left:50%;top:calc(100% + 4px);transform:translate(-50%);border-bottom-color:#000000c7}.zhm-tooltip--right:after{left:calc(100% + 10px);top:50%;transform:translateY(-50%)}.zhm-tooltip--right:before{left:calc(100% + 4px);top:50%;transform:translateY(-50%);border-right-color:#000000c7}.zhm-tooltip--left:after{right:calc(100% + 10px);top:50%;transform:translateY(-50%)}.zhm-tooltip--left:before{right:calc(100% + 4px);top:50%;transform:translateY(-50%);border-left-color:#000000c7}.login{display:flex;flex-direction:column;min-height:100vh;background:var(--color-surface)}.login-container{width:100%;max-width:500px;margin:120px auto 0;padding:20px;background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;gap:16px}.login-header{text-align:center;margin-bottom:24px}.login-header.left-logo{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:14px}.login-header-text{display:flex;flex-direction:column}.login-logo{width:48px;height:48px;margin:0}.login-title{font-size:26px;font-weight:700;margin:0;color:var(--color-brand-500)}.login-subtitle{font-size:14px;color:#666;margin-top:6px}.input-wrapper{position:relative;width:100%}.login-input{width:100%;padding:12px 120px 12px 12px;font-size:16px;border-radius:8px;border:1px solid #ddd;outline:none;line-height:1.2;color:#333;transition:border-color .2s,box-shadow .2s}.login-input:focus{border-color:var(--color-brand-500);box-shadow:0 4px 12px #43a0474d}.send-code-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:8px 16px;font-size:14px;font-weight:600;border-radius:8px;border:none;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--color-brand-500) 0%,var(--color-brand-400) 100%);transition:all .3s ease;white-space:nowrap}.send-code-btn:hover{background:linear-gradient(135deg,var(--color-brand-800) 0%,var(--color-brand-700) 100%);box-shadow:0 4px 12px #43a0474d}.send-code-btn:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.login-btn{padding:12px 30px;font-size:16px;font-weight:600;border-radius:8px;border:none;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--color-brand-500) 0%,var(--color-brand-400) 100%);transition:all .3s ease}.login-btn:hover{background:linear-gradient(135deg,var(--color-brand-800) 0%,var(--color-brand-700) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #43a0474d}.login-btn:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.cropper-stage{position:relative;width:100%;height:320px;background:#1a1a1a;border-radius:var(--radius-md);overflow:hidden}.cropper-controls{display:flex;align-items:center;gap:12px;padding-top:18px}.cropper-zoom-icon{color:#9ca3af;flex-shrink:0}.cropper-zoom-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#e5e7eb;border-radius:2px;outline:none;cursor:pointer}.cropper-zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-brand-500);cursor:pointer;box-shadow:0 1px 4px #00000040}.cropper-zoom-slider::-moz-range-thumb{width:18px;height:18px;border:none;border-radius:50%;background:var(--color-brand-500);cursor:pointer}.edit-field{display:flex;flex-direction:column;gap:var(--space-1)}.edit-field+.edit-field{margin-top:18px}.edit-label{font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary)}.edit-input,.edit-textarea{width:100%;box-sizing:border-box;padding:8px 12px;font-size:var(--font-base);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);outline:none;font-family:inherit;transition:border-color .18s,box-shadow .18s}.edit-textarea{resize:vertical;min-height:72px;line-height:1.5}.edit-input:focus,.edit-textarea:focus{border-color:var(--color-brand-500);box-shadow:0 0 0 3px var(--color-brand-ring)}.edit-hint{font-size:var(--font-xs);color:var(--color-text-faint)}.edit-count{align-self:flex-end;font-size:var(--font-xs);color:var(--color-text-faint)}.edit-error-inline{display:flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--color-danger)}.edit-error{display:flex;align-items:center;gap:var(--space-1);margin-top:18px;padding:9px 12px;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-sm)}.profile-page{display:flex;flex-direction:column;min-height:100vh;background:#fff;position:relative}.profile-topbar{position:sticky;top:0;z-index:600;height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid #e5e5e5}.profile-brand{display:flex;align-items:center;gap:8px}.profile-logo{width:28px;height:28px}.profile-brand-title{font-size:18px;font-weight:600;color:#222}.profile-main{flex:1;width:100%;max-width:720px;margin:32px auto 0;padding:0 24px 48px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr);gap:40px;align-items:start;position:relative;z-index:1}.profile-side{display:none;flex-direction:column;gap:16px;padding-left:40px;border-left:1px solid #eaecef;min-height:220px}@media(max-width:760px){.profile-main{grid-template-columns:minmax(0,1fr);gap:28px}.profile-side{padding-left:0;border-left:none;border-top:1px solid #eaecef;padding-top:24px;min-height:0}}.profile-card{position:relative;padding:0;display:flex;flex-direction:column;align-items:flex-start}.profile-avatar-wrap{margin-top:0}.profile-avatar{position:relative;width:96px;height:96px;padding:0;border-radius:50%;border:1px solid #d0d7de;background:var(--color-brand-50);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.avatar-img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{font-size:42px;font-weight:700;color:var(--color-brand-500)}.avatar-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000006b;opacity:0;transition:opacity .2s}.profile-avatar:hover .avatar-overlay{opacity:1}.avatar-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000080}.spin{animation:profile-spin .8s linear infinite}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-identity{margin-top:14px;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.profile-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-name{font-size:21px;font-weight:700;color:#1f2937;text-align:left;word-break:break-word}.level-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600}.profile-bio{margin-top:2px;font-size:14px;line-height:1.5;color:#4b5563;text-align:left;white-space:pre-wrap;word-break:break-word}.profile-bio.is-empty{color:#b0b6be;font-style:italic}.edit-profile-btn{position:absolute;top:16px;right:16px;z-index:2;padding:6px 14px;font-size:13px;font-weight:600;color:#374151;background:#fff;border:1px solid #d0d7de;border-radius:8px;cursor:pointer;transition:background .18s,border-color .18s}.edit-profile-btn:hover{background:#f3f4f6;border-color:#afb8c1}.profile-fields{margin-top:22px;width:100%;display:flex;flex-direction:column}.field-row{display:flex;justify-content:space-between;align-items:center;padding:14px 2px;border-top:1px solid #f0f0f0}.field-row:first-child{border-top:none}.field-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#6b7280}.field-value{font-size:14px;color:#1f2937;font-weight:500}.field-value-id{display:flex;align-items:center;gap:8px;min-width:0;margin-left:16px}.user-id-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;font-weight:400;color:#4b5563;background:#f5f6f7;padding:3px 8px;border-radius:5px;white-space:nowrap}.user-id-copy{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#6b7280;cursor:pointer;transition:all .15s}.user-id-copy:hover{border-color:#43a047;color:#2e7d32;background:#f1f8f2}.profile-side-card{padding:0}@media(max-width:480px){.profile-main{margin-top:16px}}
