:root{--navy: #0c1b2e;--navy-2: #16324f;--navy-3: #1e4468;--ink: #1a2332;--text: #243044;--muted: #5c6b7c;--faint: #8a96a3;--line: #e3e8ee;--line-2: #cfd6de;--paper: #f3f5f7;--card: #ffffff;--gold: #c4a574;--gold-2: #a8874e;--accent: #1e4e7a;--accent-2: #2b6ea3;--ok: #1a7a5c;--ok-bg: #e8f5f0;--warn: #8a5a12;--warn-bg: #f7efd9;--danger: #9b2c2c;--danger-bg: #fdecec;--shadow: 0 8px 28px rgba(12, 27, 46, .08);--tab-h: calc(56px + env(safe-area-inset-bottom)) ;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--serif: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "SimSun", serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:#0a1626;line-height:1.55}button,input,textarea,select{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img{max-width:100%;display:block}.app-shell{min-height:100%;background:var(--paper);color:var(--text)}@media (min-width: 560px){.app-shell{max-width:430px;margin:0 auto;min-height:100vh;box-shadow:0 0 0 1px #c4a5742e,0 20px 80px #00000059}}.page{min-height:100%;padding-bottom:calc(var(--tab-h) + 16px);background:var(--paper)}.page.no-tab{padding-bottom:24px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top));background:#f3f5f7eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid transparent}.topbar.solid{border-bottom-color:var(--line);background:#fff}.topbar .brand{font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:.12em;color:var(--navy)}.topbar .title{font-size:17px;font-weight:650;color:var(--navy);flex:1}.topbar .sub{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}.icon-btn{width:36px;height:36px;border:0;background:transparent;color:var(--navy);border-radius:10px;display:grid;place-items:center;flex-shrink:0}.icon-btn:active{background:var(--line)}.spacer{flex:1}.tabs{display:flex;gap:0;padding:0 8px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:calc(52px + env(safe-area-inset-top));z-index:15}.tabs button{flex:1;border:0;background:none;padding:12px 8px 10px;color:var(--muted);font-weight:550;position:relative}.tabs button.on{color:var(--navy);font-weight:700}.tabs button.on:after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:2px;background:var(--gold);border-radius:2px 2px 0 0}.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;border:1px solid var(--line-2);background:#fff;color:var(--muted);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:550}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.card{background:var(--card);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.feed{padding:12px 16px 0;display:grid;gap:12px}.post-card,.opp-card,.list-card{background:#fff;border-radius:16px;padding:16px;box-shadow:var(--shadow)}.person{display:flex;gap:10px;align-items:flex-start}.person .meta{flex:1;min-width:0}.person .name{font-weight:650;color:var(--navy);font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.person .org{color:var(--muted);font-size:12.5px;margin-top:1px}.person .when{color:var(--faint);font-size:12px;white-space:nowrap}.body-text{margin:10px 0 0;font-size:15px;color:var(--text);white-space:pre-wrap;word-break:break-word}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag{font-size:11.5px;padding:2px 8px;border-radius:999px;background:#eef2f6;color:var(--accent);font-weight:550}.tag.gold{background:#f4ead9;color:var(--gold-2)}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.plain{background:var(--paper);color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:4px;background:var(--ok-bg);color:var(--ok);letter-spacing:.04em;vertical-align:middle}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.navy{background:var(--navy);color:#fff}.badge.gold{background:#f4ead9;color:var(--gold-2)}.actions{display:flex;gap:8px;margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.act{flex:1;border:0;background:none;color:var(--muted);font-size:13px;padding:6px;display:flex;align-items:center;justify-content:center;gap:6px}.act.on{color:var(--accent);font-weight:650}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0;letter-spacing:0}.avatar.lg{width:64px;height:64px;font-size:22px;border-radius:20px}.avatar.sm{width:32px;height:32px;font-size:12px}.kind-pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:4px;background:var(--navy);color:#fff}.kind-pill.supply{background:var(--accent-2)}.match-box{margin-top:10px;padding:10px 12px;background:#f7f1e6;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;font-size:12.5px;color:#6a5428}.match-box b{font-weight:650}.tabbar{position:fixed;left:0;right:0;bottom:0;height:var(--tab-h);padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 64px 1fr 1fr;align-items:stretch;z-index:30}@media (min-width: 560px){.tabbar{left:auto;right:auto;width:430px;margin:0 auto}}.tabbar a,.tabbar button.publish-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--faint);font-size:11px;font-weight:550;background:none;border:0;padding:0}.tabbar a.on{color:var(--navy);font-weight:700}.tabbar svg{width:22px;height:22px}.publish-fab{width:50px;height:50px;margin-top:-18px;border-radius:16px;background:var(--navy);color:#fff;display:grid;place-items:center;box-shadow:0 8px 20px #0c1b2e47;border:0}.publish-fab svg{width:22px;height:22px}.badge-dot{position:absolute;top:-3px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#b42318;color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.ico-wrap{position:relative}.login{min-height:100%;background:radial-gradient(1200px 480px at 20% -10%,rgba(196,165,116,.16),transparent 50%),linear-gradient(180deg,#0c1b2e,#13283f 48%,#0c1b2e);color:#fff;padding:24px 20px 32px;display:flex;flex-direction:column}.login-mark{margin-top:48px;display:flex;align-items:center;gap:12px}.seal{width:48px;height:48px;border-radius:14px;border:1.5px solid var(--gold);display:grid;place-items:center}.login h1{font-family:var(--serif);font-size:32px;letter-spacing:.18em;margin:0;font-weight:700}.login .lead{margin:14px 0 0;color:#ffffffb8;font-size:14px;letter-spacing:.04em}.login-card{margin-top:36px;background:#fff;color:var(--text);border-radius:20px;padding:22px 18px 18px;box-shadow:0 20px 50px #00000040}.demo-banner{background:var(--warn-bg);color:var(--warn);border-radius:12px;padding:10px 12px;font-size:12.5px;margin-bottom:16px;line-height:1.55}.demo-banner strong{color:#6a3f00}.label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px;font-weight:550}.field{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;background:#fff;color:var(--ink);outline:none}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1e4e7a1f}.row-field{display:flex;gap:8px}.row-field .field{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:12px;padding:12px 16px;font-weight:650;background:var(--navy);color:#fff}.btn:disabled{opacity:.45}.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line-2)}.btn.gold{background:var(--gold-2);color:#fff}.btn.ok{background:var(--ok)}.btn.warn{background:transparent;color:var(--danger);border:1px solid #f0d0d0}.btn.block{width:100%}.btn.sm{padding:7px 12px;font-size:13px;border-radius:10px}.linkish{color:var(--accent);background:none;border:0;padding:0;font-weight:550}.agree{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:flex-start;margin:14px 0}.quick-accounts{margin-top:16px}.quick-accounts p{margin:0 0 8px;font-size:12px;color:var(--muted)}.account-chip{display:flex;width:100%;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 12px;margin-bottom:8px;gap:10px;align-items:center;color:var(--text)}.account-chip .n{font-weight:650;font-size:13.5px;color:var(--navy)}.account-chip .d{font-size:12px;color:var(--muted)}.hero{background:radial-gradient(600px 200px at 80% -20%,rgba(196,165,116,.2),transparent 50%),linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:16px 16px 22px;padding-top:calc(8px + env(safe-area-inset-top))}.hero .top{display:flex;align-items:center;min-height:36px}.hero h1,.hero .name{font-size:22px;margin:12px 0 0;font-weight:700;letter-spacing:.02em}.hero .org{color:#ffffffc7;margin-top:2px;font-size:13.5px}.hero .bio{margin:10px 0 0;font-size:13.5px;color:#ffffffc7}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.stat{background:#ffffff14;border-radius:12px;padding:10px 8px;text-align:center}.stat b{display:block;font-size:18px}.stat span{font-size:11px;color:#ffffffa6}.section{padding:16px}.section h2{margin:0 0 10px;font-size:14px;letter-spacing:.08em;color:var(--navy);font-weight:700}.proj{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow)}.proj h3{margin:0;font-size:15px;color:var(--navy)}.proj .role{margin:6px 0 0;font-size:13px;color:var(--text)}.proj .sum{margin:6px 0 0;font-size:12.5px;color:var(--muted)}.form{padding:16px;display:grid;gap:14px}.seg{display:grid;grid-template-columns:repeat(3,1fr);background:#e7edf2;padding:3px;border-radius:12px}.seg button{border:0;background:transparent;padding:8px;border-radius:10px;color:var(--muted);font-weight:550}.seg button.on{background:#fff;color:var(--navy);font-weight:700;box-shadow:var(--shadow)}.textarea{min-height:120px;resize:vertical}.hint{font-size:12px;color:var(--muted);margin:0}.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}.error{background:var(--danger-bg);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13px}.empty{text-align:center;color:var(--muted);padding:48px 24px;font-size:14px}.empty b{display:block;color:var(--navy);margin-bottom:6px;font-size:16px}.detail{padding:16px}.detail .title{font-size:20px;line-height:1.4;margin:8px 0 0;color:var(--navy);font-weight:700}.kv{display:grid;grid-template-columns:72px 1fr;gap:6px 8px;margin-top:14px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;color:var(--ink);font-weight:550}.anon-note{margin-top:12px;background:#eef2f6;border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--muted)}.app-item{background:#fff;border-radius:14px;padding:14px;margin-top:10px;box-shadow:var(--shadow)}.sticky-action{position:sticky;bottom:calc(var(--tab-h) + 8px);padding:8px 0 0}.page.no-tab .sticky-action{bottom:12px}.msg-list{padding:8px 0 0}.msg-row{display:flex;gap:10px;padding:14px 16px;background:#fff;border-bottom:1px solid var(--line);width:100%;text-align:left;border-left:0;border-right:0;border-top:0;color:inherit}.msg-row .mid{flex:1;min-width:0}.msg-row .t{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.msg-row .opp{font-size:12px;color:var(--accent);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-row .preview{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.chat-page{display:flex;flex-direction:column;height:100%;min-height:100dvh;background:var(--paper)}.chat-head{padding:8px 16px 10px;padding-top:calc(8px + env(safe-area-inset-top));background:#fff;border-bottom:1px solid var(--line)}.chat-head .ctx{font-size:12px;color:var(--accent);margin:0}.chat-thread{flex:1;overflow-y:auto;padding:16px 14px 12px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:80%;padding:10px 12px;border-radius:14px;font-size:14.5px;line-height:1.5;background:#fff;color:var(--ink);box-shadow:var(--shadow);align-self:flex-start}.bubble.mine{align-self:flex-end;background:var(--navy);color:#fff;box-shadow:none}.bubble.system{align-self:center;background:transparent;box-shadow:none;color:var(--muted);font-size:12px;text-align:center;max-width:90%;padding:4px 8px}.chat-input{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}.chat-input .field{flex:1}.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.svc-item{background:#fff;border-radius:16px;padding:16px 14px;box-shadow:var(--shadow);min-height:108px;display:flex;flex-direction:column;justify-content:space-between}.svc-item .nm{font-weight:700;color:var(--navy);font-size:15px}.svc-item .ds{font-size:12px;color:var(--muted);margin-top:6px}.cell-list{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.cell{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);width:100%;background:#fff;border-left:0;border-right:0;border-top:0;text-align:left;color:inherit;font-size:15px}.cell:last-child{border-bottom:0}.cell .right{color:var(--faint);font-size:13px}.legal{padding:20px 18px 40px;font-size:14px;color:var(--text);line-height:1.7}.legal h1{font-size:20px;color:var(--navy)}.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + 16px);transform:translate(-50%);background:#0c1b2eeb;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;z-index:50;white-space:nowrap}@media (min-width: 560px){.toast{left:auto;right:auto}}.switch{width:44px;height:26px;border-radius:13px;border:0;background:#c9d1d8;position:relative;flex-shrink:0}.switch.on{background:var(--ok)}.switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.switch.on i{left:21px}
