:root{font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1d2620;background:#f3f5f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}.app-shell{min-height:100vh}.brand{height:64px;display:flex;align-items:center;gap:10px;padding:0 20px;color:#f7faf8;font-size:18px;font-weight:700;border-bottom:1px solid #2d3931}.brand-mark{width:28px;height:28px;display:grid;place-items:center;background:#31a66a;color:#102018;border-radius:5px}.side-nav{padding:10px}.side-nav .ant-menu{background:transparent;border:0}.side-nav .ant-menu-submenu-title{margin-inline:0;width:100%}.app-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid #e2e7e3;position:sticky;top:0;z-index:10}.header-title{font-size:18px;font-weight:650}.header-user{display:flex;align-items:center;gap:10px}.content{padding:24px;max-width:1440px;width:100%;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.page-head h1{font-size:22px;line-height:1.3;margin:0}.page-subtitle{color:#69736c;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{border:1px solid #dfe5e0;box-shadow:none}.stat-card .ant-statistic-title{color:#68736b}.table-panel{background:#fff;border:1px solid #dfe5e0;border-radius:6px;overflow:hidden}.table-panel .ant-table-wrapper{overflow-x:auto}.panel-title{padding:14px 16px;font-size:15px;font-weight:650;border-bottom:1px solid #e7ebe8}.module-icon{width:30px;height:30px;display:grid;place-items:center;color:#1f7a4d;background:#e8f3ed;border-radius:5px}.domain-list{display:flex;flex-wrap:wrap;gap:5px}.status-dot{display:inline-flex;align-items:center;gap:7px}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,44%) 1fr;background:#f5f7f5}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,6vw,88px);background:#fff;border-right:1px solid #dde4df}.login-brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:750;margin-bottom:48px}.login-panel h1{font-size:28px;margin:0 0 8px}.login-panel p{color:#68736b;margin:0 0 28px}.login-form{max-width:420px;width:100%}.login-context{display:flex;align-items:flex-end;padding:10%;color:#e8f0eb;background:#17201b}.login-context strong{display:block;font-size:34px;line-height:1.25;max-width:560px}.login-context span{display:block;color:#9eb0a4;margin-top:14px;max-width:500px}.setup-page{min-height:100vh;background:#f3f5f3}.setup-header{height:64px;padding:0 max(20px,calc((100vw - 760px)/2));display:flex;align-items:center;justify-content:space-between;background:#17201b;color:#fff}.setup-header .login-brand{margin:0;font-size:19px}.setup-main{width:min(760px,calc(100% - 32px));margin:38px auto;padding-bottom:48px}.setup-title{display:flex;align-items:center;gap:14px;margin-bottom:24px}.setup-title h1{font-size:25px;margin:0 0 4px}.setup-title p{color:#68736b;margin:0}.setup-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:6px;color:#fff;background:#1f7a4d}.setup-section{background:#fff;border:1px solid #dfe5e0;border-radius:6px;padding:20px;margin-bottom:14px}.setup-section h2{font-size:15px;margin:0 0 16px}.settings-panel{max-width:760px}.target-box{border:1px solid #dfe5e0;border-radius:6px;padding:14px;margin-bottom:12px;background:#fafbfa}.target-panel-title{padding-left:0;padding-right:0;margin-bottom:12px}.target-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-section{border-top:1px solid #e4e9e5;padding-top:14px;margin-top:14px}.detail-section h3{font-size:15px;margin:0 0 12px}.empty-page{padding:50px 20px}.credential-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.credential-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.credential-group-head span{color:#69736c;font-size:12px}.repository-form{border-top:1px solid #e4e9e5;padding-top:14px}.repository-row{display:grid;grid-template-columns:120px 140px minmax(220px,1fr) 130px 32px;gap:8px;align-items:start}.repository-row .ant-form-item{margin-bottom:10px}.project-link{padding:0;font-weight:600}.workspace-head{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:14px;margin-bottom:16px}.workspace-head h1{margin:0;font-size:20px}.workspace-head span{display:block;color:#69736c;margin-top:3px}.document-workspace{height:calc(100vh - 154px);min-height:560px;display:grid;grid-template-columns:240px minmax(320px,1fr) minmax(320px,1fr);background:#fff;border:1px solid #dfe5e0;border-radius:6px;overflow:hidden}.document-tree{display:flex;flex-direction:column;min-width:0;border-right:1px solid #dfe5e0;overflow:hidden}.document-tree-toolbar,.editor-toolbar,.panel-toolbar{min-height:46px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e4e9e5;font-weight:650}.document-tree .ant-tree{flex:1;padding:8px;overflow:auto}.document-node-actions{min-height:44px;display:flex;gap:6px;align-items:center;padding:6px 8px;border-top:1px solid #e4e9e5}.markdown-editor,.markdown-preview{min-width:0;display:flex;flex-direction:column;overflow:hidden}.markdown-editor{border-right:1px solid #dfe5e0}.markdown-source{flex:1;resize:none!important;border:0!important;border-radius:0!important;padding:16px!important;font-family:Cascadia Code,Consolas,monospace!important;line-height:1.65;box-shadow:none!important}.markdown-body{flex:1;padding:14px 20px 40px;overflow:auto;line-height:1.7;overflow-wrap:anywhere}.markdown-body h1{font-size:26px;border-bottom:1px solid #e4e9e5;padding-bottom:8px}.markdown-body h2{font-size:21px;border-bottom:1px solid #edf0ee;padding-bottom:6px}.markdown-body h3{font-size:17px}.markdown-body pre{overflow:auto;padding:12px;background:#f4f6f4;border:1px solid #e1e6e2;border-radius:5px}.markdown-body code{font-family:Cascadia Code,Consolas,monospace}.markdown-body :not(pre)>code{padding:2px 5px;background:#eef2ef;border-radius:3px}.markdown-body table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid #dfe5e0;padding:6px 10px}.markdown-body img{max-width:100%}.mobile-workspace .ant-tabs-content-holder{background:#fff;border:1px solid #dfe5e0;border-radius:6px}.mobile-workspace .document-tree,.mobile-workspace .markdown-editor,.mobile-workspace .markdown-preview{height:calc(100vh - 230px);min-height:500px;border:0}.test-result{margin-top:18px}.test-result-summary{margin-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.storage-layout{display:grid;grid-template-columns:minmax(320px,430px) minmax(0,1fr);gap:18px;align-items:start}.storage-settings{margin:0}.backup-panel{background:#fff;border:1px solid #dfe5e0;border-radius:6px;overflow:hidden}.panel-toolbar>div span{display:block;margin-top:3px;color:#69736c;font-size:12px;font-weight:400}@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-context{display:none}.detail-grid{grid-template-columns:1fr}}@media(max-width:900px){.credential-groups{grid-template-columns:1fr}}@media(max-width:1100px){.repository-row{grid-template-columns:110px 130px minmax(190px,1fr) 110px 32px}.storage-layout{grid-template-columns:1fr}}@media(max-width:600px){.content{padding:16px 12px}.app-header{padding:0 12px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.page-head{align-items:flex-start;flex-wrap:wrap}.header-user .user-copy{display:none}.ant-drawer-content-wrapper{width:100%!important}}@media(max-width:700px){.repository-row{grid-template-columns:1fr 1fr 32px;padding:10px 0;border-top:1px solid #edf0ee}.repository-row .ant-form-item:nth-child(3),.repository-row .ant-form-item:nth-child(4){grid-column:span 2}.workspace-head{grid-template-columns:auto 1fr;align-items:start}.workspace-head>.ant-space{grid-column:1 / -1}}
