body{margin:0}.app-header{background-color:var(--frp-dark);box-shadow:0 2px 8px #0000001a;color:#fff;position:sticky;top:0;z-index:100}.header-content{gap:2rem;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.header-content,.logo{align-items:center;display:flex}.logo{color:#fff;gap:.75rem;text-decoration:none}.logo-image{height:32px;width:auto}.logo h1{color:#fff;font-size:1.3rem;font-weight:600;margin:0;white-space:nowrap}.nav-menu{display:flex;flex:1 1;gap:2rem}.nav-link{border-bottom:2px solid #0000;color:#fff;font-weight:500;text-decoration:none;transition:opacity .3s ease}.nav-link:hover{color:#fff;opacity:.8}.user-menu{align-items:center;display:flex;gap:1rem}.user-placeholder{color:#ffffffe6;font-size:.9rem}@media (max-width:768px){.header-content{flex-wrap:wrap;padding:1rem}.logo h1{font-size:1.2rem}.nav-menu{flex-basis:100%;gap:1rem;order:3}.user-menu{font-size:.85rem}}.error-boundary{align-items:center;background-color:var(--frp-bg);display:flex;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-content{background-color:#fff;border:1px solid var(--frp-border);border-radius:4px;box-shadow:0 2px 8px #0000001a;max-width:600px;padding:2rem;text-align:center}.error-boundary-content h2{color:#c62828;margin-bottom:1rem}.error-boundary-content p{color:var(--frp-text);margin-bottom:1.5rem}.error-details{background-color:var(--frp-bg);border:1px solid var(--frp-border);border-radius:4px;margin:1.5rem 0;padding:1rem;text-align:left}.error-details summary{color:var(--frp-dark);cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.error-details pre{background-color:#f5f5f5;border-radius:4px;color:#333;font-size:.85rem;margin-top:.75rem;overflow-x:auto;padding:.75rem}.error-boundary-content .btn{margin-top:1rem}.dashboard-container{margin:0 auto;max-width:1200px;padding:2rem}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.dashboard-header h2{margin:0}.tabs-container{background-color:#fff;border:1px solid var(--frp-border);border-bottom:none;border-radius:4px 4px 0 0;margin-bottom:2rem}.tabs{display:flex;gap:0;list-style:none;margin:0;padding:0}.tab{background-color:var(--frp-bg);border:none;border-bottom:3px solid #0000;color:var(--frp-text);cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:1rem;text-align:center;transition:all .3s ease}.tab:hover{background-color:#e0e0e0}.tab.active{background-color:#fff;border-bottom-color:var(--frp-primary);color:var(--frp-primary)}.jobs-section{background-color:#fff;border:1px solid var(--frp-border);border-radius:0 0 4px 4px;border-top:none;margin-bottom:3rem;padding:2rem}.jobs-section h3{border-bottom:2px solid var(--frp-primary);color:var(--frp-dark);margin-bottom:1.5rem;margin-top:0;padding-bottom:.5rem}.jobs-table{overflow-x:auto}.jobs-table table{width:100%}.job-name{color:var(--frp-dark);font-weight:500}.no-jobs{color:#999;padding:2rem;text-align:center}@media (max-width:1024px){.dashboard-container{padding:1rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.jobs-section{padding:1.5rem}.jobs-table{font-size:.9rem}}@media (max-width:768px){.dashboard-header h2{font-size:1.5rem}.tab{font-size:.9rem;padding:.75rem}.jobs-section{padding:1rem}td,th{padding:.75rem .5rem}.jobs-table table{font-size:.85rem}}.view-job-container{margin:0 auto;max-width:1000px;padding:2rem}.job-header{align-items:flex-start;background-color:#fff;border:1px solid var(--frp-border);border-radius:4px;display:flex;gap:2rem;justify-content:space-between;margin-bottom:2rem;padding:2rem}.job-header h2{margin:0 0 1rem}.job-header>div{flex:1 1}.job-details{display:flex;flex-direction:column;gap:2rem}.details-section{background-color:#fff;border:1px solid var(--frp-border);border-radius:4px;padding:2rem}.details-section h3{border-bottom:2px solid var(--frp-primary);color:var(--frp-dark);margin-bottom:1.5rem;margin-top:0;padding-bottom:.5rem}.details-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.detail-item{display:flex;flex-direction:column}.detail-item.full-width{grid-column:1/-1}.detail-item label{color:var(--frp-dark);font-weight:600;margin-bottom:.5rem}.detail-item p{color:var(--frp-text);margin:0;word-break:break-word}.sharepoint-link{color:var(--frp-primary);text-decoration:none;word-break:break-all}.sharepoint-link:hover{color:var(--frp-dark);text-decoration:underline}.history-timeline{padding:1rem 0}.no-history{color:#999;padding:2rem;text-align:center}.timeline{padding:1rem 0;position:relative}.timeline:before{background-color:var(--frp-border);bottom:0;content:"";left:24px;position:absolute;top:0;width:2px}.timeline-item{display:flex;margin-bottom:1rem;position:relative}.timeline-marker{align-items:flex-start;display:flex;flex-shrink:0;justify-content:center;padding-top:.25rem;width:50px}.marker-dot{background-color:var(--frp-light-gray);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px var(--frp-border);height:16px;position:relative;width:16px;z-index:1}.marker-dot.status-new{background-color:var(--status-new);box-shadow:0 0 0 2px var(--status-new)}.marker-dot.status-initialised{background-color:var(--status-initialised);box-shadow:0 0 0 2px var(--status-initialised)}.marker-dot.status-analysed{background-color:var(--status-analysed);box-shadow:0 0 0 2px var(--status-analysed)}.marker-dot.status-exported{background-color:var(--status-exported);box-shadow:0 0 0 2px var(--status-exported)}.marker-dot.status-complete{background-color:var(--status-complete);box-shadow:0 0 0 2px var(--status-complete)}.marker-dot.status-error{background-color:var(--status-error);box-shadow:0 0 0 2px var(--status-error)}.timeline-content{align-items:center;background-color:var(--frp-bg);border-left:3px solid var(--frp-primary);border-radius:4px;display:flex;flex:1 1;flex-wrap:wrap;gap:1rem;margin-left:1.5rem;padding:.75rem}.timeline-status{color:var(--frp-dark);font-size:.95rem;font-weight:600}.timeline-message{color:var(--frp-text);flex:1 1;font-size:.9rem;min-width:200px}.timeline-time{color:#999;font-size:.8rem;white-space:nowrap}.files-list{padding:1rem 0}.files-table{border:1px solid var(--frp-border);border-collapse:collapse;width:100%}.files-table thead{background-color:var(--frp-bg);border-bottom:2px solid var(--frp-primary)}.files-table th{background-color:var(--frp-dark);border-right:1px solid var(--frp-border);color:#fff;font-weight:600;padding:.5rem;text-align:left}.files-table th:last-child{border-right:none}.files-table td{border-bottom:1px solid var(--frp-border);border-right:1px solid var(--frp-border);color:var(--frp-text);padding:1rem}.files-table td:last-child{border-right:none}.files-table tbody tr:hover{background-color:var(--frp-bg)}.file-name{color:var(--frp-primary);font-weight:500}.file-status{border-radius:3px;display:inline-block;font-size:.85rem;font-weight:500;padding:.4rem .8rem}.file-status-retrieved{background-color:#e3f2fd;color:#1565c0}.file-status-analysed{background-color:#e8f5e9;color:#2e7d32}.file-status-errored{background-color:#ffebee;color:#c62828}.no-files{color:#999;padding:2rem;text-align:center}.job-actions{background-color:#fff;border:1px solid var(--frp-border);border-radius:4px;display:flex;gap:1rem;padding:2rem}.job-actions .btn{flex:1 1;max-width:200px}@media (max-width:768px){.view-job-container{padding:1rem}.job-header{flex-direction:column;padding:1.5rem}.details-grid{grid-template-columns:1fr}.timeline{padding:.5rem 0}.timeline:before{left:18px}.timeline-marker{width:40px}.marker-dot{height:14px;width:14px}.timeline-content{margin-left:1rem;padding:.75rem}.job-actions{flex-direction:column}.job-actions .btn{max-width:100%}}.file-error-row td{background-color:#fff5f5;border-top:none;padding:.5rem .75rem .75rem}.file-error-label{color:#c62828;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.04em;margin-right:.5rem;text-transform:uppercase}.file-error-text{color:#7f1d1d;font-family:Consolas,Courier New,monospace;font-size:.8125rem;overflow-wrap:anywhere}.create-job-container{margin:0 auto;max-width:800px;padding:2rem}.form-section{background-color:#fff;border:1px solid var(--frp-border);border-radius:4px;padding:2rem}.form-section h2{color:var(--frp-dark);margin-bottom:2rem;margin-top:0}.job-form{gap:1.5rem}.form-group,.job-form{display:flex;flex-direction:column}.form-group label{color:var(--frp-dark);font-weight:600;margin-bottom:.75rem}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--frp-border);border-radius:4px;color:var(--frp-text);font-family:inherit;font-size:1rem;padding:.75rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--frp-primary);box-shadow:0 0 0 3px #6aa1b81a;outline:none}.form-group small{color:#666;font-size:.875rem;margin-top:.5rem}.form-actions{border-top:1px solid var(--frp-light-gray);display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1rem}.form-actions .btn{min-width:120px}@media (max-width:768px){.create-job-container{padding:1rem}.form-section{padding:1.5rem}.form-actions{flex-direction:column}.form-actions .btn{min-width:auto;width:100%}}.success-message{background-color:#e8f5e9;border-left:4px solid #2e7d32;border-radius:4px;color:#2e7d32;line-height:1.5;margin-bottom:1rem;padding:1rem}.path-preview{color:#2e7d32;display:block;margin-top:.35rem}.path-preview code{background-color:#e8f5e9;border-radius:3px;font-family:Consolas,Courier New,monospace;padding:.1rem .35rem}.path-preview-error{background-color:#ffebee;border-left:3px solid #c62828;border-radius:3px;color:#c62828;display:block;margin-top:.35rem;padding:.4rem .6rem}:root{--frp-primary:#1b3a5c;--frp-dark:#0f2439;--frp-slate:#64748b;--frp-text:#0f2439;--frp-bg:#f8fafc;--frp-light-gray:#e2e8f0;--frp-border:#cbd5e1;--status-new:#ff9800;--status-initialised:#2196f3;--status-analysed:#9c27b0;--status-exported:#4caf50;--status-complete:#4caf50;--status-error:#f44336}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--frp-bg);color:#0f2439;color:var(--frp-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:#1b3a5c;color:var(--frp-primary);text-decoration:none}a:hover{text-decoration:underline}a:hover,h1,h2,h3,h4,h5,h6{color:#0f2439;color:var(--frp-dark)}h1,h2,h3,h4,h5,h6{margin-bottom:1rem}h2{font-size:1.8rem}h2,h3{font-weight:600}h3{font-size:1.3rem;margin-top:1.5rem}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:#1b3a5c;background-color:var(--frp-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:#0f2439;background-color:var(--frp-dark);color:#fff}.btn-secondary{background-color:#cbd5e1;background-color:var(--frp-border);color:#0f2439;color:var(--frp-text)}.btn-secondary:hover:not(:disabled){background-color:#e2e8f0;background-color:var(--frp-light-gray)}input,select,textarea{background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--frp-border);border-radius:4px;color:#0f2439;color:var(--frp-text);font-family:inherit;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}input:focus,select:focus,textarea:focus{border-color:#1b3a5c;border-color:var(--frp-primary);box-shadow:0 0 0 3px #6aa1b81a;outline:none}input:disabled,select:disabled,textarea:disabled{background-color:#e2e8f0;background-color:var(--frp-light-gray);cursor:not-allowed}label{color:#0f2439;color:var(--frp-dark);font-weight:500;margin-bottom:.5rem}label,small{display:block}small{color:#666;font-size:.875rem;margin-top:.25rem}.status-badge{border-radius:4px;color:#fff;display:inline-block;font-size:.85rem;font-weight:600;padding:.4rem .8rem}.status-new{background-color:#ff9800;background-color:var(--status-new)}.status-initialised{background-color:#2196f3;background-color:var(--status-initialised)}.status-analysed{background-color:#9c27b0;background-color:var(--status-analysed)}.status-exported{background-color:#4caf50;background-color:var(--status-exported)}.status-complete{background-color:#4caf50;background-color:var(--status-complete)}.status-error{background-color:#f44336;background-color:var(--status-error)}.error-message{background-color:#ffebee;border-left:4px solid #c62828;border-radius:4px;color:#c62828;margin-bottom:1rem;padding:1rem}.link-action{color:#1b3a5c;color:var(--frp-primary);font-weight:500;text-decoration:none}.link-action:hover{color:#0f2439;color:var(--frp-dark);text-decoration:underline}.back-link{color:#1b3a5c;color:var(--frp-primary);display:inline-block;font-weight:500;margin-bottom:1.5rem}.back-link:hover{color:#0f2439;color:var(--frp-dark)}table{background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--frp-border);border-collapse:collapse;border-radius:4px;overflow:hidden;width:100%}th{background-color:#0f2439;background-color:var(--frp-dark);color:#fff;font-weight:600;text-align:left}td,th{padding:1rem}td{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--frp-light-gray)}tr:last-child td{border-bottom:none}tr:hover{background-color:#fafafa}#root,.app{display:flex;flex-direction:column;min-height:100vh}.app-main{background-color:#f8fafc;background-color:var(--frp-bg);flex:1 1;padding-bottom:2rem}@media (max-width:768px){h2{font-size:1.5rem}h3{font-size:1.1rem}.btn{padding:.6rem 1.2rem}.btn,table{font-size:.9rem}td,th{padding:.75rem}}
/*# sourceMappingURL=main.59530d78.css.map*/