:root{--primary:#2563eb;--primary-light:#3b82f6;--primary-dark:#1d4ed8;--primary-bg:#eff6ff;--primary-bg-hover:#dbeafe;--success:#16a34a;--success-light:#22c55e;--success-bg:#f0fdf4;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#dc2626;--danger-bg:#fef2f2;--info:#0891b2;--info-bg:#ecfeff;--bg:#f5f7fa;--card-bg:#fff;--text:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--border:#e2e8f0;--border-light:#f1f5f9;--shadow-xs:0 0.05rem 0.1rem rgba(0,0,0,.03);--shadow-sm:0 0.05rem 0.15rem rgba(0,0,0,.04),0 0.05rem 0.1rem rgba(0,0,0,.03);--shadow:0 0.1rem 0.4rem rgba(0,0,0,.06);--shadow-md:0 0.2rem 0.8rem rgba(0,0,0,.08);--radius-sm:0.4rem;--radius:0.6rem;--radius-lg:0.8rem;--radius-xl:1rem}*{-webkit-tap-highlight-color:transparent;-webkit-box-sizing:border-box;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:.75rem;line-height:1.6;-webkit-font-smoothing:antialiased;margin:0;padding:0}.page-container{min-height:100vh;padding:.8rem}.welcome-card{-webkit-align-items:center;background:-webkit-linear-gradient(315deg,var(--primary) 0,var(--primary-light) 100%);background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);-webkit-box-shadow:0 .2rem 1rem rgba(37,99,235,.2);box-shadow:0 .2rem 1rem rgba(37,99,235,.2);color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:1rem .9rem;-ms-flex-align:center;align-items:center;gap:.7rem}.avatar-circle{-webkit-align-items:center;background:hsla(0,0%,100%,.22);border:.05rem solid hsla(0,0%,100%,.15);border-radius:50%;display:-webkit-flex;display:-ms-flexbox;display:flex;height:2.3rem;width:2.3rem;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;font-size:1.4rem;justify-content:center}.stat-card{-webkit-align-items:center;background:var(--card-bg);border-radius:var(--radius);display:-webkit-flex;display:-ms-flexbox;display:flex;padding:.7rem;-ms-flex-align:center;align-items:center;border:.05rem solid var(--border-light);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);gap:.6rem;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.stat-icon{-webkit-align-items:center;border-radius:.5rem;display:-webkit-flex;display:-ms-flexbox;display:flex;height:2.1rem;width:2.1rem;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;color:#fff;-webkit-flex-shrink:0;font-size:1.2rem;justify-content:center;-ms-flex-negative:0;flex-shrink:0}.stat-icon-blue{background:-webkit-linear-gradient(315deg,#60a5fa,#2563eb);background:linear-gradient(135deg,#60a5fa,#2563eb)}.stat-icon-green{background:-webkit-linear-gradient(315deg,#4ade80,#16a34a);background:linear-gradient(135deg,#4ade80,#16a34a)}.stat-icon-orange{background:-webkit-linear-gradient(315deg,#fbbf24,#f59e0b);background:linear-gradient(135deg,#fbbf24,#f59e0b)}.stat-icon-teal{background:-webkit-linear-gradient(315deg,#2dd4bf,#0891b2);background:linear-gradient(135deg,#2dd4bf,#0891b2)}.stat-value{color:var(--text);font-size:1.5rem;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);font-size:.78rem;margin-top:.15rem}.quick-action{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:.4rem;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.quick-action:active{-webkit-transform:scale(.92);-ms-transform:scale(.92);transform:scale(.92)}.quick-icon{-webkit-align-items:center;border-radius:.8rem;display:-webkit-flex;display:-ms-flexbox;display:flex;height:2.7rem;width:2.7rem;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);color:#fff;font-size:1.5rem;justify-content:center}.quick-scan{background:-webkit-linear-gradient(315deg,#60a5fa,#2563eb);background:linear-gradient(135deg,#60a5fa,#2563eb)}.quick-list{background:-webkit-linear-gradient(315deg,#4ade80,#16a34a);background:linear-gradient(135deg,#4ade80,#16a34a)}.quick-add{background:-webkit-linear-gradient(315deg,#fbbf24,#f59e0b);background:linear-gradient(135deg,#fbbf24,#f59e0b)}.quick-action-text{color:var(--text-secondary);font-size:.78rem}.page-header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;-webkit-align-items:center;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-bottom:.8rem}.page-title{color:var(--text);font-size:1.15rem;font-weight:600}.section-title{color:var(--text-secondary);font-size:.92rem;font-weight:600;margin-bottom:.6rem}.todo-reminder{background:var(--warning-bg);border:.05rem solid #fde68a;border-radius:var(--radius);color:#92400e;font-size:.88rem;margin-bottom:.8rem;padding:.6rem .8rem}.plan-list{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:.5rem}.plan-card{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);padding:.8rem;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.plan-card:active{-webkit-transform:scale(.98);-ms-transform:scale(.98);transform:scale(.98)}.plan-card-title{font-size:1rem;font-weight:600;margin-bottom:.4rem}.plan-card-meta{color:var(--text-secondary);display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;font-size:.8rem;gap:.6rem}.progress-ring{-webkit-align-items:center;border-radius:50%;display:-webkit-flex;display:-ms-flexbox;display:flex;height:2.4rem;width:2.4rem;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;-webkit-flex-shrink:0;justify-content:center;-ms-flex-negative:0;flex-shrink:0;position:relative}.progress-bar-wrapper{background:var(--border-light);border-radius:.15rem;height:.3rem;margin-top:.5rem;overflow:hidden}.progress-bar-fill{border-radius:.15rem;height:100%;-webkit-transition:width .4s ease;transition:width .4s ease}.task-card{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);margin-bottom:.5rem;padding:.7rem;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.task-card:active{-webkit-transform:scale(.98);-ms-transform:scale(.98);transform:scale(.98)}.task-card-pending{border-left:.15rem solid var(--warning)}.task-remark{background:var(--bg);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.82rem;margin-top:.4rem;padding:.4rem .6rem}.status-tabs{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:.8rem;overflow:hidden}.status-tab{border-bottom:.1rem solid transparent;color:var(--text-muted);-webkit-flex:1;-ms-flex:1;flex:1;font-size:.82rem;padding:.55rem .2rem;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease}.status-tab-active{border-bottom-color:var(--primary);color:var(--primary);font-weight:600}.tab-count{background:var(--border-light);border-radius:.5rem;color:var(--text-muted);display:inline-block;font-size:.7rem;line-height:1.4;margin-left:.15rem;padding:0 .3rem}.status-tab-active .tab-count{background:var(--primary);color:#fff}.status-stats{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}.status-badge{background:hsla(0,0%,100%,.2);border-radius:.6rem;color:#fff;font-size:.75rem;padding:.15rem .6rem}.scan-container{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius-lg);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);padding:1.2rem 1rem;text-align:center}.scan-icon-large{color:var(--primary);font-size:4rem;opacity:.5}.manual-input{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);padding:.8rem}.input-field{border:.05rem solid var(--border);border-radius:var(--radius-sm);font-size:1rem;outline:none;padding:.6rem .7rem;-webkit-transition:border-color .2s ease,-webkit-box-shadow .2s ease;transition:border-color .2s ease,-webkit-box-shadow .2s ease;transition:border-color .2s ease,box-shadow .2s ease;transition:border-color .2s ease,box-shadow .2s ease,-webkit-box-shadow .2s ease;width:100%}.input-field:focus{border-color:var(--primary-light);-webkit-box-shadow:0 0 0 .15rem rgba(59,130,246,.12);box-shadow:0 0 0 .15rem rgba(59,130,246,.12)}.input-field::-webkit-input-placeholder{color:var(--text-muted)}.input-field::-moz-placeholder{color:var(--text-muted)}.input-field:-ms-input-placeholder{color:var(--text-muted)}.input-field::-ms-input-placeholder{color:var(--text-muted)}.input-field::placeholder{color:var(--text-muted)}.asset-card{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);margin-bottom:.5rem;padding:.7rem;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.asset-card:active{-webkit-transform:scale(.98);-ms-transform:scale(.98);transform:scale(.98)}.search-bar{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);margin-bottom:.8rem;padding:.7rem}.form-section{background:var(--card-bg);border:.05rem solid var(--border-light);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);margin-bottom:.8rem;padding:.8rem}.form-label{color:var(--text);font-size:.88rem;font-weight:600;margin-bottom:.4rem}.btn{-webkit-align-items:center;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.95rem;font-weight:500;justify-content:center;padding:.5rem 1rem;-webkit-transition:all .2s ease;transition:all .2s ease}.btn:active{-webkit-transform:scale(.97);-ms-transform:scale(.97);transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-outline{background:transparent;border:.05rem solid var(--primary);color:var(--primary)}.btn-block{width:100%}.btn-lg{font-size:1.05rem;padding:.7rem 1rem}.btn-sm{font-size:.82rem;padding:.3rem .6rem}.badge{border-radius:.3rem;display:inline-block;font-size:.78rem;font-weight:500;padding:.2rem .5rem}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:#92400e}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-default{background:var(--bg);color:var(--text-secondary)}.empty-state{color:var(--text-muted);padding:3rem 1rem;text-align:center}.empty-state-icon{font-size:3rem;margin-bottom:.6rem;opacity:.25}.empty-state-text{font-size:.9rem}.alert{border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:.6rem;padding:.6rem .8rem}.alert-success{background:var(--success-bg);color:var(--success)}.alert-info{background:var(--info-bg);color:var(--info)}.alert-danger{background:var(--danger-bg);color:var(--danger)}.alert-warning{background:var(--warning-bg);color:#92400e}.bottom-action{bottom:.8rem;left:.8rem;position:fixed;right:.8rem;z-index:100}.flex-row{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-col{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-1{-webkit-flex:1;-ms-flex:1;flex:1}.flex-center{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.flex-between{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.flex-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.gap-8{gap:.4rem}.gap-12{gap:.6rem}.gap-16{gap:.8rem}.mt-8{margin-top:.4rem}.mt-12{margin-top:.6rem}.mt-16{margin-top:.8rem}.mb-8{margin-bottom:.4rem}.mb-12{margin-bottom:.6rem}.mb-16{margin-bottom:.8rem}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:.82rem}.text-xs{font-size:.75rem}.fw-bold{font-weight:600}.result-icon{font-size:3.5rem;margin-bottom:.5rem}.result-success{color:var(--success)}.result-fail{color:var(--danger)}.asset-detail-table{border-collapse:collapse;width:100%}.asset-detail-table td{border:none;font-size:.9rem;padding:.4rem .2rem}.asset-detail-table td:first-child{color:var(--text-muted);width:5rem}.asset-detail-table td:last-child{color:var(--text);font-weight:500}.history-item{border-top:.05rem solid var(--border-light);font-size:.82rem;padding:.4rem 0}.dim-selector{display:-webkit-flex;display:-ms-flexbox;display:flex;gap:.5rem}.dim-option{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;border:.1rem solid var(--border);border-radius:var(--radius);padding:.9rem .4rem;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease}.dim-option-selected{background:var(--primary-bg);border-color:var(--primary)}.dim-option-icon{color:var(--text-muted);font-size:1.8rem;margin-bottom:.4rem}.dim-option-selected .dim-option-icon{color:var(--primary)}.dim-option-title{font-size:.9rem;font-weight:600;margin-bottom:.15rem}.dim-option-desc{color:var(--text-muted);font-size:.72rem}.result-selector{display:-webkit-flex;display:-ms-flexbox;display:flex;gap:.4rem;margin-top:.6rem}.result-option{background:var(--card-bg);border:.05rem solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);-webkit-flex:1;-ms-flex:1;flex:1;font-size:.82rem;padding:.4rem .2rem;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease}.result-option-selected{background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.plan-overview-card{background:-webkit-linear-gradient(315deg,var(--primary) 0,var(--primary-light) 100%);background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);-webkit-box-shadow:0 .2rem 1rem rgba(37,99,235,.2);box-shadow:0 .2rem 1rem rgba(37,99,235,.2);color:#fff;margin-bottom:.8rem;padding:1rem}.inline-info{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:var(--text-secondary);font-size:.85rem;gap:.2rem}.stats-grid{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.actions-grid{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-around;-ms-flex-pack:distribute;gap:.5rem;justify-content:space-around}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translateY(.4rem);transform:translateY(.4rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translateY(.4rem);transform:translateY(.4rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.asset-card,.form-section,.plan-card,.quick-action,.scan-container,.search-bar,.stat-card,.status-tabs,.task-card,.welcome-card{-webkit-animation:fadeInUp .3s ease;animation:fadeInUp .3s ease}.auth-loading-overlay{-webkit-align-items:center;background:var(--bg);bottom:0;display:-webkit-flex;display:-ms-flexbox;display:flex;left:0;position:fixed;right:0;top:0;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;z-index:9999}.auth-loading-content{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:.8rem}.auth-loading-spinner{-webkit-animation:auth-spin .7s linear infinite;animation:auth-spin .7s linear infinite;border:.15rem solid var(--border);border-radius:50%;border-top-color:var(--primary);height:1.8rem;width:1.8rem}.auth-loading-text{color:var(--text-muted);font-size:.9rem}@-webkit-keyframes auth-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes auth-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}