.poem_input_section{background-color:#f4f2ff;border-radius:10px;box-shadow:0 1px 2px rgb(15 23 42 / .04),0 4px 12px rgb(121 90 250 / .12);padding:2rem;border:1px solid #d4c9fd;position:relative}.poem_input_section::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:10px 10px 0 0;background:linear-gradient(90deg,#795afa,#795afa)}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upload-zone{border:2px dashed #cbd5e1;border-radius:14px;padding:32px 20px;text-align:center;background:#fff;transition:all 0.25s;cursor:pointer;position:relative}.upload-zone:hover,.upload-zone.drag-over{border-color:#2563eb;background:#eff6ff}.upload-icon{width:48px;height:48px;margin:0 auto 12px;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:12px;display:flex;align-items:center;justify-content:center}.upload-icon svg{width:24px;height:24px;stroke:#2563eb;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.upload-zone .upload-title{font-size:14px;font-weight:600;margin-bottom:4px;color: #333;}.upload-zone p{font-size:12px;color:#94a3b8}.upload-btns{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}.upload-btn{padding:8px 16px;border-radius:8px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all 0.2s}.upload-btn-primary{background:#2563eb;color:#fff}.upload-btn-primary:hover{background:#1d4ed8}.upload-btn-secondary:hover{background:#e2e8f0}.upload-btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.preview-box{border-radius:14px;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;min-height:220px;overflow:hidden;box-shadow:0 1px 3px rgb(0 0 0 / .04);padding:20px}.preview-placeholder{color:#94a3b8;font-size:13px}.overlay{position:fixed;inset:0;z-index:9999;background:rgb(0 0 0 / .5)}.loader-box{background:#fff;padding:16px;border-radius:6px;display:flex;align-items:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid var(--main);border-top-color:#fff0;border-radius:50%;animation:spinner 0.7s linear infinite}#previewClose{position:absolute;right:0;background:red;color:#fff;border-radius:50%;font-size:15px;width:25px;height:25px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.1s}#previewClose:hover{background:darkred;transform:scale(1.1)}@keyframes spinner{to{transform:rotate(360deg)}}.upload-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgb(0 0 0 / .6);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(4px)}.upload-overlay.d-none{display:none}.upload-progress-container{background:#fff;border-radius:12px;padding:40px;max-width:400px;width:90%;box-shadow:0 10px 40px rgb(0 0 0 / .2);text-align:center}.progress-bar-wrapper{position:relative;margin-bottom:30px}.progress-bar-background{width:100%;height:8px;background:#e0e0e0;border-radius:10px;overflow:hidden;margin-bottom:12px}.progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,#4caf50,#45a049);border-radius:10px;transition:width 0.3s ease;box-shadow:0 0 10px rgb(76 175 80 / .6)}.progress-text{font-size:18px;font-weight:600;color:#333}.spinner-container{margin:20px 0}.spinner{width:50px;height:50px;margin:0 auto;border:4px solid #f3f3f3;border-top:4px solid #4caf50;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.upload-status-text{margin:0;color:#666;font-size:14px;margin-top:10px}.progress-bar-fill.smooth{transition:width 0.2s ease-out}@keyframes slideOut{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-20px);opacity:0}}.upload-overlay.completing{animation:slideOut 0.5s ease-out forwards}.progress-list{display:flex;flex-direction:column;gap:15px;margin-bottom:20px;max-height:400px;overflow-y:auto}.progress-item{border:1px solid #e0e0e0;border-radius:8px;padding:15px;background:#f9f9f9;animation:slideIn 0.3s ease-out}@keyframes slideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.progress-file-name{font-size:13px;font-weight:600;color:#333;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-item .progress-bar-wrapper{position:relative;display:flex;align-items:center;gap:10px}.progress-item .progress-bar-background{flex:1;height:6px}.progress-item .progress-bar-fill{background:linear-gradient(90deg,#4caf50,#45a049);box-shadow:0 0 8px rgb(76 175 80 / .5);transition:width 0.2s ease}.progress-item .progress-text{font-size:12px;font-weight:600;color:#4caf50;min-width:35px;text-align:right}.upload-title{margin:0 0 20px 0;font-size:18px;font-weight:600;color:#333;text-align:center}.upload-summary{border-top:1px solid #e0e0e0;padding-top:15px;text-align:center}.summary-text{margin:0;font-size:13px;color:#666}.progress-list::-webkit-scrollbar{width:6px}.progress-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.progress-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}.progress-list::-webkit-scrollbar-thumb:hover{background:#888}@media (max-width:768px){.poem_input_section{padding:15px}.divider{margin:15px 0}}.result-card{background:#FFF;border-radius:16px;box-shadow:0 1px 2px rgb(17 21 28 / .04),0 8px 24px -12px rgb(17 21 28 / .1);padding:36px;display:grid;grid-template-columns:200px 1fr;gap:36px;align-items:center;margin-bottom:20px}.ring-wrap{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center}.ring-wrap svg{width:200px;height:200px;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#EAECF1;stroke-width:14}.ring-progress{fill:none;stroke-width:14;stroke-linecap:round;transition:stroke-dasharray 1s cubic-bezier(.4,0,.2,1),stroke 0.4s ease}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring-center .pct{font-size:38px;font-weight:800;letter-spacing:-.02em;line-height:1}.ring-center .pct .sym{font-size:20px;font-weight:700}.ring-center .label{font-size:11.5px;color:#9AA3B2;margin-top:6px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.result-right{min-width:0}.badge-row{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:999px;font-weight:700;font-size:14.5px}.pill .dot{width:8px;height:8px;border-radius:50%}.pill svg{width:15px;height:15px}.conf-tag{font-size:12.5px;font-weight:600;color:#5B6472;background:#F2F3F6;padding:6px 12px;border-radius:8px;display:inline-flex;align-items:center;gap:6px}.conf-tag b{color:#11151C}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stat-box{background:#FAFBFC;border:1px solid #EAECF1;border-radius:12px;padding:14px 16px}.stat-box .stat-top{display:flex;justify-content:space-between;align-items:baseline}.stat-box .stat-val{font-size:24px;font-weight:800;letter-spacing:-.02em}.stat-box .stat-name{font-size:12px;color:#9AA3B2;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.stat-bar{height:5px;border-radius:3px;background:#EAECF1;margin-top:8px;overflow:hidden}.stat-bar i{display:block;height:100%;border-radius:3px;transition:width .8s ease}.summary-box{background:#FFF;border-radius:16px;box-shadow:0 1px 2px rgb(17 21 28 / .04),0 8px 24px -12px rgb(17 21 28 / .1);padding:22px 24px;margin-bottom:20px;display:flex;gap:14px;align-items:flex-start;border-left:4px solid var(--accent,#3B82F6)}.summary-box .ic{width:50px;height:50px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--accent-bg,#EEF3FE)}.summary-box .ic svg{width:24px;height:24px}.summary-box .txt{font-size:15px;line-height:1.55;color:#11151C}.summary-box .txt b{font-weight:700}.breakdown-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.check-card{border:1px solid #EAECF1;border-radius:12px;padding:16px;background:#FCFCFD}.check-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.check-icon{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center}.check-icon svg{width:16px;height:16px}.check-name{font-weight:700;font-size:14px;flex:1}.status-badge{font-size:10.5px;font-weight:800;letter-spacing:.04em;padding:4px 8px;border-radius:6px;text-transform:uppercase}.check-desc{font-size:12.5px;color:#5B6472;line-height:1.5;margin:0 0 8px}.check-note{font-size:12.5px;line-height:1.5;margin:0;padding:9px 10px;border-radius:8px;font-weight:500}.info-box{background:#EEF3FB;border:1px solid #DDE7F8;border-radius:16px;padding:20px 22px;display:flex;gap:14px;align-items:flex-start;margin-top:20px}.info-box .ic{width:34px;height:34px;border-radius:10px;flex:none;background:#DCE7FB;display:flex;align-items:center;justify-content:center}.info-box .ic svg{width:18px;height:18px;color:#3B82F6}.info-box .infoTitle{margin:0 0 4px;font-size:14px;font-weight:700;color:#333}.info-box p{margin:0;font-size:13px;line-height:1.6;color:#5B6472}.info-box ul{margin:8px 0 0;padding-left:18px;font-size:13px;color:#5B6472;line-height:1.65}.success_statusPill{background:#EAFBF1;color:#22c55e}.warning_statusPill{background:#FEF6E7;color:#f59e0b}.failed_statusPill{background:#FDECEC;color:#ef4444}@media (max-width:760px){.result-card{grid-template-columns:1fr;text-align:center;padding:28px 22px}.ring-wrap{margin:0 auto}.badge-row{justify-content:center}.compare-grid{grid-template-columns:1fr}.breakdown-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}}.analyzing-wrap{background-color:#f4f2ff;border-radius:15px;padding:2rem;border:1px solid #d4c9fd;box-shadow:0 1px 2px rgb(17 21 28 / .04),0 8px 24px -12px rgb(17 21 28 / .1);padding:40px 32px;display:flex;flex-direction:column;align-items:center;gap:32px;margin-bottom:20px}.scan-frame{position:relative;width:220px;height:220px;border-radius:14px;overflow:hidden;background:#EDEFF3}.scan-img{width:100%;height:100%;object-fit:cover;display:block}.scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#3B82F6,transparent);top:0;animation:scanMove 2s ease-in-out infinite;box-shadow:0 0 12px 3px rgb(59 130 246 / .4)}@keyframes scanMove{0%{top:0%;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}.scan-corners{position:absolute;inset:0;pointer-events:none}.corner1{position:absolute;width:18px;height:18px;border-color:#3B82F6;border-style:solid}.corner1.tl{top:8px;left:8px;border-width:2px 0 0 2px;border-radius:4px 0 0 0}.corner1.tr{top:8px;right:8px;border-width:2px 2px 0 0;border-radius:0 4px 0 0}.corner1.bl{bottom:8px;left:8px;border-width:0 0 2px 2px;border-radius:0 0 0 4px}.corner1.br{bottom:8px;right:8px;border-width:0 2px 2px 0;border-radius:0 0 4px 0}.analyzing-info{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;text-align:center}.pulse-ring{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pulse-ring::before,.pulse-ring::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #3B82F6;animation:pulseRing 1.8s ease-out infinite}.pulse-ring::after{animation-delay:0.6s}.pulse-dot{width:14px;height:14px;border-radius:50%;background:#3B82F6}@keyframes pulseRing{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.8);opacity:0}}.analyzing-label{font-size:15px;font-weight:700;color:#11151C;margin:0;min-height:22px;transition:opacity 0.3s}.analyzing-label.fade{opacity:0}@media (max-width:760px){.scan-frame{width:160px;height:160px}}body.result-active{background-color:#F4F2FF}.fade-in-section{animation:fadeInUp 0.5s ease forwards}@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-out-section{animation:fadeOutDown 0.4s ease forwards}@keyframes fadeOutDown{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}.reset-tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:12px;border:1.5px solid #E2E5EB;background:#FFF;color:#11151C;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.25s ease}.reset-tool-btn:hover{background:#F8F9FB;border-color:#3B82F6;color:#3B82F6;transform:translateY(-2px);box-shadow:0 4px 12px rgb(59 130 246 / .15)}.reset-tool-btn:active{transform:translateY(0);box-shadow:none}.reset-tool-btn svg{width:16px;height:16px;transition:transform 0.4s ease}.reset-tool-btn:hover svg{transform:rotate(180deg)}