.review-page{max-width:800px;margin:0 auto}.page-header{margin-bottom:32px}.page-title{font-size:28px;font-weight:700;color:#1a3a5c;margin-bottom:8px}.page-subtitle{font-size:15px;color:#6b7280}.upload-card{margin-bottom:24px}.upload-zone{border:2px dashed #cbd5e1;border-radius:12px;padding:48px 24px;text-align:center;transition:all .3s;cursor:pointer}.upload-zone:hover,.upload-zone.dragging{border-color:#2563a8;background:#f0f7ff}.upload-icon{font-size:48px;margin-bottom:16px}.upload-text{font-size:16px;color:#374151;margin-bottom:8px}.upload-hint{font-size:13px;color:#9ca3af}.upload-actions{display:flex;justify-content:center;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e5e7eb}.review-progress{padding:32px}.progress-title{font-size:20px;font-weight:600;color:#1a3a5c;margin-bottom:24px;text-align:center}.steps-list{display:flex;flex-direction:column;gap:16px}.step-item{display:flex;gap:14px;padding:14px;border-radius:8px;background:#f9fafb}.step-content{flex:1}.step-name{font-size:15px;font-weight:600;color:#374151;margin-bottom:4px}.step-summary{font-size:13px;color:#6b7280}.step-error{font-size:13px;color:#dc2626}.review-complete{text-align:center;padding:48px 32px}.complete-icon{font-size:56px;margin-bottom:16px}.complete-title{font-size:22px;font-weight:700;color:#1a3a5c;margin-bottom:12px}.complete-text{font-size:15px;color:#6b7280;margin-bottom:28px;line-height:1.6}.complete-actions{display:flex;justify-content:center;gap:12px}@media (max-width: 768px){.review-page{max-width:100%}.page-header{margin-bottom:20px}.page-title{font-size:22px}.page-subtitle{font-size:14px}.upload-zone{padding:32px 16px}.upload-icon{font-size:40px;margin-bottom:12px}.upload-text{font-size:15px}.upload-actions{flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px}.review-progress{padding:20px 16px}.progress-title{font-size:18px;margin-bottom:16px}.step-item{padding:12px 10px;gap:10px}.step-name{font-size:14px}.step-summary{font-size:12px}.review-complete{padding:32px 20px}.complete-icon{font-size:48px;margin-bottom:12px}.complete-title{font-size:20px}.complete-text{font-size:14px;margin-bottom:20px}.complete-actions{flex-wrap:wrap;gap:10px}.complete-actions .btn{width:100%;justify-content:center}}.regulations-page{max-width:1100px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.search-card{margin-bottom:24px}.search-bar{display:flex;gap:10px}.search-error{margin-top:10px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px}.search-input{flex:1;border:1px solid #d1d5db;border-radius:8px;padding:9px 14px;font-size:14px;color:#1f2937;transition:border-color .2s}.search-input:focus{border-color:#2563a8;box-shadow:0 0 0 3px #2563a81a}.search-results{margin-top:16px;border-top:1px solid #e5e7eb;padding-top:16px}.search-results-title{font-size:14px;font-weight:600;color:#374151;margin-bottom:12px}.search-result-item{padding:12px;background:#f9fafb;border-radius:8px;margin-bottom:8px}.search-result-source{font-size:12px;color:#6b7280;margin-bottom:6px;display:flex;align-items:center;gap:6px}.mandatory-badge{background:#fee2e2;color:#dc2626;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600}.search-result-content{font-size:13px;color:#374151;line-height:1.6}.regulations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.regulation-card{transition:box-shadow .2s}.regulation-card:hover{box-shadow:0 4px 12px #00000014}.reg-card-header{display:flex;align-items:center;gap:6px;margin-bottom:12px}.category-badge{padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.cat-national{background:#e0e7ff;color:#3730a3}.cat-industry{background:#d1fae5;color:#065f46}.cat-local{background:#fef3c7;color:#92400e}.province-badge{background:#f3f4f6;color:#6b7280;padding:2px 8px;border-radius:10px;font-size:12px}.reg-code{font-size:18px;font-weight:700;color:#1a3a5c;margin-bottom:4px}.reg-name{font-size:14px;color:#374151;margin-bottom:10px}.reg-stats{display:flex;gap:12px;font-size:12px;color:#6b7280;margin-bottom:4px}.reg-date{font-size:12px;color:#9ca3af}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:#fff;border-radius:12px;padding:28px;width:480px;max-width:90vw;box-shadow:0 20px 60px #0003}.modal-title{font-size:18px;font-weight:700;color:#1a3a5c;margin-bottom:20px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:6px}.form-group input[type=text],.form-group select{width:100%;border:1px solid #d1d5db;border-radius:7px;padding:8px 12px;font-size:14px;color:#1f2937}.form-group input[type=text]:focus,.form-group select:focus{border-color:#2563a8;box-shadow:0 0 0 3px #2563a81a;outline:none}.form-group input[type=file]{font-size:13px;color:#6b7280;width:100%}.modal-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.search-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.search-results-count{font-size:12px;color:#9ca3af}.search-summary{font-size:14px;color:#374151;line-height:1.6;margin-bottom:14px;padding:12px;background:#f0f7ff;border-radius:8px}.search-no-results{text-align:center;color:#9ca3af;padding:24px;font-size:14px}.search-result-relevance{font-size:12px;color:#6b7280;margin-top:6px}@media (max-width: 768px){.regulations-page{max-width:100%}.page-header{margin-bottom:16px}.page-title{font-size:20px}.search-bar{flex-direction:column;gap:8px}.search-input{width:100%}.search-bar .btn{width:100%;justify-content:center}.regulations-grid{grid-template-columns:1fr;gap:12px}.modal{width:100%;max-width:92vw;padding:20px 16px;border-radius:10px}.modal-title{font-size:16px;margin-bottom:14px}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions .btn{width:100%;justify-content:center}.search-result-item{padding:10px}.search-result-content{font-size:12px}}.reports-page{display:flex;gap:24px;height:calc(100vh - 108px);overflow:hidden}.reports-list{width:100%;overflow-y:auto}.reports-list.has-detail{width:320px;flex-shrink:0}.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-title{font-size:22px;font-weight:700;color:#1a3a5c}.report-cards{display:flex;flex-direction:column;gap:12px}.report-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px;cursor:pointer;transition:all .2s}.report-card:hover{border-color:#2563a8;box-shadow:0 2px 8px #2563a81a}.report-card.selected{border-color:#2563a8;background:#f0f7ff}.report-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.report-score-mini{font-size:20px;font-weight:700}.report-project-name{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:4px}.report-file-name{font-size:12px;color:#9ca3af;margin-bottom:4px}.report-date{font-size:12px;color:#9ca3af}.report-detail{flex:1;background:#fff;border-radius:10px;border:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.detail-header{padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.detail-score-wrap{display:flex;align-items:center;gap:20px}.detail-project-name{font-size:18px;font-weight:700;color:#1a3a5c;margin-bottom:4px}.detail-file{font-size:13px;color:#9ca3af;margin-bottom:8px}.detail-tabs{display:flex;border-bottom:1px solid #e5e7eb;padding:0 24px}.tab-btn{padding:12px 16px;background:transparent;color:#6b7280;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.tab-btn:hover{color:#2563a8}.tab-btn.active{color:#2563a8;border-bottom-color:#2563a8;font-weight:600}.detail-overview,.findings-list{flex:1;overflow-y:auto;padding:20px 24px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.info-item{display:flex;flex-direction:column;gap:2px;background:#f9fafb;padding:10px 14px;border-radius:8px}.info-label{font-size:12px;color:#9ca3af}.info-value{font-size:14px;color:#1f2937;font-weight:500}.assessment-box{background:#f0f7ff;border-left:4px solid #2563a8;border-radius:0 8px 8px 0;padding:16px;margin-bottom:20px}.assessment-box h3{font-size:14px;font-weight:600;color:#1a3a5c;margin-bottom:8px}.assessment-box p{font-size:14px;color:#374151;line-height:1.6}.steps-summary{display:flex;flex-direction:column;gap:12px}.step-summary-item{display:flex;gap:12px;padding:12px;background:#f9fafb;border-radius:8px}.step-name{font-size:14px;font-weight:600;color:#374151}.step-summary-text{font-size:13px;color:#6b7280;margin-top:2px}.findings-count{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.findings-group{margin-bottom:24px}.findings-group-title{font-size:15px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.findings-group-title.severity-critical{color:#dc2626}.findings-group-title.severity-major{color:#d97706}.findings-group-title.severity-minor{color:#2563eb}.finding-item{padding:14px;border-radius:8px;background:#fafafa;margin-bottom:10px;border-left:3px solid}.border-critical{border-left-color:#dc2626}.border-major{border-left-color:#d97706}.border-minor{border-left-color:#2563eb}.finding-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.finding-title{font-size:14px;font-weight:600;color:#1f2937}.finding-description{font-size:13px;color:#4b5563;line-height:1.5;margin-bottom:6px}.finding-location{font-size:12px;color:#9ca3af;margin-bottom:6px}.finding-recommendation{font-size:13px;color:#374151;background:#f0fdf4;padding:8px 12px;border-radius:6px;line-height:1.5}.finding-delete-btn{margin-left:auto;width:24px;height:24px;border:none;background:transparent;color:#9ca3af;font-size:18px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.finding-delete-btn:hover{color:#dc2626;background:#fef2f2}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:14px}.chat-hint{background:#f9fafb;border-radius:8px;padding:16px;color:#6b7280;font-size:13px}.chat-hint ul{margin-top:8px;margin-left:16px;line-height:2}.chat-bubble{max-width:85%}.chat-bubble.user{align-self:flex-end}.chat-bubble.assistant{align-self:flex-start}.chat-role{font-size:12px;color:#9ca3af;margin-bottom:4px}.chat-bubble.user .chat-role{text-align:right}.chat-content{padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.6;white-space:pre-wrap}.chat-bubble.user .chat-content{background:#2563a8;color:#fff;border-bottom-right-radius:4px}.chat-bubble.assistant .chat-content{background:#f3f4f6;color:#1f2937;border-bottom-left-radius:4px}.markdown-body{white-space:normal}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:12px 0 6px;font-weight:600;line-height:1.3;color:#1a3a5c}.markdown-body h1{font-size:18px}.markdown-body h2{font-size:16px}.markdown-body h3{font-size:15px}.markdown-body h4{font-size:14px}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{margin:0 0 8px;padding-left:20px}.markdown-body li{margin-bottom:3px}.markdown-body code{background:#e5e7eb;padding:2px 5px;border-radius:4px;font-size:13px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-body pre{background:#1f2937;color:#e5e7eb;padding:10px 14px;border-radius:8px;overflow-x:auto;margin:8px 0;font-size:13px;line-height:1.5}.markdown-body pre code{background:none;padding:0;color:inherit;font-size:inherit}.markdown-body blockquote{border-left:3px solid #2563a8;margin:8px 0;padding:4px 12px;color:#4b5563;background:#f9fafb;border-radius:0 4px 4px 0}.markdown-body table{border-collapse:collapse;margin:8px 0;font-size:13px;width:100%}.markdown-body th,.markdown-body td{border:1px solid #d1d5db;padding:6px 10px;text-align:left}.markdown-body th{background:#e5e7eb;font-weight:600}.markdown-body hr{border:none;border-top:1px solid #d1d5db;margin:12px 0}.markdown-body a{color:#2563a8;text-decoration:underline}.markdown-body strong{font-weight:600}.chat-input-bar{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;gap:10px;align-items:flex-end}.chat-input-bar textarea{flex:1;border:1px solid #d1d5db;border-radius:8px;padding:10px 14px;font-size:14px;resize:none;color:#1f2937}.chat-input-bar textarea:focus{border-color:#2563a8;box-shadow:0 0 0 3px #2563a81a}.detail-back-btn{display:none}@media (max-width: 768px){.reports-page{flex-direction:column;height:auto;min-height:calc(100vh - 84px);gap:0}.reports-list,.reports-list.has-detail{width:100%;flex-shrink:0}.reports-list.has-detail{display:none}.report-detail{flex:none;width:100%;min-height:calc(100vh - 84px)}.detail-back-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:#2563a8;font-size:14px;font-weight:500;cursor:pointer;padding:4px 0;margin-bottom:8px}.detail-header{padding:16px}.detail-score-wrap{gap:14px}.score-circle{width:70px;height:70px;border-width:3px}.score-circle .score-value{font-size:22px}.detail-project-name{font-size:16px}.detail-tabs{padding:0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:10px 12px;font-size:13px;white-space:nowrap;flex-shrink:0}.detail-overview,.findings-list{padding:16px}.info-grid{grid-template-columns:1fr;gap:8px}.info-item{padding:8px 12px}.assessment-box{padding:12px}.step-summary-item{padding:10px;gap:10px}.finding-item{padding:12px}.finding-header{flex-wrap:wrap;gap:6px}.finding-title{font-size:13px}.finding-description{font-size:12px}.finding-recommendation{font-size:12px;padding:6px 10px}.chat-messages{padding:14px;gap:10px}.chat-bubble{max-width:90%}.chat-content{font-size:13px;padding:8px 12px}.chat-input-bar{padding:12px;gap:8px}.chat-input-bar textarea{font-size:13px;padding:8px 12px}.list-header{margin-bottom:12px}.page-title{font-size:18px}.report-card{padding:14px}.report-score-mini{font-size:18px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a3a5c,#2563a8)}.login-card{background:#fff;border-radius:16px;padding:40px 36px;width:400px;max-width:90vw;box-shadow:0 20px 60px #0003}.login-logo{text-align:center;margin-bottom:32px}.login-logo-icon{height:48px;width:48px;object-fit:contain;border-radius:6px;margin-bottom:12px}.login-title{font-size:20px;font-weight:700;color:#1a3a5c}.login-form{display:flex;flex-direction:column;gap:16px}.login-form-group{display:flex;flex-direction:column;gap:6px}.login-label{font-size:14px;font-weight:500;color:#374151}.login-input{border:1px solid #d1d5db;border-radius:8px;padding:10px 14px;font-size:14px;color:#1f2937;transition:border-color .2s}.login-input:focus{border-color:#2563a8;box-shadow:0 0 0 3px #2563a81a;outline:none}.login-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;color:#dc2626;font-size:13px}.login-btn{background:#2563a8;color:#fff;border:none;border-radius:8px;padding:11px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px}.login-btn:hover{background:#1d4f8e}.login-btn:disabled{background:#a0b4cc;cursor:not-allowed}@media (max-width: 768px){.login-card{width:100%;max-width:92vw;padding:32px 20px;border-radius:12px}.login-logo{margin-bottom:24px}.login-title{font-size:18px}.login-input{padding:10px 12px;font-size:13px}.login-btn{padding:10px;font-size:14px}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#1a3a5c,#2563a8);color:#fff;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:60px;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:10px}.logo-icon{height:32px;width:32px;object-fit:contain;border-radius:4px}.logo-text{font-size:18px;font-weight:600;letter-spacing:.5px}.header-nav{display:flex;gap:4px}.nav-btn{background:transparent;color:#fffc;border:1px solid transparent;padding:7px 18px;border-radius:6px;font-size:14px;transition:all .2s;cursor:pointer}.nav-btn:hover{background:#ffffff26;color:#fff}.nav-btn.active{background:#fff3;color:#fff;border-color:#fff6}.app-main{flex:1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.header-user{display:flex;align-items:center;gap:8px}.user-name{font-size:13px;color:#ffffffe6}.logout-btn{padding:5px 14px;font-size:13px}.card{background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 4px #00000014;border:1px solid #e8ecf0}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:7px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-primary{background:#2563a8;color:#fff}.btn-primary:hover{background:#1d4f8e}.btn-primary:disabled{background:#a0b4cc;cursor:not-allowed}.btn-danger{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.btn-danger:hover{background:#fecaca}.btn-ghost{background:transparent;color:#555;border:1px solid #ddd}.btn-ghost:hover{background:#f5f7fa}.severity-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.severity-critical{background:#fee2e2;color:#dc2626}.severity-major{background:#fef3c7;color:#d97706}.severity-minor{background:#dbeafe;color:#2563eb}.severity-info{background:#f0f9ff;color:#0369a1}.risk-critical{color:#dc2626}.risk-high{color:#d97706}.risk-medium{color:#ca8a04}.risk-low{color:#16a34a}.score-circle{width:90px;height:90px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;border:4px solid}.score-circle .score-value{font-size:26px;line-height:1}.score-circle .score-label{font-size:11px;font-weight:400;opacity:.8}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.spinner-dark{border-color:#2563a833;border-top-color:#2563a8}@keyframes spin{to{transform:rotate(360deg)}}.step-status-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.step-pending{background:#e5e7eb;color:#6b7280}.step-running{background:#dbeafe;color:#2563eb}.step-completed{background:#dcfce7;color:#16a34a}.step-error{background:#fee2e2;color:#dc2626}.empty-state{text-align:center;padding:60px 20px;color:#9ca3af}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:15px}@media (max-width: 768px){.app-header{padding:0 12px;height:52px}.header-logo{gap:6px}.logo-icon{height:28px;width:28px}.logo-text{display:none}.header-nav{gap:2px;flex:1;justify-content:center}.nav-btn{padding:6px 10px;font-size:13px}.header-user{gap:4px}.user-name{display:none}.logout-btn{padding:5px 10px;font-size:12px}.app-main{padding:16px 12px}.card{padding:16px;border-radius:8px}.btn{padding:8px 16px;font-size:13px}.page-title{font-size:22px}}@media (max-width: 380px){.nav-btn{padding:5px 7px;font-size:12px}.app-header{padding:0 8px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f5f7fa;color:#333}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea{font-family:inherit;outline:none}
