:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:#fff}.login-left{background:linear-gradient(135deg,#0052cc,#1a6ad4,#3378db);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:60px 40px}.login-left:before{content:"";position:absolute;top:-100px;left:-100px;width:400px;height:400px;background:#ffffff1a;border-radius:50%;animation:float 20s ease-in-out infinite}.login-left:after{content:"";position:absolute;bottom:-150px;right:-150px;width:500px;height:500px;background:#ffffff14;border-radius:50%;animation:float 25s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-30px) scale(1.05)}}.logo-center{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.main-logo{width:100%;max-width:400px;height:auto;filter:brightness(0) invert(1)}.login-right{display:flex;align-items:center;justify-content:center;padding:60px 40px;background:#fff}.login-card{width:100%;max-width:420px;animation:fadeIn .8s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-title{font-size:32px;font-weight:700;color:#1a1a1a;margin:0 0 40px;line-height:1.2}.login-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#4a4a4a;margin-bottom:4px}.form-group input{padding:14px 16px;font-size:16px;border:2px solid #e8e8e8;border-radius:12px;transition:all .3s ease;font-family:inherit;background:#fafafa;color:#1a1a1a}.form-group input::placeholder{color:#999}.form-group input:focus{outline:none;border-color:#0052cc;background:#fff;box-shadow:0 0 0 4px #0052cc1a}.form-group input:disabled{background-color:#f0f0f0;cursor:not-allowed;opacity:.7}.error-message{padding:12px 16px;background-color:#fee;color:#c33;border-radius:10px;font-size:14px;border-left:4px solid #c33;animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.warning-message{padding:12px 16px;background-color:#fff3cd;color:#856404;border-radius:10px;font-size:14px;border-left:4px solid #ffc107}.login-button{padding:16px 24px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#0052cc,#1a6ad4);border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;font-family:inherit;margin-top:8px;box-shadow:0 4px 16px #0052cc4d}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #0052cc66;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.login-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #0052cc4d}.login-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:1024px){.login-container{grid-template-columns:45% 55%}.login-left{padding:40px 30px}.main-logo{max-width:320px}.login-title{font-size:28px}}@media(max-width:768px){.login-container{grid-template-columns:1fr;min-height:auto}.login-left{display:none}.login-right{min-height:100vh;padding:40px 24px}.login-card{max-width:100%}.login-title{font-size:26px;margin-bottom:32px}}@media(max-width:480px){.login-right{padding:32px 20px}.login-title{font-size:24px;margin-bottom:28px}.form-group input{padding:12px 14px;font-size:15px}.login-button{padding:14px 20px;font-size:15px}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-height:90vh;overflow-y:auto;width:90%;animation:slideUp .3s ease-out;position:relative}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e8ed;position:sticky;top:0;background:#fff;border-radius:12px 12px 0 0;z-index:1}.modal-title{margin:0;font-size:20px;font-weight:600;color:#2c3e50}.modal-close-button{background:none;border:none;font-size:24px;color:#7f8c8d;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s;border-radius:4px}.modal-close-button:hover{color:#2c3e50;background-color:#f8f9fa}.modal-body{padding:24px}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:0 12px 12px 0}.modal-content::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:#95a5a6}@media(max-width:768px){.modal-content{width:95%;max-height:95vh}.modal-header{padding:16px 20px}.modal-title{font-size:18px}.modal-body{padding:20px}}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:14px;color:#34495e}.form-group input[type=text],.form-group input[type=number]{width:100%;padding:10px 12px;border:1px solid #dcdde1;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a}.form-group input:disabled{background-color:#f5f6fa;cursor:not-allowed}.file-drop-zone{border:2px dashed #bdc3c7;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#f8f9fa}.file-drop-zone:hover{border-color:#0052cc;background-color:#e6f0ff}.file-drop-zone.drag-active{border-color:#2ecc71;background-color:#d5f4e6}.drop-zone-content{pointer-events:none}.drop-zone-text{margin:0 0 8px;font-size:16px;font-weight:500;color:#34495e}.drop-zone-hint{margin:0;font-size:12px;color:#7f8c8d}.selected-files{background-color:#f8f9fa;border-radius:6px;padding:16px;margin-bottom:20px}.selected-files h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#2c3e50}.selected-files ul{list-style:none;padding:0;margin:0}.file-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-radius:4px;margin-bottom:8px;font-size:14px}.file-item:last-child{margin-bottom:0}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px;color:#2c3e50}.file-size{font-size:12px;color:#7f8c8d;margin-right:12px}.remove-file-btn{background:none;border:none;color:#e74c3c;font-size:18px;cursor:pointer;padding:0 8px;line-height:1;transition:color .2s}.remove-file-btn:hover{color:#c0392b}.remove-file-btn:disabled{color:#bdc3c7;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #f8d7da;color:#842029;padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:14px}.submit-btn{width:100%;padding:12px 24px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0052cc4d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0052cc66;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.submit-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #0052cc4d}.submit-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.files-hint{margin:0 0 12px;font-size:12px;color:#7f8c8d;font-style:italic}.file-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;flex-shrink:0}.file-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#0052CC}.file-checkbox:disabled{cursor:not-allowed;opacity:.5}.file-type-indicator{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;min-width:55px;text-align:center}.file-checkbox:checked+.file-type-indicator{background-color:#d1e7dd;color:#0f5132;border:1px solid #a3cfbb}.file-checkbox:not(:checked)+.file-type-indicator{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-pending{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.status-processing{background-color:#cfe2ff;color:#084298;border:1px solid #9ec5fe}.status-completed_incomplete{background-color:#ffe4cc;color:#c50;border:1px solid #ffb366}.status-completed{background-color:#d1e7dd;color:#0f5132;border:1px solid #a3cfbb}.status-checked{background-color:#e8daef;color:#6c3483;border:1px solid #d2b4de}.status-failed{background-color:#f8d7da;color:#842029;border:1px solid #f1aeb5}.status-text{font-weight:600}.status-progress{font-size:11px;opacity:.8}.task-card{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.task-card:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translateY(-2px)}.task-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.task-card-title{margin:0;font-size:16px;font-weight:600;color:#2c3e50;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card-info{display:flex;flex-direction:column;gap:8px}.task-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.info-label{color:#7f8c8d;font-weight:500}.info-value{color:#2c3e50}.task-id{font-family:Courier New,monospace;font-size:12px;color:#7f8c8d}@media(max-width:768px){.task-card{padding:16px}.task-card-title{font-size:14px}.task-info-item{font-size:12px}}.fifo-tree{background-color:#f8f9fa;border-radius:8px;overflow:hidden}.fifo-tree-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#e9ecef;border-bottom:1px solid #dee2e6}.complete-status{font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px}.complete-status.complete{background-color:#d4edda;color:#155724}.complete-status.incomplete{background-color:#fff3cd;color:#856404}.matches-count{font-size:13px;color:#6c757d}.fifo-tree-content{max-height:500px;overflow-y:auto}.ticker-group{border-bottom:1px solid #e9ecef}.ticker-group:last-child{border-bottom:none}.ticker-header{display:flex;align-items:center;padding:14px 16px;background-color:#fff;cursor:pointer;transition:background-color .15s ease;gap:8px}.ticker-header:hover{background-color:#f8f9fa}.expand-icon{display:flex;align-items:center;justify-content:center;color:#6c757d;flex-shrink:0}.ticker-name{font-weight:600;font-size:15px;color:#2c3e50;min-width:100px}.ticker-stats{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:13px}.stat-item{color:#6c757d;white-space:nowrap}.stat-item.profit{font-weight:600;padding:2px 8px;border-radius:4px}.stat-item.profit.positive{color:#155724;background-color:#d4edda}.stat-item.profit.negative{color:#721c24;background-color:#f8d7da}.sales-list{background-color:#f8f9fa;padding-left:24px}.sale-item{border-left:2px solid #dee2e6}.sale-header{display:flex;align-items:center;padding:10px 16px;cursor:pointer;transition:background-color .15s ease;gap:8px;background-color:#f8f9fa}.sale-header:hover{background-color:#e9ecef}.sale-date{font-size:13px;color:#495057;min-width:90px;font-weight:500}.sale-info{font-size:13px;color:#6c757d;flex:1}.sale-profit{font-size:13px;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:4px}.sale-profit.positive{color:#155724}.sale-profit.negative{color:#dc3545}.profit-percent{font-size:11px;font-weight:400;color:#6c757d}.buy-matches{background-color:#e9ecef;margin-left:32px;padding:8px 16px 12px;border-radius:0 0 6px 6px}.buy-matches-header{display:grid;grid-template-columns:100px 80px 80px 1fr;gap:12px;padding:8px 0;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #dee2e6}.buy-match-row{display:grid;grid-template-columns:100px 80px 80px 1fr;gap:12px;padding:8px 0;font-size:13px;color:#495057;border-bottom:1px solid #dee2e6}.buy-match-row:last-of-type{border-bottom:none}.buy-date{color:#495057}.buy-quantity,.buy-price{color:#6c757d}.buy-amount{color:#495057;font-weight:500}.buy-matches-total{display:flex;justify-content:space-between;padding:10px 0 0;margin-top:8px;border-top:2px solid #ced4da;font-size:13px;font-weight:600;color:#2c3e50}.fifo-tree-content::-webkit-scrollbar{width:8px}.fifo-tree-content::-webkit-scrollbar-track{background:#f1f1f1}.fifo-tree-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.fifo-tree-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media(max-width:768px){.ticker-stats{flex-direction:column;align-items:flex-end;gap:4px}.sale-header{flex-wrap:wrap}.sale-info{width:100%;order:3;padding-left:24px;margin-top:4px}.buy-matches-header,.buy-match-row{grid-template-columns:1fr 1fr;gap:8px}.buy-matches-header span:nth-child(3),.buy-match-row .buy-price{display:none}}.delete-task-modal-content{display:flex;flex-direction:column;align-items:center;text-align:center}.delete-warning-icon{font-size:48px;margin-bottom:16px;color:#dc3545}.delete-warning-text{margin:0 0 12px;color:#333;font-size:16px;line-height:1.5}.delete-warning-subtext{margin:0 0 16px;color:#666;font-size:14px;line-height:1.5}.delete-error-message{width:100%;padding:12px 16px;background-color:#fee;color:#c33;border-radius:8px;font-size:14px;border-left:4px solid #c33;margin-bottom:16px;text-align:left}.delete-modal-actions{display:flex;gap:12px;margin-top:24px;width:100%;justify-content:flex-end}.delete-cancel-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#666;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit}.delete-cancel-btn:hover:not(:disabled){background:#e0e0e0}.delete-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit;box-shadow:0 4px 12px #dc35454d}.delete-confirm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #dc354566;background:linear-gradient(135deg,#c82333,#dc3545)}.delete-confirm-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #dc35454d}.delete-confirm-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:480px){.delete-modal-actions{flex-direction:column}.delete-cancel-btn,.delete-confirm-btn{width:100%}}.task-detail-modal{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.task-detail-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.task-detail-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 16px;border-bottom:1px solid #e1e8ed;position:sticky;top:0;background:#fff;z-index:10}.task-detail-header h2{margin:0;font-size:20px;font-weight:600;color:#2c3e50;flex:1}.close-btn-icon{background:none;border:none;font-size:24px;color:#7f8c8d;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s}.close-btn-icon:hover{color:#2c3e50}.header-actions{display:flex;align-items:center;gap:12px}.archive-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#6c757d,#495057);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #00000026}.archive-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #0003;background:linear-gradient(135deg,#495057,#6c757d)}.archive-btn.unarchive{background:linear-gradient(135deg,#28a745,#20c997)}.archive-btn.unarchive:hover:not(:disabled){background:linear-gradient(135deg,#20c997,#28a745);box-shadow:0 4px 10px #28a7454d}.archive-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.delete-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #dc35454d}.delete-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #dc354566;background:linear-gradient(135deg,#c82333,#dc3545)}.delete-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.archived-value{color:#6c757d;font-style:italic}.task-detail-body{padding:24px}.detail-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #ecf0f1}.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-section h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#2c3e50}.detail-section h4{margin:16px 0 12px;font-size:14px;font-weight:600;color:#34495e}.detail-row{display:flex;align-items:center;padding:10px 0;gap:12px}.detail-label{font-weight:500;color:#7f8c8d;min-width:140px;font-size:14px}.detail-value{color:#2c3e50;font-size:14px;flex:1}.task-id-value{font-family:Courier New,monospace;font-size:12px;color:#7f8c8d;word-break:break-all}.refresh-btn{margin-left:auto;padding:6px 12px;background-color:#ecf0f1;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background-color:#bdc3c7}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.error-section{background-color:#fee;border:1px solid #f8d7da;border-radius:6px;padding:16px}.error-section .error-message{margin:0;color:#842029;font-size:14px}.warning-section{background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:16px}.warning-banner{display:flex;align-items:center;gap:12px}.warning-icon{font-size:24px;flex-shrink:0}.warning-text{color:#856404;font-size:14px;font-weight:500;line-height:1.5}.warning-banner-with-upload{display:flex;flex-direction:column;gap:16px}.warning-text-section{display:flex;align-items:center;gap:12px}.upload-files-zone{display:flex;flex-direction:column;gap:12px}.drop-zone-compact{border:2px dashed #ffc107;border-radius:6px;padding:20px;text-align:center;cursor:pointer;transition:all .2s ease;background-color:#ffc1070d}.drop-zone-compact:hover{border-color:#ff9800;background-color:#ff98001a}.drop-zone-compact.drag-active{border-color:#ff9800;background-color:#ff980026;border-style:solid}.drop-zone-compact .upload-icon{font-size:32px;display:block;margin-bottom:8px}.drop-zone-compact .upload-hint-main{display:block;color:#856404;font-size:14px;font-weight:600;margin-bottom:4px}.drop-zone-compact .upload-hint-sub{display:block;color:#856404;font-size:12px;font-weight:400;opacity:.85}.selected-files-compact{display:flex;flex-direction:column;gap:8px}.file-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background-color:#ffc10726;border:1px solid #ffc107;border-radius:4px;font-size:13px;color:#856404}.file-chip .file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px;color:#856404}.file-chip .remove-file-btn{background:none;border:none;color:#856404;font-size:16px;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s}.file-chip .remove-file-btn:hover{color:#d39e00}.upload-btn-compact{padding:10px 16px;background:linear-gradient(135deg,#ff9800,#ff6f00);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #ff98004d}.upload-btn-compact:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #ff980066;background:linear-gradient(135deg,#ff6f00,#ff9800)}.upload-btn-compact:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #ff98004d}.upload-btn-compact:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.uploading-state{padding:20px;text-align:center;color:#856404;font-size:14px;font-weight:500;background-color:#ffc1071a;border-radius:6px}.upload-mode-tabs{display:flex;gap:8px;margin-bottom:16px}.upload-mode-tab{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:2px solid #ffc107;border-radius:8px;background:transparent;color:#856404;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1}.upload-mode-tab:hover{background-color:#ffc1071a}.upload-mode-tab.active{background:linear-gradient(135deg,#ffc107,#ff9800);color:#fff;border-color:transparent;box-shadow:0 2px 8px #ffc1074d}.excel-drop-zone{border-color:#6c3483;background-color:#6c34830d}.excel-drop-zone:hover{border-color:#8e44ad;background-color:#8e44ad1a}.excel-drop-zone.drag-active{border-color:#8e44ad;background-color:#8e44ad26;border-style:solid}.excel-drop-zone .upload-hint-main,.excel-drop-zone .upload-hint-sub{color:#6c3483}.excel-file-chip{background-color:#6c348326;border-color:#6c3483;color:#6c3483}.excel-file-chip .file-name,.excel-file-chip .remove-file-btn{color:#6c3483}.excel-file-chip .remove-file-btn:hover{color:#8e44ad}.upload-excel-btn{background:linear-gradient(135deg,#6c3483,#8e44ad);box-shadow:0 2px 8px #6c34834d}.upload-excel-btn:hover:not(:disabled){box-shadow:0 4px 12px #6c348366;background:linear-gradient(135deg,#8e44ad,#6c3483)}.upload-excel-btn:active:not(:disabled){box-shadow:0 1px 4px #6c34834d}.checked-excel-btn{background:linear-gradient(135deg,#6c3483,#8e44ad);color:#fff;box-shadow:0 2px 8px #6c348333}.checked-excel-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6c34834d;background:linear-gradient(135deg,#8e44ad,#6c3483)}.checked-excel-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #6c348333}.files-list{display:flex;flex-direction:column;gap:8px}.file-row{display:flex;align-items:center;gap:12px;padding:12px;background-color:#f8f9fa;border-radius:6px}.file-name{font-size:14px;color:#2c3e50;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.file-type-badge{flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600;border-radius:4px;min-width:55px;text-align:center}.badge-financial{background-color:#d1e7dd;color:#0f5132;border:1px solid #a3cfbb}.badge-purchase-only{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.download-file-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 6px #0052cc33}.download-file-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.download-file-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0052cc33}.download-file-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.results-actions{display:flex;gap:12px;margin-bottom:16px}.result-btn{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.json-btn{background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;box-shadow:0 2px 8px #0052cc33}.json-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.json-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0052cc33}.excel-btn{background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;box-shadow:0 2px 8px #0052cc33}.excel-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.excel-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0052cc33}.result-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.results-preview h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#34495e}.json-preview{background-color:#f8f9fa;border-radius:6px;padding:16px}.json-content{background-color:#2c3e50;color:#ecf0f1;padding:16px;border-radius:4px;font-size:12px;line-height:1.5;overflow-x:auto;margin:0;font-family:Courier New,Courier,monospace;max-height:400px;overflow-y:auto}.loading-state,.error-state{padding:40px;text-align:center;color:#7f8c8d}.error-state p{color:#e74c3c;margin-bottom:16px}.close-btn{padding:10px 20px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0052cc33}.close-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.close-btn:active{transform:translateY(0);box-shadow:0 1px 4px #0052cc33}@media(max-width:768px){.task-detail-content{max-width:100%;max-height:100vh;border-radius:0}.detail-row{flex-direction:column;align-items:flex-start;gap:4px}.detail-label{min-width:auto}.results-actions{flex-direction:column}.file-row{flex-direction:column;align-items:stretch;gap:8px}.download-file-btn{width:100%}}.archive-drop-zone{position:fixed;bottom:100px;right:24px;width:80px;height:80px;border-radius:12px;background:linear-gradient(135deg,#6c757d,#495057);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #0003;transition:all .3s ease;z-index:100;-webkit-user-select:none;user-select:none}.archive-drop-zone:hover{transform:scale(1.05);box-shadow:0 6px 16px #00000040}.archive-drop-zone.drag-over{transform:scale(1.15);background:linear-gradient(135deg,#0052cc,#1a6ad4);box-shadow:0 8px 24px #0052cc66}.archive-drop-zone.archived{background:linear-gradient(135deg,#28a745,#20c997)}.archive-drop-zone.archived:hover{box-shadow:0 6px 16px #28a7454d}.archive-drop-zone.archived.drag-over{background:linear-gradient(135deg,#20c997,#28a745);box-shadow:0 8px 24px #28a74566}.archive-icon{font-size:28px;line-height:1}.archive-label{font-size:11px;font-weight:600;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.archive-hint{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);font-size:10px;white-space:nowrap;background:#000c;padding:4px 8px;border-radius:4px}@media(max-width:768px){.archive-drop-zone{width:64px;height:64px;bottom:80px;right:16px}.archive-icon{font-size:24px}.archive-label{font-size:9px}}.task-list-container{background:#fff;border-radius:0;padding:24px;box-shadow:none;flex:1;display:flex;flex-direction:column}.task-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.task-list-header h2{margin:0;font-size:20px;font-weight:600;color:#2c3e50}.refresh-list-btn{padding:8px 16px;background-color:#fff;border:2px solid #dcdde1;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;color:#2c3e50}.refresh-list-btn:hover:not(:disabled){border-color:#0052cc;color:#0052cc;background-color:#e6f0ff;transform:translateY(-1px);box-shadow:0 2px 8px #0052cc26}.refresh-list-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.refresh-list-btn:disabled{opacity:.5;cursor:not-allowed}.task-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;padding:20px;background-color:#f8f9fa;border-radius:8px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#34495e}.filter-group input,.filter-group select{padding:8px 12px;border:1px solid #dcdde1;border-radius:6px;font-size:14px;background-color:#fff;color:#2c3e50;transition:border-color .2s}.filter-group select option{color:#2c3e50;background-color:#fff}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a}.filter-group input:disabled,.filter-group select:disabled{background-color:#ecf0f1;cursor:not-allowed}.search-input-group{display:flex;gap:8px}.search-input-group input{flex:1}.search-input-group button{padding:8px 16px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 8px #0052cc33}.search-input-group button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.search-input-group button:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0052cc33}.search-input-group button:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.view-mode-toggle{display:flex;border-radius:6px;overflow:hidden;border:1px solid #dcdde1}.toggle-btn{flex:1;padding:8px 16px;background-color:#fff;border:none;font-size:14px;font-weight:500;color:#7f8c8d;cursor:pointer;transition:all .2s ease}.toggle-btn:first-child{border-right:1px solid #dcdde1}.toggle-btn:hover:not(:disabled):not(.active){background-color:#f8f9fa;color:#2c3e50}.toggle-btn.active{background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.task-list-error{background-color:#fee;border:1px solid #f8d7da;color:#842029;padding:16px;border-radius:6px;margin-bottom:20px;font-size:14px}.task-list-loading{text-align:center;padding:60px 20px;color:#7f8c8d;font-size:16px;flex:1;display:flex;align-items:center;justify-content:center}.task-list-empty{text-align:center;padding:60px 20px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.task-list-empty p{margin:0 0 8px;color:#34495e;font-size:16px}.empty-hint{color:#7f8c8d!important;font-size:14px!important}.tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px;margin-bottom:24px;flex:1;align-content:start}.pagination{display:flex;align-items:center;justify-content:space-between;padding-top:20px;border-top:1px solid #ecf0f1}.pagination-btn{padding:10px 20px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0052cc33}.pagination-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0052cc4d;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.pagination-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0052cc33}.pagination-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.pagination-info{font-size:14px;color:#2c3e50;display:flex;flex-direction:column;align-items:center;gap:4px}.total-count{font-size:12px;color:#7f8c8d}@media(max-width:768px){.task-list-container{padding:16px}.task-filters,.tasks-grid{grid-template-columns:1fr}.pagination{flex-direction:column;gap:12px}.pagination-btn{width:100%}}.purge-modal-content{display:flex;flex-direction:column;align-items:center;text-align:center}.purge-warning-icon{font-size:48px;margin-bottom:16px;color:#dc3545}.purge-warning-title{margin:0 0 16px;color:#dc3545;font-size:20px;font-weight:600}.purge-warning-text{margin:0 0 16px;color:#666;font-size:14px;line-height:1.5}.purge-warning-list{text-align:left;margin:0 0 16px;padding-left:20px;color:#333;font-size:14px;line-height:1.8}.purge-warning-list li{margin-bottom:4px}.purge-credentials-text{margin:0 0 24px;color:#666;font-size:14px;text-align:center}.purge-credentials-form{width:100%}.purge-credentials-form .form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;text-align:left}.purge-credentials-form .form-group label{font-size:14px;font-weight:600;color:#4a4a4a}.purge-credentials-form .form-group input{padding:12px 14px;font-size:14px;border:2px solid #e8e8e8;border-radius:8px;transition:all .3s ease;font-family:inherit;background:#fafafa;color:#1a1a1a}.purge-credentials-form .form-group input::placeholder{color:#999}.purge-credentials-form .form-group input:focus{outline:none;border-color:#dc3545;background:#fff;box-shadow:0 0 0 3px #dc35451a}.purge-credentials-form .form-group input:disabled{background-color:#f0f0f0;cursor:not-allowed;opacity:.7}.purge-credentials-form .error-message{padding:12px 16px;background-color:#fee;color:#c33;border-radius:10px;font-size:14px;border-left:4px solid #c33;margin-bottom:16px;text-align:left}.purge-success-icon{width:64px;height:64px;background:linear-gradient(135deg,#28a745,#34ce57);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;margin-bottom:16px}.purge-success-title{margin:0 0 24px;color:#28a745;font-size:20px;font-weight:600}.purge-result-stats{display:flex;gap:32px;margin-bottom:24px}.purge-stat-item{display:flex;flex-direction:column;align-items:center}.purge-stat-value{font-size:36px;font-weight:700;color:#333}.purge-stat-label{font-size:14px;color:#666;margin-top:4px}.purge-modal-actions{display:flex;gap:12px;margin-top:24px;width:100%;justify-content:flex-end}.purge-modal-actions-center{justify-content:center}.purge-cancel-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#666;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit}.purge-cancel-btn:hover:not(:disabled){background:#e0e0e0}.purge-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.purge-confirm-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#fff;background:#ff6b6b;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit}.purge-confirm-btn:hover{background:#ee5a5a;transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.purge-danger-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit;box-shadow:0 4px 12px #dc35454d}.purge-danger-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #dc354566;background:linear-gradient(135deg,#c82333,#dc3545)}.purge-danger-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #dc35454d}.purge-danger-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.purge-close-btn{padding:12px 32px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#0052cc,#1a6ad4);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit;box-shadow:0 4px 12px #0052cc4d}.purge-close-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0052cc66}@media(max-width:480px){.purge-result-stats{flex-direction:column;gap:16px}.purge-modal-actions{flex-direction:column}.purge-cancel-btn,.purge-confirm-btn,.purge-danger-btn,.purge-close-btn{width:100%}}.audit-logs-content{display:flex;flex-direction:column;gap:20px;max-height:70vh}.audit-filters{background-color:#f8f9fa;padding:16px;border-radius:8px}.audit-filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:16px}.audit-filter-group{display:flex;flex-direction:column;gap:6px}.audit-filter-group label{font-size:13px;font-weight:500;color:#34495e}.audit-filter-group input,.audit-filter-group select{padding:8px 12px;border:1px solid #dcdde1;border-radius:6px;font-size:14px;background-color:#fff;color:#2c3e50;transition:border-color .2s}.audit-filter-group input:focus,.audit-filter-group select:focus{outline:none;border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a}.audit-filter-group input:disabled,.audit-filter-group select:disabled{background-color:#ecf0f1;cursor:not-allowed}.audit-filter-actions{display:flex;gap:12px;flex-wrap:wrap}.audit-filter-btn{padding:8px 16px;font-size:14px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:inherit}.audit-filter-btn-apply{background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;box-shadow:0 2px 8px #0052cc33}.audit-filter-btn-apply:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0052cc4d}.audit-filter-btn-reset{background-color:#f0f0f0;color:#666}.audit-filter-btn-reset:hover:not(:disabled){background-color:#e0e0e0}.audit-filter-btn-refresh{background-color:#fff;color:#2c3e50;border:2px solid #dcdde1}.audit-filter-btn-refresh:hover:not(:disabled){border-color:#0052cc;color:#0052cc;background-color:#e6f0ff}.audit-filter-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.audit-error{background-color:#fee;border:1px solid #f8d7da;color:#842029;padding:12px 16px;border-radius:6px;font-size:14px}.audit-loading{text-align:center;padding:40px 20px;color:#7f8c8d;font-size:16px}.audit-empty{text-align:center;padding:40px 20px}.audit-empty p{margin:0 0 8px;color:#34495e;font-size:16px}.audit-empty-hint{color:#7f8c8d!important;font-size:14px!important}.audit-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e8e8e8}.audit-table{width:100%;border-collapse:collapse;font-size:14px}.audit-table th{background-color:#f8f9fa;padding:12px 16px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #e8e8e8;white-space:nowrap}.audit-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;color:#4a4a4a}.audit-table tbody tr:hover{background-color:#f8f9fa}.audit-row-failed{background-color:#fff5f5}.audit-row-failed:hover{background-color:#fee!important}.audit-cell-datetime{white-space:nowrap;font-family:monospace;font-size:13px}.audit-cell-username{font-weight:500}.audit-cell-ip{font-family:monospace;font-size:13px}.audit-cell-error{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dc3545;font-size:13px}.audit-action-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.audit-action-login{background-color:#e6f4ea;color:#1e7e34}.audit-action-logout{background-color:#fff3cd;color:#856404}.audit-status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.audit-status-success{background-color:#d4edda;color:#155724}.audit-status-failed{background-color:#f8d7da;color:#721c24}.audit-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid #ecf0f1}.audit-pagination-btn{padding:8px 16px;background:linear-gradient(135deg,#0052cc,#1a6ad4);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0052cc33}.audit-pagination-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0052cc4d}.audit-pagination-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none;transform:none}.audit-pagination-info{font-size:14px;color:#2c3e50;display:flex;flex-direction:column;align-items:center;gap:4px}.audit-pagination-total{font-size:12px;color:#7f8c8d}@media(max-width:768px){.audit-filter-row{grid-template-columns:1fr}.audit-filter-actions{flex-direction:column}.audit-filter-btn{width:100%}.audit-pagination{flex-direction:column;gap:12px}.audit-pagination-btn{width:100%}.audit-table{font-size:12px}.audit-table th,.audit-table td{padding:8px 10px}}.dashboard-container{min-height:100vh;background-color:#f5f5f5;display:flex;flex-direction:column}.dashboard-header{background:#fff;padding:24px 32px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.dashboard-header h1{margin:0 0 8px;color:#333;font-size:28px}.user-info{margin:0;color:#666;font-size:14px}.dashboard-header-actions{display:flex;gap:12px;align-items:center}.create-result-button{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#0052cc,#1a6ad4);border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:inherit;white-space:nowrap;box-shadow:0 4px 12px #0052cc4d}.create-result-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0052cc66;background:linear-gradient(135deg,#1a6ad4,#0052cc)}.create-result-button:active{transform:translateY(0);box-shadow:0 2px 8px #0052cc4d}.logout-button{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background-color:#dc3545;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:inherit}.logout-button:hover{background-color:#c82333;transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.logout-button:active{transform:translateY(0)}.purge-data-button{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:inherit;white-space:nowrap;box-shadow:0 4px 12px #dc35454d}.purge-data-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #dc354566;background:linear-gradient(135deg,#c82333,#dc3545)}.purge-data-button:active{transform:translateY(0);box-shadow:0 2px 8px #dc35454d}.audit-logs-button{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#6c757d,#5a6268);border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:inherit;white-space:nowrap;box-shadow:0 4px 12px #6c757d4d}.audit-logs-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6c757d66;background:linear-gradient(135deg,#5a6268,#6c757d)}.audit-logs-button:active{transform:translateY(0);box-shadow:0 2px 8px #6c757d4d}.dashboard-content{padding:0;width:100%;flex:1;display:flex;flex-direction:column}.empty-state{background:#fff;border-radius:12px;padding:64px 32px;text-align:center;box-shadow:0 2px 8px #0000000d}.empty-state h2{margin:0 0 16px;color:#333;font-size:24px}.empty-state p{margin:0;color:#666;font-size:16px}@media(max-width:768px){.dashboard-header{padding:20px 16px}.dashboard-header h1{font-size:24px}.dashboard-header-actions{flex-direction:column;width:100%}.create-result-button,.logout-button,.purge-data-button,.audit-logs-button{width:100%}.dashboard-content{padding:0}.empty-state{padding:48px 24px}}
