input[type=email],input[type=number],input[type=text],select,textarea{font-size:16px!important}button,input,select,textarea{-webkit-appearance:none;appearance:none;border-radius:0}.ant-btn,a,button,input[type=button],input[type=reset],input[type=submit]{min-height:44px;min-width:44px;padding:10px 12px}body{-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.ant-btn,.ant-card,.ant-card-meta-description,.ant-typography,p,span{-webkit-user-select:text;user-select:text}.ant-layout-content,.ant-layout-sider,.dashboard-container{-webkit-overflow-scrolling:touch}.ant-drawer,.ant-drawer-mask,.ant-modal-mask,.ant-modal-wrap{position:fixed}.ant-dropdown-menu{-webkit-overflow-scrolling:touch;max-height:70vh;overflow-y:auto}.ant-popover{max-width:90vw}.ant-tooltip{max-width:85vw}@media (max-width:768px){.ant-col-md-8,.ant-col-sm-12,.ant-col-xs-24{width:100%}.ant-col-lg-6{width:50%}}@media (max-width:480px){.ant-col-lg-6,.ant-col-md-12{width:100%}.hide-on-mobile{display:none!important}.ant-space{gap:8px!important}.ant-space-item{margin-right:8px!important}}@supports (padding:max(0px)){body{padding:max(0px,env(safe-area-inset-top)) max(0px,env(safe-area-inset-right)) max(0px,env(safe-area-inset-bottom)) max(0px,env(safe-area-inset-left))}.ant-layout-header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.ant-layout-sider{padding-left:max(0px,env(safe-area-inset-left))}}*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100vh;overflow:hidden;width:100vw}.tree-node{margin-bottom:16px}.tree-node-depth-0{margin-left:0;padding-left:0}.tree-node-depth-1{border-left:3px solid #1890ff;margin-left:0;padding-left:32px}.tree-node-depth-2{border-left:3px solid #40a9ff;margin-left:0;padding-left:32px}.tree-node-depth-3{border-left:3px solid #69c0ff;margin-left:0;padding-left:32px}.tree-node-depth-4{border-left:3px solid #91d5ff;margin-left:0;padding-left:32px}.tree-node-depth-5{border-left:3px solid #b5e7ff;margin-left:0;padding-left:32px}.project-card{border:1px solid #f0f0f0;border-radius:8px;box-shadow:0 1px 4px #00000014}.project-card.root{background:#fff;border:2px solid #1890ff;box-shadow:0 2px 8px #1890ff26}.project-card.root:hover{border-color:#40a9ff;box-shadow:0 4px 16px #1890ff40}.project-card.child{background:#fafafa;border:1px solid #e8e8e8}.project-card.child:hover{background:#fff;border-color:#d9d9d9;box-shadow:0 2px 8px #0000001f}.tree-node-depth-1 .project-card.child{background:#fafafa}.tree-node-depth-2 .project-card.child{background:#fcfcfc}.tree-node-depth-3 .project-card.child{background:#fefefe}.tree-node-depth-4 .project-card.child,.tree-node-depth-5 .project-card.child{background:#fff}.project-card-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.project-card-title{align-items:center;display:flex;flex:1 1;gap:16px;min-width:0}.expand-button{color:#1890ff;flex-shrink:0;font-weight:500}.expand-button:hover{color:#40a9ff}.project-item{display:flex;gap:16px;padding:12px 0}.project-item.root{padding:0}.project-item.version{border-left:2px solid #f0f0f0;margin-left:8px;padding:12px 0 12px 40px}.project-card-compact-wrapper{margin-bottom:8px}.project-card-compact{align-items:center;background:#fafafa;border:1px solid #f0f0f0;border-radius:4px;display:flex;gap:12px;padding:8px 12px;transition:all .3s ease}.project-card-compact:hover{background:#fff;border-color:#d9d9d9;box-shadow:0 1px 4px #00000014}.project-card-compact-header{align-items:center;display:flex;flex-shrink:0;gap:8px;min-width:300px;white-space:nowrap}.project-item-compact{align-items:center;background:#0000;border:none;border-radius:0;display:flex;flex:1 1;gap:12px;justify-content:space-between;margin:0;padding:0;transition:all .3s ease}.project-item-compact:hover{background:#0000;border-color:#0000;box-shadow:none}.project-item-compact-content{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:12px;min-width:0;overflow:hidden}.project-item-compact-actions{display:flex;flex-shrink:0;gap:4px;white-space:nowrap}.project-item-cover{background:#f5f5f5;border-radius:8px;flex-shrink:0;height:120px;overflow:hidden;width:120px}.project-item-image{height:100%;object-fit:contain;object-position:center;width:100%}.project-item-placeholder{align-items:center;color:#d9d9d9;display:flex;font-size:32px;height:100%;justify-content:center;width:100%}.project-item-content{display:flex;flex:1 1;flex-direction:column;justify-content:space-between;min-width:0}.project-item-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.project-item-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;flex:1 1;font-size:14px;line-height:1.4;min-width:0;overflow:hidden}.project-item-meta{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.project-item-actions{display:flex;gap:8px}.tree-children{border-left:none;margin-top:8px;padding-left:0}.tree-child-wrapper{margin-bottom:0;margin-top:8px;position:relative}.tree-connector{display:none;left:-32px;width:32px}.tree-connector,.tree-line{height:100%;position:absolute;top:0}.tree-line{background:#1890ff;left:9px;width:2px}.tree-dot{background:#1890ff;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #1890ff;height:14px;left:2px;position:absolute;top:8px;width:14px}@media (max-width:1024px){.tree-node-depth-1,.tree-node-depth-2,.tree-node-depth-3{padding-left:24px}.project-item{padding:12px}.project-item-cover{height:160px;width:120px}.project-item-info{padding:0 12px}}@media (max-width:768px){.tree-node{margin-bottom:12px}.tree-node-depth-0{padding-left:0}.tree-node-depth-1,.tree-node-depth-2,.tree-node-depth-3,.tree-node-depth-4,.tree-node-depth-5{border-left-width:2px;padding-left:16px}.project-item{flex-direction:column;gap:12px;margin-bottom:8px;padding:12px}.project-item.root{padding:0}.project-item.version{border-left:none;margin-left:0;padding:12px}.project-item-cover{border-radius:8px;height:160px;margin-bottom:0;width:100%}.project-item-content{padding:0;width:100%}.project-item-header{align-items:flex-start;border-bottom:1px solid #f0f0f0;flex-direction:column;gap:8px;margin-bottom:8px;padding-bottom:8px}.project-item-name{font-size:14px!important;word-break:break-word}.project-item-meta{flex-direction:column;gap:6px;margin-bottom:8px;width:100%}.project-item-actions{flex-direction:row;flex-wrap:wrap;gap:6px;width:100%}.project-item-actions .ant-btn{flex:1 1;font-size:12px;height:32px;min-width:70px}.project-item-compact{align-items:flex-start;flex-direction:column;gap:8px}.project-item-compact-content{flex-wrap:wrap;gap:8px;width:100%}.project-item-compact-content>*{flex-shrink:0}.project-item-compact-actions{flex-wrap:wrap;gap:6px;width:100%}.project-item-compact-actions .ant-btn{flex:1 1;font-size:12px;height:32px;min-width:60px}.project-group-header{align-items:flex-start;flex-direction:column;gap:10px;padding:10px}.project-group-title{flex-direction:column;gap:6px;width:100%}.project-group-title .ant-typography{font-size:14px}.project-group-title .ant-typography-secondary{font-size:12px}.project-card-header{align-items:flex-start;flex-direction:column;gap:8px}.project-card-title{width:100%}.project-card-actions{gap:8px;justify-content:flex-start;width:100%}.project-card-actions .ant-btn{flex:1 1;height:36px;min-width:44px}.project-card-actions .ant-btn:nth-child(n+3){display:none}.project-card-actions .ant-dropdown{display:block}}@media (max-width:480px){.tree-node{margin-bottom:10px}.tree-node-depth-1,.tree-node-depth-2,.tree-node-depth-3,.tree-node-depth-4,.tree-node-depth-5{padding-left:12px}.project-item{gap:10px;margin-bottom:6px;padding:10px}.project-item.root{padding:0}.project-item.version{padding:10px}.project-item-cover{height:140px;margin-bottom:0}.project-item-header{gap:6px;margin-bottom:6px;padding-bottom:6px}.project-item-name{font-size:13px!important}.project-item-meta{gap:4px;margin-bottom:6px}.project-item-meta .ant-typography{font-size:11px!important}.project-item-actions{gap:4px}.project-item-actions .ant-btn{font-size:11px;height:28px;min-width:60px}.project-item-compact{align-items:flex-start;flex-direction:column;gap:6px;padding:8px}.project-item-compact-content{flex-direction:column;gap:6px;width:100%}.project-item-compact-content>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.project-item-compact-actions{flex-wrap:wrap;gap:4px;width:100%}.project-item-compact-actions .ant-btn{flex:1 1;font-size:11px;height:28px;min-width:50px;padding:0 4px}.project-group-header{gap:8px;padding:8px}.project-group-title .ant-typography{font-size:13px}.project-group-title .ant-typography-secondary{font-size:11px}.project-card-header{gap:6px}.project-card-actions .ant-btn{font-size:12px;height:32px}.tree-connector{left:-12px;width:12px}.tree-line{left:5px}.tree-dot{height:10px;left:0;width:10px}}.dashboard-container{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);height:100%;overflow-y:auto;padding:32px 48px}.dashboard-welcome{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px;padding:20px 0}.dashboard-welcome h2,.dashboard-welcome h3{font-size:18px;font-weight:500;margin:0}.dashboard-section{margin-bottom:32px}.section-header{align-items:center;display:flex;font-size:16px;font-weight:500;justify-content:space-between;margin-bottom:16px}.section-header .anticon{color:#1890ff;margin-right:8px}.dashboard-filter{margin-bottom:20px}.project-card{border:1px solid #e8e8e8;border-radius:12px;overflow:hidden;position:relative;transition:all .3s ease}.project-card:hover{border-color:#1890ff;box-shadow:0 8px 24px #1890ff33;transform:translateY(-4px)}.project-card-cover{object-fit:contain;object-position:center}.project-card-cover,.project-card-placeholder{align-items:center;background:#f5f5f5;display:flex;height:180px;justify-content:center}.project-card-placeholder{color:#d9d9d9;font-size:48px}.project-card-meta{display:flex;flex-direction:column;gap:8px;padding:12px 0}.project-card-title-row{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.project-card-title-row .ant-typography{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;flex:1 1;font-size:14px;line-height:1.4;min-width:0;overflow:hidden}.project-card-info{gap:4px}.new-card,.project-card-info{display:flex;flex-direction:column}.new-card{align-items:center;background:#0000;border:2px dashed #d9d9d9;height:120px;justify-content:center;transition:all .3s ease}.new-card:hover{border-color:#1890ff;color:#1890ff}.new-card .anticon{font-size:32px;margin-bottom:8px}@media (max-width:1024px){.dashboard-container{padding:24px 32px}.dashboard-section{margin-bottom:24px}.section-header{font-size:15px}}@media (max-width:768px){.dashboard-container{background:#f5f5f5;padding:12px 8px}.dashboard-welcome{align-items:flex-start;flex-direction:column;margin-bottom:16px;padding:12px 0}.dashboard-welcome h2,.dashboard-welcome h3{font-size:16px;margin-bottom:8px;width:100%}.dashboard-welcome .ant-btn{margin-top:8px;width:100%}.dashboard-section{margin-bottom:16px}.section-header{align-items:flex-start;flex-direction:column;font-size:14px;gap:8px;margin-bottom:12px}.project-card-cover{height:120px}.project-card-placeholder{font-size:32px;height:120px}.project-card-title-row .ant-typography{font-size:13px}.project-card-meta{gap:4px;padding:8px 0}.new-card{height:90px}.new-card .anticon{font-size:24px}.ant-row{margin-left:-4px!important;margin-right:-4px!important}.ant-col{max-width:100%!important;padding-left:4px!important;padding-right:4px!important;width:100%!important}.ant-card{width:100%}}@media (max-width:480px){.dashboard-container{padding:8px 6px}.dashboard-welcome{margin-bottom:12px;padding:8px 0}.dashboard-welcome h2,.dashboard-welcome h3{font-size:14px;margin-bottom:6px;width:100%}.dashboard-welcome .ant-btn{height:40px;margin-top:6px;width:100%}.dashboard-section{margin-bottom:12px}.section-header{align-items:flex-start;flex-direction:column;font-size:13px;gap:6px;margin-bottom:8px}.project-card-cover{height:100px}.project-card-placeholder{font-size:28px;height:100px}.project-card-meta{gap:4px;padding:6px 0}.project-card-title-row .ant-typography{font-size:12px}.new-card{height:80px}.new-card .anticon{font-size:20px;margin-bottom:4px}.ant-col{max-width:100%!important;padding-left:2px!important;padding-right:2px!important;width:100%!important}.ant-row{margin-left:-2px!important;margin-right:-2px!important}.ant-card{margin-bottom:8px}.ant-card,.ant-segmented{width:100%}}.admin-panel{background:#f5f5f5;min-height:100vh;padding:24px}.admin-panel h2{color:#1890ff;margin-bottom:24px}.admin-panel .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.admin-panel .ant-statistic-title{color:#666;font-size:14px}.admin-panel .ant-statistic-content{font-size:24px;font-weight:600}.admin-panel .ant-table{background:#fff}.admin-panel .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.App{display:flex;flex-direction:column;height:100vh}.ant-layout-header{line-height:64px}.ant-layout-content,.ant-layout-sider{height:calc(100vh - 64px)}.activity-bar{background:#2c2c2c;border-right:1px solid #1e1e1e;flex-direction:column;height:100%;min-width:48px;padding-top:8px}.activity-bar,.activity-bar-item{align-items:center;display:flex;width:48px}.activity-bar-item{color:#858585;cursor:pointer;font-size:22px;height:48px;justify-content:center;position:relative;transition:all .2s ease}.activity-bar-item:hover{background:#ffffff1a;color:#fff}.activity-bar-item.active{color:#fff}.activity-bar-item.active:before{background:#1890ff;bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.activity-bar-divider{background:#fff3;height:1px;margin:8px 0;width:32px}@media (max-width:1024px){.ant-layout-header{padding:0 16px!important}.ant-layout-sider{max-width:280px!important;width:280px!important}}@media (max-width:768px){.App{overflow:hidden}.App,.ant-layout{height:100vh}.ant-layout-header{align-items:center;display:flex;flex-shrink:0;font-size:14px!important;height:56px!important;justify-content:space-between;line-height:56px!important;padding:0 12px!important}.ant-layout-header .ant-space{justify-content:space-between;width:100%}.ant-layout-sider{bottom:0;box-shadow:2px 0 8px #00000026;height:calc(100vh - 56px)!important;left:0;max-width:100%!important;overflow-y:auto;position:fixed!important;top:56px;transform:translateX(-100%);transition:transform .3s ease;width:100%!important;z-index:999}.ant-layout-sider.open{transform:translateX(0)}.ant-layout-content{height:calc(100vh - 56px)!important;margin-left:0!important;overflow-x:hidden;overflow-y:auto}.sidebar-overlay{background:#00000073;bottom:0;display:none;left:0;position:fixed;right:0;top:56px;z-index:998}.sidebar-overlay.visible{display:block}.activity-bar{display:none}.ant-btn{min-height:44px;min-width:44px}.ant-input,.ant-input-number,.ant-select-selector{font-size:16px!important;min-height:44px!important}.ant-card{margin-bottom:12px}.ant-form-item{margin-bottom:16px}.ant-modal{max-width:90vw!important}.ant-modal-content{max-height:80vh;overflow-y:auto}}@media (max-width:480px){.App{overflow:hidden}.App,.ant-layout{height:100vh}.ant-layout-header{align-items:center;display:flex;flex-shrink:0;font-size:13px!important;height:48px!important;justify-content:space-between;line-height:48px!important;padding:0 8px!important}.ant-layout-header .ant-space{gap:4px!important;justify-content:space-between;width:100%}.ant-layout-sider{top:48px}.ant-layout-content,.ant-layout-sider{height:calc(100vh - 48px)!important;overflow-y:auto}.ant-layout-content{overflow-x:hidden}.sidebar-overlay{top:48px}.ant-card{margin-bottom:8px}.ant-form-item{margin-bottom:12px}.ant-typography{font-size:13px!important}.ant-typography-h2{font-size:16px!important}.ant-typography-h3{font-size:14px!important}.ant-btn{font-size:12px!important;min-height:40px}.ant-form-item-label>label{font-size:12px}.ant-modal{max-width:95vw!important}.ant-modal-content{max-height:85vh}.hide-on-mobile{display:none!important}}