@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap";:root{--font-family: "Outfit", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--primary-color: #1677ff;--success-color: #52c41a;--warning-color: #fa8c16;--danger-color: #ff4d4f;--bg-gradient: linear-gradient(135deg, #f4f7fc 0%, #eef2f9 100%);--glass-bg: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .45)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--bg-gradient);background-attachment:fixed;color:#1f1f1f;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh;display:flex;flex-direction:column;padding:24px 16px}@media(min-width:576px){#root{padding:32px 24px}}@media(min-width:1200px){#root{padding:40px 120px;max-width:1440px;margin:0 auto}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#00000005;border-radius:4px}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040}.app-header{text-align:center;margin-bottom:32px;padding:24px;background:#ffffffb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 8px 32px #1f26870a}.app-title-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.app-title-logo h1{font-size:24px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#1677ff,#10239e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}@media(min-width:768px){.app-title-logo h1{font-size:32px}}.app-subtitle{font-size:14px;color:#595959;letter-spacing:.5px}.steps-card{background:#ffffffbf!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)!important;border-radius:20px!important;box-shadow:0 8px 32px #1f26870a;margin-bottom:24px}.console-card{background:#fffc!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border)!important;border-radius:20px!important;box-shadow:0 10px 35px #00000008;margin-bottom:24px}.ant-steps-item-title{font-weight:600!important;font-size:14px!important}.ant-steps-item-description{font-size:12px!important}@media(max-width:768px){.ant-steps-horizontal.ant-steps-label-horizontal{flex-direction:column!important}.ant-steps-item{padding-left:0!important;margin-bottom:12px}}.uploader-container{width:100%;margin:15px 0}.upload-dropzone{border:2px dashed rgba(22,119,255,.35);border-radius:16px;background:#fff6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:40px 24px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 2px 4px #00000005}.upload-dropzone:hover{border-color:#1677ff;background:#1677ff08;box-shadow:0 8px 30px #1677ff14}.upload-dropzone.drag-over{border-color:#52c41a;background:#52c41a0d;transform:scale(1.015);box-shadow:0 12px 40px #52c41a1f}.upload-dropzone.disabled{cursor:not-allowed;opacity:.6}.dropzone-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-icon{font-size:54px;color:#1677ff;margin-bottom:16px;transition:transform .3s ease}.upload-dropzone:hover .upload-icon{transform:translateY(-4px)}.upload-title{font-size:16px;font-weight:600;color:#1f1f1f;margin-bottom:8px}.upload-subtitle{font-size:13px;color:#8c8c8c;max-width:420px;margin:0 auto;line-height:1.6}.preview-card{background:#fff9!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4)!important;border-radius:16px!important;box-shadow:0 8px 32px #1f26870f;overflow:hidden}.preview-card :global(.ant-card-body){padding:16px}.preview-wrapper{display:flex;flex-direction:column;gap:16px}@media(min-width:576px){.preview-wrapper{flex-direction:row;align-items:center}}.preview-image{width:100%;max-height:220px;object-fit:cover;border-radius:12px;box-shadow:0 4px 12px #00000014}@media(min-width:576px){.preview-image{width:220px;height:140px}}.preview-info{flex:1;display:flex;justify-content:space-between;align-items:center;width:100%}.file-meta{display:flex;flex-direction:column;gap:4px}.file-name{font-size:15px;font-weight:600;color:#262626;word-break:break-all}.file-size{font-size:13px;color:#bfbfbf}.delete-btn{box-shadow:0 4px 10px #ff4d4f33;transition:all .2s ease}.delete-btn:hover{transform:scale(1.1)}.upload-source-modal .ant-modal-content{border-radius:20px;overflow:hidden;padding:24px;background:#fffffff2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.upload-options{display:flex;flex-direction:column;gap:12px;margin-top:16px}.upload-opt-btn{height:auto!important;padding:16px!important;border:1px solid #f0f0f0!important;border-radius:14px!important;text-align:left!important;transition:all .25s ease!important;width:100%;background:#fff!important}.upload-opt-btn:hover{border-color:#1677ff!important;background:#1677ff05!important;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.opt-content{display:flex;align-items:center;gap:16px;width:100%}.opt-icon{font-size:24px;padding:12px;border-radius:12px}.opt-icon.camera{color:#1677ff;background:#1677ff14}.opt-icon.album{color:#52c41a;background:#52c41a14}.opt-text{display:flex;flex-direction:column;gap:2px;text-align:left}.opt-title{font-size:15px;font-weight:600;color:#262626}.opt-desc{font-size:12px;color:#8c8c8c}.analysis-button-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;margin:20px 0}.start-analysis-btn{height:50px!important;font-size:16px!important;font-weight:600!important;padding:0 40px!important;border-radius:25px!important;box-shadow:0 6px 20px #1677ff4d!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;background:linear-gradient(135deg,#1677ff,#1358e8)!important;border:none!important}.start-analysis-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #1677ff66!important;filter:brightness(1.1)}.start-analysis-btn:disabled{background:#f5f5f5!important;color:#bfbfbf!important;box-shadow:none!important;cursor:not-allowed}.analysis-progress-panel{width:100%;max-width:500px;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);border-radius:16px;padding:24px;box-shadow:0 10px 30px #0000000a}.progress-header{margin-bottom:20px;border-bottom:1px solid #f0f0f0;padding-bottom:12px}.progress-title{font-size:16px;font-weight:600;color:#1f1f1f}.progress-timeline{margin-top:16px}.progress-timeline .ant-timeline-item{padding-bottom:20px!important}.progress-timeline .ant-timeline-item-last{padding-bottom:0!important}.analysis-success-badge{display:flex;align-items:center;gap:10px;background:#52c41a14;border:1px solid rgba(82,196,26,.2);border-radius:30px;padding:10px 24px;box-shadow:0 4px 15px #52c41a14}.success-icon{font-size:20px;color:#52c41a}.success-text{font-size:14px;font-weight:600;color:#237804}.animate-fade-in{animation:fadeIn .4s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.suggestion-item-card{width:100%;background:#ffffff80!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(240,240,240,.8)!important;border-radius:12px!important;box-shadow:0 4px 12px #00000005;transition:transform .2s ease,box-shadow .2s ease}.suggestion-item-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000000a;border-color:#1677ff33!important}.card-tag-header{margin-bottom:12px}.num-tag{font-size:13px!important;font-weight:700!important;padding:2px 10px!important;border-radius:4px!important}.item-content-grid{display:flex;flex-direction:column;gap:16px}@media(min-width:768px){.item-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}}.hazard-ref-section,.suggestion-ref-section{display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-radius:8px}.hazard-ref-section{background:#fa8c1608;border-left:3px solid #fa8c16}.suggestion-ref-section{background:#52c41a08;border-left:3px solid #52c41a}.section-label{font-size:13px;font-weight:700;color:#595959}.section-text{font-size:14px;line-height:1.6;color:#262626;text-align:justify}.section-text.highlight{font-weight:500;color:#141414}.empty-report-card{background:#fff6!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px dashed rgba(0,0,0,.08)!important;border-radius:16px!important;padding:40px 0;text-align:center}.empty-desc{display:flex;flex-direction:column;gap:4px}.empty-title{font-size:15px;font-weight:600;color:#595959}.empty-subtitle{font-size:13px;color:#8c8c8c}.result-report-wrapper{margin-top:24px;width:100%}.report-main-card{background:#ffffffb3!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.5)!important;border-radius:20px!important;box-shadow:0 15px 40px #0000000d;padding:8px}.report-header{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px double #e8e8e8;padding-bottom:20px;margin-bottom:24px}@media(min-width:768px){.report-header{flex-direction:row;align-items:center}}.report-title.ant-typography{margin-bottom:8px!important;color:#1f1f1f;font-weight:700}.report-meta{display:flex;align-items:center}.divider{color:#d9d9d9;margin:0 4px}.meta-val{color:#1f1f1f;font-weight:600}.reset-report-btn{border-radius:6px!important;font-size:13px!important;color:#595959!important;border-color:#d9d9d9!important;background:#fff!important}.reset-report-btn:hover{color:#1677ff!important;border-color:#1677ff!important}.report-image-box{position:relative;width:100%;height:240px;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #00000014;border:1px solid rgba(255,255,255,.6);cursor:pointer}@media(min-width:768px){.report-image-box{height:180px}}.report-main-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.report-image-box:hover .report-main-img{transform:scale(1.05)}.image-hover-mask{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:500;opacity:0;transition:opacity .3s ease}.report-image-box:hover .image-hover-mask{opacity:1}.section-card-panel{display:flex;flex-direction:column;gap:16px}.panel-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:#1f1f1f;margin-bottom:4px}.panel-icon{font-size:18px;padding:6px;border-radius:8px}.panel-icon.orange{color:#fa8c16;background:#fa8c1614}.panel-icon.blue{color:#1677ff;background:#1677ff14}.panel-icon.green{color:#52c41a;background:#52c41a14}.hazard-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.hazard-list-item{display:flex;align-items:flex-start;gap:12px;background:#ffffff80;border:1px solid rgba(0,0,0,.03);padding:14px 16px;border-radius:10px}.hazard-num-bullet{background:#fa8c16;color:#fff;font-weight:700;font-size:12px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.hazard-detail-text{font-size:14px;line-height:1.6;color:#262626;text-align:justify}.report-action-bar{display:flex;justify-content:center;align-items:center;border-top:1px solid #f0f0f0;padding-top:24px;margin-top:30px}.image-preview-modal .ant-modal-content{border-radius:16px;padding:0;background:#000;box-shadow:0 10px 40px #0000004d}.image-preview-modal .ant-modal-close{color:#fff!important;background:#ffffff1a!important;border-radius:50%;top:16px!important;right:16px!important}.image-preview-modal .ant-modal-close:hover{background:#ffffff40!important}.modal-image-wrapper{display:flex;align-items:center;justify-content:center;background:#000;padding:8px;max-height:80vh}.modal-preview-image{max-width:100%;max-height:75vh;object-fit:contain;border-radius:4px}.animate-slide-up{animation:slideUp .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
