*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;-moz-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}html,body,#root{height:100%}.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:block}.rich-html-content{line-height:1.8;color:#333;word-wrap:break-word}.rich-html-content h1,.rich-html-content h2,.rich-html-content h3,.rich-html-content h4,.rich-html-content h5,.rich-html-content h6{margin-top:16px;margin-bottom:8px;font-weight:600;line-height:1.4}.rich-html-content h1{font-size:2em}.rich-html-content h2{font-size:1.5em}.rich-html-content h3{font-size:1.17em}.rich-html-content h4{font-size:1em}.rich-html-content p{margin-bottom:12px}.rich-html-content strong,.rich-html-content b{font-weight:700}.rich-html-content em,.rich-html-content i{font-style:italic}.rich-html-content u{text-decoration:underline}.rich-html-content s,.rich-html-content strike{text-decoration:line-through}.rich-html-content ul,.rich-html-content ol{padding-left:24px;margin-bottom:12px}.rich-html-content ul{list-style-type:disc}.rich-html-content ol{list-style-type:decimal}.rich-html-content li{margin-bottom:4px;display:list-item}.rich-html-content a{color:#1890ff;text-decoration:underline}.rich-html-content a:hover{color:#40a9ff}.rich-html-content blockquote{border-left:4px solid #d9d9d9;padding:8px 16px;margin:12px 0;background:#fafafa;color:#666}.rich-html-content pre{background:#f5f5f5;padding:12px;border-radius:4px;overflow-x:auto}.rich-html-content code{background:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:monospace}.rich-html-content img{max-width:100%;height:auto}.rich-html-content table{border-collapse:collapse;width:100%;margin-bottom:12px}.rich-html-content table th,.rich-html-content table td{border:1px solid #d9d9d9;padding:8px 12px;text-align:left}.rich-html-content table th{background:#fafafa;font-weight:600}.rich-html-content .ql-align-center{text-align:center}.rich-html-content .ql-align-right{text-align:right}.rich-html-content .ql-align-justify{text-align:justify}.rich-html-content .ql-indent-1{padding-left:3em}.rich-html-content .ql-indent-2{padding-left:6em}.rich-html-content .ql-indent-3{padding-left:9em}.entry-container{display:flex;flex-direction:column;min-height:100vh}.entry-container .main-container{position:relative;flex:1;margin-top:64px;padding:24px;max-width:1400px;width:100%;margin-left:auto;margin-right:auto}@media (max-width: 768px){.entry-container .main-container{padding:16px}}@media (max-width: 576px){.entry-container .main-container{padding:12px}}.app-header{position:fixed;top:0;left:0;right:0;height:64px;background:#fff;box-shadow:0 2px 8px #00000014;z-index:1000}.app-header .header-content{max-width:1400px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 24px}@media (max-width: 576px){.app-header .header-content{padding:0 16px}}.app-header .header-logo{display:flex;align-items:center;gap:10px;cursor:pointer;transition:opacity .2s}.app-header .header-logo:hover{opacity:.8}.app-header .header-logo .logo-icon{width:32px;height:32px;color:#1890ff}.app-header .header-logo .logo-icon svg{width:100%;height:100%}.app-header .header-logo .logo-text{font-size:20px;font-weight:600;color:#1890ff}@media (max-width: 400px){.app-header .header-logo .logo-text{font-size:18px}}.app-header .header-actions,.app-header .header-actions .desktop-menu{display:flex;align-items:center}@media (max-width: 576px){.app-header .header-actions .desktop-menu{display:none}}.app-header .header-actions .mobile-menu{display:none}@media (max-width: 576px){.app-header .header-actions .mobile-menu{display:flex}}.app-header .header-actions .user-info{padding:8px 12px;border-radius:6px;transition:background-color .2s}.app-header .header-actions .user-info:hover{background-color:#f5f5f5}.app-header .header-actions .user-info .user-name{font-size:14px;color:#333;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-banner{background:linear-gradient(135deg,#1890ff,#096dd9,#0050b3);border-radius:16px;padding:48px;margin-bottom:32px;overflow:hidden;position:relative}.upload-banner:before{content:"";position:absolute;top:-50%;right:-20%;width:60%;height:200%;background:radial-gradient(ellipse,rgba(255,255,255,.1) 0%,transparent 70%);pointer-events:none}@media (max-width: 768px){.upload-banner{padding:32px 24px;border-radius:12px;margin-bottom:24px}}@media (max-width: 480px){.upload-banner{padding:24px 16px;border-radius:8px}}.upload-banner .banner-content{display:flex;align-items:center;gap:48px;position:relative;z-index:1}@media (max-width: 992px){.upload-banner .banner-content{flex-direction:column;gap:32px}}.upload-banner .banner-text{flex:1;color:#fff}@media (max-width: 992px){.upload-banner .banner-text{text-align:center}}.upload-banner .banner-text .banner-title{font-size:32px;font-weight:700;margin:0 0 16px;display:flex;align-items:center;gap:12px}@media (max-width: 992px){.upload-banner .banner-text .banner-title{justify-content:center}}@media (max-width: 768px){.upload-banner .banner-text .banner-title{font-size:26px}}@media (max-width: 480px){.upload-banner .banner-text .banner-title{font-size:22px;gap:8px}}.upload-banner .banner-text .banner-title .title-icon{font-size:36px;color:#ffd666}@media (max-width: 768px){.upload-banner .banner-text .banner-title .title-icon{font-size:28px}}@media (max-width: 480px){.upload-banner .banner-text .banner-title .title-icon{font-size:24px}}.upload-banner .banner-text .banner-description{font-size:16px;opacity:.9;line-height:1.6;margin:0 0 24px;max-width:480px}@media (max-width: 992px){.upload-banner .banner-text .banner-description{max-width:none}}@media (max-width: 480px){.upload-banner .banner-text .banner-description{font-size:14px;margin-bottom:20px}}.upload-banner .banner-text .banner-features{display:flex;flex-wrap:wrap;gap:16px}@media (max-width: 992px){.upload-banner .banner-text .banner-features{justify-content:center}}@media (max-width: 480px){.upload-banner .banner-text .banner-features{flex-direction:column;align-items:center;gap:8px}}.upload-banner .banner-text .banner-features .feature-item{display:flex;align-items:center;gap:8px;font-size:14px;background:#ffffff26;padding:8px 16px;border-radius:20px}@media (max-width: 480px){.upload-banner .banner-text .banner-features .feature-item{font-size:13px;padding:6px 14px}}.upload-banner .banner-text .banner-features .feature-item .feature-icon{color:#95de64;font-weight:700}.upload-banner .banner-upload{width:360px;flex-shrink:0;background:#fff;border-radius:8px;padding:8px}@media (max-width: 992px){.upload-banner .banner-upload{width:100%;max-width:400px}}.upload-banner .banner-upload .upload-dragger{background:transparent!important;border-radius:12px!important;transition:all .3s ease!important}.upload-banner .banner-upload .upload-dragger:hover{border-color:#1890ff!important;background:#1890ff0a!important}.upload-banner .banner-upload .upload-dragger.ant-upload-disabled{cursor:pointer!important;opacity:1!important}.upload-banner .banner-upload .upload-dragger.ant-upload-disabled .ant-upload,.upload-banner .banner-upload .upload-dragger.ant-upload-disabled .ant-upload-btn{cursor:pointer!important}.upload-banner .banner-upload .upload-dragger.ant-upload-disabled:hover{border-color:#1890ff!important;background:#1890ff0a!important}.upload-banner .banner-upload .upload-content{padding:32px 24px}@media (max-width: 480px){.upload-banner .banner-upload .upload-content{padding:24px 16px}}.upload-banner .banner-upload .upload-content .upload-icon{font-size:48px;color:#1890ff;margin-bottom:16px}@media (max-width: 480px){.upload-banner .banner-upload .upload-content .upload-icon{font-size:40px}}.upload-banner .banner-upload .upload-content .upload-text{font-size:16px;color:#333;margin:0 0 4px;font-weight:500}@media (max-width: 480px){.upload-banner .banner-upload .upload-content .upload-text{font-size:14px}}.upload-banner .banner-upload .upload-content .upload-hint{font-size:14px;color:#999;margin:0 0 20px}@media (max-width: 480px){.upload-banner .banner-upload .upload-content .upload-hint{font-size:13px;margin-bottom:16px}}.upload-banner .banner-upload .upload-content .upload-button{width:100%;height:44px;font-size:16px}@media (max-width: 480px){.upload-banner .banner-upload .upload-content .upload-button{height:40px;font-size:14px}}.upload-banner .banner-upload .upload-content .upload-button.subscribe-btn{position:relative;overflow:hidden;background:#0b71de;border:none}.upload-banner .banner-upload .upload-content .upload-button.subscribe-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 2s infinite}.upload-banner .banner-upload .upload-content .upload-button.subscribe-btn:hover{background:#0960c0}.upload-banner .banner-upload .upload-content .upload-formats{font-size:12px;color:#999;margin:12px 0 0}.upload-banner .banner-upload .upload-content .quota-info{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:8px 16px;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:8px;color:#333;font-size:14px;font-weight:500}.upload-banner .banner-upload .upload-content .quota-info .anticon{font-size:16px;color:#1890ff}.upload-banner .banner-upload .upload-content .quota-info.skeleton{background:transparent;border:none;padding:8px 0}@media (max-width: 480px){.upload-banner .banner-upload .upload-content .quota-info{font-size:13px;padding:6px 12px}}.project-card{border-radius:12px;overflow:hidden;transition:all .3s ease}.project-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.project-card .ant-card-body{padding:16px}@media (max-width: 480px){.project-card .ant-card-body{padding:12px}}.project-card .card-cover{position:relative;height:180px;overflow:hidden;cursor:pointer}@media (max-width: 576px){.project-card .card-cover{height:160px}}.project-card .card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card .card-cover .card-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.project-card .card-cover:hover img{transform:scale(1.05)}.project-card .card-cover:hover .card-overlay{opacity:1}.project-card .card-content .card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.project-card .card-content .card-header .project-name{margin:0 8px 0 0;font-size:16px;flex:1}@media (max-width: 480px){.project-card .card-content .card-header .project-name{font-size:14px}}.project-card .card-content .card-header .more-btn{flex-shrink:0;width:32px;height:32px}.project-card .card-content .card-stats{display:flex;gap:16px;margin-bottom:12px}@media (max-width: 480px){.project-card .card-content .card-stats{gap:12px}}.project-card .card-content .card-stats .stat-item{display:flex;align-items:center;gap:6px}.project-card .card-content .card-stats .stat-item .stat-icon{color:#1890ff;font-size:14px}.project-card .card-content .card-stats .stat-item .stat-value{font-size:13px;color:#666}@media (max-width: 480px){.project-card .card-content .card-stats .stat-item .stat-value{font-size:12px}}.project-card .card-content .card-price{display:flex;align-items:center;gap:8px;padding:12px;background:linear-gradient(135deg,#f6ffed,#e6f7ff);border-radius:8px;margin-bottom:12px}@media (max-width: 480px){.project-card .card-content .card-price{padding:10px}}.project-card .card-content .card-price .price-icon{font-size:18px;color:#1677ff}.project-card .card-content .card-price .price-value{font-size:18px;font-weight:600;color:#1677ff}@media (max-width: 480px){.project-card .card-content .card-price .price-value{font-size:16px}}.project-card .card-content .card-footer{display:flex;align-items:center;justify-content:space-between}.project-card .card-content .card-footer .date-text{font-size:12px}.room-editor-modal .ant-modal-content{max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.room-editor-modal .ant-modal-header,.room-editor-modal .ant-modal-footer{flex-shrink:0}.room-editor-modal .ant-modal-body{padding:16px 24px;overflow:hidden;flex:1;display:flex;flex-direction:column;min-height:0;max-height:calc(80vh - 120px)}@media (max-width: 576px){.room-editor-modal .ant-modal-body{padding:12px;max-height:calc(80vh - 100px)}}.room-editor-modal .ant-alert{flex-shrink:0}.room-editor-modal .editor-layout{display:flex;gap:20px;flex:1;min-height:0;overflow:hidden}.room-editor-modal .editor-layout.mobile{flex-direction:column}.room-editor-modal .editor-layout.desktop{flex-direction:row}.room-editor-modal .editor-canvas-section{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.room-editor-modal .editor-canvas-section .editor-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;align-items:center;flex-shrink:0}@media (max-width: 576px){.room-editor-modal .editor-canvas-section .editor-toolbar{flex-direction:column;align-items:flex-start}}.room-editor-modal .editor-canvas-section .canvas-container{flex:1;min-height:150px;border:1px solid #d9d9d9;border-radius:4px;overflow:hidden;background-color:#e8e8e8;position:relative}.room-editor-modal .room-list-section{width:380px;flex-shrink:0;min-height:0;max-height:100%;overflow-y:auto;display:flex;flex-direction:column}@media (max-width: 1200px){.room-editor-modal .room-list-section{width:320px}}.room-editor-modal .room-list-section .ant-table-wrapper{flex:1;min-height:0;overflow:hidden}.room-editor-modal .room-list-section .ant-table-wrapper .ant-spin-nested-loading,.room-editor-modal .room-list-section .ant-table-wrapper .ant-spin-container,.room-editor-modal .room-list-section .ant-table-wrapper .ant-table{height:100%}.room-editor-modal .room-list-section .ant-table-wrapper .ant-table .ant-table-container{height:100%;display:flex;flex-direction:column}.room-editor-modal .room-list-section .ant-table-wrapper .ant-table .ant-table-container .ant-table-header{flex-shrink:0}.room-editor-modal .room-list-section .ant-table-wrapper .ant-table .ant-table-container .ant-table-body{flex:1;min-height:0;overflow-y:auto!important}.room-editor-modal .selected-room-row{background-color:#e6f7ff}.room-editor-modal .selected-room-row:hover>td{background-color:#bae7ff!important}.room-editor-modal .ant-table-tbody>tr{cursor:pointer}.room-editor-modal .ant-table-tbody>tr:hover>td{background-color:#fafafa}.room-editor-modal .ant-table-cell{padding:8px 12px!important}@media (max-width: 576px){.room-editor-modal .ant-table-cell{padding:6px 8px!important}}@media (max-width: 576px){.room-editor-modal .ant-modal{margin:0;max-width:100%;padding:0}.room-editor-modal .ant-modal-content{border-radius:0;min-height:100vh}}.room-editor-tutorial-modal .ant-modal-footer{padding:12px 24px}.room-editor-tutorial-modal .ant-steps .ant-steps-item-icon{cursor:pointer}.room-editor-tutorial-modal .ant-steps .ant-steps-item-title{display:none}.area-calibration-modal .ant-modal-body{padding:16px 24px}@media (max-width: 576px){.area-calibration-modal .ant-modal-body{padding:12px}}.area-calibration-modal .calibration-layout{display:flex;gap:20px}.area-calibration-modal .calibration-layout.mobile{flex-direction:column}.area-calibration-modal .calibration-layout.desktop{flex-direction:row}.area-calibration-modal .floor-plan-section{flex:1;min-width:0;display:flex;flex-direction:column}.area-calibration-modal .floor-plan-section .canvas-container{flex:1;min-height:250px;border:1px solid #d9d9d9;border-radius:4px;overflow:hidden;background-color:#e8e8e8}@media (min-width: 768px){.area-calibration-modal .floor-plan-section .canvas-container{min-height:350px}}.area-calibration-modal .input-section{width:100%;flex-shrink:0}@media (min-width: 768px){.area-calibration-modal .input-section{width:280px}}@media (max-width: 576px){.area-calibration-modal .ant-modal{margin:0;max-width:100%;padding:0}.area-calibration-modal .ant-modal-content{border-radius:0;min-height:100vh}}.estimate-params-modal .ant-modal-body{max-height:70vh;overflow-y:auto;overflow-x:hidden}.estimate-params-modal .ant-form-item-label{font-weight:500}.estimate-params-modal .ant-select{width:100%}.estimate-params-modal .ant-divider{margin:24px 0 16px}.estimate-params-modal .ant-modal-content{overflow-x:hidden}.estimate-params-modal .ant-row{margin-left:0!important;margin-right:0!important}@media (max-width: 768px){.estimate-params-modal .ant-modal{margin:0;max-width:100%}.estimate-params-modal .ant-modal-content{border-radius:0;overflow-x:hidden}.estimate-params-modal .ant-modal-body{max-height:calc(100vh - 150px);overflow-x:hidden}}.create-project-modal .ant-modal-body{padding:24px}@media (max-width: 576px){.create-project-modal .ant-modal-body{padding:16px}}.create-project-modal .project-steps-wrapper{margin-bottom:32px}@media (max-width: 576px){.create-project-modal .project-steps-wrapper{margin-bottom:24px}}.create-project-modal .project-steps.project-steps-row1{margin-bottom:16px}.create-project-modal .project-steps.project-steps-row2{margin-bottom:0}@media (max-width: 576px){.create-project-modal .project-steps.project-steps-row1{margin-bottom:12px}}.create-project-modal .step-content{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center}@media (max-width: 576px){.create-project-modal .step-content{min-height:250px}}.create-project-modal .step-upload{width:100%}.create-project-modal .step-upload .upload-dragger{padding:40px 20px;border-radius:12px}@media (max-width: 576px){.create-project-modal .step-upload .upload-dragger{padding:30px 16px}}.create-project-modal .step-upload .upload-dragger .upload-content{display:flex;flex-direction:column;align-items:center}.create-project-modal .step-upload .upload-dragger .upload-content .upload-icon{font-size:64px;color:#1890ff;margin-bottom:16px}@media (max-width: 576px){.create-project-modal .step-upload .upload-dragger .upload-content .upload-icon{font-size:48px}}.create-project-modal .step-analyzing{text-align:center}.create-project-modal .step-analyzing .preview-image{margin-top:24px;max-width:300px;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.create-project-modal .step-analyzing .preview-image img{width:100%;height:auto;display:block}@media (max-width: 576px){.create-project-modal .step-analyzing .preview-image{max-width:200px}}.create-project-modal .step-edit,.create-project-modal .step-calibrate,.create-project-modal .step-bundle{text-align:center}.create-project-modal .step-edit .step-icon,.create-project-modal .step-calibrate .step-icon,.create-project-modal .step-bundle .step-icon{font-size:64px;color:#1890ff}.create-project-modal .step-bundle{width:100%;padding:0 16px}.create-project-modal .step-bundle .bundle-card{transition:all .3s}.create-project-modal .step-bundle .bundle-card.selected{box-shadow:0 4px 12px #00000026}.create-project-modal .step-bundle .bundle-card:hover{transform:translateY(-2px)}@media (max-width: 576px){.create-project-modal .ant-modal{margin:0;max-width:100%;padding:0}.create-project-modal .ant-modal-content{min-height:70vh}}.home-page .projects-section .section-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.home-page .projects-section .section-header h3{margin:0}@media (max-width: 576px){.home-page .projects-section .section-header{margin-bottom:16px}}.home-page .projects-section .loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}.home-page .projects-section .empty-state{padding:60px 20px;background:#fafafa;border-radius:12px}@media (max-width: 576px){.home-page .projects-section .empty-state{padding:40px 16px}}.material-selector .free-trial-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;display:flex;align-items:center;justify-content:center;border-radius:8px}.material-selector .free-trial-overlay .free-trial-overlay-content{text-align:center;padding:40px;max-width:420px}.material-selector .free-trial-overlay .free-trial-overlay-content .free-trial-lock-icon{font-size:48px;color:#bfbfbf;margin-bottom:16px}.material-selector .free-trial-overlay .free-trial-overlay-content .free-trial-title{font-size:20px;font-weight:600;color:#262626;margin-bottom:8px}.material-selector .free-trial-overlay .free-trial-overlay-content .free-trial-desc{font-size:14px;color:#8c8c8c;line-height:1.6}.material-selector .selector-header{margin-bottom:16px}.material-selector .selector-header .ant-card{height:100%}.material-selector .selector-header .bundle-card .bundle-section .bundle-info{display:flex;align-items:center;margin-bottom:4px}.material-selector .selector-content .floor-plan-card .canvas-container{border-radius:8px;overflow:hidden}.material-selector .selector-content .floor-plan-card .room-list .room-item{transition:all .2s}.material-selector .selector-content .floor-plan-card .room-list .room-item:hover{background:#f0f0f0!important}.material-selector .selector-content .floor-plan-card .room-list .room-item.selected{background:#e6f7ff!important}.material-selector .selector-content .materials-card{min-height:500px}.material-selector .selector-content .materials-card .filters{padding-bottom:12px;border-bottom:1px solid #f0f0f0}.material-selector .selector-content .materials-card .materials-grid{max-height:550px;overflow-y:auto;overflow-x:hidden;padding-right:4px}.material-selector .selector-content .materials-card .materials-grid .ant-row{margin-left:0!important;margin-right:0!important;width:100%}.material-selector .selector-content .materials-card .materials-grid .ant-col{padding-left:6px!important;padding-right:6px!important}.material-selector .selector-content .materials-card .materials-grid::-webkit-scrollbar{width:6px}.material-selector .selector-content .materials-card .materials-grid::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.material-selector .selector-content .materials-card .materials-grid::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}.material-selector .selector-content .materials-card .materials-grid::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.material-selector .selector-content .materials-card .materials-grid .material-card{cursor:pointer;transition:all .2s;height:100%;border:1px solid #f0f0f0}.material-selector .selector-content .materials-card .materials-grid .material-card:hover{box-shadow:0 2px 8px #0000001a}.material-selector .selector-content .materials-card .materials-grid .material-card.selected{border:2px solid #1890ff!important}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content{display:flex;gap:12px}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-avatar{flex-shrink:0}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info{flex:1;min-width:0;overflow:hidden}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-name-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-name-row .material-name{flex:1;font-weight:600;font-size:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-name-row .selected-icon{color:#1890ff;font-size:18px;flex-shrink:0}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-brand{font-size:12px;display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-tags{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-tags .ant-tag{margin:0;font-size:11px;padding:0 4px;line-height:18px}.material-selector .selector-content .materials-card .materials-grid .material-card .material-card-content .material-info .material-price{margin-top:4px;font-weight:600;color:#1890ff;font-size:14px}.material-selector .material-detail .ant-image{width:100%}.material-selector .material-detail .ant-image img{border-radius:8px}@media (max-width: 768px){.material-selector .selector-header .price-display{flex-direction:column;align-items:flex-start;gap:8px}.material-selector .selector-content .floor-plan-card{margin-bottom:16px}.material-selector .selector-content .materials-card{min-height:auto}.material-selector .selector-content .materials-card .materials-grid{max-height:400px}}.project-detail-page.loading{display:flex;justify-content:center;align-items:center;min-height:400px}.project-detail-page .page-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}@media (max-width: 576px){.project-detail-page .page-header{margin-bottom:16px;gap:12px}.project-detail-page .page-header h3{font-size:18px}}.project-detail-page .floor-plan-card .canvas-container{height:500px;border:1px solid #d9d9d9;border-radius:4px;overflow:hidden;background-color:#e8e8e8}@media (max-width: 576px){.project-detail-page .floor-plan-card .canvas-container{height:300px}}.project-detail-page .estimate-card .estimate-header{display:flex;align-items:start;gap:16px}.project-detail-page .estimate-card .estimate-header .estimate-icon{font-size:48px;color:#1677ff}@media (max-width: 576px){.project-detail-page .estimate-card .estimate-header .estimate-icon{font-size:36px}}.project-detail-page .estimate-card .estimate-header .price-title{font-size:28px;color:#1677ff}@media (max-width: 576px){.project-detail-page .estimate-card .estimate-header .price-title{font-size:20px}}.project-detail-page .estimate-card .params-section .params-header{display:flex;justify-content:space-between;align-items:center}.project-detail-page .estimate-card .params-section .param-item{display:flex;flex-direction:column;padding:8px 10px;background-color:#fafafa;border-radius:6px;border:1px solid #f0f0f0;height:100%}.project-detail-page .estimate-card .params-section .param-item .param-label{font-size:11px;margin-bottom:2px}.project-detail-page .estimate-card .params-section .param-item .param-value{font-size:12px;line-height:1.3;word-break:break-word}.project-detail-page .estimate-card .stat-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#fafafa;border-radius:6px;border:1px solid #f0f0f0}.project-detail-page .estimate-card .stat-item .anticon{font-size:16px;color:#1890ff}.project-detail-page .estimate-card .stat-item .stat-label{flex:1;color:#666;font-size:13px}.project-detail-page .estimate-card .stat-item .stat-value{font-weight:600;font-size:16px;color:#333}.project-detail-page .estimate-card .ant-descriptions-title{font-size:14px;margin-bottom:8px}.project-detail-page .estimate-card .ant-descriptions-item-label{color:#666}.project-detail-page .estimate-card .ant-descriptions-item-content{font-weight:500}.project-detail-page .room-list-card .selected-row{background-color:#e6f7ff}.project-detail-page .room-list-card .selected-row:hover>td{background-color:#bae7ff!important}.project-detail-page .room-list-card .ant-table-tbody>tr{cursor:pointer}.trash-page .trash-header{margin-bottom:24px}.trash-page .trash-header .back-btn{padding-left:0;color:#666}.trash-page .trash-header .back-btn:hover{color:#1890ff}.trash-page .trash-section .section-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.trash-page .trash-section .section-header h3{margin:0}@media (max-width: 576px){.trash-page .trash-section .section-header{margin-bottom:16px}}.trash-page .trash-section .loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}.trash-page .trash-section .empty-state{padding:60px 20px;background:#fafafa;border-radius:12px}@media (max-width: 576px){.trash-page .trash-section .empty-state{padding:40px 16px}}.trash-page .trash-card{border-radius:12px;overflow:hidden;transition:all .3s ease;opacity:.85}.trash-page .trash-card:hover{opacity:1;box-shadow:0 4px 12px #0000001a}.trash-page .trash-card .card-cover{position:relative;height:160px;overflow:hidden;background:#f5f5f5}.trash-page .trash-card .card-cover img{width:100%;height:100%;object-fit:cover;filter:grayscale(30%)}.trash-page .trash-card .card-content .project-name{margin-bottom:12px;font-size:16px}.trash-page .trash-card .card-content .card-stats{display:flex;gap:16px;margin-bottom:12px}.trash-page .trash-card .card-content .card-stats .stat-item{display:flex;align-items:center;gap:4px}.trash-page .trash-card .card-content .card-stats .stat-item .stat-icon{color:#8c8c8c;font-size:14px}.trash-page .trash-card .card-content .card-stats .stat-item .stat-value{font-size:13px;color:#595959}.trash-page .trash-card .card-content .card-price{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding:8px 12px;background:linear-gradient(135deg,#f6ffed,#fcffe6);border-radius:6px}.trash-page .trash-card .card-content .card-price .price-icon{color:#52c41a;font-size:16px}.trash-page .trash-card .card-content .card-price .price-value{font-size:18px;font-weight:600;color:#389e0d}.trash-page .trash-card .card-content .card-footer{margin-bottom:16px}.trash-page .trash-card .card-content .card-footer .date-text{font-size:12px}.trash-page .trash-card .card-content .card-actions{display:flex;justify-content:center;padding-top:12px;border-top:1px solid #f0f0f0}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 112px);padding:24px}.auth-page .auth-card{width:500px;max-width:100%;min-height:300px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:40px;display:flex;align-items:center;justify-content:center}.auth-page .auth-loading{display:flex;flex-direction:column;align-items:center;gap:24px}.auth-page .auth-loading .loading-text{color:#666;font-size:16px}.auth-page .ant-result{padding:0}.payment-result-page{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:24px;background:#f5f5f5}.payment-result-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center}.payment-result-page .result-card{max-width:600px;width:100%;border-radius:16px;box-shadow:0 4px 24px #00000014}.payment-result-page .result-card.success .ant-result{padding-bottom:16px}.payment-result-page .result-card .ant-result-title{font-weight:600}.payment-result-page .result-card .ant-result-subtitle{color:#666}.payment-result-page .subscription-details{padding:0 24px;margin-bottom:24px}.payment-result-page .subscription-details h5{margin-bottom:16px;color:#262626}.payment-result-page .subscription-details .details-table .ant-descriptions-item-label{background:#fafafa;font-weight:500;width:140px}.payment-result-page .subscription-details .details-table .ant-descriptions-item-content{background:#fff}.payment-result-page .result-actions{display:flex;justify-content:center;gap:16px;padding:0 24px 24px;flex-wrap:wrap}.payment-result-page .result-actions .ant-btn{min-width:180px;height:44px;border-radius:8px;font-weight:500}@media (max-width: 576px){.payment-result-page{padding:40px 16px 16px;align-items:flex-start}.payment-result-page .result-card .ant-result{padding:24px 16px 16px}.payment-result-page .result-card .ant-result-icon{margin-bottom:16px}.payment-result-page .result-card .ant-result-icon .anticon{font-size:56px}.payment-result-page .result-card .ant-result-title{font-size:20px}.payment-result-page .result-card .ant-result-subtitle{font-size:14px}.payment-result-page .subscription-details{padding:0 16px}.payment-result-page .subscription-details .details-table .ant-descriptions-item-label{width:100px;font-size:13px}.payment-result-page .subscription-details .details-table .ant-descriptions-item-content{font-size:13px}.payment-result-page .result-actions{padding:0 16px 16px;flex-direction:column}.payment-result-page .result-actions .ant-btn{width:100%;min-width:auto}}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.subscriptions-page{padding:24px;max-width:1200px;margin:0 auto}.subscriptions-page .page-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:24px}.subscriptions-page .page-header .ant-btn{padding:0;margin-bottom:8px}.subscriptions-page .page-header h3{margin:0;display:flex;align-items:center}.subscriptions-page .subscriptions-card{border-radius:12px;box-shadow:0 2px 8px #0000000f}.subscriptions-page .loading-container{display:flex;justify-content:center;align-items:center;min-height:400px}.subscriptions-page .plans-container{padding:16px 0}.subscriptions-page .plans-row{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:24px}.subscriptions-page .balance-section{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:#e6f4ff;border:1px solid #91caff;border-radius:8px;margin-bottom:24px}.subscriptions-page .balance-section .ant-tag{background:#fff;border-color:#d9d9d9;color:#333}.subscriptions-page .plan-card-wrapper{flex:0 0 auto;width:320px}.subscriptions-page .plan-card{width:100%;height:100%;border-radius:16px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;position:relative;overflow:visible;border:2px solid transparent;display:flex;flex-direction:column}.subscriptions-page .plan-card .ant-card-body{display:flex;flex-direction:column;height:100%;flex:1}.subscriptions-page .plan-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.subscriptions-page .plan-card.subscribed{border-color:#52c41a;background:linear-gradient(135deg,#f6ffed,#fff)}.subscriptions-page .plan-card.popular{border-color:#0b73e0}.subscriptions-page .plan-card.popular:not(.subscribed){background:linear-gradient(135deg,#e6f4ff,#fff)}.subscriptions-page .plan-card.free{border-color:#d9d9d9;background:#fafafa}.subscriptions-page .plan-card.free .plan-header .plan-icon{color:#8c8c8c}.subscriptions-page .plan-card .popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:#0b73e0;color:#fff;padding:4px 16px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #0b73e066}.subscriptions-page .plan-card .popular-badge .anticon{margin-right:4px}.subscriptions-page .plan-card .plan-header{text-align:center;margin-bottom:20px;padding-top:8px}.subscriptions-page .plan-card .plan-header .plan-icon{font-size:36px;color:#0b73e0;margin-bottom:12px}.subscriptions-page .plan-card .plan-header .plan-title{margin:0 0 8px;font-weight:600}.subscriptions-page .plan-card .plan-header .status-tag{font-size:12px}.subscriptions-page .plan-card .plan-features{margin-bottom:24px;flex:1}.subscriptions-page .plan-card .plan-features .feature-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;font-size:14px;color:#595959}.subscriptions-page .plan-card .plan-features .feature-item .feature-icon{color:#52c41a;font-size:16px;margin-top:2px;flex-shrink:0}.subscriptions-page .plan-card .plan-current{text-align:center;margin-top:auto}.subscriptions-page .plan-card .plan-current .free-label{font-size:24px;font-weight:700;color:#52c41a;padding:16px 0}.subscriptions-page .plan-card .payment-buttons{margin-top:auto;display:flex;flex-direction:column;gap:10px}.subscriptions-page .plan-card .subscribe-btn{height:44px;font-size:14px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:6px}.subscriptions-page .plan-card .subscribe-btn .anticon{font-size:16px}.subscriptions-page .plan-card .subscribe-btn.subscribed-btn{background:#52c41a;border:none;color:#fff;cursor:default;pointer-events:none}.subscriptions-page .plan-card .subscribe-btn.subscribed-btn:hover{background:#52c41a}.subscriptions-page .plan-card .subscribe-btn.bdc-btn{position:relative;overflow:hidden;background:#0b73e0;border:none}.subscriptions-page .plan-card .subscribe-btn.bdc-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 2s infinite}.subscriptions-page .plan-card .subscribe-btn.bdc-btn:hover{background:#0960c0}.subscriptions-page .plan-card .subscribe-btn.upoint-btn{background:#e6f4ff;border-color:#91caff;color:#0b73e0}.subscriptions-page .plan-card .subscribe-btn.upoint-btn:hover{background:#bae0ff;border-color:#0b73e0}.subscriptions-page .plan-card .subscribe-btn.cash-btn{background:#fafafa;border-color:#d9d9d9;color:#595959}.subscriptions-page .plan-card .subscribe-btn.cash-btn:hover{background:#f0f0f0;border-color:#bfbfbf;color:#333}@keyframes shine{0%{left:-100%}50%{left:100%}to{left:100%}}.subscriptions-page .history-container .card-header,.subscriptions-page .quota-container .card-header{display:flex;justify-content:flex-end;margin-bottom:16px}@media (max-width: 768px){.subscriptions-page{padding:16px}.subscriptions-page .plan-card{margin-bottom:16px}.subscriptions-page .balance-section{justify-content:center;text-align:center}}@media (max-width: 576px){.subscriptions-page{padding:12px}.subscriptions-page .plan-card .plan-header .plan-icon{font-size:28px}.subscriptions-page .plan-card .plan-header .plan-title{font-size:18px}.subscriptions-page .plan-card .plan-features .feature-item{font-size:13px}.subscriptions-page .plan-card .subscribe-btn{height:40px;font-size:13px}}.admin-loading{display:flex;justify-content:center;align-items:center;height:100vh;background:#f0f2f5}.admin-layout{min-height:100vh}.admin-layout .admin-sider{position:fixed;left:0;top:0;bottom:0;z-index:100;overflow:auto}.admin-layout .admin-sider .admin-logo{height:64px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:600;background:#ffffff1a;white-space:nowrap;overflow:hidden}.admin-layout .admin-sider .ant-menu{border-right:none}.admin-layout .admin-header{position:fixed;top:0;right:0;left:220px;z-index:99;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;box-shadow:0 1px 4px #00152914;transition:left .2s}.admin-layout .admin-header .header-left .collapse-btn{font-size:18px}.admin-layout .admin-header .header-right .user-info .user-name{color:#000000d9}.admin-layout .admin-content{margin-left:220px;margin-top:64px;padding:24px;min-height:calc(100vh - 64px);background:#f0f2f5;transition:margin-left .2s}.admin-layout:has(.admin-sider.ant-layout-sider-collapsed) .admin-header{left:80px}.admin-layout:has(.admin-sider.ant-layout-sider-collapsed) .admin-content{margin-left:80px}@media (max-width: 768px){.admin-layout .admin-sider.ant-layout-sider-collapsed{width:0!important;min-width:0!important;max-width:0!important}.admin-layout .admin-header{left:0!important;padding:0 16px}.admin-layout .admin-content{margin-left:0!important;padding:16px}.admin-layout:has(.admin-sider:not(.ant-layout-sider-collapsed)) .admin-header{left:220px}.admin-layout:has(.admin-sider:not(.ant-layout-sider-collapsed)) .admin-content{margin-left:220px}}.admin-dashboard .stats-row{margin-bottom:24px}.admin-dashboard .stat-card .ant-card-body{padding:20px 24px}.admin-dashboard .stat-card .stat-icon{font-size:48px;opacity:.2;position:absolute;right:20px;top:50%;transform:translateY(-50%)}.admin-dashboard .stat-card .ant-statistic-title{color:#000000a6;font-size:14px}.admin-dashboard .stat-card .ant-statistic-content{font-size:28px}.admin-dashboard .stat-card.users-card{border-left:4px solid #1890ff}.admin-dashboard .stat-card.users-card .stat-icon{color:#1890ff}.admin-dashboard .stat-card.projects-card{border-left:4px solid #52c41a}.admin-dashboard .stat-card.projects-card .stat-icon{color:#52c41a}.admin-dashboard .stat-card.today-users-card{border-left:4px solid #faad14}.admin-dashboard .stat-card.today-users-card .stat-icon{color:#faad14}.admin-dashboard .stat-card.today-projects-card{border-left:4px solid #722ed1}.admin-dashboard .stat-card.today-projects-card .stat-icon{color:#722ed1}.admin-users .search-bar{margin-bottom:16px}.admin-users .permission-switch{margin-bottom:8px}.admin-users .permission-switch:last-child{margin-bottom:0}.admin-subscriptions .search-bar{margin-bottom:16px;display:flex;gap:12px;flex-wrap:wrap}.admin-subscriptions .add-subscription-form .ant-form-item{margin-bottom:16px}.admin-projects .search-bar{margin-bottom:16px;display:flex;gap:12px;flex-wrap:wrap}.admin-projects .project-img{width:80px;height:60px;object-fit:cover;border-radius:4px;cursor:pointer;transition:transform .2s}.admin-projects .project-img:hover{transform:scale(1.05)}.admin-projects .recognition-preview{max-height:400px;overflow:auto;background:#f5f5f5;padding:12px;border-radius:4px;font-family:monospace;font-size:12px}.admin-settings .empty-settings{padding:60px;text-align:center;color:#999}.admin-table .ant-table{background:#fff;border-radius:8px}.admin-table .ant-table-thead>tr>th{background:#fafafa}
