:root{--mint-50: #ECFDF5;--mint-100: #D3F5E4;--mint-200: #A7ECC9;--mint-300: #6FDCA9;--mint-400: #34C88A;--mint-500: #12B276;--mint-600: #0E9A67;--mint-700: #0B7A53;--mint-800: #0A5E42;--coral-50: #FFF4ED;--coral-100: #FFE4D3;--coral-300: #FDBA8C;--coral-500: #F97316;--coral-600: #EA580C;--coral-700: #C2410C;--amber-50: #FFF8EB;--amber-100: #FDECC8;--amber-600: #B45309;--amber-700: #92400E;--blue-50: #EFF6FF;--blue-100: #DBEAFE;--blue-600: #2563EB;--blue-700: #1D4ED8;--rose-50: #FFF1F2;--rose-100: #FFE0E3;--rose-600: #E11D48;--rose-700: #BE123C;--info: #0EA5E9;--warn: #D97706;--danger: #E11D48;--success: var(--mint-600);--bg: #F4F7F4;--bg-soft: #FAFCFA;--bg-sunk: #EEF2EE;--card: #FFFFFF;--line: #E7ECE8;--line-soft: #EFF3F0;--line-strong: #D5DED8;--text: #14211C;--text-soft: #4B5A53;--text-mute: #8A9891;--text-faint:#AEBAB3;--on-brand: #FFFFFF;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14.5px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 28px;--fs-4xl: 33px;--lh-tight: 1.28;--lh-snug: 1.45;--lh-base: 1.65;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--sp-9: 56px;--r-xs: 6px;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 26px;--r-full: 999px;--shadow-1: 0 1px 2px rgba(20,33,28,.04), 0 1px 3px rgba(20,33,28,.05);--shadow-2: 0 2px 6px rgba(20,33,28,.05), 0 8px 20px rgba(20,33,28,.06);--shadow-3: 0 8px 20px rgba(20,33,28,.08), 0 24px 48px rgba(20,33,28,.1);--shadow-brand: 0 6px 18px rgba(16,178,118,.28);--ring: 0 0 0 3px rgba(52,200,138,.22);--tx-fast: .13s cubic-bezier(.3,.7,.4,1);--tx-base: .22s cubic-bezier(.3,.7,.4,1);--ease-out: cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 0}a{color:inherit;text-decoration:none}button{font:inherit;border:none;cursor:pointer;background:transparent;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4,h5{line-height:var(--lh-tight)}::selection{background:var(--mint-200);color:var(--mint-800)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:#cbd6d0;border-radius:var(--r-full);border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#aebdb5;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 15px;border-radius:var(--r-sm);font-weight:550;font-size:var(--fs-sm);line-height:1.2;letter-spacing:.2px;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--tx-fast),border-color var(--tx-fast),color var(--tx-fast),box-shadow var(--tx-fast),transform var(--tx-fast);border:1px solid transparent}.btn:active{transform:translateY(.5px)}.btn svg{flex-shrink:0}.btn-primary{background:var(--mint-600);color:var(--on-brand);box-shadow:0 1px 2px #0b7a5340}.btn-primary:hover{background:var(--mint-700);box-shadow:var(--shadow-brand)}.btn-primary:active{background:var(--mint-800)}.btn-ghost{background:var(--mint-50);color:var(--mint-700)}.btn-ghost:hover{background:var(--mint-100)}.btn-secondary{background:var(--card);color:var(--text-soft);border-color:var(--line-strong)}.btn-secondary:hover{background:var(--bg-soft);border-color:#c3cec7;color:var(--text)}.btn-subtle{background:transparent;color:var(--text-soft)}.btn-subtle:hover{background:var(--bg-sunk);color:var(--text)}.btn-danger{background:var(--card);color:var(--danger);border-color:#f6c6ce}.btn-danger:hover{background:var(--rose-50);border-color:#f0a9b5}.btn-sm{padding:6px 11px;font-size:var(--fs-xs);border-radius:var(--r-xs);gap:5px}.btn-lg{padding:12px 22px;font-size:var(--fs-md);border-radius:var(--r-md)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-sm);color:var(--text-mute);transition:background var(--tx-fast),color var(--tx-fast)}.btn-icon:hover{background:var(--bg-sunk);color:var(--text)}.btn-icon.sm{width:28px;height:28px;border-radius:var(--r-xs)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card-hover{transition:transform var(--tx-base),box-shadow var(--tx-base),border-color var(--tx-base)}.card-hover:hover{transform:translateY(-2px);border-color:var(--mint-200);box-shadow:var(--shadow-2)}.input,.textarea,.select{width:100%;padding:10px 13px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--card);color:var(--text);outline:none;transition:border-color var(--tx-fast),box-shadow var(--tx-fast)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.textarea:hover,.select:hover{border-color:#c3cec7}.input:focus,.textarea:focus,.select:focus{border-color:var(--mint-400);box-shadow:var(--ring)}.textarea{min-height:84px;resize:vertical;line-height:var(--lh-base)}.select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A9891' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}.field-label{font-size:var(--fs-sm);font-weight:550;color:var(--text-soft)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:550;line-height:1.5;white-space:nowrap;flex-shrink:0;background:var(--mint-50);color:var(--mint-700);border:1px solid transparent}.chip-mute{background:var(--bg-sunk);color:var(--text-soft)}.chip-coral{background:var(--coral-50);color:var(--coral-700)}.chip-amber{background:var(--amber-50);color:var(--amber-700)}.chip-blue{background:var(--blue-50);color:var(--blue-700)}.chip-rose{background:var(--rose-50);color:var(--rose-700)}.chip-info{background:var(--blue-50);color:var(--blue-700)}.chip-warn{background:var(--amber-50);color:var(--amber-700)}.chip-danger{background:var(--rose-50);color:var(--rose-700)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.dot-observe{background:var(--mint-500)}.dot-treat{background:var(--amber-600)}.dot-done{background:var(--blue-600)}.dot-attention{background:var(--rose-600)}.dot-mute{background:var(--text-faint)}.section-title{font-size:var(--fs-lg);font-weight:650;color:var(--text);letter-spacing:.2px}.eyebrow{font-size:var(--fs-xs);font-weight:650;letter-spacing:.6px;color:var(--text-mute);text-transform:none}.page-head{margin-bottom:var(--sp-6)}.page-title{margin:0;font-size:var(--fs-2xl);font-weight:680;letter-spacing:-.2px}.page-sub{margin:6px 0 0;color:var(--text-mute);font-size:var(--fs-sm)}.backlink{display:inline-flex;align-items:center;gap:4px;color:var(--text-mute);font-size:var(--fs-sm);font-weight:500;padding:5px 10px 5px 6px;border-radius:var(--r-sm);margin-left:-6px;transition:background var(--tx-fast),color var(--tx-fast)}.backlink:hover{background:var(--bg-sunk);color:var(--text)}.empty{text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--text-mute)}.empty-icon{width:60px;height:60px;margin:0 auto var(--sp-4);display:flex;align-items:center;justify-content:center;border-radius:var(--r-xl);background:var(--mint-50);color:var(--mint-500)}.empty-title{color:var(--text);font-weight:600;font-size:var(--fs-md);margin-bottom:6px}.tabs{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--sp-5)}.tab{position:relative;padding:11px 4px;margin:0 12px -1px 0;font-size:var(--fs-md);font-weight:550;color:var(--text-mute);border-bottom:2px solid transparent;transition:color var(--tx-fast);display:inline-flex;align-items:center;gap:7px}.tab:first-child{margin-left:2px}.tab:hover{color:var(--text)}.tab.active{color:var(--mint-700);border-bottom-color:var(--mint-500)}.tab-count{background:var(--bg-sunk);color:var(--text-soft);min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-full);font-size:11px;font-weight:650;display:inline-flex;align-items:center;justify-content:center}.tab.active .tab-count{background:var(--mint-100);color:var(--mint-700)}.avatar{width:40px;height:40px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:var(--mint-100);color:var(--mint-700);font-weight:650;flex-shrink:0}.avatar-sm{width:28px;height:28px;border-radius:9px;font-size:var(--fs-xs)}.avatar-lg{width:64px;height:64px;border-radius:18px;font-size:var(--fs-2xl)}.avatar-xl{width:88px;height:88px;border-radius:24px;font-size:34px}.row{display:flex;align-items:center;gap:var(--sp-2)}.col{display:flex;flex-direction:column;gap:var(--sp-2)}.wrap{flex-wrap:wrap}.spacer{flex:1 1 auto;min-width:0}.muted{color:var(--text-mute)}.soft{color:var(--text-soft)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.center{display:flex;align-items:center;justify-content:center}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.prose{font-size:var(--fs-base);line-height:1.75;color:var(--text);white-space:pre-wrap;word-break:break-word}.prose p{margin:0 0 10px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fade-in var(--tx-base) both}.slide-up{animation:slide-up var(--tx-base) var(--ease-out) both}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.layout{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:50;background:#fafcfad1;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line-soft)}.topbar-inner{max-width:1160px;margin:0 auto;padding:11px 24px;display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:10px;font-weight:680;font-size:var(--fs-md);color:var(--text)}.brand-mark{width:34px;height:34px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--mint-400) 0%,var(--mint-600) 100%);color:#fff;box-shadow:var(--shadow-brand)}.brand-text{letter-spacing:.2px;white-space:nowrap}.topnav{display:flex;gap:4px;flex:1}.navlink{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-sm);color:var(--text-soft);font-size:var(--fs-sm);font-weight:550;transition:background var(--tx-fast),color var(--tx-fast)}.navlink svg{color:var(--text-mute);transition:color var(--tx-fast)}.navlink:hover{background:var(--bg-sunk);color:var(--text)}.navlink:hover svg{color:var(--text-soft)}.navlink.active{background:var(--mint-50);color:var(--mint-700)}.navlink.active svg{color:var(--mint-600)}.user-btn{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:var(--r-full);transition:background var(--tx-fast)}.user-btn:hover{background:var(--bg-sunk)}.user-name{font-size:var(--fs-sm);color:var(--text-soft);font-weight:500}.user-caret{color:var(--text-faint)}.menu{position:absolute;top:calc(100% + 8px);right:0;min-width:168px;padding:6px;z-index:100;border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:pop-in .15s var(--ease-out) both;transform-origin:top right}.menu-item{width:100%;text-align:left;display:flex;align-items:center;gap:10px;padding:9px 11px;font-size:var(--fs-sm);border-radius:var(--r-sm);color:var(--text-soft);transition:background var(--tx-fast),color var(--tx-fast)}.menu-item svg{color:var(--text-mute)}.menu-item:hover{background:var(--bg-sunk);color:var(--text)}.menu-item.danger{color:var(--danger)}.menu-item.danger svg{color:var(--danger)}.menu-item.danger:hover{background:var(--rose-50)}.main{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:30px 24px 80px}@media(max-width:720px){.topbar-inner{padding:10px 16px;gap:10px}.brand-text{display:none}.topnav{gap:2px}.navlink{padding:7px 11px}.user-name{display:none}.main{padding:20px 16px 64px}}
