:root{--brand-blue: #0052FF;--brand-blue-dark: #0040CC;--brand-blue-light: #E6EEFF;--brand-green: #2ED573;--brand-green-dark: #27AE60;--text-primary: #1A1A1A;--text-secondary: #6B7280;--text-muted: #9CA3AF;--bg-page: #F5F7FA;--bg-card: #FFFFFF;--bg-nav: #FAFBFC;--border-color: #E5E8ED;--border-light: #F0F0F0;--color-warning: #FFAA00;--color-error: #FF4757;--color-success: #2ED573;--radius-card: 12px;--radius-btn: 8px;--radius-sm: 6px;--shadow-card: 0 2px 8px rgba(0, 82, 255, .08);--shadow-nav: 0 1px 0 var(--border-color);--gradient-brand: linear-gradient(135deg, #0052FF, #0040CC)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-page)}#app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--bg-nav);color:var(--text-primary);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);box-shadow:none}.app-header h1{font-size:20px;font-weight:600}.app-nav{display:flex;align-items:center;background:var(--bg-nav);padding:0 24px;border-bottom:1px solid var(--border-color);gap:4px}.nav-item{padding:8px 16px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--text-secondary);border-radius:20px;border:1px solid transparent;transition:all .2s}.nav-item:hover{color:var(--brand-blue);background:var(--brand-blue-light)}.nav-item.active{color:var(--brand-blue);background:var(--bg-card);border-color:var(--brand-blue);font-weight:500;border-bottom:none}.navbar{display:flex;align-items:center;justify-content:space-between;background:var(--bg-nav);padding:0 24px;height:56px;border-bottom:1px solid var(--border-color)}.navbar-left{display:flex;align-items:center;gap:24px}.navbar-logo{height:32px;object-fit:contain}.navbar-tabs{display:flex;gap:4px}.navbar-right{display:flex;align-items:center;gap:12px}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--gradient-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.user-name{font-size:14px;color:var(--text-primary)}.role-badge{font-size:12px;padding:2px 8px;border-radius:10px;background:var(--brand-blue-light);color:var(--brand-blue)}.btn-logout{padding:6px 12px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-secondary)}.btn-logout:hover{border-color:var(--color-error);color:var(--color-error)}.app-content{flex:1;padding:24px}.field-manager{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:24px}.field-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.field-manager-header h2{font-size:18px;color:var(--text-primary)}.btn-primary{background:var(--gradient-brand);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-btn);cursor:pointer;font-size:14px;transition:opacity .2s}.btn-primary:hover{opacity:.9}.btn-danger{background:var(--color-error);color:#fff;border:none;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px}.btn-danger:hover{background:#ff7875}.module-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:12px}.tab{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.tab:hover{border-color:var(--brand-blue);color:var(--brand-blue)}.tab.active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.error-banner{background:#fff2f0;border:1px solid #ffccc7;color:var(--color-error);padding:12px 16px;border-radius:4px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.field-list table{width:100%;border-collapse:collapse}.field-list th,.field-list td{padding:12px;text-align:left;border-bottom:1px solid #eee}.field-list th{background:#fafafa;font-weight:500;color:var(--text-secondary);font-size:13px}.field-list tr:hover{background:#f9f9f9}.loading,.empty{text-align:center;padding:40px;color:var(--text-muted)}.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}.modal{background:#fff;border-radius:8px;padding:24px;width:400px;max-width:90%}.modal h3{margin-bottom:20px;font-size:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;color:var(--text-secondary)}.form-group input[type=text],.form-group select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--brand-blue)}.form-group.checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.form-group.checkbox input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.modal-actions button{padding:8px 20px;border-radius:4px;cursor:pointer;font-size:14px}.modal-actions button:first-child{background:#fff;border:1px solid #ddd;color:var(--text-secondary)}.modal-actions button:first-child:hover{background:#f5f5f5}.coming-soon{text-align:center;padding:60px 20px;background:#fff;border-radius:8px;color:var(--text-muted);font-size:16px}.ai-panel{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:24px;height:calc(100vh - 200px);display:flex;flex-direction:column}.ai-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ai-panel-header h3{font-size:18px;color:var(--text-primary)}.tab-buttons{display:flex;gap:8px}.tab-buttons button{padding:6px 16px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:13px}.tab-buttons button.active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-module-select{display:flex;align-items:center;gap:12px;margin-bottom:16px}.chat-module-select label{font-size:13px;color:var(--text-secondary)}.chat-module-select select{padding:6px 12px;border:1px solid #ddd;border-radius:4px}.chat-messages{flex:1;overflow-y:auto;padding:16px;background:#f9f9f9;border-radius:8px;margin-bottom:16px}.chat-empty{text-align:center;color:var(--text-muted);padding:40px}.chat-empty ul{list-style:none;margin-top:16px}.chat-empty li{padding:4px 0;font-size:13px}.chat-message{margin-bottom:16px}.chat-message .message-content{padding:12px 16px;border-radius:8px;max-width:80%;font-size:14px;line-height:1.5;white-space:pre-wrap}.chat-message.user{text-align:right}.chat-message.user .message-content{background:var(--brand-blue);color:#fff;display:inline-block}.chat-message.ai .message-content{background:#fff;color:var(--text-primary);border:1px solid #eee}.chat-input{display:flex;gap:12px}.chat-input input{flex:1;padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:14px}.chat-input input:focus{outline:none;border-color:var(--brand-blue)}.chat-input button{padding:12px 24px;background:var(--brand-blue);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px}.chat-input button:hover{background:var(--brand-blue-dark)}.chat-input button:disabled{background:#ccc;cursor:not-allowed}.config-container{max-width:500px}.config-container .form-group input[type=password]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.config-container .hint{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.config-container .success-msg{display:inline-block;margin-left:12px;color:var(--color-success);font-size:13px}.cost-module{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:24px}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.module-header h2{font-size:18px;color:var(--text-primary)}.filter-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filter-bar select,.filter-bar input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:13px}.tab-switch{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:12px}.tab-switch button{padding:8px 20px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--text-secondary);border-radius:4px}.tab-switch button.active{background:var(--brand-blue);color:#fff}.data-table table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px;text-align:left;border-bottom:1px solid #eee;font-size:13px}.data-table th{background:#fafafa;font-weight:500;color:var(--text-secondary)}.data-table .amount{color:#f5222d;font-weight:500}.data-table .amount.paid{color:var(--color-success)}.btn-sm{padding:4px 8px;font-size:12px}.status-tag{display:inline-block;padding:2px 8px;border-radius:4px;color:#fff;font-size:12px}.dashboard{padding:20px 0}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.stat-card{background:var(--bg-card);color:var(--text-primary);padding:20px 24px;border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--border-color)}.stat-label{font-size:14px;opacity:.9;margin-bottom:8px}.stat-value{font-size:28px;font-weight:600}.chart-section{margin-bottom:30px}.chart-section h3{font-size:16px;color:var(--text-primary);margin-bottom:16px}.bar-chart{display:flex;flex-direction:column;gap:12px}.bar-item{display:flex;align-items:center;gap:12px}.bar-label{width:80px;font-size:13px;color:var(--text-secondary)}.bar-wrapper{flex:1;height:24px;background:#f0f0f0;border-radius:4px;overflow:hidden}.bar{height:100%;background:var(--gradient-brand);border-radius:4px;transition:width .3s}.bar-value{width:100px;text-align:right;font-size:13px;color:var(--text-primary)}.month-list{display:flex;flex-direction:column;gap:8px}.month-item{display:flex;justify-content:space-between;padding:12px;background:#f9f9f9;border-radius:4px;font-size:14px}.month-item .amount{color:var(--brand-blue);font-weight:500}.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-height:80px;resize:vertical}.module-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-light)}.module-info{display:flex;flex-direction:column;gap:2px}.module-name{font-size:14px;color:var(--text-primary);font-weight:500}.module-desc{font-size:12px;color:var(--text-muted)}.toggle-switch{position:relative;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#ccc;border-radius:24px;cursor:pointer;transition:.3s}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}.toggle-switch input:checked+.toggle-slider{background:var(--brand-blue)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.stats-card-row{display:flex;gap:16px;margin-bottom:24px;overflow-x:auto;padding-bottom:4px}.stats-card{min-width:180px;padding:20px;border-radius:var(--radius-card);color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s;flex-shrink:0}.stats-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.stats-card-total{min-width:200px}.stats-card-label{font-size:13px;opacity:.9;margin-bottom:8px}.stats-card-value{font-size:24px;font-weight:700;margin-bottom:4px}.stats-card-count{font-size:12px;opacity:.8}.stats-card-more{background:var(--bg-card)!important;color:var(--text-secondary)!important;border:2px dashed var(--border-color)}.recent-activity h3{font-size:16px;color:var(--text-primary);margin-bottom:16px}.activity-list{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-light)}.activity-badge{font-size:12px;padding:2px 8px;border-radius:4px;color:#fff;white-space:nowrap}.activity-desc{flex:1;font-size:14px;color:var(--text-primary)}.activity-time{font-size:12px;color:var(--text-muted);white-space:nowrap}.drilldown-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:14px}.breadcrumb-back{background:none;border:none;color:var(--brand-blue);cursor:pointer;font-size:14px}.breadcrumb-sep{color:var(--text-muted)}.breadcrumb-current{color:var(--text-primary);font-weight:500}.drilldown-sub-cards{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.sub-card{padding:16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-btn);min-width:140px}.sub-card-name{font-size:13px;color:var(--text-secondary);margin-bottom:4px}.sub-card-value{font-size:20px;font-weight:600;color:var(--text-primary)}.sub-card-count{font-size:12px;color:var(--text-muted);margin-top:4px}.drilldown-table h4{font-size:14px;color:var(--text-secondary);margin-bottom:12px}.module-layout{background:var(--bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}.module-layout-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.module-layout-header h2{font-size:18px;color:var(--text-primary)}.view-switch{display:flex;gap:4px;background:var(--bg-page);padding:3px;border-radius:var(--radius-btn)}.view-switch button{padding:6px 16px;border:none;background:none;cursor:pointer;font-size:13px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all .2s}.view-switch button.active{background:var(--bg-card);color:var(--brand-blue);box-shadow:0 1px 3px #0000001a}.dashboard-content{padding:0}.dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dashboard-chart{background:var(--bg-page);border-radius:var(--radius-btn);padding:20px}.dashboard-chart h3{font-size:15px;color:var(--text-primary);margin-bottom:16px}.chart-legend{margin-top:16px;display:flex;flex-direction:column;gap:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-pct{margin-left:auto;font-weight:500;color:var(--text-primary)}.pagination{display:flex;align-items:center;gap:4px;margin-top:16px;flex-wrap:wrap}.pagination-btn{padding:6px 12px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-secondary);transition:all .2s}.pagination-btn:hover:not(:disabled){border-color:var(--brand-blue);color:var(--brand-blue)}.pagination-btn.active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{padding:0 4px;color:var(--text-muted)}.pagination-info{margin-left:8px;font-size:13px;color:var(--text-muted)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.wizard-steps{display:flex;align-items:center;margin-bottom:32px;gap:0}.wizard-step{display:flex;align-items:center;gap:8px;flex:1;position:relative;color:var(--text-muted);font-size:14px}.wizard-step:after{content:"";position:absolute;left:calc(50% + 20px);right:calc(-50% + 20px);top:16px;height:2px;background:var(--border-color)}.wizard-step:last-child:after{display:none}.wizard-step.active{color:var(--brand-blue)}.wizard-step.done{color:var(--color-success)}.wizard-step.active:after,.wizard-step.done:after{background:var(--brand-blue)}.wizard-step-num{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;background:var(--bg-card);flex-shrink:0;z-index:1}.wizard-step.active .wizard-step-num{border-color:var(--brand-blue);color:var(--brand-blue)}.wizard-step.done .wizard-step-num{border-color:var(--color-success);color:var(--color-success)}.wizard-content{background:var(--bg-page);border-radius:var(--radius-card);padding:24px}.mapping-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-btn);overflow:hidden;box-shadow:var(--shadow-card)}.mapping-table th{background:var(--bg-page);padding:10px 14px;text-align:left;font-size:13px;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.mapping-table td{padding:10px 14px;border-bottom:1px solid var(--border-light);font-size:13px}.mapping-table tr:last-child td{border-bottom:none}.mapping-table tr:hover td{background:var(--bg-page)}.match-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500}.match-auto{background:#d1fae5;color:#065f46}.match-suggest{background:#fef3c7;color:#92400e}.match-unmatched{background:#f3f4f6;color:var(--text-muted)}.import-dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-card);padding:48px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-card)}.import-dropzone:hover{border-color:var(--brand-blue);background:var(--brand-blue-light)}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 16px;border-radius:var(--radius-btn);cursor:pointer;font-size:14px;transition:all .2s}.btn-secondary:hover{border-color:var(--brand-blue);color:var(--brand-blue)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1100}.confirm-dialog{background:#fff;border-radius:8px;padding:24px;min-width:360px;max-width:480px;box-shadow:0 4px 20px #00000026}.confirm-dialog h3{margin:0 0 12px;font-size:16px}.confirm-dialog p{margin:0 0 8px;color:#555;font-size:14px}.confirm-dialog .confirm-input{width:100%;padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;margin-top:8px}.confirm-dialog .confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.search-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.search-bar input,.search-bar select{padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px}.search-bar input{min-width:200px}.search-bar .btn-search{padding:8px 16px;background:var(--brand-blue);color:#fff;border:none;border-radius:4px;cursor:pointer}.search-bar .btn-reset{padding:8px 16px;background:var(--bg-page);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}
