.upload-zone{border:2px dashed #ccc;border-radius:8px;padding:60px 20px;text-align:center;cursor:pointer;transition:all .3s;background-color:#fafafa}.upload-zone:hover{border-color:#06c;background-color:#f0f7ff}.upload-content{color:#666}.upload-content svg{margin-bottom:16px;color:#06c}.upload-title{font-size:18px;font-weight:500;margin-bottom:8px;color:#333}.upload-subtitle{font-size:14px;color:#999}.transactions-section{margin-top:32px}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.transactions-header h2{font-size:24px;color:#333}.transactions-info{display:flex;gap:24px;font-size:14px;color:#666}.error-count{color:#c33}.table-wrapper{overflow-x:auto;border:1px solid #e0e0e0;border-radius:4px}.transactions-table{width:100%;border-collapse:collapse;font-size:14px}.transactions-table th{background-color:#f5f5f5;padding:12px;text-align:left;font-weight:600;border-bottom:2px solid #e0e0e0;white-space:nowrap}.transactions-table td{padding:12px;border-bottom:1px solid #f0f0f0}.transactions-table tbody tr:hover{background-color:#fafafa}.transactions-table .number{text-align:right;font-family:Monaco,Menlo,monospace}.transactions-table .ticker{font-weight:600;color:#06c}.transactions-table .description{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-row{background-color:#fff5f5!important}.error-row td{color:#c33}.totals-row{background-color:#f5f5f5;font-weight:700}.totals-row td{border-bottom:none;padding-top:16px;padding-bottom:16px}.export-section{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.export-button{background-color:#28a745;font-size:16px;padding:12px 32px}.export-button:hover:not(:disabled){background-color:#218838}.export-warning{color:#c33;font-size:14px;margin:0}.app{min-height:100vh;padding:20px}.loading-subtitle{font-size:14px;color:#999;margin-top:8px}.result-header{display:flex;justify-content:flex-end;margin-bottom:16px}.reset-button{background-color:#666;font-size:14px;padding:8px 16px}.reset-button:hover{background-color:#555}.auth-gate{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:20px}.auth-gate-card{background:#fff;border-radius:12px;padding:48px 40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.auth-gate-title{font-size:24px;font-weight:600;color:#333;margin-bottom:8px;text-align:center}.auth-gate-subtitle{font-size:16px;color:#666;margin-bottom:32px;text-align:center}.auth-gate-form{margin-bottom:32px}.auth-gate-input{width:100%;padding:14px 16px;font-size:15px;border:2px solid #ddd;border-radius:8px;margin-bottom:16px;font-family:monospace;transition:border-color .3s}.auth-gate-input:focus{outline:none;border-color:#667eea}.auth-gate-button{width:100%;padding:14px 16px;font-size:16px;font-weight:500;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;cursor:pointer;transition:transform .2s,box-shadow .2s}.auth-gate-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.auth-gate-button:active{transform:translateY(0)}.auth-gate-error{margin-top:16px;padding:12px 16px;background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;text-align:center}.auth-gate-info{padding-top:32px;border-top:1px solid #eee;font-size:14px;color:#666;line-height:1.6}.auth-gate-info p{margin-bottom:12px}.auth-gate-info strong{color:#333}.auth-gate-info-note{font-size:13px;color:#999;font-style:italic}.auth-gate-spinner{width:40px;height:40px;margin:0 auto 16px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.auth-header{background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:10px 20px;display:flex;align-items:center;gap:16px;font-size:13px;color:#666}.auth-header-email{flex:1;font-weight:500;color:#333}.auth-header-expiry{color:#999}.auth-header-logout{padding:6px 12px;font-size:13px;background-color:transparent;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s}.auth-header-logout:hover{background-color:#f0f0f0;border-color:#ccc;color:#333}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;padding:20px}#root{max-width:1400px;margin:0 auto}h1{color:#333;margin-bottom:24px;font-size:32px}.container{background:#fff;border-radius:8px;padding:32px;box-shadow:0 2px 8px #0000001a}.error{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px;border-radius:4px;margin-bottom:16px}.info{background-color:#eef;border:1px solid #ccf;color:#339;padding:12px;border-radius:4px;margin-bottom:16px}.success{background-color:#efe;border:1px solid #cfc;color:#3c3;padding:12px;border-radius:4px;margin-bottom:16px}button{background-color:#06c;color:#fff;border:none;padding:12px 24px;border-radius:4px;font-size:16px;cursor:pointer;transition:background-color .2s}button:hover:not(:disabled){background-color:#0052a3}button:disabled{background-color:#ccc;cursor:not-allowed}.loading{text-align:center;padding:40px;color:#666}.spinner{border:3px solid #f3f3f3;border-top:3px solid #0066cc;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
