.app{min-height:calc(100vh - 40px);display:flex;flex-direction:column}.app-header{background:#fff;padding:28px 32px;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-bottom:20px;text-align:left}.app-header__inner{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}.app-header__brand{flex:1;min-width:min(100%,320px)}.app-header h1{color:#2d2d35;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;line-height:1.2;margin:0 0 8px;letter-spacing:-.02em}.app-header__tagline{color:#5c5c68;font-size:1rem;line-height:1.5;margin:0;max-width:36ch}.app-header__actions{display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:min(100%,300px)}.app-header__toprow{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 16px}.app-header__welcome{color:#5c5c68;font-size:.9375rem}.app-header__welcome strong{color:#2d2d35;font-weight:600}.app-header__logout{padding:6px 14px;font-size:.8125rem;font-weight:600;color:#5b4a8a;background:#faf9ff;border:1px solid #d4cce8;border-radius:8px;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.app-header__logout:hover{background:#f0ecff;border-color:#b8a8dc;color:#43306b}.app-header__logout:focus-visible{outline:2px solid #764ba2;outline-offset:2px}.app-header__office{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px;background:linear-gradient(160deg,#f8f6ff,#f0ecfc);border:1px solid #e0d8f0;border-radius:10px;box-shadow:inset 0 1px #fffc}.app-header__office-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5b4a8a}.app-header__office-select{width:100%;padding:10px 12px;font-size:.9375rem;font-weight:500;color:#2d2d35;background:#fff;border:1px solid #cfc4e8;border-radius:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.app-header__office-select:hover{border-color:#a898cf}.app-header__office-select:focus{outline:none;border-color:#764ba2;box-shadow:0 0 0 3px #764ba233}@media (max-width: 720px){.app-header__inner{flex-direction:column;align-items:stretch}.app-header__actions{min-width:0}.app-header__toprow{justify-content:space-between}}.tabs{display:flex;gap:10px;margin-bottom:20px;background:#fff;padding:10px;border-radius:12px;box-shadow:0 2px 4px #0000001a}.tab{flex:1;padding:15px 30px;border:none;background:#f0f0f0;color:#666;font-size:1em;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease}.tab:hover{background:#e0e0e0;transform:translateY(-2px)}.tab.active{background:linear-gradient(135deg,#97a4db,#764ba2);color:#fff;box-shadow:0 4px 6px #667eea4d}.app-main{flex:1;background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a}.app-footer{margin-top:20px;text-align:center;color:#fff;padding:20px}.app-footer p{font-size:.9em;opacity:.9}.login-container{display:flex;justify-content:center;align-items:center;height:100vh;max-height:100vh;overflow:hidden;background:linear-gradient(135deg,#0c0c0c,#311e44);padding:20px;box-sizing:border-box;position:fixed;top:0;left:0;right:0;bottom:0;width:100vw}.login-box{background:#d1d4d6;border-radius:12px;box-shadow:0 10px 40px #0003;padding:30px;width:100%;max-width:400px;box-sizing:border-box;max-height:calc(100vh - 40px);overflow-y:auto}.logo-container{display:flex;justify-content:center;align-items:center;margin-bottom:20px;margin-top:10px}.company-logo{max-width:100px;width:100%;height:auto;display:block;object-fit:contain}.login-box h1{margin:0 0 8px;color:#333;font-size:22px;text-align:center}.login-box h2{margin:0 0 20px;color:#666;font-size:18px;text-align:center;font-weight:400}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:16px;transition:border-color .3s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.error-message{background-color:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}.submit-button{width:100%;padding:12px;background:linear-gradient(135deg,#0c1957,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.submit-button:active:not(:disabled){transform:translateY(0)}.switch-mode{margin-top:20px;text-align:center;color:#666;font-size:14px}.link-button{background:none;border:none;color:#0c1025;cursor:pointer;text-decoration:underline;font-size:14px;padding:0;font-weight:500}.link-button:hover{color:#764ba2}.resolve-by-visitid{width:100%;max-width:min(900px,100%);margin:0 auto}.resolve-by-visitid h2{color:#333;margin-bottom:10px;font-size:1.8em}.form-group input,.form-group select{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1em;transition:border-color .3s ease;background:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.form-group input:disabled,.form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.code-type-select{cursor:pointer}.form-group small{color:#999;font-size:.85em}.submit-button{padding:15px 30px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:10px}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #667eea4d}.submit-button:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee;border:2px solid #e74c3c;border-radius:8px;padding:20px;margin-top:20px}.error-message h3{color:#e74c3c;margin-bottom:10px}.error-message p{color:#c0392b}.result-message{border-radius:8px;padding:20px;margin-top:20px}.result-message.warning{background:#fff3e0;border:2px solid #e74c3c}.result-message h3{margin-bottom:15px;font-size:1.3em}.result-message.warning h3{color:#c0392b}.result-summary{color:#333;margin-bottom:20px;font-size:1.05em}.visit-details{background:#fff;border-radius:8px;padding:20px;margin-top:15px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e0e0e0}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;color:#666}.detail-value{color:#333;text-align:right}.status-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-weight:600;font-size:.9em}.status-badge.success{background:#4caf50;color:#fff}.status-badge.failed{background:#e74c3c;color:#fff}.duty-codes-row{align-items:flex-start!important;flex-direction:column;gap:12px}.duty-codes-row .detail-label{margin-bottom:4px}.duty-codes{display:flex;flex-wrap:wrap;gap:8px;width:100%;justify-content:flex-start;align-items:flex-start}.duty-code-badge{display:inline-block;padding:6px 12px;background:#667eea;color:#fff;border-radius:6px;font-weight:600;font-size:.9em;min-width:40px;text-align:center;box-shadow:0 2px 4px #667eea33;transition:transform .2s ease,box-shadow .2s ease;flex-shrink:0}.duty-code-badge:hover{transform:translateY(-2px);box-shadow:0 4px 8px #667eea4d}.duty-code-type-badge{display:inline-block;padding:6px 14px;border-radius:6px;font-weight:600;font-size:.95em;text-transform:uppercase;letter-spacing:.5px}.duty-code-type-badge.dynamic{background:#4caf50;color:#fff}.duty-code-type-badge.default-pca{background:#2196f3;color:#fff}.duty-code-type-badge.default-chha{background:#ff9800;color:#fff}.resolve-by-excel{width:100%;max-width:none;margin:0}.resolve-by-excel h2{color:#333;margin-bottom:10px;font-size:1.8em}.example-table{margin-top:15px;overflow-x:auto}.example-table table{width:100%;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden}.example-table thead{background:#6c5ce7;color:#fff}.example-table th,.example-table td{padding:10px 15px;text-align:left;border-bottom:1px solid #e0e0e0}.example-table tbody tr:hover{background:#f8f9fa}.resolve-form{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.visits-list{margin-top:25px;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.visits-list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-bottom:14px}.visits-list-header h4{color:#333;margin:0;font-size:1.1em}.visits-download-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-left:auto}.visits-download-hint{color:#666;font-size:.88em;line-height:1.4;max-width:28rem;text-align:right}.visits-list .download-button,.download-section .download-button{margin-top:0;padding:10px 22px;background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;border:none;border-radius:8px;font-size:.95em;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 6px #6c5ce740;white-space:nowrap}.download-button--inline{flex-shrink:0}.visits-list .download-button:hover:not(:disabled),.download-section .download-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 10px #6c5ce759}.visits-list .download-button:disabled,.download-section .download-button:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.visit-filter-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:14px;padding:10px 14px;background:#ffffffbf;border:1px solid rgba(0,0,0,.08);border-radius:8px}.visit-filter-toggle__label{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#555}.visit-filter-toggle__buttons{display:flex;flex-wrap:wrap;gap:8px}.visit-filter-toggle__buttons button{padding:8px 16px;font-size:.9rem;font-weight:600;color:#555;background:#fff;border:1px solid #cfcfcf;border-radius:8px;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.visit-filter-toggle__buttons button:hover:not(:disabled){border-color:#9b8bc9;color:#43306b;background:#faf9ff}.visit-filter-toggle__buttons button:disabled{opacity:.45;cursor:not-allowed}.visit-filter-toggle__buttons button.is-active{color:#fff;background:linear-gradient(135deg,#6c5ce7,#8b7fd8);border-color:#5a4fcf;box-shadow:0 2px 6px #6c5ce759}.visits-table-empty{padding:28px 20px;text-align:center;color:#666;font-size:.95em;background:#fafafa;border-top:1px solid #e8e8e8}@media (max-width: 640px){.visits-download-hint{text-align:left;max-width:none}.visits-download-actions{margin-left:0;width:100%;justify-content:flex-start}}.visits-table{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.visits-header{display:grid;grid-template-columns:minmax(96px,1fr) minmax(110px,1.1fr) minmax(140px,1.25fr) minmax(100px,1fr) minmax(160px,1.35fr) minmax(92px,.85fr) minmax(220px,2.5fr);gap:14px 16px;padding:15px 22px;background:#6c5ce7;color:#fff;font-weight:600;font-size:.95em}.visit-row{display:grid;grid-template-columns:minmax(96px,1fr) minmax(110px,1.1fr) minmax(140px,1.25fr) minmax(100px,1fr) minmax(160px,1.35fr) minmax(92px,.85fr) minmax(220px,2.5fr);gap:14px 16px;padding:15px 22px;border-bottom:1px solid #e0e0e0;transition:background .2s ease}.visit-row:hover{background:#f8f9fa}.visit-row:last-child{border-bottom:none}.visit-row.success{background:#f1f8e9}.visit-row.failed{background:#ffebee}.visit-id{font-weight:600;color:#333}.visit-contract{color:#666;font-weight:500}.visit-admission{color:#666;font-size:.9em;word-break:break-word}.visit-message{color:#333;font-size:.9em;line-height:1.45;word-break:break-word}.visit-row.failed .visit-message{color:#b71c1c}.patient-name{color:#666}.visit-date{color:#666;font-size:.9em}.visit-status{font-weight:600;padding:4px 12px;border-radius:12px;display:inline-block;font-size:.85em;text-align:center}.visit-status.success{background:#4caf50;color:#fff}.visit-status.failed{background:#f44336;color:#fff}@media (max-width: 768px){.visits-header,.visit-row{grid-template-columns:1fr;gap:10px}.visits-header>div,.visit-row>div{padding:5px 0}.result-stats{flex-direction:column}}.create-patient-poc{width:100%;max-width:none;margin:0}.create-patient-poc h2{color:#333;margin-bottom:10px;font-size:1.8em}.description{color:#666;margin-bottom:30px;line-height:1.6}.file-format-info{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:30px}.file-format-info h3{color:#333;font-size:1.1em;margin-bottom:15px}.file-format-info ul{margin:0 0 20px 20px;color:#666;line-height:1.8}.file-format-info ul li{margin-bottom:8px}.create-poc-form{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333;font-size:.95em}.required{color:#e74c3c}.file-upload-group{position:relative}.file-input-wrapper{position:relative;display:inline-block;width:100%}.file-input-wrapper input[type=file]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;z-index:2}.file-input-label{display:block;padding:12px 16px;border:2px dashed #6c5ce7;border-radius:8px;background:#f8f9fa;color:#6c5ce7;text-align:center;cursor:pointer;transition:all .3s ease;font-weight:500}.file-input-label:hover{background:#f0f0ff;border-color:#5a4fcf}.file-selected{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#e8f5e9;border:2px solid #4caf50;border-radius:8px;margin-top:10px}.file-icon{font-size:1.2em}.file-name{flex:1;color:#2e7d32;font-weight:500}.remove-file-btn{background:#f44336;color:#fff;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .3s ease}.remove-file-btn:hover{background:#d32f2f}.remove-file-btn:disabled{background:#ccc;cursor:not-allowed}.form-group small{color:#666;font-size:.85em;margin-top:4px}.submit-button{padding:15px 30px;background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;border:none;border-radius:8px;font-size:1.1em;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #6c5ce74d}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #6c5ce766}.submit-button:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.error-message{background:#ffebee;border:2px solid #f44336;border-radius:8px;padding:20px;margin-bottom:20px}.error-message h3{color:#c62828;margin-bottom:10px}.error-message p{color:#d32f2f;margin:0}.result-message{border-radius:8px;padding:25px;margin-bottom:20px}.result-message.success{background:#e8f5e9;border:2px solid #4caf50}.result-message.warning{background:#fff3e0;border:2px solid #ff9800}.result-message h3{margin-top:0;margin-bottom:15px;font-size:1.3em}.result-message.success h3{color:#2e7d32}.result-message.warning h3{color:#e65100}.result-summary{font-size:1.1em;margin-bottom:20px;color:#333}.result-stats{display:flex;gap:20px;margin-bottom:25px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;padding:15px 20px;background:#fff;border-radius:8px;min-width:120px;box-shadow:0 2px 4px #0000001a}.stat-label{font-size:.9em;color:#666;margin-bottom:5px}.stat-value{font-size:1.8em;font-weight:700;color:#333}.success-stat .stat-value{color:#4caf50}.failed-stat .stat-value{color:#f44336}.processing-logs{margin-top:25px;margin-bottom:25px}.processing-logs h4{color:#333;margin-bottom:15px;font-size:1.1em}.logs-container{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;padding:15px;max-height:400px;overflow-y:auto;font-family:Courier New,monospace;font-size:.9em}.log-entry{padding:8px 12px;margin-bottom:4px;background:#fff;border-left:3px solid #6c5ce7;border-radius:4px;color:#333;line-height:1.5}.log-entry:last-child{margin-bottom:0}.loading-indicator{display:inline-block;color:#6c5ce7;animation:pulse 1.5s ease-in-out infinite;margin-left:8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.records-list{margin-top:25px}.records-list h4{color:#333;margin-bottom:15px;font-size:1.1em}.records-table{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.records-header{display:grid;grid-template-columns:1.5fr 1.5fr 1.5fr 1fr;gap:15px;padding:15px 20px;background:#6c5ce7;color:#fff;font-weight:600;font-size:.95em}.record-row{display:grid;grid-template-columns:1.5fr 1.5fr 1.5fr 1fr;gap:15px;padding:15px 20px;border-bottom:1px solid #e0e0e0;transition:background .2s ease}.record-row:hover{background:#f8f9fa}.record-row:last-child{border-bottom:none}.record-row.success{background:#f1f8e9}.record-row.failed{background:#ffebee}.record-patient-id{font-weight:600;color:#333}.record-visit-date{color:#666}.record-caregiver{color:#666;font-weight:500}.record-status{font-weight:600;padding:4px 12px;border-radius:12px;display:inline-block;font-size:.85em;text-align:center}.record-status.success{background:#4caf50;color:#fff}.record-status.failed{background:#f44336;color:#fff}.download-section{margin-top:20px;padding:15px;background:#fff;border-radius:6px;text-align:center}.download-section p{color:#666;margin:0}@media (max-width: 768px){.records-header,.record-row{grid-template-columns:1fr;gap:10px}.records-header>div,.record-row>div{padding:5px 0}.result-stats{flex-direction:column}}*{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:linear-gradient(135deg,#595b5e,#45305a);min-height:100vh;padding:20px 16px}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100%;max-width:min(1680px,100%);margin:0 auto}
