@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Noto+Sans+SC:wght@300;400;500;600&family=Noto+Serif+SC:wght@500;600;700&display=swap";:root{--ink:#1c1f26;--ink-2:#3c424e;--muted:#727784;--paper:#f4f1ea;--raised:#fffdf8;--raised-2:#faf7f0;--line:rgba(28,31,38,.11);--line-2:rgba(28,31,38,.2);--brass:#9c7a43;--brass-2:#b8975a;--brass-soft:rgba(156,122,67,.1);--green:#3f6f54;--green-soft:rgba(63,111,84,.12);--amber:#946328;--amber-soft:rgba(148,99,40,.13);--serif:"Fraunces","Noto Serif SC",Georgia,serif;--sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,sans-serif;--shadow:0 1px 2px rgba(28,31,38,.04),0 14px 32px -18px rgba(28,31,38,.26);--shadow-lg:0 2px 4px rgba(28,31,38,.05),0 28px 60px -24px rgba(28,31,38,.32)}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%;font-family:var(--sans);color:var(--ink)}body{min-height:100vh;background:var(--paper);line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;z-index:500;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--brass),var(--brass-2) 48%,var(--brass))}button,input{font:inherit}button{color:inherit}.eyebrow{display:block;color:var(--brass);font-size:.67rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:.005em}p{margin:0}.boot{min-height:100vh;display:grid;place-items:center;background:var(--paper)}.boot span{width:28px;height:28px;border:2px solid var(--line-2);border-top-color:var(--brass);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand{display:flex;align-items:center;gap:.78rem}.brand .monogram{width:40px;height:40px;display:grid;place-items:center;position:relative;border-radius:9px;background:var(--ink);color:var(--paper);font:600 1.1rem var(--serif)}.brand .monogram:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid rgba(156,122,67,.55);border-radius:11px}.brand b{display:block;font:600 1rem var(--serif);line-height:1.05}.brand small{display:block;margin-top:.25rem;color:var(--muted);font-size:.59rem;letter-spacing:.21em}.brand.inverse b{color:var(--paper)}.brand.inverse small{color:#f4f1ea73}.brand.inverse .monogram{background:var(--paper);color:var(--ink)}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-aside{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:3.4rem 3.6rem;background:linear-gradient(160deg,#23262e,#1a1d24 60%,#16181e);color:var(--paper)}.auth-aside:before{content:"博远";position:absolute;right:-2.2rem;bottom:-4rem;color:#b8975a11;font:600 18rem/.8 var(--serif);letter-spacing:-.08em}.auth-aside>*{position:relative;z-index:1}.auth-story{max-width:34rem}.auth-story h1{margin:1rem 0 1.05rem;color:var(--paper);font-size:clamp(2rem,3.2vw,2.75rem);font-weight:500;line-height:1.15}.auth-story h1 span{color:var(--brass-2);font-style:italic}.auth-story p{max-width:34rem;color:#f4f1ea99;font-size:.96rem;line-height:1.8}.auth-stats{display:flex;gap:2rem;color:#f4f1ea80;font-size:.76rem}.auth-stats b{display:block;color:var(--brass-2);font:600 1.5rem var(--serif)}.auth-stats span{white-space:nowrap}.auth-main{display:grid;place-items:center;padding:2.5rem;background:var(--paper)}.auth-card{width:min(390px,90vw);animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.mode-tabs{display:flex;margin-bottom:1.6rem;border-bottom:1px solid var(--line)}.mode-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:.65rem 1.05rem;color:var(--muted);font-weight:600;cursor:pointer}.mode-tabs button.active{border-color:var(--brass);color:var(--ink)}.auth-card h2{font-size:1.75rem;margin:.65rem 0 .35rem}.auth-card .sub{margin-bottom:1.6rem;color:var(--muted);font-size:.88rem}.field{display:block;margin-bottom:.92rem}.field span{display:block;margin:0 0 .42rem;font-size:.77rem;font-weight:600;color:var(--ink-2)}.field input,.setting-body input{width:100%;border:1px solid var(--line-2);border-radius:10px;background:var(--raised);padding:.76rem .92rem;color:var(--ink);outline:none;transition:.18s}.field input:focus{border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}.field input::placeholder{color:#a7abb4}.auth-row{display:flex;justify-content:space-between;align-items:center;margin:.15rem 0 1.2rem;color:var(--ink-2);font-size:.78rem}.auth-row label{display:flex;align-items:center;gap:.42rem}.auth-row input{accent-color:var(--brass)}.auth-row button{border:0;background:none;color:var(--brass);cursor:pointer}.primary{width:100%;border:1px solid var(--ink);border-radius:10px;background:var(--ink);color:var(--paper);padding:.8rem 1.2rem;font-weight:600;cursor:pointer;transition:.2s}.primary:hover{transform:translateY(-1px);background:#0f1115;box-shadow:var(--shadow)}.primary:disabled{opacity:.65;cursor:wait}.form-error{margin:-.2rem 0 .8rem;padding:.65rem .75rem;border:1px solid rgba(161,61,51,.22);border-radius:8px;background:#a13d3312;color:#943b32;font-size:.78rem}.security-note{margin-top:1.15rem;color:var(--muted);font-size:.75rem;line-height:1.65;text-align:center}.workspace{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;z-index:120;display:flex;flex-direction:column;padding:1.6rem 1.1rem;background:var(--raised);border-right:1px solid var(--line)}.sidebar>.brand{padding:.2rem .5rem 1.5rem}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:.2rem}.nav-label{padding:.4rem .7rem;color:var(--muted);font-size:.62rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase}.nav-label.secondary{margin-top:.75rem}.sidebar nav button{display:flex;align-items:center;gap:.72rem;width:100%;border:0;border-radius:10px;background:none;padding:.66rem .72rem;color:var(--ink-2);font-size:.9rem;font-weight:500;text-align:left;cursor:pointer}.sidebar nav button:hover{background:var(--raised-2)}.sidebar nav button.active{background:var(--ink);color:var(--paper)}.side-user{display:flex;align-items:center;gap:.65rem;width:100%;padding:.58rem;border:1px solid var(--line);border-radius:11px;background:var(--raised-2);text-align:left;cursor:pointer}.avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:9px;background:var(--brass);color:#fff;font:600 .94rem var(--serif)}.side-user>span:nth-child(2){min-width:0}.side-user b,.member-row b{display:block;font-size:.83rem}.side-user small,.member-row small{display:block;overflow:hidden;margin-top:.08rem;color:var(--muted);font-size:.68rem;text-overflow:ellipsis}.side-user i{margin-left:auto;color:var(--muted);font-size:.65rem;font-style:normal}.main{min-width:0}.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:1rem;padding:1rem 2.2rem;border-bottom:1px solid var(--line);background:#f4f1ead6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.crumb{font-size:.8rem;color:var(--muted)}.crumb b{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:.65rem;margin-left:auto}.search{width:230px;display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:10px;background:var(--raised);padding:.48rem .78rem;color:var(--muted)}.search input{min-width:0;width:100%;border:0;background:none;outline:none;font-size:.82rem}.icon-button,.menu-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--raised);cursor:pointer}.menu-button{display:none}.page{width:100%;max-width:1180px;margin:0 auto;padding:2.4rem 2.2rem 3.5rem}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.hero h1{margin-top:.7rem;font-size:2.12rem;font-weight:500;line-height:1.18}.hero h1 span{color:var(--brass);font-style:italic}.hero>div:first-child>i{display:block;width:46px;height:2px;margin-top:1rem;background:var(--brass)}.hero-stats{display:flex;gap:2.2rem}.hero-stats div{min-width:74px}.hero-stats b{display:block;font:600 1.9rem/1 var(--serif)}.hero-stats span{display:block;margin-top:.36rem;color:var(--muted);font-size:.69rem;font-weight:600;letter-spacing:.08em}.section-title{display:flex;align-items:center;gap:.72rem;margin-bottom:1.1rem}.section-title h3{font-size:1.18rem}.section-title>span{height:1px;flex:1;background:var(--line)}.section-title small{color:var(--muted);font-size:.75rem}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.project{position:relative;min-height:224px;display:flex;flex-direction:column;overflow:hidden;padding:1.5rem;border:1px solid var(--line);border-radius:14px;background:var(--raised);box-shadow:0 1px 2px #1c1f260d;cursor:pointer;transition:.22s cubic-bezier(.2,.7,.2,1)}.project:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:.3s}.project.live:hover{transform:translateY(-4px);border-color:var(--line-2);box-shadow:var(--shadow-lg)}.project.live:hover:before{transform:scaleX(1)}.project.soon{background:linear-gradient(135deg,var(--raised),var(--raised-2));cursor:default}.project-index{position:absolute;top:1.2rem;right:1.4rem;padding-bottom:1px;border-bottom:1.5px solid var(--brass);color:var(--brass);font:500 1rem var(--serif)}.project-icon{width:46px;height:46px;display:grid;place-items:center;margin-bottom:1rem;border-radius:11px;background:var(--ink);color:var(--paper)}.project.soon .project-icon{border:1px solid var(--line);background:var(--raised-2);color:var(--muted)}.project h4{font-size:1.18rem}.project>small{margin:.12rem 0 .6rem;color:var(--muted);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase}.project p{flex:1;color:var(--ink-2);font-size:.84rem;line-height:1.68}.project footer{display:flex;align-items:center;justify-content:space-between;margin-top:1.1rem}.project footer>b{font-size:.82rem}.project.soon footer>b{color:var(--muted);font-weight:500}.badge{display:inline-flex;align-items:center;gap:.38rem;padding:.18rem .52rem;border:1px solid;border-radius:6px;font-size:.66rem;font-weight:600}.badge i{width:6px;height:6px;border-radius:50%}.badge.online{border-color:#3f6f5440;background:var(--green-soft);color:var(--green)}.badge.online i{background:var(--green);box-shadow:0 0 0 3px #3f6f5429}.badge.building{border-color:#94632840;background:var(--amber-soft);color:var(--amber)}.badge.building i{background:var(--amber)}.simple-hero{margin-bottom:1.5rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line)}.simple-hero h1{margin:.5rem 0 .35rem;font-size:2rem}.simple-hero p{color:var(--muted);font-size:.87rem}.panel,.settings-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--raised);box-shadow:var(--shadow)}.member-head{display:flex;justify-content:space-between;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}.member-head span{color:var(--muted);font-size:.75rem}.member-row{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.3rem;border-bottom:1px solid var(--line)}.member-row:last-child{border-bottom:0}.member-row>span:nth-child(2){flex:1}.member-row em{padding:.18rem .5rem;border:1px solid rgba(156,122,67,.28);border-radius:6px;background:var(--brass-soft);color:var(--brass);font-size:.68rem;font-style:normal}.empty{padding:3rem;color:var(--muted);text-align:center}.settings-card header{padding:1.15rem 1.35rem;border-bottom:1px solid var(--line);background:var(--raised-2)}.settings-card header h3{font-size:1.05rem}.settings-card header p{margin-top:.25rem;color:var(--muted);font-size:.8rem}.setting-body{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.35rem}.setting-body label span{display:block;margin-bottom:.35rem;color:var(--ink-2);font-size:.75rem;font-weight:600}.setting-body input{background:var(--raised-2)}.setting-body button{grid-column:1/-1;justify-self:start;border:1px solid var(--ink);border-radius:9px;background:var(--ink);color:var(--paper);padding:.58rem 1rem;font-size:.8rem;font-weight:600;cursor:pointer}.toast{position:fixed;right:1.6rem;bottom:1.6rem;z-index:400;display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:10px;background:var(--ink);color:var(--paper);box-shadow:var(--shadow-lg);font-size:.8rem;animation:rise .25s both}.toast span{width:7px;height:7px;border-radius:50%;background:var(--brass-2)}.scrim{display:none}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.hero .sig{font-style:italic;color:var(--brass);font-weight:500}.hero .rule{width:46px;height:2px;background:var(--brass);margin-top:.95rem}.stats{display:flex;gap:2.3rem}.stat .n{font-family:var(--serif);font-size:1.9rem;font-weight:600;line-height:1}.stat .l{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.35rem;font-weight:600}.sec-head{display:flex;align-items:center;gap:.7rem;margin:0 0 1.15rem}.sec-head h3{font-size:1.2rem}.sec-head .ln{flex:1;height:1px;background:var(--line)}.sec-head .cnt{font-size:.78rem;color:var(--muted)}.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.tool{position:relative;background:var(--raised);border:1px solid var(--line);border-radius:14px;padding:1.5rem 1.5rem 1.35rem;box-shadow:0 1px 2px #1c1f260d;transition:.22s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;min-height:218px;overflow:hidden;animation:rise .6s cubic-bezier(.2,.7,.2,1) both;cursor:pointer}.tool:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:.3s}.tool.live:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}.tool.live:hover:before{transform:scaleX(1)}.tool .idx{position:absolute;top:1.2rem;right:1.4rem;font-family:var(--serif);font-size:1rem;color:var(--brass);border-bottom:1.5px solid var(--brass);padding-bottom:1px;line-height:1}.tool .tico{width:46px;height:46px;border-radius:11px;display:grid;place-items:center;margin-bottom:1.05rem;background:var(--ink);color:var(--paper)}.tool.soon .tico{background:var(--raised-2);color:var(--muted);border:1px solid var(--line)}.tool h4{font-size:1.2rem;font-weight:600;margin-bottom:.15rem}.tool .ten{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}.tool p{font-size:.86rem;color:var(--ink-2);line-height:1.62;flex:1}.tool .foot{display:flex;align-items:center;justify-content:space-between;margin-top:1.1rem}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:.2rem .55rem;border-radius:6px;border:1px solid transparent}.badge .dot{width:6px;height:6px;border-radius:50%}.badge.live{background:var(--green-soft);color:var(--green);border-color:#3f6f5440}.badge.live .dot{background:var(--green);box-shadow:0 0 0 3px #3f6f542e}.badge.planned{background:#1c1f260d;color:var(--muted);border-color:var(--line)}.badge.planned .dot{background:var(--muted)}.enter{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.86rem;color:var(--ink);transition:.18s}.enter svg{width:15px;height:15px;transition:.2s}.tool.live:hover .enter{color:var(--brass)}.tool.live:hover .enter svg{transform:translate(3px)}.tool.soon{opacity:.96}.tool.soon .soon-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:repeating-linear-gradient(135deg,rgba(28,31,38,.018) 0 8px,transparent 8px 16px)}.enter.locked{color:var(--muted);cursor:not-allowed}.tool.add{align-items:center;justify-content:center;text-align:center;border-style:dashed;background:transparent;box-shadow:none;color:var(--muted);min-height:218px}.tool.add:hover{border-color:var(--brass);color:var(--brass);background:var(--raised)}.tool.add .plus{width:46px;height:46px;border-radius:50%;border:1.5px dashed currentColor;display:grid;place-items:center;margin:0 auto .8rem;font-size:1.5rem;font-family:var(--serif)}.tool.add p{flex:none;color:inherit;font-size:.84rem}.tool.add strong{font-family:var(--serif);font-size:1.05rem;display:block;margin-bottom:.2rem;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.2rem;border-radius:10px;font-weight:600;font-size:.92rem;letter-spacing:.02em;transition:.2s;cursor:pointer}.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.btn-primary:hover{background:#0e1014;transform:translateY(-1px);box-shadow:var(--shadow)}.btn-primary:disabled{opacity:.65;cursor:wait}.btn-ghost{border:1px solid var(--line-2);background:var(--raised);color:var(--ink)}.btn-ghost:hover{border-color:var(--brass);color:var(--brass)}.member-hero{margin-bottom:1.6rem}.panel{background:var(--raised);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px #1c1f260d;overflow:hidden}.panel-tools{display:flex;align-items:center;gap:.8rem;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}.panel-tools .spacer{flex:1}.member-search{width:260px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.95rem 1.3rem;font-size:.88rem}th{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}tbody tr{border-bottom:1px solid var(--line);transition:.14s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--raised-2)}.member{display:flex;align-items:center;gap:.7rem}.member .avatar{width:32px;height:32px;font-size:.82rem}.member .mn{font-weight:600;line-height:1.2}.member .me{font-size:.76rem;color:var(--muted)}.role-sel{font-size:.78rem;font-weight:600;padding:.22rem .5rem;border-radius:6px;border:1px solid var(--line-2);background:var(--raised);color:var(--ink);font-family:inherit}.role-sel:focus{outline:none;border-color:var(--brass)}.role{font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:6px;border:1px solid}.role.admin{color:var(--brass);background:var(--brass-soft);border-color:#9c7a4347}.role.member{color:var(--ink-2);background:transparent;border-color:var(--line-2)}.role.viewer{color:var(--muted);background:#1c1f260a;border-color:var(--line)}.st{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-2)}.st .dot{width:6px;height:6px;border-radius:50%}.st.on .dot{background:var(--green)}.st.wait .dot{background:var(--amber)}.row-act{border:0;background:none;color:var(--muted);font-size:.82rem;cursor:pointer}.row-act:hover{color:var(--brass)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;padding:1.5rem;background:#14161c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .25s both}.modal-card{width:min(420px,94vw);background:var(--raised);border-radius:16px;padding:1.7rem;box-shadow:var(--shadow-lg);border:1px solid var(--line);animation:rise .35s cubic-bezier(.2,.7,.2,1) both}.modal-card h3{font-size:1.3rem;margin-bottom:.3rem}.modal-card .sub{color:var(--muted);font-size:.86rem;margin-bottom:1.4rem}.field select{width:100%;padding:.72rem .9rem;font-size:.92rem;font-family:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--line-2);border-radius:10px}.modal-foot{display:flex;gap:.7rem;margin-top:1.6rem}.modal-foot .btn{flex:1}@keyframes fade{0%{opacity:0}to{opacity:1}}@media(max-width:980px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-main{min-height:100vh;padding:2rem 1.25rem}.auth-card{width:min(420px,100%)}.workspace{grid-template-columns:1fr}.sidebar{position:fixed;left:0;transform:translate(-102%);transition:.25s;box-shadow:var(--shadow-lg)}.sidebar.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:block;border:0;background:#14161c59}.menu-button{display:grid}.hero{align-items:flex-start;flex-direction:column}.search{display:none}.page{padding:2rem 1.3rem 3rem}.topbar{padding:.85rem 1.1rem}.stats{gap:1.6rem}}@media(max-width:560px){.auth-card h2{font-size:1.55rem}.mode-tabs{margin-bottom:1.35rem}.topbar{gap:.7rem}.crumb{font-size:.7rem}.hero h1{font-size:1.7rem}.stats{width:100%;justify-content:space-between;gap:.8rem}.stat .n{font-size:1.55rem}.tools{grid-template-columns:1fr}.tool{min-height:214px;padding:1.25rem}.setting-body{grid-template-columns:1fr}.toast{right:1rem;bottom:1rem;left:1rem}.auth-main{align-items:start;padding-top:3.2rem}th,td{padding:.8rem .9rem}.member-hero .btn{width:100%}}
