:root{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-hover: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: #e2e8f0;--accent-primary: #667eea;--accent-secondary: #764ba2;--accent-glow: rgba(102, 126, 234, .3);--sidebar-bg: rgba(255, 255, 255, .92);--header-bg: rgba(255, 255, 255, .85);--card-bg: #ffffff;--nav-icon-bg: rgba(102, 126, 234, .08);--depth-shadow: 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);--depth-shadow-hover: 0 2px 6px rgba(0,0,0,.1), 0 8px 24px rgba(0,0,0,.08);--depth-shadow-active: 0 1px 2px rgba(0,0,0,.1);--btn-3d: 0 3px 0 rgba(0,0,0,.15), 0 4px 14px rgba(102,126,234,.3);--btn-3d-hover: 0 5px 0 rgba(0,0,0,.18), 0 8px 24px rgba(102,126,234,.4);--btn-3d-active: 0 1px 0 rgba(0,0,0,.2), 0 2px 8px rgba(102,126,234,.2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);min-height:100vh;color:var(--text-primary);-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh;position:relative}.global-loading{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:10000;display:none}.app-layout.global-loading-active .global-loading{display:block}.progress-bar{height:100%;width:40%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary),var(--accent-primary));background-size:200% 100%;animation:progress-slide 1.2s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.sidebar{width:260px;min-width:260px;height:100vh;background:var(--sidebar-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:all .4s cubic-bezier(.4,0,.2,1);position:sticky;top:0;z-index:100;box-shadow:4px 0 24px #0000000a}.sidebar.collapsed{width:80px;min-width:80px}.sidebar.collapsed .logo-text,.sidebar.collapsed .nav-group-title,.sidebar.collapsed .group-items{display:none}.sidebar-header{padding:24px 20px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color)}.logo{display:flex;align-items:center;gap:12px}.logo-icon{flex-shrink:0;animation:logo-float 3s ease-in-out infinite}@keyframes logo-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(180deg)}}.logo-text h2{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary),var(--accent-primary));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:logo-shine 3s linear infinite;letter-spacing:1px}@keyframes logo-shine{to{background-position:200% center}}.logo-text span{font-size:11px;color:var(--accent-primary);opacity:.8;display:block;letter-spacing:1px;margin-top:2px}.toggle-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;transition:all .3s;border-radius:8px}.toggle-btn:hover{color:var(--accent-primary);background:var(--bg-hover);transform:scale(1.1)}.sidebar-nav{flex:1;display:flex;flex-direction:column;overflow:hidden}.nav-scrollable{flex:1;overflow-y:auto;padding:12px 0}.nav-bottom{border-top:1px solid var(--border-color);padding:12px 0;background:var(--sidebar-bg)}.nav-group{margin-bottom:4px}.nav-group-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;padding:14px 20px 12px;cursor:pointer;border-radius:12px;margin:4px 12px;transition:all .3s;position:relative;overflow:hidden}.nav-group-title:hover{background:rgba(102,126,234,.05)}.group-icon-box{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:rgba(102,126,234,.12);border:1px solid rgba(102,126,234,.2);box-shadow:0 4px 12px #667eea26;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.nav-group-title:hover .group-icon-box{transform:scale(1.1) rotate(-5deg);background:rgba(102,126,234,.2);box-shadow:0 6px 20px var(--accent-glow)}.group-arrow{margin-left:auto;transition:transform .3s}.group-arrow.open{transform:rotate(180deg)}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;margin:2px 12px;border-radius:12px;color:var(--text-secondary);text-decoration:none;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;background:transparent;border:1px solid transparent}.nav-item:before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent-primary),var(--accent-secondary));transform:scaleY(0);transition:transform .3s;border-radius:0 4px 4px 0}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary);transform:translate(6px);box-shadow:0 4px 16px #0000000f;border-color:var(--border-color)}.nav-item:hover:before{transform:scaleY(1)}.nav-item.active{background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));color:var(--accent-primary);font-weight:600;box-shadow:0 4px 12px var(--accent-glow);border-color:#667eea4d;transform:translate(6px)}.nav-item.active:before{transform:scaleY(1)}.nav-icon-box{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:var(--nav-icon-bg);border:1px solid rgba(102,126,234,.15);transition:all .3s}.nav-item:hover .nav-icon-box{transform:scale(1.15) rotate(-5deg);background:rgba(102,126,234,.15)}.nav-item.active .nav-icon-box{background:rgba(102,126,234,.25);border-color:var(--accent-primary);box-shadow:0 0 12px var(--accent-glow)}.nav-text{font-size:13px;white-space:nowrap}.nav-badge{margin-left:auto;padding:2px 8px;background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;font-size:10px;font-weight:700;color:#fff;animation:badge-pulse 2s infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.top-header{height:64px;min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:50}.page-title{font-size:22px;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-breadcrumb{font-size:12px;color:var(--text-muted);margin-top:2px}.header-right{display:flex;align-items:center;gap:20px}.header-actions{display:flex;gap:12px;align-items:center}.action-btn{background:rgba(102,126,234,.06);border:1px solid rgba(102,126,234,.15);color:var(--text-secondary);cursor:pointer;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:all .3s;position:relative;overflow:hidden}.action-btn:hover{color:var(--accent-primary);background:rgba(102,126,234,.1);border-color:var(--accent-primary);box-shadow:0 0 16px var(--accent-glow)}.user-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary)}.user-avatar-img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-primary)}.user-avatar-text{font-size:24px}.user-name{font-size:14px;font-weight:600}.content-area{flex:1;padding:28px 32px;overflow-y:auto}.card,.settings-card,.input-card,.overview-card,.detail-card,.prompt-card,.report-card,.conclusion-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:var(--depth-shadow);transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0)}.card:hover,.settings-card:hover,.input-card:hover,.overview-card:hover,.detail-card:hover,.prompt-card:hover{box-shadow:var(--depth-shadow-hover);transform:translateY(-3px)}button:not(.nav-item):not(.toggle-btn):not(.action-btn):not(.small-btn):not(.tab-btn):not(.style-btn):not(.clear-btn):not(.group-arrow){position:relative;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;box-shadow:var(--btn-3d);transition:all .25s cubic-bezier(.4,0,.2,1);padding:10px 20px;font-size:14px;letter-spacing:1px;overflow:hidden}button:not(.nav-item):not(.toggle-btn):not(.action-btn):not(.small-btn):not(.tab-btn):not(.style-btn):not(.clear-btn):not(.group-arrow):hover{transform:translateY(-2px);box-shadow:var(--btn-3d-hover)}button:not(.nav-item):not(.toggle-btn):not(.action-btn):not(.small-btn):not(.tab-btn):not(.style-btn):not(.clear-btn):not(.group-arrow):active{transform:translateY(1px);box-shadow:var(--btn-3d-active)}table{border-collapse:collapse;width:100%;background:var(--card-bg);border-radius:12px;overflow:hidden;box-shadow:var(--depth-shadow)}th,td{padding:14px 18px;border-bottom:1px solid var(--border-color);text-align:left}th{background:var(--bg-primary);color:var(--text-secondary);font-weight:600;font-size:13px}tr:last-child td{border-bottom:none}tr{transition:transform .2s,box-shadow .2s}tr:hover{transform:scale(1.01);box-shadow:0 2px 8px #0000000f}.form-input,.form-select,.form-textarea{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:10px;padding:10px 14px;color:var(--text-primary);font-size:14px;transition:all .3s;box-shadow:inset 0 1px 3px #0000000a}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow),inset 0 1px 3px #0000000a}.points-btn{font-size:18px;line-height:1}.points-btn-text{display:block}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.points-modal{background:white;border-radius:20px;width:480px;max-width:90vw;box-shadow:0 25px 60px #0000004d;overflow:hidden;animation:modalIn .3s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.points-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.points-modal-header h3{font-size:19px;font-weight:700;color:#1e293b}.close-btn{background:none;border:none;font-size:22px;cursor:pointer;color:#94a3b8}.close-btn:hover{color:#333}.points-modal-tabs{display:flex;border-bottom:1px solid #eee;padding:0 20px}.pts-tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;color:#64748b;cursor:pointer;transition:all .2s;font-weight:500;box-shadow:none!important;border-radius:0!important;letter-spacing:0!important}.pts-tab:hover{color:#667eea}.pts-tab.active{color:#667eea;border-bottom-color:#667eea}.points-modal-body{padding:20px 24px 24px}.pts-balance-bar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f0f4ff,#ede9fe);border-radius:14px;padding:16px 20px;margin-bottom:20px}.pts-balance-label{font-size:14px;color:#64748b;font-weight:500}.pts-balance-num{font-size:28px;font-weight:800;color:#667eea}.pts-packages{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pts-package-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:14px;padding:18px 14px;text-align:center;cursor:pointer;transition:all .25s}.pts-package-card:hover{border-color:#667eea;box-shadow:0 4px 20px #667eea33;transform:translateY(-3px)}.pkg-points{font-size:24px;font-weight:800;color:#1e293b;margin-bottom:6px}.pkg-price{font-size:18px;font-weight:700;color:#667eea;margin-bottom:4px}.pkg-name{font-size:12px;color:#94a3b8}.pts-method-title{font-size:15px;font-weight:600;color:#1e293b;margin-bottom:16px;text-align:center}.pts-method-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.pts-method-card{position:relative;padding:20px 12px;text-align:center;border:2px solid #e2e8f0;border-radius:14px;cursor:pointer;transition:all .25s;background:#fff}.pts-method-card:hover{border-color:#cbd5e1}.pts-method-card.active{border-color:#667eea;background:#f0f4ff}.method-icon{font-size:32px;margin-bottom:8px}.method-name{font-size:14px;font-weight:600;color:#1e293b}.method-check{position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;background:#667eea;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}.pts-order-summary{text-align:center;padding:10px 0;color:#64748b;font-size:13px;background:#f8fafc;border-radius:10px;margin-bottom:16px}.pts-pay-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.pts-qr-area{text-align:center}.pts-qr-box{display:inline-block;padding:20px;background:#f8fafc;border-radius:16px;border:1px solid #e2e8f0;margin-bottom:16px}.pts-qr-code{border-radius:8px;overflow:hidden;position:relative;width:160px;height:160px;margin:0 auto;background:#fff}.qr-code-img{width:100%;height:100%;object-fit:contain;display:block}.qr-scanning-overlay{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.qr-scan-line{position:absolute;top:0;left:10%;width:80%;height:2px;background:linear-gradient(90deg,transparent,#667eea,#764ba2,#667eea,transparent);box-shadow:0 0 12px #667eea99;animation:qrScan 1.5s ease-in-out infinite}@keyframes qrScan{0%{top:5%;opacity:0}20%{opacity:1}80%{opacity:1}to{top:90%;opacity:0}}.pts-qr-box.dimmed{opacity:.5}.qr-check-mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;background:rgba(16,185,129,.9);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;animation:checkPop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes checkPop{0%{transform:translate(-50%,-50%) scale(0)}to{transform:translate(-50%,-50%) scale(1)}}.pts-detect-progress{margin:20px 0 16px}.detect-step{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13px;color:#94a3b8;transition:color .3s}.detect-step.active{color:#667eea;font-weight:600}.detect-step.done{color:#10b981}.detect-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:#e2e8f0;transition:all .3s}.detect-step.active .detect-dot{background:#667eea;box-shadow:0 0 0 3px #667eea33;animation:dotPulse 1s ease-in-out infinite}.detect-step.done .detect-dot{background:#10b981}@keyframes dotPulse{0%,to{box-shadow:0 0 0 3px #667eea33}50%{box-shadow:0 0 0 8px #667eea0d}}.detect-line{width:2px;height:14px;margin-left:4px;background:#e2e8f0;transition:background .3s}.detect-line.done{background:#10b981}.detect-step strong{color:#667eea}.pts-qr-bank{margin-top:10px;font-size:13px;font-weight:600;color:#64748b}.pts-order-info{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #f1f5f9}.pts-order-label{color:#64748b}.pts-order-val{font-weight:700;font-size:18px;color:#1e293b}.pts-order-val.price{color:#f59e0b}.pts-pay-btn{margin-top:24px;width:100%;padding:14px;font-size:16px;background:linear-gradient(135deg,#667eea,#764ba2)!important;box-shadow:0 4px 16px #667eea59!important;border-radius:12px!important}.pts-cancel-btn{margin-top:10px;width:100%;padding:12px;font-size:14px;background:#f1f5f9!important;color:#64748b!important;box-shadow:none!important;border-radius:12px!important}.pts-done-area{text-align:center;padding:20px 0}.pts-done-icon{font-size:48px;margin-bottom:12px}.pts-done-area h4{font-size:20px;color:#1e293b;margin-bottom:8px}.pts-done-area p{color:#64748b;margin-bottom:20px}.pts-done-btn{padding:12px 32px;background:linear-gradient(135deg,#10b981,#059669)!important;border-radius:12px!important;font-size:14px;box-shadow:0 4px 16px #10b9814d!important}.pts-empty{text-align:center;padding:40px 0;color:#94a3b8}.pts-record-item{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #f1f5f9}.pts-record-desc{font-weight:500;color:#1e293b}.pts-record-time{font-size:12px;color:#94a3b8;margin-top:4px}.pts-record-pts{font-weight:700;color:#ef4444}.pts-record-pts.plus{color:#10b981}.pts-rules h4{font-size:16px;color:#1e293b;margin-bottom:12px}.pts-rule-table{border-radius:10px;overflow:hidden;border:1px solid #e2e8f0}.pts-rule-row{display:grid;grid-template-columns:2fr 1fr 1fr;padding:12px 16px}.pts-rule-row.head{background:#f8fafc;font-weight:600;color:#64748b;font-size:12px}.pts-rule-row:not(.head){border-top:1px solid #f1f5f9;font-size:14px}.pts-rule-tip{margin-top:16px;padding:14px;background:#fffbeb;border-radius:10px}.pts-rule-tip p{font-weight:600;margin-bottom:6px}.pts-rule-tip ul{list-style:none;padding:0}.pts-rule-tip li{font-size:13px;color:#64748b;padding:2px 0}.pts-rule-tip li:before{content:"• ";color:#f59e0b}.pts-waiting-admin{text-align:center;padding:20px 0}.pts-waiting-icon{font-size:56px;margin-bottom:16px;animation:spin-slow 2s linear infinite}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pts-waiting-admin h4{font-size:18px;color:#1e293b;margin-bottom:8px}.pts-waiting-admin p{color:#64748b;font-size:14px;margin-bottom:4px}.pts-waiting-hint{color:#f59e0b;font-size:13px;margin-top:12px}.pts-waiting-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.pts-waiting-dots .dot{width:10px;height:10px;border-radius:50%;background:#667eea;animation:dot-bounce 1.4s infinite ease-in-out both}.pts-waiting-dots .dot:nth-child(1){animation-delay:-.32s}.pts-waiting-dots .dot:nth-child(2){animation-delay:-.16s}.pts-waiting-dots .dot:nth-child(3){animation-delay:0s}@keyframes dot-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.method-desc{font-size:11px;color:#94a3b8;margin-top:2px}.pts-order-summary{text-align:center;padding:12px 0;color:#64748b;font-size:14px}@media (max-width: 768px){.sidebar{position:fixed;left:-280px;z-index:200}.sidebar.collapsed{left:0}.top-header{padding:0 20px}.content-area{padding:20px}}
