.form-group{margin:15px}.form-group label{display:block;font-size:1rem;font-weight:600;margin-bottom:10px;color:#333}.input-group{display:flex;gap:10px;margin-bottom:15px}.input-group button{flex:1;padding:12px 20px;font-size:.95rem;border:none;border-radius:6px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;font-weight:500;transition:all .3s ease}.input-group button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.input-group button:disabled{opacity:.5;cursor:not-allowed}.upload-preparing{padding:20px;text-align:center;background:#f5f5f5;border-radius:6px;margin:15px 0}.upload-preparing.show{display:block}.upload-preparing p{margin:0;color:#666;font-size:.9rem}.upload-progress{padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin:15px 0}.progress-bar{width:100%;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease;border-radius:4px;width:0%}.progress-text{display:flex;justify-content:space-between;gap:10px;font-size:.9rem;color:#666}#progressText{flex:1;word-break:break-word;font-weight:500;color:#333}#progressFiles{white-space:nowrap;text-align:right}.folder-path-display{margin-top:15px;padding:10px;background:#f9f9f9;border-left:4px solid #667eea;border-radius:4px;font-size:.85rem;color:#666;min-height:20px}@media(max-width:768px){.input-group{flex-direction:column}.input-group button{width:100%}.progress-text{flex-direction:column}#progressFiles{text-align:left}}.form-group{margin-bottom:20px}.label-group{display:flex;align-items:center;gap:8px;margin-bottom:8px}.form-group label.icon-label{display:inline-flex;align-items:center;gap:4px}.help-icon{color:#667eea;cursor:help}.help-icon:hover{color:#5568d3;transform:scale(1.15)}.input-group{display:flex;gap:10px;align-items:stretch}input[type=text]{flex:1;padding:12px 15px;border:2px solid #ddd;border-radius:5px;font-size:1em;transition:border-color .3s}input[type=text]:focus{outline:none;border-color:#667eea;box-shadow:0 0 5px #667eea4d}#projectName{width:380px;max-width:100%}#check-btn{color:#4caf50;cursor:pointer;transition:color .8s,background-color .8s}.input-box{display:flex;align-items:center;gap:10px;width:520px;max-width:100%}.name-version-inputs{display:flex;gap:10px;flex:1}.input-box.has-error input[type=text],.input-box.has-error input[type=text]:focus{border-color:#d32f2f;box-shadow:0 0 5px #d32f2f4d}.input-box.has-warning input[type=text],.input-box.has-warning input[type=text]:focus{border-color:#f57c00;box-shadow:0 0 5px #f57c0033}#check-btn:disabled,#check-btn[disabled]:hover{color:red;background:transparent;cursor:not-allowed}#projectVersion{width:120px;min-width:100px;flex:0 0 auto}.validation-message{display:flex;gap:12px;margin-top:10px;padding:12px 15px;border-radius:5px;font-size:.95em;line-height:1.4;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.validation-message.success{background-color:#e8f5e9;color:#2e7d32;border-left:3px solid #4caf50}.validation-message.warning{background-color:#fff3e0;color:#e65100;border-left:3px solid #f57c00}.message-icon{flex-shrink:0;font-weight:600;font-size:1.1em}.message-content{flex:1}.message-text{margin:0 0 4px;font-weight:500}.message-suggestion{margin:4px 0 0;font-size:.9em;opacity:.9}.message-suggestion-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.suggestion-btn{border:1px solid currentColor;background:transparent;border-radius:999px;padding:4px 10px;font-size:.85em;line-height:1.2;cursor:pointer;color:inherit}.suggestion-btn:hover{opacity:.85}@media screen and (max-width:600px){.name-version-inputs{flex-direction:column;gap:8px}#projectName{width:100%;max-width:100%}.form-group label.icon-label{width:100%;flex:1 0}}.extension-selector{padding:20px}.extension-selector.show{display:block}.extension-selector h2{color:#333;margin-bottom:20px}.extension-selector p{color:#666;margin-bottom:20px}.extension-selector .summary-card{padding:15px;border-radius:4px;text-align:center}.extension-selector .summary-card h3{margin:0 0 10px;font-size:.9em;color:#666;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.extension-selector .summary-card .value{font-size:1.8em;font-weight:700}.extension-group{margin-bottom:30px}.extension-group h3{font-size:1.1em;color:#333;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.extension-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:15px}.extension-checkbox-item{padding:8px;background:#f9f9f9;border-radius:4px;border:1px solid #e0e0e0;transition:all .2s ease}.extension-checkbox-item:hover{background:#f5f5f5;border-color:#d0d0d0}.extension-checkbox-item.important{background:#f0f7ff;border-color:#d0e8ff}.extension-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9em;color:#333;-webkit-user-select:none;user-select:none}.extension-checkbox-label input[type=checkbox]{cursor:pointer;accent-color:#667eea;margin:0}.ext-name{flex:1;word-break:break-word;font-family:Monaco,Courier New,monospace;font-size:.85em}.ext-badge{background:#e0e0e0;color:#666;padding:2px 6px;border-radius:12px;font-size:.75em;font-weight:500;white-space:nowrap;margin-left:auto}.extension-checkbox-item.important .ext-badge{background:#d0e8ff;color:#2196f3}@media(max-width:768px){.extension-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.extension-selector{padding:15px}}@media(max-width:480px){.extension-list{grid-template-columns:1fr;gap:6px}.ext-name{font-size:.8em}.extension-selector h2{font-size:1.3em;margin-bottom:15px}}.tooltip{position:relative;display:inline-block}.tooltip-content{position:absolute;z-index:1000;width:max-content;max-width:240px;padding:6px 8px;border-radius:4px;color:var(--tooltip-color, #fff);background-color:var(--tooltip-bg, rgba(33, 33, 33, .9));font-size:12px;line-height:1.4;text-align:left;white-space:normal;word-wrap:break-word;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;box-shadow:0 2px 4px #0003}.tooltip--visible .tooltip-content{opacity:1;visibility:visible}.tooltip-content:after{content:"";position:absolute;width:0;height:0;border:5px solid transparent}.tooltip--position-bottom .tooltip-content{top:100%;margin-top:6px}.tooltip--position-bottom .tooltip-content:after{bottom:100%;border-bottom-color:var(--tooltip-bg, rgba(33, 33, 33, .9))}.tooltip--position-top .tooltip-content{bottom:100%;margin-bottom:6px}.tooltip--position-top .tooltip-content:after{top:100%;border-top-color:var(--tooltip-bg, rgba(33, 33, 33, .9))}.tooltip--position-left .tooltip-content{right:100%;margin-right:6px}.tooltip--position-left .tooltip-content:after{left:100%;border-left-color:var(--tooltip-bg, rgba(33, 33, 33, .9))}.tooltip--position-right .tooltip-content{left:100%;margin-left:6px}.tooltip--position-right .tooltip-content:after{right:100%;border-right-color:var(--tooltip-bg, rgba(33, 33, 33, .9))}.tooltip--position-bottom.tooltip--align-start .tooltip-content,.tooltip--position-top.tooltip--align-start .tooltip-content{left:0}.tooltip--position-bottom.tooltip--align-start .tooltip-content:after,.tooltip--position-top.tooltip--align-start .tooltip-content:after{left:8px}.tooltip--position-bottom.tooltip--align-middle .tooltip-content,.tooltip--position-top.tooltip--align-middle .tooltip-content{left:50%;transform:translate(-50%)}.tooltip--position-bottom.tooltip--align-middle .tooltip-content:after,.tooltip--position-top.tooltip--align-middle .tooltip-content:after{left:50%;transform:translate(-50%)}.tooltip--position-bottom.tooltip--align-end .tooltip-content,.tooltip--position-top.tooltip--align-end .tooltip-content{right:0;left:auto}.tooltip--position-bottom.tooltip--align-end .tooltip-content:after,.tooltip--position-top.tooltip--align-end .tooltip-content:after{right:8px;left:auto}.tooltip--position-left.tooltip--align-start .tooltip-content,.tooltip--position-right.tooltip--align-start .tooltip-content{top:0}.tooltip--position-left.tooltip--align-start .tooltip-content:after,.tooltip--position-right.tooltip--align-start .tooltip-content:after{top:8px}.tooltip--position-left.tooltip--align-middle .tooltip-content,.tooltip--position-right.tooltip--align-middle .tooltip-content{top:50%;transform:translateY(-50%)}.tooltip--position-left.tooltip--align-middle .tooltip-content:after,.tooltip--position-right.tooltip--align-middle .tooltip-content:after{top:50%;transform:translateY(-50%)}.tooltip--position-left.tooltip--align-end .tooltip-content,.tooltip--position-right.tooltip--align-end .tooltip-content{bottom:0;top:auto}.tooltip--position-left.tooltip--align-end .tooltip-content:after,.tooltip--position-right.tooltip--align-end .tooltip-content:after{bottom:8px;top:auto}.container{max-height:calc(100vh - 176px);max-width:1400px;margin:20px auto 0;background:#fff;border-radius:10px;box-shadow:0 10px 40px #0003;overflow-y:auto;display:flex;flex-direction:column}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:30px}.summary-card{background:#f9f9f9;padding:20px;border-radius:5px;border-left:4px solid #667eea}.summary-card h3{font-size:.9em;color:#666;margin-bottom:10px;text-transform:uppercase}.summary-card .value{font-size:2em;font-weight:700;color:#333}.section{margin-bottom:30px}.section h2{font-size:1.5em;margin-bottom:15px;color:#333;border-bottom:2px solid #667eea;padding-bottom:10px}.extensions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.extension-tag{background:#f0f0f0;padding:10px 15px;border-radius:5px;display:flex;justify-content:space-between;align-items:center;border:1px solid #ddd}.extension-tag.important{background:#e8f5e9;border-color:#4caf50}.extension-tag .ext-name{font-weight:600;font-family:Courier New,monospace}.extension-tag .ext-count{background:#667eea;color:#fff;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:.9em;font-weight:700}.extension-tag.important .ext-count{background:#4caf50}.language-stats{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:10px}th,td{padding:12px;text-align:left;border-bottom:1px solid #ddd}th{background:#f5f5f5;font-weight:600;color:#333}tr:hover{background:#f9f9f9}.file-input-wrapper{position:relative;overflow:hidden;display:inline-block;width:100%}.file-input-wrapper input[type=file]{position:absolute;left:-9999px}.file-input-label{display:flex;align-items:center;justify-content:center;padding:12px 15px;background:#f0f0f0;border:2px dashed #667eea;border-radius:5px;cursor:pointer;transition:all .3s;width:100%}.file-input-label:hover{background:#667eea;color:#fff}.file-input-wrapper input[type=file]:focus+.file-input-label{outline:2px solid #667eea;outline-offset:2px}.folder-path-display{margin-top:8px;padding:8px;background:#f9f9f9;border-radius:3px;font-size:.9em;color:#666;word-break:break-all}.ad-section-before-download button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.ad-section-before-download button:active{transform:translateY(0)}.project-name-confirmation{margin:20px 0;padding:15px;background:#e0f7fa;border-left:4px solid #00bcd4;color:#00796b;font-size:1.1em}.mode-selection{margin:20px 0;padding:18px;background:#f5f7ff;border:1px solid #d6dfeb;border-radius:10px}.mode-selection-label{display:block;font-weight:600;color:#2c3550;margin-bottom:12px}.mode-options{display:flex;gap:12px;flex-wrap:wrap}.mode-option{flex:1;min-width:180px;padding:14px;border:2px solid #d6dfeb;border-radius:8px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:start;transition:border-color .2s,box-shadow .2s;text-align:left}.mode-option:hover{border-color:#337aca}.mode-option.selected{border-color:#337aca;box-shadow:0 0 0 3px #337aca1f}.mode-option-title{display:flex;gap:1.2rem;font-weight:600;color:#2c3550;margin-bottom:6px}.mode-option-desc{font-size:.85rem;color:#667089;text-wrap:auto}.mode-option-doc-link{display:inline-block;margin-top:10px;color:#337aca;font-size:.85rem;text-decoration:none}.local-create-actions{margin:20px 0;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.local-create-actions .card-hint{color:#667089;font-size:.9rem;margin:0}.tooltip-wrapper{position:relative;display:inline-block}.tooltip-wrapper .tooltip-text{visibility:hidden;width:max-content;max-width:240px;background-color:#616161e6;color:#fff;text-align:center;border-radius:4px;padding:6px 10px;position:absolute;z-index:10;bottom:125%;left:50%;transform:translate(-50%);font-size:.85rem;line-height:1.4;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}.tooltip-wrapper .tooltip-text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(97,97,97,.9) transparent transparent transparent}.tooltip-wrapper:hover .tooltip-text,.tooltip-wrapper:focus-within .tooltip-text{visibility:visible;opacity:1}.tooltip-wrapper button:disabled{background:#999;cursor:not-allowed;transform:none}@media(max-width:768px){body{padding-bottom:140px}.container{margin:12px 12px 0}.mode-options button{display:flex;flex-direction:column;align-items:flex-start}.mode-option-desc{font-size:.75rem;text-wrap:auto;overflow-wrap:break-word}}.product-intro-container{padding:0;max-width:1400px;margin:20px auto 0;border-radius:10px;box-shadow:0 10px 30px #24365014;overflow-y:auto;display:flex;flex-direction:column;background:#fff}.seo-intro,.hidden-for-seo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.intro-hero{background:linear-gradient(135deg,#f5f9ff,#edf4ff);color:#1f2d3d;padding:50px 40px;border-radius:10px 10px 0 0;border-bottom:1px solid #dce8ff}.intro-hero h2{font-size:2em;margin-bottom:25px;line-height:1.4}.hero-content p{font-size:1.05em;line-height:1.7;margin-bottom:15px}.features-list{list-style:none;padding:0;margin:15px 0 20px;font-size:1.1em;display:flex;gap:30px;flex-wrap:wrap}.features-list li{display:flex;align-items:center;gap:10px}.highlight-text{background:#fff;padding:15px 20px;border-radius:6px;border-left:4px solid #9ab8ff;font-size:.98em;line-height:1.8;color:#334155}.intro-section{padding:40px;border-bottom:1px solid #f0f0f0}.intro-section h2{font-size:1.8em;color:#333;margin-bottom:25px;padding-bottom:10px;border-bottom:3px solid #667eea;display:inline-block}.intro-text{font-size:1.05em;color:#555;margin-bottom:20px;line-height:1.7}.value-section{background:#f9f9f9}.value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:25px}.value-card{background:#fff;padding:25px;border-radius:8px;border-left:4px solid #667eea;box-shadow:0 2px 8px #0000000f}.value-card.highlight{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-left-color:#764ba2;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.value-icon{font-size:2em;margin-bottom:10px}.value-number{font-size:3em;font-weight:700;color:#667eea;margin-bottom:10px}.value-card p{font-size:.95em;color:#555;line-height:1.7;margin-bottom:10px}.value-card p:last-child{margin-bottom:0}.value-card .small-text{font-size:.85em;color:#999;margin-top:5px}.metrics-section{background:#f5f7fa}.metrics-section h2{border-bottom-color:#ff9800}.feature-card{background:#fff;padding:30px;border-radius:8px;margin-bottom:20px;border:1px solid #e0e0e0;position:relative}.feature-card h4{font-size:1.4em;color:#333;margin:10px 0 15px}.feature-card p{color:#555;line-height:1.7;font-size:.95em;margin-bottom:10px}.feature-card p:last-of-type{margin-bottom:0}.feature-badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin-bottom:10px}.feature-badge.free{background-color:#4caf50;color:#fff}.feature-badge.premium{background-color:#ff9800;color:#fff}.free-feature{border-left:4px solid #4caf50}.premium-feature{border-left:4px solid #ff9800}.pricing-example{background:#f5f5f5;padding:15px;border-radius:6px;margin-top:15px}.example-title{font-weight:600;color:#333;margin-bottom:10px}.pricing-example ul{list-style:none;padding:0;margin-bottom:12px}.pricing-example li{color:#555;margin-bottom:6px;padding-left:20px;position:relative}.pricing-example li:before{content:"•";position:absolute;left:0;color:#ff9800;font-weight:700}.cost-highlight{background:#fff3e0;padding:12px;border-radius:4px;color:#e65100;font-weight:600;text-align:center;margin:0}.benefits-section{background:#fff}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px}.benefit-item{background:#f9f9f9;padding:25px;border-radius:8px;border-top:4px solid #667eea;transition:all .3s ease}.benefit-item:hover{box-shadow:0 8px 16px #667eea26;transform:translateY(-4px)}.benefit-number{display:inline-block;width:50px;height:50px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4em;font-weight:700;margin-bottom:15px}.benefit-item h4{font-size:1.15em;color:#333;margin-bottom:10px}.benefit-item p{color:#555;font-size:.9em;line-height:1.7;margin:0}.skill-prompt-buttons{margin-top:14px;display:grid;grid-template-columns:1fr;gap:10px;padding:12px;border-radius:8px}.skill-prompt-button{border:1.5px solid transparent;border-radius:6px;padding:10px 14px;background:transparent;font-size:.88em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease,background-color .2s ease;width:100%;text-align:center}.skill-prompt-button-skillhub{border-color:#3f74de;color:#3f74de}.skill-prompt-button-redskill{border-color:#d85a66;color:#d85a66}.skill-prompt-button-github{border-color:#5579a8;color:#5579a8}.skill-prompt-button-skillhub.is-copied{border-color:#8fb2f0;color:#8fb2f0;background:#a8c9ff33}.skill-prompt-button-redskill.is-copied{border-color:#e9a0a8;color:#e9a0a8;background:#f3aeb433}.skill-prompt-button-github.is-copied{border-color:#9ab0cd;color:#9ab0cd;background:#a7bad433}.skill-prompt-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #24365029}.skill-prompt-button:active{transform:translateY(0)}.disclaimer-section{background:#fff5e6;border-top:2px solid #ffcc80;border-bottom:none}.disclaimer-content{background:#fff;padding:20px;border-radius:6px;border-left:4px solid #ff9800}.disclaimer-content p{color:#555;line-height:1.8;font-size:.95em;margin-bottom:12px}.disclaimer-content p:last-child{margin-bottom:0}@media(max-width:768px){.intro-hero{padding:30px 20px}.intro-hero h2{font-size:1.5em;margin-bottom:15px}.hero-content p{font-size:.95em}.features-list{flex-direction:column;gap:10px}.intro-section{padding:25px 20px}.intro-section h3{font-size:1.4em}.value-grid,.benefits-grid{grid-template-columns:1fr}.feature-card{padding:20px}.feature-card h4{font-size:1.15em}.skill-prompt-buttons{padding:10px}.skill-prompt-button{width:100%}}@media(max-width:480px){.intro-hero{padding:20px 15px;border-radius:0}.intro-hero h2{font-size:1.3em}.intro-section{padding:20px 15px}.intro-section h3{font-size:1.2em}.benefit-item{padding:15px}}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.metric-card{background:#fff;color:#333;padding:25px;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000000f;border-top:4px solid #ccc}.metric-card.metric-users{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border-top-color:#667eea;color:#1a237e}.metric-card.metric-users .metric-number{color:#667eea}.metric-card.metric-users .metric-breakdown span{background:#667eea26;color:#1a237e}.metric-card.metric-projects{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-top-color:#26a69a;color:#1b5e20}.metric-card.metric-projects .metric-number{color:#26a69a}.metric-card.metric-projects .metric-breakdown span{background:#26a69a26;color:#1b5e20}.metric-card.metric-docs{background:linear-gradient(135deg,#fff3e0,#fbe9e7);border-top-color:#ff9800;color:#e65100}.metric-card.metric-docs .metric-number{color:#ff9800}.metric-card.metric-docs .metric-breakdown span{background:#ff980026;color:#e65100}.metric-card.metric-images{background:linear-gradient(135deg,#fce4ec,#f8bbd0);border-top-color:#e91e63;color:#880e4f}.metric-card.metric-images .metric-number{color:#e91e63}.metric-card.metric-images .metric-breakdown span{background:#e91e6326;color:#880e4f}.metric-number{font-size:2.8em;font-weight:700;margin-bottom:5px;line-height:1.2;display:inline-block;min-width:100px}.metric-number.metric-number-flip{animation:flipNumber .6s ease-in-out}@keyframes flipNumber{0%{transform:rotateY(0) scale(1);opacity:1}50%{transform:rotateY(90deg) scale(.9);opacity:.5}to{transform:rotateY(0) scale(1);opacity:1}}.metric-label{font-size:.95em;margin:3px 0 8px;font-weight:600;opacity:.95}.metric-breakdown{display:flex;justify-content:center;gap:15px;margin:8px 0;font-size:.85em;opacity:.9}.metric-breakdown span{padding:4px 10px;border-radius:4px;font-weight:500}.metric-desc{font-size:.85em;margin:8px 0 0;opacity:.8}.project-list-container{display:flex;flex-direction:column;height:100%;background:#f8f9fa;border-right:1px solid #e0e0e0}.mobile-summary-bar,.mobile-summary-actions{display:none}.project-list-header{display:flex;justify-content:space-between;align-items:center;padding:0 12px;border-bottom:1px solid #e0e0e0;background:#fff;height:72px}.project-list-header h2{margin:0;font-size:18px;color:#333;flex:1}.project-list{flex:1;overflow-y:auto;padding:8px}.empty-state{text-align:center;padding:40px 16px;color:#999}.empty-state p{margin:8px 0}.empty-state .hint{font-size:12px;color:#bbb}.project-items{list-style:none;margin:0;padding:0}.project-item{display:flex;align-items:center;justify-content:space-between;padding:12px 8px;margin-bottom:4px;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;position:relative}.project-item:hover{background:#f5f7ff;border-color:#e8ebff}.project-item.active{background:#e8ebff;border-color:#667eea}.project-info{flex:1;min-width:0;padding-right:8px}.project-name-section{display:flex;align-items:center;gap:8px;margin-bottom:4px}.project-name{margin:0;font-size:14px;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;padding:4px;border-radius:4px}.project-meta-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.visibility-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.node-type-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.project-cloud{background:#e8f5e9;color:#2e7d32}.project-local{background:#fff3e0;color:#ef6c00}.project-meta{margin:0;font-size:12px;color:#666}.project-menu-wrapper{position:relative;flex-shrink:0}.btn-menu{width:28px;height:28px;padding:0;border:none;background:transparent;color:#666;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.btn-menu:hover{background:#667eea1a;color:#667eea}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:160px;z-index:10;overflow:hidden}.menu-item{display:flex!important;gap:4px;width:100%;padding:10px 14px;border:none;background:#fff;color:#333;font-size:14px;text-align:left;cursor:pointer;transition:background .2s ease}.menu-item:hover{background:#f5f5f5}.menu-item.delete{color:#d32f2f}.menu-item.delete:hover{background:#ffebee}.mobile-expand-btn{width:28px;height:28px;padding:0;border:none;background:transparent;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.mobile-expand-btn:hover{background:#667eea1a;color:#667eea}.project-list::-webkit-scrollbar{width:6px}.project-list::-webkit-scrollbar-track{background:transparent}.project-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.project-list::-webkit-scrollbar-thumb:hover{background:#bbb}@media(max-width:768px){.project-list-container{border-right:none}.project-name{font-size:13px}.project-meta{font-size:11px}.project-list-container{flex-direction:column}.mobile-summary-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#fff;border-bottom:1px solid #e0e0e0;cursor:pointer;gap:12px}.mobile-summary-bar:hover{background:#f5f7ff}.mobile-summary-content{flex:1;min-width:0}.mobile-summary-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.mobile-summary-actions .icon-btn{width:28px;height:28px;padding:0;border:none;background:transparent;color:#667eea;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.mobile-summary-actions .icon-btn:hover{background:#667eea1a}.mobile-selected-project{display:flex;flex-direction:column;gap:2px}.mobile-selected-label{font-size:11px;color:#999}.mobile-selected-name-row{display:flex;align-items:center;gap:8px}.mobile-selected-name-row .project-name{flex:0 1 auto;min-width:0}.mobile-create-new{display:flex;align-items:center;gap:6px;color:#667eea;font-size:14px;font-weight:600}.project-list-header{display:none}.project-list{display:none;flex:1;overflow-y:auto}.project-list-container.expanded .project-list{display:block}.project-list-container.expanded{position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;background:#f8f9fa}}.add-footprint-modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;width:75%;max-width:900px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #f0f0f0;gap:12px}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#333}.modal-header-actions{display:flex;gap:36px;align-items:center}.visibility-control{display:flex;gap:8px;align-items:center}.visibility-control label{margin:0}.visibility-text{font-size:13px;color:#666;font-weight:500;min-width:60px}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s ease;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s ease;border-radius:50%}input:checked+.slider{background-color:#51b5f3}input:checked+.slider:before{transform:translate(20px)}input:disabled+.slider{opacity:.6;cursor:not-allowed}.modal-close{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.modal-close:hover{color:#333}.modal-content{padding:24px;display:flex;flex-direction:column;gap:24px}.timeline-section{display:flex;flex-direction:column;gap:16px}.timeline-loading{padding:20px;text-align:center;color:#999;font-size:14px}.timeline-container{width:100%;overflow-x:auto}.horizontal-timeline{display:flex;flex-direction:column;gap:12px}.empty-timeline{padding:20px;background:#f8f9fa;border-radius:6px;text-align:center;color:#999;font-size:14px}.empty-timeline p{margin:0}.timeline-nodes{display:flex;gap:12px;align-items:center;padding:12px;background:#f8f9fa;border-radius:6px;min-height:80px;overflow-x:auto}.timeline-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;flex-shrink:0;background:#fff;border:1px solid #e0e0e0;min-width:80px}.timeline-item:hover{border-color:#667eea;background:#f5f7ff}.timeline-item.active{border-color:#667eea;background:#667eea;box-shadow:0 0 0 3px #667eea33}.timeline-dot{width:16px;height:16px;border-radius:50%;border:2px solid #d0d0d0;background:#fff;flex-shrink:0}.timeline-dot.code_upload{border-color:var(--footprint-code-upload-dark);background:var(--footprint-code-upload-light)}.timeline-dot.code_doc{border-color:var(--footprint-code-doc-dark);background:var(--footprint-code-doc-light)}.timeline-dot.manual{border-color:var(--footprint-manual-dark);background:var(--footprint-manual-light)}.timeline-dot.form_help{border-color:var(--footprint-form-help-dark);background:var(--footprint-form-help-light)}.timeline-dot.submit_copyright{border-color:var(--footprint-submit-copyright-dark);background:var(--footprint-submit-copyright-light)}.timeline-dot.accept_copyright{border-color:var(--footprint-accept-copyright-dark);background:var(--footprint-accept-copyright-light)}.timeline-dot.start_review{border-color:var(--footprint-start-review-dark);background:var(--footprint-start-review-light)}.timeline-dot.request_correct{border-color:var(--footprint-request-correct-dark);background:var(--footprint-request-correct-light)}.timeline-dot.submit_correct{border-color:var(--footprint-submit-correct-dark);background:var(--footprint-submit-correct-light)}.timeline-dot.authorized{border-color:var(--footprint-authorized-dark);background:var(--footprint-authorized-light)}.timeline-label{font-size:12px;font-weight:600;color:#333;text-align:center;line-height:1.2}.timeline-date{font-size:10px;color:#999;text-align:center}.btn-add-node{width:40px;height:40px;border-radius:6px;border:2px dashed #667eea;background:#fff;color:#667eea;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;padding:0}.btn-add-node svg{width:20px;height:20px}.btn-add-node:hover{background:#f5f7ff;border-color:#667eea}.last-node-actions{padding:12px;background:#fff3e0;border-radius:6px;display:flex;gap:8px}.form-section{display:flex;flex-direction:column;gap:16px;padding-top:12px;border-top:1px solid #f0f0f0}.error-message{padding:12px;background:#ffebee;color:#c62828;border-radius:6px;font-size:14px;border-left:3px solid #c62828}.required{color:#f44336}.form-group select,.form-group input[type=date],.form-group textarea{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-group select:focus,.form-group input[type=date]:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.form-group select:disabled,.form-group input[type=date]:disabled{background:#f5f5f5;color:#999;cursor:not-allowed;opacity:.7}.form-group textarea{resize:vertical;min-height:100px}.char-count{font-size:12px;color:#999;text-align:right}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding:24px;border-top:1px solid #f0f0f0;background:#f8f9fa;border-radius:0 0 8px 8px}@media(max-width:480px){.add-footprint-modal{width:95%;max-height:95vh}.modal-header{padding:16px}.modal-content{padding:16px;gap:16px}.modal-actions{padding:16px;flex-direction:column-reverse}.timeline-nodes{min-height:60px}.timeline-item{min-width:70px;padding:6px 8px}.timeline-label{font-size:11px}.timeline-date{font-size:9px}}.part-b-container{margin-top:12px}.part-b-hint{margin:0 0 10px 8px;color:#64748b;font-size:.95rem}.part-b-hint-btn{background:none;border:none;padding:8px;color:#4f46e5;font-size:inherit;font-family:inherit;cursor:pointer;text-decoration:underline}.part-b-switch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;margin-left:8px}.part-b-choice-separator{color:#64748b;font-size:.95rem}.part-b-overview{display:grid;gap:12px}.part-b-card{border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;background:#f5f7ff}.part-b-card-title{font-weight:600;color:#0f172a;margin-bottom:10px}.part-b-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.part-b-status{color:#64748b;font-size:.95rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-container{background:#fff;border-radius:8px;box-shadow:0 4px 24px #00000026;display:flex;flex-direction:column;max-height:calc(100vh - 32px);width:100%}.modal-medium{max-width:810px}.modal-large{max-width:1200px;max-height:90vh}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.modal-title{margin:0;font-size:1.1rem;font-weight:600}.modal-body{overflow-y:auto;padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 20px;border-top:1px solid #e2e8f0}.dt-mermaid-wrap{position:relative;width:100%}.dt-mermaid{width:100%;overflow-x:auto;display:flex;justify-content:center;padding:4px 0}.dt-mermaid svg{max-width:100%;height:auto}.dt-mermaid svg .clickable{cursor:pointer}.dt-mermaid svg .clickable:hover{filter:brightness(.96)}.dt-end-overlay{position:absolute;background:transparent;border:none;padding:0;margin:0;cursor:pointer;border-radius:14px}.dt-end-overlay:hover{background:#0000000f}.dt-choices{display:flex;justify-content:center;gap:18px;margin-top:18px}.dt-choice-btn{padding:10px 40px;border-radius:999px;font-size:1rem;font-weight:600;font-family:inherit;border:2px solid #6366f1;background:#fff;color:#4f46e5;cursor:pointer;transition:background .15s}.dt-choice-btn:hover{background:#eef2ff}.dt-choice-btn.dt-choice-no{border-color:#94a3b8;color:#475569}.dt-choice-btn.dt-choice-no:hover{background:#f1f5f9}.dt-end-hint{text-align:center;margin:14px 0 0;font-size:.9rem;color:#4b587c}.dt-footnote{margin:14px auto 0;font-size:.85rem;color:#6b7280;background:#f8fafc;padding:12px 16px;border-radius:12px;border-left:4px solid #6366f1;max-width:480px}.dt-restart{display:block;margin:20px auto 0;background:none;border:none;padding:0;color:#6366f1;font-size:.9rem;font-family:inherit;cursor:pointer;text-decoration:underline}.dt-restart:hover{color:#4338ca}.task-progress{background:#fff;border:2px dashed #e5e7eb;border-radius:8px;padding:20px;margin-top:15px;display:flex;flex-direction:column;gap:12px}.progress-bar-container{width:100%;height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d}.progress-bar-fill{height:100%;transition:width .3s ease;border-radius:6px}.progress-info{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#6b7280}.progress-percent{font-size:1.2em;font-weight:600;color:#1f2937;min-width:45px}.progress-step{color:#6b7280;font-size:.95em;text-align:right;flex:1}.progress-message{color:#555;font-size:.9em;margin:0;line-height:1.5}.cancel-btn{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9em;transition:all .3s;max-width:150px;margin-top:5px}.cancel-btn:hover{background:#dc2626;transform:translateY(-2px)}.cost-summary{padding:15px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none;transition:background-color .2s}.cost-summary-toggle-tooltip{gap:10px}.summary-text{color:#333;font-size:.95em;margin-left:10px}.cost-breakdown-title{font-size:.9em;color:#666;line-height:1.6;margin:8px 0}.app-data-docx-container{display:flex;flex-direction:column;gap:20px}.app-section{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.app-section h3{margin:0 0 15px;font-size:1.1em;color:#333;border-bottom:2px solid #f59e0b;padding-bottom:10px;display:inline-block}.info-box{background:#fff;border-left:4px solid #f59e0b;padding:15px;border-radius:4px;margin:10px 0}.info-title{font-weight:600;color:#1f2937;margin:0 0 12px}.info-list{margin:0;padding-left:20px;line-height:1.8}.info-list li{margin-bottom:12px;color:#374151}.info-desc{display:block;font-size:.9em;color:#6b7280;margin-top:3px;margin-left:0}.upload-guide-docx{background:#fff;padding:15px;border-radius:4px;margin:10px 0}.upload-guide-docx input{display:block;padding:8px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;width:100%;max-width:300px}.upload-guide-docx input:hover{border-color:#f59e0b}.upload-guide-docx input:disabled{background:#f3f4f6;cursor:not-allowed}.upload-button-group{display:flex;flex-direction:column;gap:12px;margin-top:12px}.upload-success{margin-top:10px;padding:8px 12px;background:#dcfce7;border:1px solid #86efac;border-radius:4px;color:#166534;font-size:.9em}.btn-upload{margin-top:10px;padding:8px 16px;background:#f59e0b;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500;transition:all .3s}.upload-message{padding:12px;background:#dcfce7;border:1px solid #86efac;border-radius:4px;color:#166534;font-size:.9em;margin:10px 0}.card-hint a{color:#06c;text-decoration:none}.card-hint a:hover{text-decoration:underline}.error-message{color:#dc2626;background:#fee2e2;border:1px solid #fecaca;padding:12px;border-radius:4px;font-size:.9em;margin-top:15px}hr{border:none;border-top:1px solid #e5e7eb;margin:15px 0}.project-detail{max-height:calc(100vh - 166px);padding-right:24px;overflow-y:auto}@media(max-width:768px){.project-detail{max-height:none;padding-right:0}}.cost-breakdown-container{background:#fff;border:1px solid #60a5fa;border-radius:4px;margin:10px 0;overflow:hidden}.cost-summary{padding:15px;cursor:pointer;display:flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none;transition:background-color .2s}.cost-summary:hover{background-color:#eff6ff}.toggle-icon{font-size:.8em;color:#1e40af;min-width:16px;text-align:center}.summary-text{flex:1;color:#333;font-size:.95em}.summary-text strong{color:#2563eb;font-weight:600}.cost-breakdown{border-top:1px solid #60a5fa;padding:15px;background-color:#f0f9ff;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cost-items{margin:10px 0;padding:0 0 0 20px;list-style:none}.cost-items li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e0f2fe;color:#555}.cost-items li:last-child{border-bottom:none}.cost-items li.total{font-weight:600;color:#2563eb;font-size:1.05em;margin-top:5px}.cost-value{font-weight:500;color:#1e40af}.cost-value.total{color:#1e40af}.project-detail-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;margin-top:2px}.project-detail-header h2{margin:0}.project-detail-header .mode-label{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:600}.project-detail-header .mode-label.cloud{background:#e8f5e9;color:#2e7d32}.project-detail-header .mode-label.local{background:#fff3e0;color:#ef6c00}.local-mode-hint{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:12px 16px;color:#5d4037;font-size:.95rem;margin:12px 0}.local-mode-hint a{color:#337aca;text-decoration:none}.local-mode-hint a:hover{text-decoration:underline}.advance-entry-link{margin-left:12px;font-size:.95rem;font-weight:600;color:#7c3aed;text-decoration:none;transition:all .3s ease;padding:2px 4px;border-radius:4px}.advance-entry-link:hover{text-decoration:none;color:#7c3aed;font-size:1.05rem}.tabs-container{display:none;margin-bottom:24px}@media(min-width:769px){.tabs-container{display:block}}.section-mobile-header{display:block;margin-bottom:16px}.section-mobile-header h3{margin:0 0 12px;font-size:1.1rem;font-weight:600}.section-mobile-header hr{margin:12px 0;border:none;border-top:1px solid #e5e7eb}@media(min-width:769px){.section-mobile-header{display:none}}.part-section{display:none}.part-section.active{display:block;animation:fadeIn .2s ease-in}@media(max-width:768px){.part-section{display:block!important;margin-bottom:24px}.part-section.part-stat{display:none!important}.part-a-section,.part-b-section,.part-c-section{margin-bottom:0}}.part-a-switch,.part-c-switch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;margin-left:8px}.part-a-content,.part-c-content{min-height:120px}.project-meta-info{background:#f8f9fa;padding:16px;border-radius:8px;margin-bottom:20px}.project-meta-item{display:flex;gap:12px;margin-bottom:8px}.project-meta-item:last-child{margin-bottom:0}.project-meta-label{font-weight:600;color:#333;max-width:200px;min-width:100px;flex-shrink:0}.project-meta-value{color:#666;flex:1;min-width:0}.project-meta-value.json-value{display:flex;align-items:flex-start;gap:8px;position:relative}.project-meta-json-text{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.65rem;white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:8px 12px;max-height:6rem;overflow:hidden;position:relative}.project-meta-json-text.truncated:after{content:"...";position:absolute;right:12px;bottom:8px;background:#fff;padding-left:4px;color:#666}.project-meta-copy-btn{position:absolute;width:32px;border:1px solid #e0e0e0;right:2px;top:2px;height:32px;background:#fff;color:#334155;cursor:pointer}.project-meta-copy-btn:hover{background:#f1f5f9}@media(max-width:768px){.project-meta-item{flex-direction:column;gap:4px}.project-meta-label{width:auto;max-width:none;min-width:auto}}@media(max-width:480px){.project-meta-item{font-size:13px}}.steps-nav{display:flex;gap:8px;padding:12px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0}.step-nav-item{flex:1;text-align:center;padding:12px 14px;border-radius:8px;font-size:.95rem;color:#64748b;background:#fff;border:1px solid transparent;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.step-nav-item:hover:not(.active):not(.disabled){background:#f1f5f9;border-color:#dbeafe}.step-nav-item.active{background:#eff6ff;color:#2563eb;border-color:#bfdbfe;font-weight:600}.step-nav-item.disabled{opacity:.5;cursor:not-allowed}.home-content{display:flex;padding:0 12px}.home-sidebar{width:280px;flex-shrink:0;background:#f8f9fa;overflow:hidden;display:flex;flex-direction:column;transition:width .3s ease}.loading-sidebar{padding:20px;text-align:center;color:#999}.home-main{flex:1;overflow-y:auto;padding:24px 32px;background:#fff}.error-message-container{padding:12px 16px;background:#ffebee;color:#c62828;border-radius:6px;margin-bottom:20px;display:flex;align-items:center;gap:12px}.error-message{font-size:14px}.error-message-container button{color:#000}.main-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:#999}.main-empty-state h2{margin:0 0 12px;color:#333;font-size:24px}.main-empty-state p{margin:0 0 20px;color:#666}.upload-placeholder{background:#f5f7ff;border:2px dashed #667eea;border-radius:8px;padding:40px 60px;margin-top:20px}.upload-placeholder p{margin:0;color:#667eea}.status-badge{display:flex;align-items:center;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.active{background:#c8e6c9;color:#2e7d32}.status-badge.processing{background:#fff9c4;color:#f57f17}.status-badge.expired{background:#ffcdd2;color:#c62828}.status-badge.completed{background:#e8f5e9;color:#2e7d32}.part-a-section h3,.part-b-section h3,.part-c-section h3{margin:0 0 16px;font-size:18px;color:#333}.doc-actions{display:flex;gap:12px}.no-doc{text-align:center;padding:24px;background:#f5f7ff;border-radius:8px;color:#666}.coming-soon{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:32px 24px;text-align:center}.coming-soon p{margin:0;color:#666}.coming-soon p:first-child{font-size:18px;font-weight:600;color:#333;margin-bottom:8px}.coming-soon .description{font-size:13px;color:#999}.home-main::-webkit-scrollbar{width:8px}.home-main::-webkit-scrollbar-track{background:transparent}.home-main::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px}.home-main::-webkit-scrollbar-thumb:hover{background:#bbb}@media(max-width:1024px){.home-sidebar{width:240px}.home-main{padding:16px 24px}}@media(max-width:768px){.home-content{flex-direction:column;overflow:scroll}.home-sidebar{width:100%;max-height:40vh;border-bottom:1px solid #e0e0e0;border-right:none}.home-main{padding:16px}.status-badge{align-self:flex-start}.doc-actions{flex-direction:column}}@media(max-width:480px){.home-main{padding:12px}.project-detail-header h2{font-size:20px}}.sitemap-content{max-width:1400px;margin:0 auto;padding:40px 30px;background:#fff;border-radius:10px;box-shadow:0 10px 40px #0003}.info-box{background-color:#e8f4f8;border-left:4px solid #667eea;padding:15px;margin-bottom:30px;border-radius:5px;line-height:1.6;color:#333;font-size:14px}.sitemap-section{margin-bottom:40px}.sitemap-section h2{color:#667eea;font-size:20px;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #667eea;display:flex;align-items:center;gap:10px;font-weight:600}.badge{display:inline-block;background-color:#667eea;color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;margin-left:5px;font-weight:500}.sitemap-section ul{list-style:none;padding:0;margin:0}.sitemap-section li{margin-bottom:12px}.sitemap-section a{color:#333;text-decoration:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:5px;transition:all .3s ease}.sitemap-section a:hover{background-color:#f5f5f5;color:#667eea;transform:translate(5px)}.icon{font-size:18px;flex-shrink:0}.description{font-size:12px;color:#666;margin-top:3px;margin-left:28px;line-height:1.4}.back-to-home{text-align:center;margin-top:30px}.back-to-home a{display:inline-block;padding:10px 20px;background-color:#667eea;color:#fff;text-decoration:none;border-radius:5px;transition:all .3s ease;font-weight:500}.back-to-home a:hover{background-color:#764ba2;transform:scale(1.05)}@media(max-width:768px){.sitemap-header{padding:30px 20px}.sitemap-header h1{font-size:24px;margin-bottom:8px}.sitemap-header p{font-size:12px}.sitemap-content{padding:30px 20px}.sitemap-section h2{font-size:18px;margin-bottom:12px;padding-bottom:8px}.info-box{padding:12px;margin-bottom:25px;font-size:13px}}@media(max-width:480px){.sitemap-header{padding:25px 15px}.sitemap-header h1{font-size:20px;margin-bottom:6px}.sitemap-content{padding:20px 15px}.sitemap-section{margin-bottom:30px}.sitemap-section h2{font-size:16px;margin-bottom:10px;gap:8px}.icon{font-size:16px}.description{font-size:11px;margin-left:24px}.back-to-home a{padding:8px 15px;font-size:14px}}.purchase-details{padding:2rem 1rem}.purchase-container{max-width:800px;margin:0 auto;background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:2rem}.purchase-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:1rem;font-weight:500;color:#333}.input-group{display:flex;gap:.5rem;align-items:center}.btn-adjust{width:40px;height:40px;border:1px solid #ddd;background-color:#f8f8f8;border-radius:4px;cursor:pointer;font-size:1.2rem;font-weight:700;color:#333;transition:all .2s ease}.btn-adjust:hover:not(:disabled){background-color:#e8e8e8;border-color:#bbb}.btn-adjust:disabled{opacity:.5;cursor:not-allowed;color:#fff}.btn-adjust:active:not(:disabled){transform:scale(.95)}.credits-input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;text-align:center;font-weight:500}.credits-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.credits-input::placeholder{color:#999}.credits-input::-webkit-outer-spin-button,.credits-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.credits-input[type=number]{-moz-appearance:textfield}.error-message{color:#f44;font-size:.9rem;margin-top:.25rem}.credit-info-message{color:#999;font-size:.85rem;font-style:italic}.price-info{background-color:#f9f9f9;border:1px solid #eee;border-radius:4px;padding:1.5rem}.price-row{display:flex;align-items:baseline;gap:.5rem;font-size:1rem;color:#333}.price-row.total{font-size:1.2rem;font-weight:700;color:#ff6b00;margin-top:.5rem}.price-label{color:#666;flex:0 0 auto}.price-value{font-size:1.2rem;font-weight:700;color:#ff6b00}.price-row.total .price-value{font-size:1.4rem}.price-unit{font-size:.85rem;color:#999;flex:1;text-align:right}.divider{height:1px;background-color:#ddd;margin:1rem 0}.btn-purchase{padding:.875rem 2rem;background-color:#ff6b00;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:1rem}.btn-purchase:hover:not(:disabled){background-color:#f50;box-shadow:0 2px 8px #ff6b004d}.btn-purchase:active:not(:disabled){transform:scale(.98)}.btn-purchase:disabled{opacity:.6;cursor:not-allowed}.purchase-info{background-color:#f0f7ff;border-left:4px solid #1890ff;padding:1rem;border-radius:4px}.purchase-info h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:#0050b3}.purchase-info ul{margin:0;padding-left:1.5rem;list-style-type:disc}.purchase-info li{margin-bottom:.4rem;font-size:.85rem;color:#0050b3;line-height:1.4}@media(max-width:600px){.purchase-container{padding:1.5rem 1rem}.purchase-title{font-size:1.5rem;margin-bottom:1.5rem}.price-row{font-size:.95rem}.price-value{font-size:1.1rem}.price-row.total .price-value{font-size:1.5rem}.btn-purchase{padding:.75rem 1.5rem;font-size:.95rem}}.credit-history-main{flex:1;padding-bottom:40px;overflow-y:auto}.credit-history-container{padding:2rem;max-width:1200px;margin:0 auto;position:relative}.pending-order-section{background:linear-gradient(135deg,#fff5e6,#ffe6cc);border:2px solid #ffa500;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.pending-order-content{display:flex;justify-content:space-between;align-items:center}.pending-order-info h3{margin:0 0 1rem;color:#c60;font-size:1.2rem}.pending-order-info p{margin:.5rem 0;color:#333}.pending-time{font-size:.85rem;color:#666}.btn-continue-purchase{background-color:#f90;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;white-space:nowrap;transition:background-color .3s}.btn-continue-purchase:hover{background-color:#e68a00}.purchase-more-btn{position:absolute;top:3rem;right:3rem}.purchase-more-btn button{color:orange;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background-color:#fff;border:2px solid #ffa500;box-shadow:0 4px 12px #00000026;cursor:pointer;transition:all .3s ease}.purchase-more-btn button:hover{background-color:#fff5e6;box-shadow:0 6px 16px #ffa5004d;transform:scale(1.1)}.history-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:2rem}.history-section h2{margin-top:0;margin-bottom:1.5rem;color:#333;font-size:1.5rem}.filter-bar{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;color:#555;margin-right:.5rem}.filter-group select{padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;background-color:#fff;cursor:pointer;transition:border-color .2s}.filter-group select:hover{border-color:#999}.filter-group select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #0066cc1a}.history-table-wrapper,.project-group{margin-bottom:1.5rem}.group-title{margin:1rem 0 .5rem;color:#06c;font-size:1rem;border-bottom:2px solid #e0e0e0;padding-bottom:.5rem}.history-table{width:100%;border-collapse:collapse}.history-table thead{background-color:#f5f5f5}.history-table th{padding:.75rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd;font-size:.95rem}.history-table td{padding:.75rem;border-bottom:1px solid #eee;color:#555}.history-table tbody tr:hover{background-color:#f9f9f9}.history-table tbody tr.type-purchase{border-left:3px solid #4caf50}.history-table tbody tr.type-expense{border-left:3px solid #f44336}.history-table tbody tr.type-granted{border-left:3px solid #2196f3}.type-cell{text-align:center}.type-badge{display:inline-block;padding:.3rem .6rem;border-radius:3px;font-size:.85rem;font-weight:500;color:#fff}.type-badge.type-purchase{background-color:#4caf50}.type-badge.type-expense{background-color:#f44336}.type-badge.type-granted{background-color:#2196f3}.credits-cell{text-align:right;font-weight:600}.credits-cell .positive{color:#4caf50}.credits-cell .negative{color:#f44336}.balance-cell{text-align:right;font-size:.95rem}.time-cell{font-size:.9rem;color:#666;white-space:nowrap}.detail-cell{text-align:center}.detail-popover{position:relative;display:inline-block}.btn-detail{background:none;border:none;cursor:pointer;font-size:1rem;padding:0;transition:transform .2s}.btn-detail:hover{transform:scale(1.2)}.popover-content{position:absolute;top:100%;right:0;background:#fff;border:1px solid #ddd;border-radius:4px;padding:.75rem;margin-top:.5rem;z-index:10;box-shadow:0 4px 8px #0000001a;min-width:250px}.detail-content p{margin:.3rem 0;font-size:.85rem;color:#555}.detail-content strong{color:#333}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.page-info{color:#666;font-size:.95rem}.btn-page{padding:.5rem 1rem;background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.95rem;transition:all .2s}.btn-page:hover:not(:disabled){background-color:#e0e0e0;border-color:#999}.btn-page:disabled{opacity:.5;cursor:not-allowed}.loading,.empty-state,.error{text-align:center;padding:2rem;color:#666;font-size:1rem}.error{color:#d32f2f;background-color:#ffebee;border:1px solid #f44336;border-radius:4px}@media(max-width:768px){.credit-history-container{padding:1rem}.pending-order-content,.filter-bar{flex-direction:column;gap:1rem}.history-table{font-size:.9rem}.history-table th,.history-table td{padding:.5rem}.pagination{flex-direction:column;gap:.5rem}}.contact-container{max-width:800px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 8px #1f263f14;padding:40px}.contact-container h1{font-size:2rem;color:#2c3550;margin:0 0 30px;text-align:center}.contact-info{display:flex;flex-direction:column;gap:30px}.contact-section{border-bottom:1px solid rgba(102,126,234,.14);padding-bottom:30px}.contact-section:last-child{border-bottom:none;padding-bottom:0}.contact-section h2{font-size:1.5rem;color:#337aca;margin:0 0 20px}.contact-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px}.contact-method{padding:20px;background:#667eea0f;border-radius:8px;border-left:4px solid #337aca}.contact-method h3{margin:0 0 12px;font-size:1.1rem;color:#2c3550}.contact-method a{color:#337aca;text-decoration:none;font-size:1rem;word-break:break-all;transition:color .2s ease}.contact-method a:hover{color:#0052a3;text-decoration:underline}.contact-method p{margin:0 0 12px;color:#666;font-size:.95rem}.wechat-notice{color:#666;font-size:.9rem;margin-bottom:15px}.wechat-qrcode{display:flex;justify-content:center;margin-top:15px}.wechat-qrcode img{max-width:100%;height:auto;border-radius:8px;border:1px solid rgba(102,126,234,.14)}@media(max-width:768px){.contact-container{padding:20px}.contact-container h1{font-size:1.5rem;margin-bottom:20px}.contact-section h2{font-size:1.2rem}.contact-methods{grid-template-columns:1fr}}.faq-content{padding:40px 20px}.faq-container{max-width:900px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 8px 30px #1f263f14;padding:36px}.faq-container h1{margin:0;font-size:2rem;color:#2c3550}.faq-subtitle{margin:10px 0 28px;color:#5a6786}.faq-list{display:grid;gap:16px}.faq-item{border:1px solid rgba(102,126,234,.18);border-radius:10px;padding:18px 20px;background:linear-gradient(180deg,#667eea0f,#fff 60%)}.faq-item h2{margin:0 0 10px;color:#337aca;font-size:1.08rem}.faq-item p{margin:0;line-height:1.6;color:#2c3550}.faq-backlink{margin-top:26px}.faq-backlink a{color:#337aca;text-decoration:none;font-weight:600}.faq-backlink a:hover{text-decoration:underline}@media(max-width:768px){.faq-content{padding:20px 12px}.faq-container{padding:20px}.faq-container h1{font-size:1.6rem}}.copy-btn,.help-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:#337aca;background:#f0f7ff;border:1px solid #cfe4ff;border-radius:8px;cursor:pointer;transition:background .2s ease,color .2s ease}.copy-btn:hover,.help-btn:hover{background:#337aca;color:#fff}.pricing-card{max-width:900px;margin:20px auto;background:#fff;border-radius:12px;box-shadow:0 8px 28px #1f263f14;padding:36px}.pricing-card h1{margin:0 0 26px;font-size:2rem;color:#2c3550}.pricing-block+.pricing-block{margin-top:24px}.pricing-block h2{margin:0 0 10px;color:#337aca;font-size:1.2rem}.pricing-block p{margin:0;color:#2c3550;line-height:1.7}.pricing-block a{color:#337aca;text-decoration:none;font-weight:600}.pricing-block a:hover{text-decoration:underline}.pricing-block ul{margin:0;padding-left:20px;color:#2c3550;line-height:1.8}.invite-link-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding:12px 14px;background:#fff;border:1px dashed #337aca;border-radius:8px}.invite-link-label{color:#55627a;font-size:.95rem;white-space:nowrap}.invite-link{flex:1 1 auto;color:#337aca;font-weight:600;word-break:break-all;text-decoration:none}.invite-link:hover{text-decoration:underline}.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:#337aca;background:#f0f7ff;border:1px solid #cfe4ff;border-radius:8px;cursor:pointer;transition:background .2s ease,color .2s ease}.copy-btn:hover{background:#337aca;color:#fff}.copy-toast{color:#2e9d5e;font-size:.9rem;font-weight:600}.invite-login-tip{margin:14px 0 0;color:#55627a;font-size:.95rem}@media(max-width:768px){.pricing-content{padding:20px 12px}.pricing-card{padding:20px}.pricing-card h1{font-size:1.6rem}}.login-content{display:flex;align-items:center;justify-content:center}.login-card{width:min(560px,100%);background:#fff;border-radius:14px;box-shadow:0 14px 38px #1f263f1f;padding:30px;border:1px solid rgba(102,126,234,.16)}.login-card h1{margin:0;color:#24324a;font-size:1.8rem}.login-subtitle{margin:12px 0 18px;color:#55627d;line-height:1.6}.login-action{margin:16px 0 14px}.agreement-text{margin:0;color:#5a6786;font-size:.92rem;line-height:1.7}.agreement-text a{color:#337aca;text-decoration:none;font-weight:600;margin:0 4px}.agreement-text a:hover{text-decoration:underline}@media(max-width:600px){.login-content{padding:18px 10px}.login-card{padding:20px}.login-card h1{font-size:1.5rem}}.user-search-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#333}.user-search-container{position:relative}.user-search-input-wrapper{display:flex;gap:8px}.user-search-input{flex:1;padding:10px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.user-search-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.user-search-btn{padding:10px 16px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.user-search-btn:hover:not(:disabled){background-color:#0050b3}.user-search-btn:disabled{background-color:#bfbfbf;cursor:not-allowed}.user-search-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d9d9d9;border-top:none;border-radius:0 0 4px 4px;max-height:300px;overflow-y:auto;z-index:10;box-shadow:0 2px 8px #00000026;margin-top:-1px}.user-search-dropdown-item{padding:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.user-search-dropdown-item:last-child{border-bottom:none}.user-search-dropdown-item:hover{background-color:#f5f5f5}.user-search-info{display:flex;flex-direction:column;gap:4px}.user-search-id{font-size:12px;color:#999}.user-search-credits{font-weight:600;color:#1890ff}.user-management{display:flex;flex-direction:column;gap:20px}.user-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.um-search-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.um-search-bar>.user-search-section{flex:1 1 auto;min-width:200px;max-width:400px}.um-search-bar>.user-search-section .user-search-container,.um-search-bar>.user-search-section .user-search-input-wrapper,.um-search-bar>.user-search-section .user-search-input{width:100%}.um-total-info{font-size:14px;color:#666;margin-left:auto}.um-table-wrapper{border:1px solid #e8e8e8;border-radius:8px;overflow:auto}.um-table{width:100%;border-collapse:collapse;font-size:14px}.um-table thead{background-color:#fafafa}.um-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;border-bottom:1px solid #e8e8e8;white-space:nowrap}.um-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.um-table tbody tr:hover{background-color:#f5f5f5}.um-table tbody tr:last-child td{border-bottom:none}.um-avatar-cell{width:60px}.um-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid #e8e8e8}.um-avatar-placeholder{width:40px;height:40px;border-radius:50%;background-color:#1890ff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600}.um-user-id{font-family:monospace;font-size:13px;color:#666}.um-link{color:#1890ff;text-decoration:underline;cursor:pointer}.um-link:hover{color:#0050b3}.um-name{font-weight:500;color:#333}.um-token{font-family:monospace;font-size:13px;color:#666;word-break:break-all}.um-referral-id{font-family:monospace;font-size:13px;color:#666}.um-credits{font-family:monospace;color:#1890ff;font-weight:500}.um-api-key{text-align:left}.um-api-key-yes{color:#52c41a;font-weight:500}.um-api-key-no{color:#999}.um-date{font-size:13px;color:#666;white-space:nowrap}.um-loading-cell,.um-empty-cell{text-align:center;padding:40px 16px;color:#999}.um-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 0}.um-page-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.um-page-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.um-page-btn:disabled{opacity:.5;cursor:not-allowed}.um-page-info{font-size:14px;color:#666}@media(max-width:768px){.um-search-bar{flex-direction:column;gap:8px}.um-search-bar>.user-search-section{max-width:none;width:100%}}.project-management{display:flex;flex-direction:column;gap:20px}.project-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.pm-filters{display:flex;flex-direction:column;flex-wrap:wrap;gap:16px;background:#f9f9f9;padding:16px;border-radius:8px;border:1px solid #e8e8e8}.pm-filter-group{display:flex;flex-direction:column;gap:4px}.pm-filter-group label{font-size:12px;font-weight:500;color:#666}.pm-input{padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;width:200px;transition:border-color .2s}.pm-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.pm-filter-checkbox{flex-direction:row;align-items:center;gap:6px}.pm-filter-checkbox label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.pm-filter-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.pm-filter-actions{margin-left:auto}.pm-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.pm-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.pm-btn:disabled{opacity:.5;cursor:not-allowed}.pm-btn-primary{background-color:#1890ff;color:#fff;border-color:#1890ff}.pm-btn-primary:hover:not(:disabled){background-color:#0050b3;border-color:#0050b3;color:#fff}.pm-btn-danger{background-color:#ff4d4f;color:#fff;border-color:#ff4d4f}.pm-btn-danger:hover:not(:disabled){background-color:#d9363e;border-color:#d9363e;color:#fff}.pm-error{background-color:#fff2f0;border:1px solid #ffccc7;color:#d4380d;padding:12px 16px;border-radius:4px;font-size:14px}.pm-success{background-color:#f6ffed;border:1px solid #b7eb8f;color:#274e0f;padding:12px 16px;border-radius:4px;font-size:14px}.pm-batch-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px}.pm-batch-left{display:flex;align-items:center;gap:16px}.pm-checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.pm-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.pm-selected-count{font-size:14px;color:#666}.pm-table-wrapper{overflow-x:auto;border:1px solid #e8e8e8;border-radius:4px}.pm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:900px}.pm-table thead{background-color:#fafafa}.pm-table th{padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #f0f0f0;white-space:nowrap}.pm-table td{padding:12px;border-bottom:1px solid #f0f0f0;white-space:nowrap}.pm-table tbody tr:hover{background-color:#fafafa}.pm-table tbody tr.expired-row{background-color:#fff2f0}.pm-table tbody tr.expired-row:hover{background-color:#ffe0de}.pm-link-btn{background:none;border:none;color:#1890ff;cursor:pointer;font-size:14px;padding:0;text-decoration:underline}.pm-link-btn:hover{color:#0050b3}.pm-link{color:#1890ff;text-decoration:underline;cursor:pointer}.pm-link:hover{color:#0050b3}.pm-link-btn-deleted,.pm-link-btn-deleted:hover{color:#999;background:none!important;text-decoration:none;border:none;cursor:not-allowed}.pm-link-btn-deleted:after{content:" (已删除)";font-size:12px;color:#999}.pm-status{display:inline-block;padding:2px 8px;border-radius:2px;font-size:12px;font-weight:500}.status-active{background-color:#f6ffed;color:#274e0f}.status-expired{background-color:#fff2f0;color:#d4380d}.pm-no-data{text-align:center;padding:40px;color:#999}.pm-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px}.pm-page-info{font-size:14px;color:#666}.pm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.pm-modal{background:#fff;border-radius:8px;width:100%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.pm-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e8e8e8}.pm-modal-header h3{margin:0;font-size:18px}.pm-close-btn{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.pm-close-btn:hover{background-color:#f5f5f5;color:#333}.pm-modal-body{padding:20px;overflow-y:auto}.pm-loading{text-align:center;padding:40px;color:#999}.pm-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:24px}.pm-detail-item{display:flex;flex-direction:column;gap:2px}.pm-detail-item.full-width{grid-column:1 / -1}.pm-detail-item label{font-size:12px;color:#999;font-weight:500}.pm-detail-item span{font-size:14px;color:#333}.pm-images-section{margin-bottom:24px}.pm-images-section h4{font-size:16px;margin-bottom:12px;color:#333}.pm-images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.pm-image-card{border:1px solid #e8e8e8;border-radius:4px;overflow:hidden;text-align:center;padding:8px}.pm-image-thumb{width:100%;height:100px;object-fit:cover;border-radius:2px}.pm-image-placeholder{width:100%;height:100px;display:flex;align-items:center;justify-content:center;font-size:32px;background:#f5f5f5}.pm-image-name{font-size:12px;color:#666;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pm-image-size{font-size:11px;color:#999}.pm-meta-section{margin-bottom:16px}.pm-meta-section h4{font-size:16px;margin-bottom:12px;color:#333}.pm-meta-pre{background:#f5f5f5;padding:12px;border-radius:4px;font-size:12px;overflow-x:auto;max-height:300px;overflow-y:auto}.pm-selected-user{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e6f7ff;border:1px solid #91d5ff;border-radius:4px}.pm-selected-user-info{display:flex;flex-direction:column;gap:2px}.pm-selected-user-info strong{font-size:14px;color:#0050b3}.pm-selected-user-id{font-size:12px;color:#1890ff}.pm-clear-user-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#1890ff;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.pm-clear-user-btn:hover{color:#0050b3}.order-management{display:flex;flex-direction:column;gap:20px}.order-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.om-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;background:#f9f9f9;padding:16px;border-radius:8px;border:1px solid #e8e8e8}.om-filter-group{display:flex;flex-direction:column;gap:4px}.om-filter-group label{font-size:12px;font-weight:500;color:#666}.om-filter-group.om-inline{flex-direction:row;align-items:center;gap:8px}.om-filter-group.om-inline label{margin-bottom:0}.om-select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;width:160px;background:#fff;cursor:pointer;transition:border-color .2s}.om-select:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.om-selected-user{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e6f7ff;border:1px solid #91d5ff;border-radius:4px}.om-selected-user-info{display:flex;flex-direction:column;gap:2px}.om-selected-user-info strong{font-size:14px;color:#0050b3}.om-selected-user-id{font-size:12px;color:#1890ff}.om-clear-user-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#1890ff;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.om-clear-user-btn:hover{color:#0050b3}.om-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.om-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.om-btn:disabled{opacity:.5;cursor:not-allowed}.om-table-wrapper{border:1px solid #e8e8e8;border-radius:8px;overflow:auto}.om-table{width:100%;border-collapse:collapse;font-size:14px}.om-table thead{background-color:#fafafa}.om-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;border-bottom:1px solid #e8e8e8;white-space:nowrap}.om-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.om-table tbody tr:hover{background-color:#f5f5f5}.om-table tbody tr:last-child td{border-bottom:none}.om-order-no{font-family:monospace;font-size:13px;color:#333;font-weight:500}.om-user-id{font-family:monospace;font-size:13px;color:#666}.om-link{color:#1890ff;text-decoration:underline;cursor:pointer}.om-link:hover{color:#0050b3}.om-amount{font-family:monospace;color:#1890ff;font-weight:500}.om-credits{font-family:monospace;color:#666}.om-date{font-size:13px;color:#666;white-space:nowrap}.om-paid-summary{display:flex;justify-content:flex-end;gap:24px;padding:12px 16px;background:#f6ffed;border-top:1px solid #e8e8e8;font-size:14px;color:#333;font-weight:500}.om-paid-summary span{white-space:nowrap}.om-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.om-status-badge.status-pending{background-color:#fff7e6;color:#d48806;border:1px solid #ffd591}.om-status-badge.status-completed{background-color:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.om-spin{animation:om-spin 1s linear infinite}@keyframes om-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.om-status-badge.status-cancelled{background-color:#f5f5f5;color:#666;border:1px solid #d9d9d9}.om-loading-cell,.om-empty-cell{text-align:center;padding:40px 16px;color:#999}.om-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 0}.om-page-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.om-page-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.om-page-btn:disabled{opacity:.5;cursor:not-allowed}.om-page-info{font-size:14px;color:#666}.credit-management{display:flex;flex-direction:column;gap:24px}.error-message{background-color:#fff2f0;border:1px solid #ffccc7;color:#d4380d;padding:12px 16px;border-radius:4px;font-size:14px}.success-message{background-color:#f6ffed;border:1px solid #b7eb8f;color:#274e0f;padding:12px 16px;border-radius:4px;font-size:14px}.user-info-section{background:#fff;border-radius:8px;padding:16px;border:1px solid #e8e8e8;position:relative}.user-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.close-btn{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background-color:#f5f5f5;color:#333}.close-btn:active{background-color:#e8e8e8}.user-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.user-detail{display:flex;flex-direction:column;gap:4px}.user-detail label{font-size:12px;color:#999;font-weight:500;text-transform:uppercase}.user-detail span{font-size:16px;color:#333;font-weight:500}.credit-amount{font-size:18px;color:#52c41a;font-weight:700}.ledger-section{background:#fff;border-radius:8px;padding:16px;border:1px solid #e8e8e8;overflow-x:auto}.ledger-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px}.ledger-header h3{margin:0}.ledger-controls label{display:flex;min-width:120px;align-items:center;gap:8px;font-size:14px;color:#666}.ledger-controls label span{font-weight:500;color:#333;min-width:40px}.ledger-limit-select{padding:6px 10px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;background-color:#fff;cursor:pointer}.ledger-limit-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.ledger-table{width:100%;border-collapse:collapse;font-size:14px}.ledger-table thead{background-color:#fafafa;border-bottom:2px solid #f0f0f0}.ledger-table th{padding:12px;text-align:left;font-weight:600;color:#333;white-space:nowrap}.ledger-table td{padding:12px;border-bottom:1px solid #f0f0f0}.ledger-table tbody tr:hover{background-color:#fafafa}.type-badge{display:inline-block;padding:4px 8px;border-radius:2px;font-size:12px;font-weight:500;white-space:nowrap}.type-purchase{background-color:#e6f7ff!important;color:#0050b3}.type-expense{background-color:#fff2f0!important;color:#d4380d}.type-granted{background-color:#f6ffed!important;color:#274e0f}.ledger-table .positive{color:#52c41a;font-weight:500}.ledger-table .negative{color:#ff4d4f;font-weight:500}.remark{color:#999;font-size:13px}.loading,.no-data{text-align:center;padding:40px;color:#999;font-size:14px}.ledger-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding-top:16px;margin-top:16px;border-top:1px solid #f0f0f0}.ledger-page-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.ledger-page-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.ledger-page-btn:disabled{opacity:.5;cursor:not-allowed}.ledger-page-info{font-size:14px;color:#666}.grant-section{background:#f9f9f9;border-radius:8px;padding:16px;border:1px solid #e8e8e8}.grant-form{display:flex;flex-direction:column;gap:16px;max-width:400px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:14px;font-weight:500;color:#333}.form-input{padding:10px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.form-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-textarea{resize:vertical;font-family:inherit;line-height:1.5}.char-count{font-size:12px;color:#999;font-weight:400;margin-left:4px}.submit-btn{padding:10px 24px;background-color:#52c41a;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;align-self:flex-start}.submit-btn:hover:not(:disabled){background-color:#389e0d}.submit-btn:disabled{background-color:#bfbfbf;cursor:not-allowed}.empty-state{text-align:center;padding:60px 20px;color:#999;font-size:14px}.pd-admin{display:flex;flex-direction:column;gap:14px}.pd-admin-header h2{margin:0;font-size:22px}.pd-admin-header p{margin:6px 0 0;color:#667085}.pd-admin-default{display:flex;align-items:center;gap:12px}.pd-admin-default input{width:140px;height:36px;border:1px solid #d3d9e3;border-radius:8px;padding:0 10px}.pd-admin-default.description-row input{width:min(100%,560px)}.pd-admin-table{width:100%;border-collapse:collapse}.pd-admin-table th,.pd-admin-table td{border-bottom:1px solid #eef1f5;padding:10px;text-align:left}.pd-admin-table th{font-size:13px;color:#475467}.pd-admin-table td{font-size:14px;color:#1f2937}.pd-admin-table input{width:130px;height:34px;border:1px solid #d3d9e3;border-radius:8px;padding:0 10px}.pd-admin-info{color:#667085}.pd-admin-error{border:1px solid #fda29b;background:#fef3f2;color:#b42318;border-radius:8px;padding:10px 12px}.pd-admin-success{border:1px solid #86efac;background:#f0fdf4;color:#166534;border-radius:8px;padding:10px 12px}.pd-admin-actions{display:flex;justify-content:flex-end}.pd-admin-btn{border:none;background:#0f63a9;color:#fff;border-radius:8px;padding:10px 16px;cursor:pointer}.pd-admin-btn:disabled{opacity:.65;cursor:not-allowed}@media(max-width:720px){.pd-admin-table{display:block;overflow-x:auto}}.task-management{display:flex;flex-direction:column;gap:20px}.task-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.tm-filters{display:flex;flex-direction:column;flex-wrap:wrap;gap:16px;background:#f9f9f9;padding:16px;border-radius:8px;border:1px solid #e8e8e8}.tm-filter-group{display:flex;flex-direction:column;gap:4px}.tm-filter-group label{font-size:12px;font-weight:500;color:#666}.tm-filter-group.tm-inline{flex-direction:row;align-items:center;gap:8px}.tm-filter-group.tm-inline label{margin-bottom:0}.tm-selected-filter{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e6f7ff;border:1px solid #91d5ff;border-radius:4px}.tm-selected-filter-info{display:flex;flex-direction:column;gap:2px}.tm-selected-filter-info strong{font-size:14px;color:#0050b3}.tm-selected-filter-id{font-size:12px;color:#1890ff}.tm-clear-filter-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#1890ff;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.tm-clear-filter-btn:hover{color:#0050b3}.tm-input,.tm-select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .2s}.tm-input:focus,.tm-select:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.tm-select{cursor:pointer;width:100px}.tm-select.tm-select-wide{width:180px}.tm-pagination-controls{display:flex;justify-content:flex-end;background:none;padding:0;border:none}.tm-error{background-color:#fff2f0;border:1px solid #ffccc7;color:#d4380d;padding:12px 16px;border-radius:4px;font-size:14px}.tm-table-wrapper{overflow-x:auto;border:1px solid #e8e8e8;border-radius:8px}.tm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:1000px}.tm-table thead{background-color:#fafafa}.tm-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #f0f0f0;white-space:nowrap}.tm-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.tm-table tbody tr:hover{background-color:#f5f5f5}.tm-table tbody tr:last-child td{border-bottom:none}.tm-task-id{font-family:monospace;font-size:12px;color:#666;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-project-id,.tm-user-id{font-family:monospace;font-size:13px;color:#666}.tm-project-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-link-btn{background:none;border:none;color:#1890ff;cursor:pointer;font-size:14px;padding:0;text-decoration:underline;font-family:monospace}.tm-link-btn:hover{color:#0050b3}.tm-project-name-link{font-family:inherit;text-align:left;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-message{max-width:240px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#666;font-size:13px;line-height:1.5;white-space:normal}.tm-date{font-size:13px;color:#666;white-space:nowrap}.tm-date-secondary{font-size:12px;color:#999}.tm-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;border:1px solid transparent}.tm-status-badge.status-created{background-color:#f5f5f5;color:#666;border-color:#d9d9d9}.tm-status-badge.status-started{background-color:#e6f7ff;color:#0050b3;border-color:#91d5ff}.tm-status-badge.status-completed{background-color:#f6ffed;color:#389e0d;border-color:#b7eb8f}.tm-status-badge.status-failed{background-color:#fff2f0;color:#d4380d;border-color:#ffccc7}.tm-status-badge.status-canceled{background-color:#fff7e6;color:#d48806;border-color:#ffd591}.tm-cancel-btn{padding:4px 10px;border:1px solid #ff4d4f;background:#fff;color:#ff4d4f;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s}.tm-cancel-btn:hover{background:#ff4d4f;color:#fff}.tm-loading-cell,.tm-empty-cell{text-align:center;padding:40px 16px;color:#999}.tm-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 0}.tm-page-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.tm-page-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.tm-page-btn:disabled{opacity:.5;cursor:not-allowed}.tm-page-info{font-size:14px;color:#666}.project-search-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#333}.project-search-container{position:relative}.project-search-input-wrapper{display:flex;gap:8px}.project-search-input{flex:1;padding:10px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.project-search-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.project-search-btn{padding:10px 16px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.project-search-btn:hover:not(:disabled){background-color:#0050b3}.project-search-btn:disabled{background-color:#bfbfbf;cursor:not-allowed}.project-search-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d9d9d9;border-top:none;border-radius:0 0 4px 4px;max-height:300px;overflow-y:auto;z-index:10;box-shadow:0 2px 8px #00000026;margin-top:-1px}.project-search-dropdown-item{padding:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.project-search-dropdown-item:last-child{border-bottom:none}.project-search-dropdown-item:hover{background-color:#f5f5f5}.project-search-info{display:flex;flex-direction:column;gap:4px}.project-search-id{font-size:12px;color:#999}.notifications-management{display:flex;flex-direction:column;gap:20px}.notifications-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.nm-alert{padding:12px 16px;border-radius:4px;font-size:14px;animation:slideDown .3s ease-out}.nm-alert-success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.nm-alert-error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.nm-alert-info{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.nm-container{display:grid;grid-template-columns:1fr 1fr;gap:24px}.nm-left-panel{display:flex;flex-direction:column;gap:20px}.nm-header{display:flex;justify-content:space-between;align-items:center}.nm-header h3,.nm-header h4{font-size:16px;font-weight:600;margin:0;color:#333}.nm-users-list{border:1px solid #f0f0f0;border-radius:4px;max-height:400px;overflow-y:auto}.nm-user-item{padding:12px 16px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s}.nm-user-item:last-child{border-bottom:none}.nm-user-item:hover{background-color:#f5f5f5}.nm-user-item.active{background-color:#e6f7ff;border-left:3px solid #1890ff;padding-left:13px}.nm-user-name{font-weight:500;color:#333;margin-bottom:4px}.nm-user-meta{font-size:12px;color:#999}.nm-online-badge{display:inline-block;padding:4px 8px;background-color:#52c41a;color:#fff;font-size:12px;border-radius:3px}.nm-empty-state{padding:40px 20px;text-align:center;color:#999;font-size:14px}.nm-search-section{display:flex;flex-direction:column;gap:8px;padding-top:20px;border-top:1px solid #f0f0f0}.nm-search-section h4{font-size:14px;font-weight:600;color:#666;margin:0}.nm-right-panel{display:flex;flex-direction:column;gap:20px}.nm-selected-user{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f0f5ff;border:1px solid #b3d8ff;border-radius:4px;gap:12px}.nm-selected-id{display:block;font-size:12px;color:#999;margin-top:4px}.nm-clear-btn{background:none;border:none;font-size:18px;color:#999;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nm-clear-btn:hover{color:#333}.nm-form{display:flex;flex-direction:column;gap:16px}.nm-form-group{display:flex;flex-direction:column;gap:8px}.nm-form-group label{font-weight:500;font-size:14px;color:#333}.nm-form-group input,.nm-form-group textarea{padding:10px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .3s}.nm-form-group input:focus,.nm-form-group textarea:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.nm-form-group input:disabled,.nm-form-group textarea:disabled{background-color:#fafafa;color:#999;cursor:not-allowed}.nm-form-group textarea{resize:vertical;min-height:120px}.nm-char-count{font-size:12px;color:#999;text-align:right}.nm-submit-btn{padding:12px 24px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s;margin-top:8px}.nm-submit-btn:hover:not(:disabled){background-color:#0050b3}.nm-submit-btn:disabled{background-color:#bfbfbf;cursor:not-allowed}@media(max-width:1200px){.nm-container{grid-template-columns:1fr}}@media(max-width:768px){.notifications-management{padding:0}.nm-header{flex-direction:column;align-items:flex-start;gap:12px}}.book-management{display:flex;flex-direction:column;gap:20px}.book-management h2{font-size:24px;font-weight:600;margin:0;color:#333}.bm-filters{display:flex;flex-direction:column;flex-wrap:wrap;gap:16px;background:#f9f9f9;padding:16px;border-radius:8px;border:1px solid #e8e8e8}.bm-filter-group{display:flex;flex-direction:column;gap:4px}.bm-filter-group label{font-size:12px;font-weight:500;color:#666}.bm-filter-group.bm-inline{flex-direction:row;align-items:center;gap:8px}.bm-filter-group.bm-inline label{margin-bottom:0}.bm-selected-filter{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e6f7ff;border:1px solid #91d5ff;border-radius:4px}.bm-selected-filter-info{display:flex;flex-direction:column;gap:2px}.bm-selected-filter-info strong{font-size:14px;color:#0050b3}.bm-selected-filter-id{font-size:12px;color:#1890ff}.bm-clear-filter-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#1890ff;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.bm-clear-filter-btn:hover{color:#0050b3}.bm-input,.bm-select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .2s}.bm-input:focus,.bm-select:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.bm-select{cursor:pointer;width:100px}.bm-input.bm-input-wide{width:180px}.bm-pagination-controls{display:flex;justify-content:flex-end;background:none;padding:0;border:none}.bm-error{background-color:#fff2f0;border:1px solid #ffccc7;color:#d4380d;padding:12px 16px;border-radius:4px;font-size:14px}.bm-table-wrapper{overflow-x:auto;border:1px solid #e8e8e8;border-radius:8px}.bm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:1000px}.bm-table thead{background-color:#fafafa}.bm-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #f0f0f0;white-space:nowrap}.bm-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.bm-table tbody tr:hover{background-color:#f5f5f5}.bm-table tbody tr:last-child td{border-bottom:none}.bm-user-id{font-family:monospace;font-size:13px;color:#666}.bm-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.bm-authors{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666}.bm-count{font-family:monospace;font-size:13px;text-align:center}.bm-date{font-size:13px;color:#666;white-space:nowrap}.bm-link-btn{background:none;border:none;color:#1890ff;cursor:pointer;font-size:14px;padding:0;text-decoration:underline;font-family:monospace}.bm-link-btn:hover{color:#0050b3}.bm-loading-cell,.bm-empty-cell{text-align:center;padding:40px 16px;color:#999}.bm-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 0}.bm-page-btn{padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.bm-page-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.bm-page-btn:disabled{opacity:.5;cursor:not-allowed}.bm-page-info{font-size:14px;color:#666}.admin-container{display:flex;flex-direction:row}.admin-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.2rem;color:#666}.admin-sidebar{width:140px;flex-shrink:0}.admin-tabs{display:flex;flex-direction:column;gap:8px}.admin-tab{padding:10px 12px;border-radius:6px;text-decoration:none;color:#333;font-size:13px;transition:background-color .2s}.admin-tab:hover{background-color:#f0f0f0}.admin-tab.active{background-color:#e6f7ff;color:#1890ff;font-weight:500}.admin-content{flex:1;background-color:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 2px #0000000d;overflow:auto}@media(max-width:768px){.admin-container{flex-direction:column}.admin-sidebar{width:100%}.admin-tabs{flex-direction:row;flex-wrap:wrap;gap:6px}.admin-tab{flex:1 1 auto;min-width:80px;text-align:center;padding:8px 10px;font-size:12px}.admin-content{padding:16px}}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:#00000073;z-index:9999;display:flex;justify-content:center;align-items:center}.spinner{border:4px solid rgba(255,255,255,.35);border-top:4px solid #ffffff;border-radius:50%;width:48px;height:48px;animation:spin 1s linear infinite}html.loading-active,body.loading-active{overflow:hidden}.footprint-card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:16px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:12px}.footprint-card:hover{border-color:#d0d0d0;box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.card-header{display:flex;gap:10px;align-items:flex-start}.user-avatar-section{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:0}.user-avatar,.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;flex-shrink:0}.user-avatar{object-fit:cover}.user-avatar-placeholder{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.user-info-card{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.user-name{margin:0;font-size:13px;font-weight:600;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-id{display:none}.card-title{margin:0;font-size:16px;font-weight:600;color:#1a1a1a;line-height:1.4;flex:0 0 42%;max-width:42%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-type-badge{display:none}.card-node{display:flex;gap:8px;font-size:12px;flex-wrap:wrap;align-items:center}.node-value{color:#06c;font-weight:600;background:#f0f8ff;padding:2px 6px;border-radius:3px}.node-date{color:#999;font-size:11px}.card-stats{display:flex;gap:12px;font-size:12px;color:#666;flex-wrap:wrap}.stat-item{display:flex;align-items:center;gap:4px}.card-footer{display:none}@media(max-width:1024px){.footprint-card{border-radius:6px;padding:12px}}@media(max-width:768px){.footprint-card{padding:10px;gap:10px}.user-avatar,.user-avatar-placeholder{width:32px;height:32px}.card-title{font-size:14px;flex-basis:48%;max-width:48%}.card-stats{font-size:11px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.create-topic-modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;width:90%;max-width:80vw;min-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease;gap:0}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;border-bottom:1px solid #f0f0f0}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:#1a1a1a}.modal-close-btn{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.modal-close-btn:hover:not(:disabled){color:#333}.modal-close-btn:disabled{cursor:not-allowed;opacity:.6}.modal-form{padding:10px}.form-group{margin-bottom:20px;position:relative}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:#1a1a1a}.form-input,.form-textarea{width:100%;padding:10px 12px;border:1px solid #e5e5e5;border-radius:6px;font-family:inherit;font-size:14px;color:#333;background:#fff;transition:border-color .2s ease;box-sizing:border-box}.form-input:focus,.form-textarea:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #0066cc1a}.form-input:disabled,.form-textarea:disabled{background:#fafafa;cursor:not-allowed;opacity:.6}.form-textarea{resize:vertical;min-height:120px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.char-count{position:absolute;right:12px;bottom:8px;font-size:12px;color:#999}.form-error{background:#fff5f5;border:1px solid #f5b6b0;border-radius:6px;padding:12px 16px;margin-bottom:16px}.form-error p{margin:0;font-size:13px;color:#d9534f}.image-upload-area{border:2px dashed #e5e5e5;border-radius:6px;background:#fafafa;min-height:120px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.upload-button{background:none;border:none;padding:20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;transition:all .2s ease}.upload-button:hover:not(:disabled) .upload-text{color:#06c}.upload-button:hover:not(:disabled){color:#06c}.upload-button:disabled{cursor:not-allowed;opacity:.6}.upload-text{font-size:14px;font-weight:500;color:#333;transition:color .2s ease}.upload-hint{display:block;font-size:12px;color:#999;margin-top:4px}.image-preview-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;width:100%}.image-preview{max-width:100%;max-height:250px;border-radius:6px;object-fit:contain}.remove-image-btn{padding:8px 16px;background:#f0f0f0;border:1px solid #e5e5e5;border-radius:4px;font-size:13px;font-weight:500;color:#666;cursor:pointer;transition:all .2s ease}.remove-image-btn:hover:not(:disabled){background:#e5e5e5;color:#333}.remove-image-btn:disabled{cursor:not-allowed;opacity:.6}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #f0f0f0}@media(max-width:768px){.create-topic-modal{width:95%;max-height:95vh}.modal-form{padding:16px}.form-group{margin-bottom:16px}.modal-actions{flex-direction:column}.btn{width:100%}}.footprints-container{display:flex;gap:20px;max-width:1400px;margin:0 auto}.footprints-list-column{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d;width:40%;max-width:400px;flex-shrink:0}.section-header{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.section-header h2{margin:0 0 4px;font-size:20px;font-weight:700;color:#1a1a1a}.section-subtitle{margin:0;font-size:12px;color:#999}.footprints-cards{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.empty-state{text-align:center;padding:60px 20px;background:#fafafa;border-radius:8px;border:1px dashed #e5e5e5}.empty-state h3{margin:0 0 8px;font-size:16px;font-weight:600;color:#1a1a1a}.empty-state p{margin:0;font-size:13px;color:#999}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding-top:16px;border-top:1px solid #f0f0f0}.pagination-btn{padding:8px 16px;border:1px solid #e5e5e5;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;color:#666;transition:all .2s ease}.pagination-btn:hover:not(:disabled){border-color:#06c;color:#06c;background:#f0f8ff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:12px;color:#999;min-width:120px;text-align:center}.error-message-container{background:#fff5f5;border:1px solid #f5b6b0;border-radius:8px;padding:12px 16px;margin-bottom:16px}.error-message{margin:0;font-size:12px;color:#d9534f}.comments-stream-column{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d;flex:1;position:sticky;top:20px}.comments-stream{display:flex;flex-direction:column;gap:12px}.floating-action-button{position:fixed;bottom:82px;right:32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:28px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #667eea66;transition:all .3s ease;display:flex;align-items:center;justify-content:center;z-index:100}.floating-action-button:hover{transform:scale(1.1);box-shadow:0 6px 16px #667eea99;color:#2e2e2e}.floating-action-button:active{transform:scale(.95)}@media(max-width:1024px){.footprints-container{flex-direction:column}.footprints-list-column{width:100%;max-width:none}.comments-stream-column{position:static;max-height:none}}@media(max-width:768px){.footprints-main-content,.footprints-list-column,.comments-stream-column{padding:12px}.floating-action-button{width:48px;height:48px;font-size:24px;bottom:20px;right:20px}.footprints-list-column{display:none}.footprints-container{flex-direction:column}}@media(max-width:480px){.pagination{flex-wrap:wrap;justify-content:space-between}.pagination-btn{flex:1;min-width:80px}.page-info{width:100%;order:3}}.timeline-comment{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:16px;margin-bottom:12px;transition:all .3s ease}.timeline-comment:hover{box-shadow:0 2px 8px #00000014;border-color:#d0d0d0}.comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.author-info{display:flex;gap:10px;flex:1}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.author-details{display:flex;flex-direction:column;gap:4px}.author-name{font-weight:600;color:#1a1a1a;font-size:14px}.node-info{font-size:12px;font-weight:500}.node-info span{padding:2px 6px;border-radius:4px}.stats-title{font-size:12px;color:#666;text-decoration:none}.stats-title.clickable{cursor:pointer;color:#06c}.stats-title.clickable:hover{text-decoration:underline}.comment-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:#999;flex-shrink:0;justify-content:right}.floor-number{font-weight:600;color:#666;background:#f5f5f5;padding:2px 8px;border-radius:4px}.timestamp{color:#999}.delete-btn{background:none;border:none;color:#999;cursor:pointer;font-size:16px;padding:0;line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.delete-btn:hover{color:#d9534f;background:#fff5f5}.comment-content{margin-left:46px;margin-bottom:12px}.image-container{margin-top:8px;max-width:100%}.image-preview-button{background:none;border:none;padding:0;margin:0;cursor:zoom-in;display:inline-block;max-width:100%}.image-preview-button:hover{opacity:.95}.comment-image{max-width:100%;max-height:300px;border-radius:6px;border:1px solid #e5e5e5;display:block}.image-modal-image{display:block;margin:0 auto;max-width:90%;max-height:85vh;border-radius:6px;object-fit:contain;box-shadow:0 4px 24px #0000004d}.comment-footer{margin-left:46px;display:flex;gap:16px;font-size:12px;color:#999}.stats{display:flex;gap:8px}.like-btn{padding:0;border:none;background:none;display:flex;align-items:center;color:#06c;cursor:pointer;gap:4px}.like-btn:hover{box-shadow:none}.like-btn:disabled{opacity:.6;cursor:not-allowed;background:none}.delete-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-modal{background:#fff;border-radius:8px;padding:24px;max-width:320px;box-shadow:0 4px 16px #00000026;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.delete-confirm-modal p{margin:0 0 16px;color:#333;font-size:14px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-actions .cancel-btn,.confirm-actions .confirm-btn{padding:8px 16px;border-radius:4px;border:1px solid #ddd;font-size:12px;cursor:pointer;transition:all .2s ease}.confirm-actions .cancel-btn{background:#fff;color:#333}.confirm-actions .cancel-btn:hover{background:#f5f5f5}.confirm-actions .confirm-btn{background:#d9534f;color:#fff;border-color:#d9534f}.confirm-actions .confirm-btn:hover{background:#c9302c;border-color:#c9302c}@media(max-width:640px){.timeline-comment{padding:12px}.comment-header{flex-direction:column}.comment-meta{width:100%}.comment-content,.comment-footer{margin-left:0}.avatar,.avatar-placeholder{width:32px;height:32px}}.footprint-comments-section{display:flex;flex-direction:column;flex:1;gap:0}.comments-list{flex:1;overflow-y:auto;padding-right:8px;margin-bottom:16px}.comments-list::-webkit-scrollbar{width:6px}.comments-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.comments-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.comments-list::-webkit-scrollbar-thumb:hover{background:#999}.empty-comments{padding:40px 16px;text-align:center;color:#999;font-size:14px}.comment-input-section{border-top:1px solid #e5e5e5;padding:16px;background:#fff}.comment-textarea-wrapper{position:relative;display:flex;flex-direction:column}.comment-textarea{width:100%;padding:14px 14px 28px;border:1px solid #d1d5db;border-radius:10px;font-family:inherit;font-size:14px;line-height:1.5;resize:none;min-height:90px;transition:border-color .2s ease,box-shadow .2s ease}.comment-textarea:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1f}.comment-textarea:disabled{background-color:#f5f5f5;cursor:not-allowed;color:#999}.char-count{position:absolute;right:12px;bottom:10px;color:#9ca3af;font-size:11px;font-weight:500;line-height:1;pointer-events:none}.image-preview{position:relative;width:fit-content;max-width:220px;border-radius:10px;overflow:hidden;background-color:#f5f5f5;border:1px solid #e5e5e5}.image-preview img{width:100%;height:auto;display:block;max-height:160px;object-fit:cover}.clear-image-btn{position:absolute;top:6px;right:6px;width:26px;height:26px;border:none;border-radius:50%;background-color:#000000a6;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.clear-image-btn:hover:not(:disabled){background-color:#000000d9}.clear-image-btn:disabled{background-color:#0006;cursor:not-allowed}.comment-input-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}.input-toolbar{display:flex;align-items:center;flex:1}.image-upload-label{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;color:#4b5563;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.image-upload-label:hover{color:#06c;background-color:#eff6ff;border-color:#bfdbfe}.image-upload-label:disabled,input[disabled]~.image-upload-label,.image-upload-label:has(input:disabled){color:#9ca3af;background-color:#f9fafb;border-color:#e5e7eb;cursor:not-allowed}.login-prompt{text-align:center;padding:32px 16px;background-color:#f9f9f9;border-radius:8px;border:1px dashed #e5e5e5}.login-prompt p{margin:0 0 12px;color:#666;font-size:14px}.login-btn{padding:8px 24px;background-color:#06c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.login-btn:not(:disabled):hover{background-color:#0052a3}.login-btn:disabled{background-color:#ccc;cursor:not-allowed}@media(max-width:768px){.footprint-comments-section{gap:0}.comments-list{margin-bottom:12px}.comment-input-section{padding:12px}.comment-textarea{min-height:80px;padding:12px}.comment-input-footer{gap:10px}.input-toolbar{gap:12px}.image-upload-label{padding:7px 10px;font-size:12px}.submit-btn{padding:8px 18px;font-size:13px}.image-preview{max-width:180px}}@media(max-width:768px){.timeline-section{padding:20px 15px}.timeline-title{font-size:14px;margin-bottom:15px}.vertical-timeline{gap:15px}.timeline-item-box{gap:12px}.timeline-dot{width:16px;height:16px}.node-type{font-size:12px}}.footprint-detail-container{display:grid;grid-template-columns:250px 1fr;gap:30px;padding:8px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;min-height:80vh;overflow:hidden}.loading-container,.error-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:20px}.timeline-section{padding:30px 20px;background:#f5f7ff;border-right:1px solid #e0e7ff;overflow-y:auto}.timeline-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:20px;display:flex;align-items:center;gap:8px}.timeline-content{display:flex;flex-direction:column}.empty-timeline{text-align:center;color:#999;font-size:14px;padding:40px 10px}.vertical-timeline{position:relative;display:flex;flex-direction:column;gap:20px}.timeline-item-box{display:flex;flex-direction:row;align-items:center;gap:16px;position:relative;padding:0 0 0 16px}.timeline-connector{position:absolute;left:24px;top:38px;width:2px;height:calc(100% + 20px);border-left:3px solid;border-color:inherit}.timeline-dot{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:2px solid;background:#fff;position:relative;z-index:2;margin-top:2px}.node-info{flex:1;padding:8px 0}.node-type{font-size:13px;font-weight:600;color:#1f2937;margin-bottom:2px}.node-date{font-size:12px;color:#999;margin-bottom:6px}.node-comment{font-size:12px;color:#666;background:#fff;padding:8px;border-radius:4px;border-left:2px solid #667eea;margin-top:6px;max-height:60px;overflow:hidden;text-overflow:ellipsis}.comments-section{display:flex;flex-direction:column;gap:20px;overflow-y:auto;position:relative}.comments-list{display:flex;flex-direction:column;gap:16px;min-height:200px}.empty-comments{flex:1;text-align:center;color:#999;font-size:14px;padding:60px 20px}.comment-item{padding:16px;background:#f8f9ff;border-radius:8px;border-left:3px solid #667eea;display:flex;flex-direction:column;gap:10px}.comment-item.author-comment{margin-right:0;background:#f0f4ff;border-left-color:#059669}.comment-item.user-comment{margin-left:0;background:#fafbff;border-left-color:#667eea}.comment-header{display:flex;gap:10px;align-items:flex-start}.comment-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,#667eea,#764ba2)}.comment-meta{flex:1;display:flex;flex-direction:row;gap:8px}.comment-author{font-size:13px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:6px}.author-badge{font-size:11px;background:#059669;color:#fff;padding:2px 6px;border-radius:3px;font-weight:500}.comment-node,.comment-time{font-size:12px;color:#999;margin-top:2px}.comment-content{font-size:14px;color:#333;line-height:1.5;word-wrap:break-word;white-space:pre-wrap}.comment-actions{display:flex;gap:12px;font-size:12px;color:#999;margin-top:4px}.like-count{cursor:pointer;transition:color .2s}.like-count:hover{color:#667eea}.comment-input-section{padding:20px;background:#f5f7ff;border-radius:8px;border:1px solid #e0e7ff;margin-top:auto}.comment-input-form{display:flex;flex-direction:column;gap:12px}.comment-textarea{width:100%;padding:12px;border:1px solid #e0e7ff;border-radius:6px;font-family:inherit;font-size:14px;resize:vertical;min-height:80px;max-height:200px;color:#333}.comment-textarea::placeholder{color:#999}.comment-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.comment-textarea:disabled{background:#eee;cursor:not-allowed}.comment-input-footer{display:flex;justify-content:space-between;align-items:center}.char-count{font-size:12px;color:#999}.submit-btn{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.submit-btn:hover:not(:disabled){background:#5568d3}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.login-prompt{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 20px;text-align:center}.login-prompt p{color:#666;font-size:14px}.login-btn{padding:10px 24px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.login-btn:hover{background:#5568d3}@media(max-width:1024px){.footprint-detail-container{grid-template-columns:200px 1fr;gap:20px}.timeline-section{padding:20px 15px}.comments-section{padding:20px}}@media(max-width:768px){.footprint-detail-container{grid-template-columns:1fr;max-height:none;min-height:auto}.timeline-section{border-right:none;border-bottom:1px solid #e0e7ff;max-height:none;padding:20px}.comments-section{max-height:none;padding:20px}.timeline-title{font-size:14px}.node-type{font-size:12px}.comment-item{padding:12px}.comment-header{gap:8px}.comment-avatar{width:28px;height:28px}.comment-author{font-size:12px}.comment-content{font-size:13px}}@media(max-width:480px){.footprint-detail-container{border-radius:0}.timeline-section,.comments-section{padding:15px}.comment-item{padding:10px}.comment-textarea{min-height:60px;font-size:13px}.node-comment{font-size:11px}}.topic-details-container{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:30px;padding:8px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;min-height:80vh;overflow:hidden}.loading-container,.error-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:400px;text-align:center;gap:20px}.error-container p{font-size:16px;color:#666}.error-container button{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.error-container button:hover{background:#5568d3}@media(max-width:768px){.topic-details-container{max-width:100%;gap:20px;padding:0 15px}.topic-header{padding:20px 15px}.topic-title{font-size:20px;margin-bottom:10px}.topic-description{font-size:13px}}.settings-content{flex:1;padding:40px 20px}.settings-card{max-width:900px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 8px 28px #1f263f14;padding:36px}.settings-card h1{margin:0 0 26px;font-size:2rem;color:#2c3550}.settings-block+.settings-block{margin-top:24px}.settings-block h2{margin:0 0 10px;color:#337aca;font-size:1.2rem}.settings-field-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.settings-input{flex:1;min-width:240px;border:1px solid #d6dfeb;border-radius:8px;padding:10px 12px;font-size:.95rem}.settings-input:focus{outline:none;border-color:#337aca;box-shadow:0 0 0 3px #337aca1f}.settings-input-meta{margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:12px}.settings-help{margin:0;color:#667089;font-size:.9rem}.settings-help.is-error{color:#d44949}.settings-char-count{color:#667089;font-size:.85rem;font-variant-numeric:tabular-nums}.settings-char-count.is-limit{color:#c47f09;font-weight:600}.settings-save-btn{border:1px solid #2b7dd2;border-radius:8px;background:#337aca;color:#fff;padding:10px 16px;cursor:pointer}.settings-save-btn:disabled{opacity:.7;cursor:not-allowed}.settings-credits{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#2c3550}.settings-link{color:#337aca;text-decoration:none;font-weight:600}.settings-link:hover{text-decoration:underline}.referral-block{background:linear-gradient(135deg,#f0f7ff,#e6f2ff);border:1px solid #cfe4ff;border-radius:10px;padding:22px}.settings-referral-list{margin:0;padding-left:20px;color:#2c3550;line-height:1.8}.settings-error{margin:10px 0 0;color:#d44949}.settings-success{margin:10px 0 0;color:#2e9d5e}.settings-revoke-btn{border:1px solid #d44949;border-radius:8px;background:#fff;color:#d44949;padding:10px 16px;cursor:pointer}.settings-revoke-btn:hover{background:#fff5f5}.settings-revoke-btn:disabled{opacity:.7;cursor:not-allowed}.api-key-status-row{display:flex;align-items:center;gap:8px;margin:12px 0;color:#2c3550}.api-key-status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:600}.api-key-status-badge.active{background:#e6f7ed;color:#2e9d5e}.api-key-status-badge.inactive{background:#f0f2f5;color:#667089}.api-key-actions{display:flex;gap:10px;flex-wrap:wrap}.api-key-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f263f80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.api-key-modal{background:#fff;border-radius:12px;box-shadow:0 12px 32px #1f263f33;padding:28px;max-width:560px;width:100%}.api-key-modal h2{margin:0 0 12px;color:#2c3550}.api-key-modal-warning{color:#d44949;margin:0 0 16px;font-size:.95rem}.api-key-display-box{background:#f5f7fa;border:1px solid #d6dfeb;border-radius:8px;padding:12px;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9rem;margin-bottom:20px}.api-key-modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}@media(max-width:768px){.settings-content{padding:20px 12px}.settings-card{padding:20px}.settings-card h1{font-size:1.6rem}}.chapters-modal-layout{display:grid;grid-template-columns:1fr 1fr;min-height:70vh;gap:20px}.chapters-selected-panel,.chapters-available-panel{border:1px solid #e2e8f0;border-radius:8px;padding:12px;min-height:280px}.chapters-selected-panel h4,.chapters-available-panel h4{margin:0 0 12px;font-size:1rem}.chapters-list{list-style:none;margin:0;padding:0;height:500px;overflow-y:auto}.chapter-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 8px;border-bottom:1px solid #f1f5f9}.chapter-item:last-child{border-bottom:none}.chapter-item.selected{background:#f0f9ff}.chapter-item.custom{background:#fff7ed}.chapter-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.chapter-name{font-weight:600;font-size:.95rem}.chapter-desc{font-size:.82rem;color:#64748b;line-height:1.3}.chapter-actions{display:flex;gap:4px;flex-shrink:0}.chapter-actions button,.chapter-item button{padding:4px 8px;font-size:.8rem;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:4px;cursor:pointer}.chapter-actions button:disabled{opacity:.5;cursor:not-allowed}.chapter-actions button:hover:not(:disabled),.chapter-item button:hover{background:#f1f5f9}.chapters-empty{color:#94a3b8;font-size:.9rem;margin:8px 0}.custom-chapter-form{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px}.custom-chapter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;font-size:.9rem;font-weight:600;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;cursor:pointer}.custom-chapter-toggle:hover{background:#f8fafc}.custom-chapter-toggle-icon{display:inline-flex;transition:transform .2s ease}.custom-chapter-toggle-icon.expanded{transform:rotate(180deg)}.custom-chapter-fields{display:flex;flex-direction:column;gap:8px;animation:custom-chapter-expand .2s ease}@keyframes custom-chapter-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-chapter-fields input,.custom-chapter-fields textarea{padding:8px 10px;border:1px solid #cbd5e1;border-radius:4px;font-size:.85rem;width:100%;box-sizing:border-box}.custom-chapter-fields button{align-self:flex-start}.chapters-modal-error{color:#dc2626;margin-top:12px;margin-bottom:0;font-size:.9rem}@media(max-width:768px){.chapters-modal-layout{grid-template-columns:1fr}}.download-docx-modal-body{display:flex;flex-direction:column;gap:12px}.download-docx-message{margin:0;font-size:1rem;color:#047857}.download-docx-modal-actions{display:flex;gap:10px;justify-content:flex-end;width:100%}.diagrams-editor-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.diagrams-editor-layout>.step-actions{grid-column:1 / -1;justify-content:flex-end}.diagrams-selected-panel,.diagrams-available-panel{border:1px solid #e2e8f0;border-radius:8px;padding:12px;min-height:280px}.diagrams-selected-panel h4,.diagrams-available-panel h4{margin:0 0 12px;font-size:1rem}.diagrams-list{list-style:none;margin:0;padding:0;overflow-y:auto}.diagram-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 8px;border-bottom:1px solid #f1f5f9}.diagram-item:last-child{border-bottom:none}.diagram-item.selected.generated{background:#f0fdf4}.diagram-item.selected.invalid-chapter{background:#fef2f2;border-left:3px solid #dc2626}.diagram-chapter-hint.invalid{color:#dc2626;background:#fee2e2}.diagram-info{display:flex;gap:10px;flex:1;min-width:0}.diagram-info.vertical{flex-direction:column;align-items:flex-start}.diagram-thumbnail{width:56px;height:56px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0;flex-shrink:0;background:#f8fafc}.diagram-thumbnail.large,.diagram-thumbnail-placeholder.large{width:224px;height:224px}.diagram-thumbnail.large{cursor:pointer}.diagram-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.diagram-name{font-weight:600;font-size:.95rem}.diagram-desc{font-size:.82rem;color:#64748b;line-height:1.3}.diagram-generated-hint{font-size:.75rem;color:#16a34a;background:#dcfce7;padding:2px 6px;border-radius:4px;align-self:flex-start}.diagram-thumbnail-placeholder{width:56px;height:56px;border-radius:6px;border:1px dashed #cbd5e1;background:#f8fafc;flex-shrink:0}.diagram-actions{display:flex;gap:4px;flex-shrink:0}.diagram-actions button{padding:4px 8px;font-size:.8rem;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:4px;cursor:pointer}.diagrams-empty{color:#94a3b8;font-size:.9rem;margin:8px 0}.diagrams-modal-error{color:#dc2626;margin-top:12px;margin-bottom:0;font-size:.9rem}.diagram-chapter-hint{font-size:.75rem;color:#475569;background:#f1f5f9;padding:2px 6px;border-radius:4px;align-self:flex-start}.diagram-chapter-hint.missing{color:#dc2626;background:#fee2e2}.diagrams-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.diagrams-modal{background:#fff;border-radius:8px;padding:20px;min-width:320px;max-width:90vw;box-shadow:0 10px 25px #00000026}.diagrams-modal h4{margin:0 0 16px;font-size:1rem}.diagrams-chapter-select{width:100%;padding:8px 10px;font-size:.9rem;border:1px solid #cbd5e1;border-radius:6px;margin-bottom:16px}.diagrams-modal-actions{display:flex;justify-content:flex-end;gap:8px}.diagrams-modal-actions button{padding:6px 12px;font-size:.85rem;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;cursor:pointer}.diagrams-modal-actions button:last-child{background:#2563eb;color:#fff;border-color:#2563eb}.diagrams-modal-actions button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.diagrams-editor-layout>.step-actions{display:flex;flex-direction:column;justify-content:center}.diagrams-editor-layout{grid-template-columns:1fr}.diagram-item{flex-direction:column;align-items:flex-start}.diagram-desc{text-wrap:auto}}.generate-design-docx-in-steps{display:flex;flex-direction:column;gap:16px;min-height:0;max-height:100%;overflow-y:auto}.step-panel{display:flex;flex-direction:column;gap:16px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.step-title{margin:0;font-size:1.1rem}.step-description{margin:0;color:#64748b;font-size:.9rem}.step-empty{margin:0;color:#94a3b8;font-size:.9rem}.step-error{color:#dc2626;margin:0;font-size:.9rem}.step-progress{margin-top:8px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-weight:600;color:#0f172a}.form-textarea{width:100%;min-height:120px;padding:12px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#0f172a;font-size:.95rem;resize:vertical}.form-textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #3b82f626}.form-hint{margin:0;color:#64748b;font-size:.85rem}.diagram-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.diagram-checklist-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fafafa}.diagram-checklist-item.ready{background:#f0fdf4;border-color:#bbf7d0}.diagram-checklist-item.missing{background:#fff7ed;border-color:#fed7aa}.diagram-checklist-info{display:flex;gap:12px;flex:1;min-width:0}.diagram-checklist-thumb,.diagram-checklist-thumb-placeholder{width:64px;height:64px;border-radius:6px;flex-shrink:0}.diagram-checklist-thumb{object-fit:cover;border:1px solid #e2e8f0}.diagram-checklist-thumb-placeholder{border:1px dashed #cbd5e1;background:#f1f5f9}.diagram-checklist-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.diagram-checklist-name{font-weight:600;font-size:.95rem}.diagram-checklist-desc{font-size:.82rem;color:#64748b;line-height:1.3}.diagram-checklist-status{font-size:.75rem;padding:2px 6px;border-radius:4px;align-self:flex-start}.diagram-checklist-status.ready{color:#16a34a;background:#dcfce7}.diagram-checklist-status.missing{color:#c2410c;background:#ffedd5}@media(max-width:640px){.steps-nav{flex-direction:column}.diagram-checklist-item{align-items:flex-start;flex-direction:column}}.design-chapters-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;margin-top:12px}.design-chapters-header button{display:flex}.step-actions{display:flex;gap:10px}.home-sidebar-toggle{position:relative}.home-sidebar-toggle span{position:absolute;bottom:10px;left:10px}.home-sidebar-toggle span button{width:32px;height:32px;border:1px solid #667eea;background:#667eea;cursor:pointer;display:flex;color:#fff}.home-sidebar-toggle span button:hover{border:1px solid #4a69f2;background:#4a69f2}.home-sidebar.wide{width:30%;min-width:300px}.home-sidebar.closed{width:54px;min-width:54px}.back-link{margin-left:10px;margin-top:6px;width:fit-content}.upload-images-container{display:flex;flex-direction:column;gap:12px}.images-grid-section{position:relative;border:1px solid #e5e7eb;border-radius:12px;padding:14px;background:#fff}.upload-mask{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-radius:12px;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.spinner{width:40px;height:40px;border:4px solid #f0f0f0;border-top:4px solid #0066cc;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-mask p{color:#333;font-size:.9rem;font-weight:500;margin:0}.images-grid-header{display:flex;align-items:center;justify-content:space-between}.images-grid-header h3{margin:0;color:#1f2937}.images-header-actions{display:flex;align-items:center}.upload-image-btn{border:1px solid #d1d5db;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#e8ebff;color:#334155;cursor:pointer}.upload-image-btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.upload-image-btn:disabled{opacity:.5;cursor:not-allowed}.images-empty{margin:0;color:#6b7280}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.image-card{position:relative;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#f8fafc}.delete-image-btn{position:absolute;top:8px;right:8px;border:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:#ffffffeb;color:#ef4444;cursor:pointer;z-index:2}.delete-image-btn:hover{background:#fee2e2}.image-preview-wrapper{position:relative;width:100%;height:120px;border-radius:8px;overflow:visible;background:#e2e8f0;display:flex;align-items:center;justify-content:center}.image-thumb{width:100%;height:100%;object-fit:fill;display:block}.image-thumb-fallback{color:#64748b;font-size:12px}.image-content-tooltip{position:absolute;top:-260px;left:50%;transform:translate(-50%) scale(.96);width:360px;max-height:250px;min-height:100px;opacity:0;pointer-events:none;background:#111827f2;color:#f8fafc;font-size:11px;line-height:1.5;padding:12px;overflow:auto;transition:opacity .2s ease,transform .2s ease;white-space:pre-wrap;word-break:break-word;border-radius:8px;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 25px #0000004d;z-index:100}.image-card:hover .image-content-tooltip{opacity:1;pointer-events:auto;transform:translate(-50%) scale(1)}.image-name{margin:10px 0 4px;font-weight:600;color:#1f2937;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-images-error{margin:10px 0 0;color:#dc2626;font-size:13px}.local-image-hint{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:10px 14px;color:#5d4037;font-size:.9rem}.image-status{margin:4px 0 0;font-size:12px;font-weight:600}.image-status.ready,.image-status .ready{color:#2e7d32}.image-status.pending{color:#ef6c00}@media(max-width:768px){.images-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.guide-docx-container,.guide-step-panel{display:flex;flex-direction:column;gap:16px}.guide-section{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:14px}.guide-section h3{margin:0 0 12px;color:#1f2937}.guide-message{margin:10px 0 0;color:#15803d}.guide-error{margin:10px 0 0;color:#dc2626}.btn-download{background:#10b981!important;color:#fff!important;margin-top:8px;max-width:150px}.btn-download:hover{background:#059669!important;box-shadow:0 4px 12px #10b9814d!important}.task-completed{background:#ecfdf5;border:1px solid #d1fae5;border-radius:8px;padding:12px;margin:12px 0;color:#047857}.task-completed p{margin:0 0 10px;font-weight:500}.additional-prompt-field{margin:12px 0}.additional-prompt-label{display:block;font-size:14px;font-weight:600;color:#1f2937;margin-bottom:4px}.additional-prompt-sublabel{font-size:12px;color:#6b7280;margin:0 0 8px}.textarea-wrapper{position:relative;width:100%}.textarea-wrapper textarea{width:100%;min-height:120px;max-height:240px;padding:10px 12px 28px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;line-height:1.5;color:#1f2937;background:#fff;resize:vertical;box-sizing:border-box;font-family:inherit}.textarea-wrapper textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.textarea-wrapper textarea:disabled{background:#f3f4f6;cursor:not-allowed}.char-count{position:absolute;right:10px;bottom:8px;font-size:12px;color:#9ca3af;pointer-events:none}.local-readiness-box{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:12px 14px;margin:12px 0;color:#5d4037}.local-readiness-ready{margin:0;color:#2e7d32}.local-readiness-title{margin:0 0 8px;font-weight:600}.local-readiness-list{margin:0;padding-left:20px}.local-readiness-list li{margin-bottom:4px}.config-doc-display{margin-top:8px;padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#fcfdff}.config-doc-section+.config-doc-section{margin-top:14px}.config-doc-h1,.config-doc-h2{margin:0;color:#0f172a;line-height:1.4}.config-doc-h1{font-size:1.15rem}.config-doc-h2{font-size:1.02rem}.config-doc-paragraph{margin:8px 0 0;color:#334155;line-height:1.7;white-space:pre-wrap}.config-doc-quote{margin:10px 0 0;padding:8px 12px;border-left:3px solid #93c5fd;background:#f8fbff;color:#1f2937}.config-shot-row{margin-top:10px;display:flex;align-items:flex-start;gap:8px}.config-shot-row .config-doc-quote{margin:0;flex:1}.config-doc-heading-wrap{flex:1}.config-shot-actions{position:relative;flex:0 0 auto}.config-shot-menu-btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.config-shot-actions:hover .config-shot-dropdown,.config-shot-actions:focus-within .config-shot-dropdown{display:block}.config-shot-dropdown{display:none;position:absolute;left:0;top:26px;z-index:10;min-width:130px;background:#fff;border:1px solid #dbe1ea;border-radius:8px;box-shadow:0 8px 24px #0f172a14;padding:6px}.config-shot-action-btn{width:100%;border:0;background:transparent;text-align:left;font-size:.88rem;padding:8px;border-radius:6px;color:#1f2937;cursor:pointer}.config-shot-action-btn:hover:not(:disabled){background:#f1f5f9}.config-shot-action-btn:disabled,.config-shot-menu-btn:disabled{opacity:.6;cursor:not-allowed}.config-doc-uploaded{display:block;margin-top:6px;color:#0f766e;font-size:.88rem}.config-doc-empty{margin:8px 0 0;color:#64748b}.config-doc-unmatched{margin-top:12px}.config-doc-expand-wrap{margin-top:14px;display:flex;align-items:center;gap:10px;justify-content:center}.config-doc-expand-btn{padding:8px 84px}.config-doc-expand-hint{margin:0;color:#64748b;font-size:.9rem}.chapter-edit-modal-body{display:flex;flex-direction:column;gap:8px}.chapter-edit-label{font-weight:600;color:#0f172a}.chapter-edit-textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:.95rem;line-height:1.5;color:#1f2937;resize:vertical}.chapter-edit-textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa33}.chapter-edit-count{margin:0;font-size:.85rem;color:#64748b;text-align:right}.generate-docx-branch-buttons{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px}.advance-source-code-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-top:16px}.advance-source-code-card h3{margin-top:0;margin-bottom:12px}.advance-source-code-card .card-hint{color:#4b5563;font-size:.9rem;margin:6px 0}.advance-source-code-card .button-group{margin-top:16px;display:flex;gap:12px}.advance-source-code-card .info-message{color:#2563eb;margin-top:12px}.advance-source-code-card .error-message{color:#dc2626;margin-top:12px}.advance-source-code-card .task-completed{margin-top:12px}.advance-source-code-card .btn-download{display:inline-flex;align-items:center;gap:6px;margin-top:8px}.predict-main{flex:1;padding:24px 16px 36px}.predict-grid{max-width:1260px;margin:0 auto;display:grid;grid-template-columns:260px minmax(320px,1fr) 260px;gap:18px}.predict-card,.promo-card{background:#fff;border-radius:14px;border:1px solid #ebedf2;box-shadow:0 10px 28px #0d2b540f}.predict-card{padding:28px}.predict-card h1{margin:0;font-size:30px;color:#123355;letter-spacing:.5px}.predict-subtitle{margin:10px 0 24px;color:#57657a;line-height:1.6}.form-row{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.form-row label{font-size:14px;font-weight:600;color:#2f4562}.form-row input,.form-row select{height:42px;border:1px solid #d6dde8;border-radius:10px;padding:0 12px;font-size:15px;color:#2a3f59;background-color:#fff}.form-row input:focus,.form-row select:focus{outline:none;border-color:#2a93d5;box-shadow:0 0 0 3px #2a93d526}.result-card{margin-top:8px;background:linear-gradient(145deg,#103e70,#1a5ea1);color:#fff;border-radius:12px;padding:18px}.result-label{font-size:13px;opacity:.8}.result-date{margin-top:8px;font-size:32px;font-weight:700;letter-spacing:1px}.result-correction-date{margin-top:8px;font-size:28px;font-weight:700;letter-spacing:1px}.result-meta{margin-top:8px;font-size:14px;opacity:.92}.result-meta.light{opacity:.82}.result-line{margin-top:10px;font-size:15px}.result-line strong{font-weight:700}.predict-submit-btn{width:100%;height:44px;border:none;border-radius:10px;background:linear-gradient(145deg,#f08a4b,#df5f2f);color:#fff;font-weight:700;font-size:15px;cursor:pointer;margin-bottom:14px}.predict-submit-btn:hover{filter:brightness(1.03)}.baseline-note{margin-top:10px;font-size:12px;color:#607087}.predict-error{background:#fff1f0;border:1px solid #ffc8c2;color:#cf4232;border-radius:8px;padding:10px 12px;margin-bottom:16px}.predict-info{color:#6d7e95;font-size:14px;margin-bottom:10px}.promo-card{padding:18px}.promo-card h3{margin-top:2px;margin-bottom:10px;color:#17385f;font-size:18px}.promo-card p,.promo-card li{color:#5e6e84;line-height:1.6;font-size:14px}.promo-card ul{margin:0;padding-left:20px}.promo-link{display:inline-block;margin-top:12px;text-decoration:none;color:#145f9f;font-weight:600}.promo-link.secondary{color:#0f4f86}@media(max-width:1024px){.predict-grid{grid-template-columns:1fr;max-width:760px}.left-promo,.right-promo{order:2}.predict-card{order:1}}@media(max-width:640px){.predict-main{padding:12px 10px 22px}.predict-card{padding:16px}.predict-card h1{font-size:24px}.result-date{font-size:26px}.promo-card{padding:14px}}.notification-bell{position:relative;display:flex;align-items:center}.notification-bell .bell-button{position:relative;background:none;border:none;padding:8px;cursor:pointer;color:#333;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.notification-bell .bell-button:hover{background-color:#f0f0f0;color:#000}.notification-bell .bell-button.disconnected{opacity:.6}.notification-bell .bell-button.pulse{animation:bellPulse .4s ease-out}@keyframes bellPulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.notification-bell .notification-badge{position:absolute;top:0;right:0;min-width:20px;height:20px;background-color:#f44;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid white}.notification-bell .connection-status{position:absolute;bottom:4px;right:4px;display:flex;align-items:center;justify-content:center;width:8px;height:8px}.notification-bell .connection-status .dot{width:6px;height:6px;background-color:#ff9800;border-radius:50%;animation:connectionDot 1.5s ease-in-out infinite}@keyframes connectionDot{0%,to{opacity:1}50%{opacity:.5}}@media(prefers-color-scheme:dark){.notification-bell .bell-button{color:#e0e0e0}.notification-bell .bell-button:hover{background-color:#333;color:#fff}}.notifications-modal-content{padding:24px;min-height:70vh;max-height:90vh;overflow-y:auto}.modal-subtitle{margin:0 0 24px;font-size:14px;color:#666}.modal-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid #e0e0e0}.modal-tabs .tab-button{flex:1;padding:12px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.modal-tabs .tab-button:hover{color:#333;background-color:#f5f5f5}.modal-tabs .tab-button.active{color:#1976d2;border-bottom-color:#1976d2}.modal-tabs .badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background-color:#f44;color:#fff;border-radius:10px;font-size:12px;font-weight:700}.modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;color:#999;text-align:center}.modal-empty svg{margin-bottom:16px;opacity:.5}.modal-empty p{margin:0;font-size:14px}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;color:#999}.modal-loading .spinner{width:24px;height:24px;border:3px solid #f0f0f0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.modal-loading p{margin:0;font-size:14px}.modal-error{padding:16px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-bottom:16px}.modal-error p{margin:0 0 12px;color:#856404;font-size:14px}.modal-error button{padding:8px 16px;background-color:#ffc107;border:none;border-radius:4px;cursor:pointer;font-size:14px;color:#333;font-weight:500;transition:background-color .3s}.modal-error button:hover{background-color:#ffb300}.modal-list{display:flex;flex-direction:column;gap:8px}.notification-item{border:1px solid #e0e0e0;border-radius:4px;overflow:hidden;transition:all .2s ease}.notification-item:hover{border-color:#d0d0d0;box-shadow:0 2px 8px #0000001a}.notification-item.unread{background-color:#f0f7ff;border-color:#b3d8ff}.notification-item.unread .notification-summary{background-color:#e6f7ff}.notification-item.expanded{border-color:#1976d2;box-shadow:0 2px 8px #1976d226}.notification-summary{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;background-color:#fff;transition:background-color .2s}.notification-summary:hover{background-color:#f5f5f5}.notification-title-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.unread-indicator{width:8px;height:8px;background-color:#f44;border-radius:50%;flex-shrink:0}.notification-title{margin:0;font-size:14px;font-weight:500;color:#333;word-break:break-word}.notification-arrow{color:#999;font-size:12px;flex-shrink:0;transition:transform .2s}.notification-item.expanded .notification-arrow{transform:rotate(0)}.notification-details{padding:12px 16px 16px 40px;background-color:#fafafa;border-top:1px solid #e0e0e0}.notification-content{font-size:13px;line-height:1.6;color:#555;margin-bottom:16px;word-break:break-word;white-space:pre-wrap}.notification-metadata{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #e0e0e0}.metadata-row{display:flex;font-size:12px;gap:12px}.metadata-row .label{color:#999;font-weight:500;min-width:80px}.metadata-row .value{color:#666;word-break:break-word}.modal-load-more{display:flex;justify-content:center;padding:16px 0;border-top:1px solid #e0e0e0;margin-top:16px}.load-more-button{padding:10px 24px;background-color:#f0f0f0;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;font-size:14px;color:#333;font-weight:500;transition:all .3s}.load-more-button:hover:not(:disabled){background-color:#e0e0e0;border-color:#bbb}.load-more-button:disabled{opacity:.6;cursor:not-allowed}.modal-info{padding:12px;text-align:center;color:#999;font-size:12px;margin-top:16px}.modal-info p{margin:0}.top-nav{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:6px 30px;background:#fff;border-bottom:1px solid rgba(102,126,234,.14);box-shadow:0 4px 18px #1f263f14}.nav-main-row{display:flex;align-items:center;justify-content:space-between;gap:20px;height:52px}.nav-left,.nav-links{display:flex;align-items:center;gap:24px}.nav-brand{color:#337aca;text-decoration:none;font-size:1.55rem;font-weight:800;letter-spacing:.04em;cursor:pointer;display:inline-flex;gap:8px;align-items:center}.nav-brand:hover{color:#0052a3;text-decoration:none}.nav-link{color:#42506f;text-decoration:none;font-size:1rem;font-weight:600;transition:color .2s ease}.nav-link:hover{color:#337aca;text-decoration:none}.nav-actions{display:flex;align-items:center;justify-content:flex-end}.nav-menu-btn{display:none;width:40px;height:40px;border:1px solid rgba(51,122,202,.2);border-radius:10px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer}.nav-menu-line{display:block;width:18px;height:2px;border-radius:999px;background:#35527a}.nav-mobile-panel{display:none}.nav-mobile-link{color:#42506f;text-decoration:none;font-size:.98rem;font-weight:600;padding:8px 2px}.nav-mobile-actions{display:flex;flex-direction:column;gap:8px;margin-top:6px}.nav-mobile-action-btn{justify-content:flex-start}.nav-user-badge{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:6px 18px;font-size:.96rem;font-weight:700}.nav-user-badge{background:radial-gradient(circle at center,#764ba229,#764ba21a 45%,#fff);color:#2c3550}.nav-user-badge .nav-auth-icon{width:28px;height:28px;border-radius:50%;background:#667eea1f}.nav-auth-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:.95rem}.nav-user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center;border:1px solid rgba(102,126,234,.2)}@media(max-width:1024px){.top-nav{padding:12px 16px;gap:12px}.nav-main-row{gap:10px}.nav-brand{font-size:1.2rem}.nav-left{gap:12px;min-width:0}.nav-links,.nav-actions{display:none}.nav-menu-btn{display:inline-flex}.nav-mobile-panel.open{display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(102,126,234,.15);padding-top:10px}.nav-banner{display:none}}@media(max-width:768px){.top-nav{padding:10px 14px}.nav-brand{font-size:1.12rem}}.nav-logout-button{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border:none;border-radius:4px;background:#667eea1a;color:#667eea;font-size:.85rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease;margin-left:8px}.nav-logout-button:hover{background:#667eea2e}.nav-logout-button:active{background:#667eea40;transform:scale(.98)}.nav-logout-button:focus-visible{outline:none;box-shadow:0 0 0 2px #667eea4d}.nav-banner{background-color:#fff2f2;color:#c53030;padding:10px 16px;border-radius:8px;font-size:.95rem;text-align:center;border:1px solid #fed7d7}.page-footer{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:100%;padding:12px 24px;border-top:1px solid rgba(255,255,255,.2);z-index:50;box-shadow:0 -10px 24px #1f263f2e}.footer-content{max-width:1400px;margin:0 auto;text-align:center;display:flex;flex-direction:row;justify-content:space-between;vertical-align:middle}.footer-links{margin-bottom:12px;font-size:14px;display:flex}.footer-links a{color:#fff;text-decoration:none;transition:all .3s ease;padding:4px 8px}.footer-links a:hover{opacity:.8;text-shadow:0 0 10px rgba(255,255,255,.5)}.footer-links .separator{margin:0 8px;opacity:.6}.footer-text{font-size:12px;opacity:.9}.footer-text p{margin:0;line-height:1.5}.footer-text a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5)}.footer-text a:hover{opacity:.8}.icp-info{margin:8px 0 0;font-size:11px;opacity:.8;display:inline-flex;align-items:center;gap:6px}.icp-info img{width:14px;height:14px;object-fit:contain}.icp-info a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}.icp-info a:hover{opacity:1;border-bottom:1px solid white}@media(max-width:768px){.page-footer{padding:14px 16px}.footer-links{display:none}.icp-info{flex-wrap:wrap;justify-content:center}}
