@charset "UTF-8";
:root{color-scheme:dark;--bg:#141414;--sidebar:#111111;--surface:#1b1b1b;--raised:#232323;--hover:#2c2c2c;--line:#303030;--text:#efefef;--muted:#929292;--faint:#686868;--accent:#b4a1f7;--mint:#8bd2c1;--danger:#f1a29f;--amber:#dcbd83;font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:14px;line-height:1.55}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input:focus,select:focus,textarea:focus{outline:none;border-color:#8174a8!important;box-shadow:0 0 0 2px #b4a1f710}button{border:0;background:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.35;font-weight:600;letter-spacing:-.6px}h2{font-size:19px;font-weight:550}h3{font-size:15px;font-weight:550}small,.small{font-size:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.accent-text{color:var(--accent)}.mint-text{color:var(--mint)}.danger-text{color:var(--danger)}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num{font-variant-numeric:tabular-nums}.row{display:flex;gap:12px;align-items:center}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:14px}.wrap{flex-wrap:wrap}.spacer{flex:1}.hidden,[hidden]{display:none!important}.icon{width:18px;height:18px;vertical-align:middle}.icon-btn{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:7px;color:#b6b6b6;flex-shrink:0}.icon-btn:hover{background:var(--hover);color:white}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:36px;padding:8px 15px;border:1px solid #383838;border-radius:7px;background:#262626;font-size:13px;white-space:nowrap}.btn:hover{background:#333}.btn.primary{background:#eee;color:#1b1b1b;border-color:#eee;font-weight:550}.btn.primary:hover{background:white}.btn.accent{background:var(--accent);color:#221a32;border-color:var(--accent)}.btn.ghost{background:transparent;border-color:var(--line)}.btn.danger{border-color:#633b3b;color:var(--danger)}.btn.sm{min-height:30px;padding:5px 10px;font-size:12px}.badge{display:inline-flex;gap:5px;align-items:center;padding:3px 7px;border-radius:5px;background:#2b2b2b;color:#bcbcbc;font-size:11px;white-space:nowrap;line-height:1.5}.badge.purple{background:#b4a1f71a;color:#c2b1ff}.badge.mint{background:#8bd2c114;color:#97d3c3}.badge.amber{background:#dcbd831a;color:#dfc38e}.badge.danger{background:#f1a29f16;color:#f1a29f}.dot{width:6px;height:6px;background:currentColor;border-radius:50%;display:inline-block}.avatar{width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--avatar,#b4a1f7) 22%,#242424);color:var(--avatar,#b4a1f7);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.avatar.large{width:40px;height:40px;font-size:15px}.input,textarea,select{width:100%;border:1px solid #383838;background:#202020;border-radius:7px;padding:10px 12px;resize:vertical;transition:border-color .15s}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;vertical-align:middle}label{display:block;font-size:13px;color:#c4c4c4;margin-bottom:7px}.field{margin-bottom:18px}.field small{display:block;color:var(--muted);margin-top:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.search{position:relative;max-width:320px}.search input{background:#202020;border:1px solid #303030;border-radius:7px;padding:9px 12px 9px 36px;width:100%;font-size:12px}.search>.icon{position:absolute;left:12px;top:11px;color:var(--muted);width:15px;height:15px}.empty{padding:65px 20px;text-align:center;color:var(--muted)}.empty .icon{width:34px;height:34px;margin:0 auto 15px;color:#666}.empty h3{color:#d4d4d4;margin-bottom:8px}.empty .btn{margin-top:18px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 0 17px;gap:15px}.section-title small{color:var(--muted);font-weight:400;margin-left:10px}.section-title a,.text-link{font-size:12px;color:var(--muted);cursor:pointer}.text-link:hover{color:white}.pillbar{display:flex;gap:6px;flex-wrap:wrap}.pill{padding:7px 13px;border-radius:6px;color:var(--muted);font-size:12px}.pill:hover{background:#202020;color:white}.pill.active{background:#303030;color:white}.page{max-width:1490px;margin:0 auto;padding:30px 38px 60px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{color:var(--muted);margin-top:8px;font-size:13px}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 35px;border-bottom:1px solid #252525;gap:12px}.topbar-title{font-size:13px;color:#b7b7b7}.topbar-right{display:flex;gap:14px;align-items:center}.sidebar{position:fixed;left:0;top:0;bottom:0;width:208px;background:var(--sidebar);border-right:1px solid #252525;padding:24px 13px 15px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;padding:0 7px 26px;font-weight:550;font-size:15px}.brand-mark{width:31px;height:31px;background:#e8e7e4;color:#191919;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:21px;font-style:italic;font-weight:750;letter-spacing:-3px;padding-right:4px}.brand small{display:block;font-size:10px;letter-spacing:1.4px;font-weight:400;color:var(--muted);margin-top:2px}.nav-label{font-size:10px;color:#646464;margin:25px 14px 10px;letter-spacing:1px}.nav-item{width:100%;display:flex;gap:12px;align-items:center;padding:11px 13px;margin-bottom:5px;color:#969696;border-radius:7px;font-size:13px;text-align:left}.nav-item .icon{width:18px;height:18px}.nav-item:hover{background:#202020;color:#eee}.nav-item.active{background:#282828;color:white}.nav-item .count{margin-left:auto;background:#353535;border-radius:5px;padding:0 6px;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:24px}.sidebar-budget{background:#1e1e1e;border:1px solid #2b2b2b;border-radius:8px;padding:13px;margin-bottom:16px;font-size:11px}.budget-track{height:4px;background:#373737;border-radius:5px;margin:10px 0;overflow:hidden}.budget-track>span{display:block;background:var(--accent);height:100%;border-radius:5px}.user-menu{width:100%;display:flex;gap:10px;align-items:center;padding:8px 7px;border-radius:7px;text-align:left}.user-menu:hover{background:#252525}.app-main{margin-left:208px;min-height:100vh}.local-banner{font-size:11px;color:#a0a0a0;border:1px solid #333;border-radius:6px;padding:4px 8px;display:flex;align-items:center;gap:6px}.local-banner .dot{color:var(--mint)}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:25px;margin-bottom:27px}.welcome{position:relative;min-height:205px;overflow:hidden;border-radius:12px;border:1px solid #333;background:#202429;padding:29px 30px}.welcome::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1c2026 2%,#1c2026dd 40%,#1c202630 100%);pointer-events:none}.welcome img{position:absolute;right:0;top:0;width:66%;height:100%;object-fit:cover;opacity:.67}.welcome-content{position:relative;z-index:1;max-width:72%}.eyebrow{font-size:10px;letter-spacing:1.7px;color:#c0b2e4;margin-bottom:12px}.welcome h1{font-size:29px;letter-spacing:-.7px}.welcome p{color:#b1b1b7;font-size:12px;margin:10px 0 22px}.budget-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:23px}.budget-total{display:flex;justify-content:space-between;align-items:baseline;margin:17px 0 15px}.budget-total strong{font-size:30px;font-weight:550;letter-spacing:-1px}.budget-total span{font-size:12px;color:var(--muted)}.budget-sub{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.budget-sub strong{display:block;font-size:17px;font-weight:500;margin-top:4px}.budget-sub small{color:var(--muted);font-size:11px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.project-card,.workflow-card{background:var(--surface);border:1px solid #303030;border-radius:10px;overflow:hidden;transition:border-color .15s,transform .15s;cursor:pointer}.project-card:hover,.workflow-card:hover{border-color:#666;transform:translateY(-2px)}.card-image{position:relative;aspect-ratio:16/8.4;background:#242424;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.project-card:hover .card-image img,.workflow-card:hover .card-image img{transform:scale(1.03)}.card-image .badge{position:absolute;top:11px;left:11px;backdrop-filter:blur(10px);background:#151515bb;color:#ddd}.card-image .card-menu{position:absolute;right:8px;top:8px;background:#16161699}.card-image .card-duration{position:absolute;right:10px;bottom:9px;padding:2px 6px;font-size:10px;background:#121212bb;border-radius:4px}.card-body{padding:15px 16px}.card-body h3{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-body p{color:var(--muted);font-size:12px;margin-top:7px;line-height:1.6;min-height:37px}.card-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;margin-top:12px}.card-meta .avatar{width:21px;height:21px;font-size:10px}.card-meta .icon{width:12px;height:12px}.table-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.data-table th{font-weight:400;color:#8b8b8b;background:#202020;padding:13px 18px}.data-table td{border-top:1px solid #2b2b2b;padding:14px 18px}.data-table tbody tr:hover{background:#222}.member-name{display:flex;gap:10px;align-items:center}.member-name .avatar{width:26px;height:26px;font-size:10px}.dashboard-bottom{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.activity-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid #292929}.activity-item:last-child{border:0}.activity-item .activity-title{font-size:12px;line-height:1.65}.activity-item small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.activity-list{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:2px 17px}.member-panel .section-title{margin-top:28px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:25px}.stat-card{padding:19px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.stat-card strong{display:block;font-size:25px;font-weight:500;margin-top:11px}.stat-card small{color:var(--muted)}.filter-toolbar{display:flex;align-items:center;gap:15px;justify-content:space-between;margin:0 0 24px}.community-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:25px}.post-card{padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:15px;cursor:pointer}.post-card:hover{border-color:#555}.post-author{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);margin-bottom:16px}.post-card h2{font-size:18px;margin-bottom:11px}.post-excerpt{font-size:12px;color:#9a9a9a;line-height:1.9;max-height:47px;overflow:hidden}.post-footer{display:flex;gap:12px;align-items:center;margin-top:17px;color:var(--muted);font-size:11px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{color:#9f9f9f;font-size:10px;background:#292929;border-radius:4px;padding:3px 6px}.community-aside{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px;height:fit-content}.community-aside p{font-size:12px;color:var(--muted);line-height:1.9;margin-top:12px}.side-section{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.job-card{display:flex;gap:18px;align-items:center;padding:19px;background:var(--surface);border:1px solid var(--line);border-radius:9px;margin-bottom:12px}.job-thumb{width:92px;height:60px;border-radius:6px;background:#292929;object-fit:cover;display:flex;align-items:center;justify-content:center;flex-shrink:0}.job-content{flex:1;min-width:0}.job-content h3{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-meta{color:var(--muted);font-size:11px;display:flex;gap:12px;margin-top:7px;flex-wrap:wrap}.job-progress{height:3px;background:#343434;overflow:hidden;border-radius:4px;margin-top:12px;max-width:430px}.job-progress span{display:block;height:100%;background:var(--accent)}.job-end{display:flex;align-items:flex-end;flex-direction:column;gap:9px}.asset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.asset-card{background:#202020;border:1px solid var(--line);border-radius:9px;overflow:hidden;cursor:pointer}.asset-card:hover{border-color:#6b6b6b}.asset-card .asset-preview{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:#272727;position:relative}.asset-preview img,.asset-preview video{width:100%;height:100%;object-fit:cover}.asset-preview>.badge{position:absolute;bottom:9px;left:9px}.asset-body{padding:12px;font-size:12px}.asset-body small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-card{padding:23px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.settings-card h3{margin-bottom:19px}.settings-card.wide{grid-column:1/-1}.notice{padding:12px 14px;border:1px solid #3e3a31;border-radius:7px;background:#2a251b66;color:#c4b38b;font-size:12px;line-height:1.8}.notice.info{border-color:#343243;background:#27243177;color:#b6accc}.settings-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #2e2e2e;align-items:center;font-size:12px}.settings-row:last-child{border:0}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr}.login-art{position:relative;overflow:hidden;background:#1b2026;min-height:100vh;padding:45px 50px;display:flex;flex-direction:column;justify-content:space-between}.login-art>img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;opacity:.7}.login-art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1118,#1110 35%,#121212f0 100%)}.login-brand,.login-copy{position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:12px}.login-copy h1{font-size:41px;line-height:1.5;letter-spacing:-1px;margin-bottom:15px}.login-copy p{color:#bbb;font-size:13px;line-height:1.9;max-width:390px}.login-copy small{display:block;color:#858585;margin-top:42px}.login-main{display:flex;justify-content:center;align-items:center;padding:50px}.login-form{width:100%;max-width:370px}.login-form h2{font-size:25px;margin-bottom:9px}.login-form>p{color:var(--muted);margin-bottom:29px;font-size:12px}.demo-accounts{display:flex;gap:8px;margin:16px 0 23px}.demo-account{display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:11px}.demo-account:hover,.demo-account.active{background:#303030;border-color:#7b6b9d}.demo-account .avatar{width:20px;height:20px;font-size:9px}.login-form .btn{width:100%;margin-top:8px}.login-footer{color:var(--muted);font-size:11px;line-height:1.9;margin-top:23px}.boot-loader{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted)}dialog{padding:0;border:1px solid #414141;border-radius:13px;background:#1d1d1d;color:var(--text);width:min(620px,calc(100vw - 40px));max-height:90vh;overflow:auto;box-shadow:0 22px 100px #0008}dialog::backdrop{background:#000a;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:23px 25px;border-bottom:1px solid #303030;gap:20px}.modal-head h2{font-size:19px}.modal-head p{font-size:12px;color:var(--muted);margin-top:7px}.modal-body{padding:24px 25px}.modal-footer{display:flex;gap:9px;justify-content:flex-end;padding:18px 25px;border-top:1px solid #303030;background:#1a1a1a}.modal-footer .muted{margin-right:auto;font-size:11px;align-self:center}.modal-preview{width:100%;border-radius:8px;max-height:440px;object-fit:contain;background:#141414}.modal-wide{width:min(920px,calc(100vw - 40px))}.modal-reading{width:min(850px,calc(100vw - 40px))}.post-detail-title{font-size:26px;line-height:1.6}.post-content{font-size:14px;line-height:2.1;color:#c1c1c1;white-space:pre-wrap;margin:25px 0}.comment{display:flex;gap:12px;margin:20px 0}.comment p{font-size:13px;line-height:1.85;margin-top:5px}.comment small{font-size:11px;color:var(--muted)}.workflow-step{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #303030}.step-num{width:27px;height:27px;display:flex;align-items:center;justify-content:center;background:#b4a1f717;color:var(--accent);border-radius:50%;font-size:11px}.workflow-step small{font-size:11px;color:var(--muted)}.price-box{display:flex;align-items:center;justify-content:space-between;padding:15px;background:#29252f;border:1px solid #4a3d60;border-radius:8px;margin:20px 0}.price-box strong{font-size:24px;color:var(--accent);font-weight:500}.price-box small{color:#aaa}.error-inline{font-size:12px;color:var(--danger);margin-top:12px;line-height:1.7}.toast{max-width:430px;background:#303030;border:1px solid #535353;padding:13px 18px;border-radius:8px;font-size:12px;color:#eee;box-shadow:0 6px 35px #0005;animation:toast-in .15s ease-out}.toast.error{border-color:#7b4b4b}.toast.success{border-color:#446b5e}#toasts{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:9px;z-index:1000;pointer-events:none}.spinner{width:15px;height:15px;border:2px solid #7775;border-top-color:currentColor;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.mobile-nav{display:none}@media(max-width:650px){.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:8px 3px max(8px,env(safe-area-inset-bottom));background:#202020;border-top:1px solid #383838;z-index:30}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px;color:#999;min-width:42px}.mobile-nav button.active{color:#cab2ff}.mobile-nav .icon{width:18px;height:18px}.app-main{padding-bottom:68px}}
