*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:#fff;color:#111827}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;background:#fff;padding-top:64px;padding-bottom:80px}.app-shell.capture-layout{padding:0}.header{position:fixed;top:0;left:0;right:0;height:64px;background:yellow;display:flex;align-items:center;justify-content:center;z-index:1000}.header-title{font-size:24px;font-weight:700}.footer{position:fixed;bottom:0;left:0;right:0;height:80px;background:yellow;justify-content:space-evenly;z-index:1000}.feature,.footer{display:flex;align-items:center}.feature{flex-direction:column;gap:4px;border:0;background:transparent;opacity:.6;font-weight:400}.feature.active{opacity:1;font-weight:700}.feature img{width:24px;height:24px}.page{background:#fff}.center,.page{min-height:calc(100vh - 144px)}.center{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center}.spinner{width:32px;height:32px;border-radius:50%;border:3px solid #e5e7eb;border-top-color:#111827;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.splash{min-height:100vh;background:yellow;display:flex;align-items:center;justify-content:center}.splash h1{font-size:34px;font-weight:800;letter-spacing:.5px}.info-page{background:#f8fafc;min-height:calc(100vh - 144px);padding:20px 20px 120px}.info-page-inner{width:100%;max-width:920px;margin:0}.info-title{font-size:22px;font-weight:800;color:#0f172a;margin:0}.info-subtitle{margin-top:8px;font-size:15px;color:#475569;line-height:22px}.card{background:#fff;border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.card h2{font-size:18px;margin:0 0 10px}.instruction-list{display:flex;flex-direction:column;gap:8px}.instruction-item{display:flex;gap:8px;font-size:15px;color:#334155;line-height:21px}.primary-button{border:0;border-radius:8px;background:#2563eb;color:white;padding:10px 14px;font-weight:700}.example-capture-card{width:100%;max-width:920px;padding:18px;margin:0 0 18px;border-radius:22px;background:#ffffff;box-shadow:0 10px 28px rgba(15,23,42,.08),0 2px 8px rgba(15,23,42,.04)}.example-capture-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.example-capture-top-row h2{margin:0;color:#111827;font-size:18px;font-weight:800}.example-capture-top-row p{margin:6px 0 0;color:#64748b;font-size:15px;line-height:22px}.example-capture-action{flex:0 0 auto;border:0;border-radius:12px;padding:11px 16px;background:#2563eb;color:#ffffff;font-size:14px;font-weight:800;box-shadow:0 8px 18px rgba(37,99,235,.22)}.example-capture-action:hover{background:#1d4ed8}.example-capture-image-frame{width:100%;height:300px;border-radius:18px;overflow:hidden;background:#f1f5f9;display:flex;align-items:center;justify-content:center}.example-capture-image{width:100%;height:100%;object-fit:contain;background:#0f172a}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal{width:100%;max-width:480px;background:white;border-radius:18px;padding:18px}.modal h2{font-size:20px;font-weight:800;margin:0 0 10px}.modal p{font-size:15px;color:#475569;margin:0 0 14px}.modal textarea{width:100%;min-height:100px;border:1px solid #cbd5e1;border-radius:12px;padding:12px;margin-bottom:16px;resize:vertical}.modal-actions{display:flex;gap:12px;margin-top:8px}.modal-actions button{flex:1 1;border-radius:12px;padding:12px;border:1px solid #cbd5e1;font-weight:700}.confirm{background:#111827;color:#fff;border-color:#111827!important}.danger{background:#dc2626!important;color:#fff;border-color:#dc2626!important}.capture-page{min-height:100vh;background:#000;position:relative;overflow:hidden}.camera-video,.preview-image{width:100%;height:100vh;object-fit:contain;background:#000}.camera-top{position:absolute;top:0;left:0;right:0;height:90px;background:#000;display:flex;align-items:flex-end;padding:0 20px 14px}.camera-top button{background:transparent;border:0;color:#fff;font-size:18px;font-weight:600}.camera-bottom{position:absolute;left:0;right:0;bottom:0;height:120px;background:#000;display:flex;align-items:center;justify-content:center}.capture-btn{width:70px;height:70px;border-radius:50%;border:0;background:#fff}.upload-btn{position:absolute;left:36px;bottom:40px;border:0;border-radius:999px;padding:12px 18px;background:#ffffff;color:#111827;font-size:16px;font-weight:700}.preview-actions{position:absolute;left:0;right:0;bottom:0;height:100px;background:#000;display:flex;align-items:center;justify-content:space-between;padding:0 40px}.preview-actions button{background:transparent;border:0;color:#fff;font-size:20px}.settings-list{padding:16px 12px 100px}.settings-row{display:block;padding:12px 8px;border-bottom:1px solid #e5e7eb;font-size:18px;font-weight:600}.clear-history{position:fixed;right:24px;bottom:96px;width:64px;height:64px;border-radius:999px;border:0;background:linear-gradient(135deg,#ef4444,#dc2626);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 34px rgba(220,38,38,.34),0 6px 14px rgba(15,23,42,.18);z-index:900;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.clear-history:hover{transform:translateY(-2px) scale(1.03);background:linear-gradient(135deg,#f87171,#dc2626);box-shadow:0 22px 42px rgba(220,38,38,.4),0 8px 18px rgba(15,23,42,.2)}.clear-history:active{transform:translateY(0) scale(.98)}.clear-history:focus-visible{outline:4px solid rgba(239,68,68,.28);outline-offset:4px}.clear-history img{width:34px;height:34px;object-fit:contain;filter:brightness(0) invert(1);pointer-events:none}.prediction-v2-list{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start;width:100%}.prediction-v2-list-single{justify-content:center}.prediction-v2-card{position:relative;display:flex;flex-direction:column;width:min(100%,380px);height:455px;border-radius:28px;border:1px solid rgba(226,232,240,.95);background:#ffffff;box-shadow:0 18px 44px rgba(15,23,42,.09),0 4px 12px rgba(15,23,42,.04);overflow:visible;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.prediction-v2-card:hover{transform:translateY(-2px);border-color:rgba(234,179,8,.45);box-shadow:0 24px 54px rgba(15,23,42,.13),0 6px 16px rgba(15,23,42,.05)}.prediction-v2-card-menu-open{z-index:30}.prediction-v2-image-shell{width:100%;height:215px;flex:0 0 215px;border-radius:28px 28px 0 0;overflow:hidden;background:#f1f5f9}.prediction-v2-image-clickable{width:100%;height:100%;display:block;padding:0;border:0;background:transparent;cursor:pointer}.prediction-v2-image-clickable:focus-visible{outline:3px solid rgba(14,165,233,.7);outline-offset:-3px}.prediction-v2-image{width:100%;height:100%;object-fit:cover}.prediction-v2-image-empty{width:100%;height:100%;display:grid;place-items:center;color:#94a3b8;font-size:13px;font-weight:700}.prediction-v2-content{min-width:0;flex:1 1;padding:18px 20px 20px;display:flex;flex-direction:column}.prediction-v2-header{min-width:0;margin-bottom:14px}.prediction-v2-title{max-width:calc(100% - 34px);margin:0;color:#111827;font-size:20px;line-height:1.22;font-weight:850;letter-spacing:-.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prediction-v2-date{margin:7px 0 0;color:#6b7280;font-size:15px;line-height:1.25;font-weight:600}.prediction-v2-pill-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.prediction-v2-status{min-width:112px;height:42px;padding:0 18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#ffffff;font-size:15px;line-height:1;font-weight:800;white-space:nowrap;box-shadow:0 8px 16px rgba(15,23,42,.08)}.prediction-v2-status-completed{background:linear-gradient(135deg,#16a34a,#22c55e)}.prediction-v2-status-queued{background:linear-gradient(135deg,#f97316,#fb923c)}.prediction-v2-status-error{background:linear-gradient(135deg,#dc2626,#ef4444)}.prediction-v2-moisture-pill{min-width:150px;height:46px;padding:0 18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#0284c7,#0ea5e9);color:#ffffff;box-shadow:0 12px 22px rgba(14,165,233,.28),inset 0 1px 0 rgba(255,255,255,.28)}.prediction-v2-moisture-pill span,.prediction-v2-moisture-pill strong{font-size:15px;line-height:1;font-weight:900}.prediction-v2-description-row{min-width:0;display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding-top:12px;border-top:1px solid #e2e8f0}.prediction-v2-description-label{flex:0 0 auto;color:#6b7280;font-size:15px;line-height:1.4;font-weight:650}.prediction-v2-description-scroll{min-width:0;max-height:44px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}.prediction-v2-description-scroll p{margin:0;color:#9ca3af;font-size:15px;line-height:1.4;font-weight:500;text-decoration:none;overflow-wrap:anywhere}.prediction-v2-description-empty{color:#cbd5e1!important;font-style:italic}.prediction-v2-description-scroll::-webkit-scrollbar{width:5px}.prediction-v2-description-scroll::-webkit-scrollbar-track{background:transparent}.prediction-v2-description-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd5e1}.prediction-v2-menu-button{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.92);z-index:20;transition:background .14s ease}.prediction-v2-menu-button:hover{background:#ffffff}.prediction-v2-menu{position:absolute;top:56px;right:14px;width:214px;padding:8px;border-radius:16px;border:1px solid #e2e8f0;background:#ffffff;box-shadow:0 18px 38px rgba(15,23,42,.16),0 4px 10px rgba(15,23,42,.06);z-index:40}.prediction-v2-menu button{width:100%;min-height:40px;border:0;border-radius:10px;padding:9px 10px;display:flex;align-items:center;gap:9px;background:transparent;color:#111827;font-size:14px;font-weight:750;text-align:left}.prediction-v2-menu button:hover:not(:disabled){background:#f8fafc}.prediction-v2-menu button:disabled{opacity:.42;cursor:not-allowed}.prediction-v2-menu-danger{color:#b91c1c!important}.image-preview-overlay{position:fixed;inset:0;z-index:2147483647;width:100vw;height:100vh;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:24px}.image-preview-full{display:block;width:auto;height:auto;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);object-fit:contain;border-radius:12px;background:transparent}.image-preview-close{position:fixed;top:24px;right:24px;z-index:2147483647;width:44px;height:44px;border:0;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.94);color:#111827;font-size:30px;line-height:1;font-weight:700;cursor:pointer}.image-preview-close:hover{background:#ffffff}@media (min-width:900px){.prediction-v2-card{flex:0 1 380px}}@media (min-width:1300px){.prediction-v2-card{flex:0 1 400px}}@media (max-width:640px){.example-capture-card{max-width:100%;padding:14px;border-radius:18px}.example-capture-top-row{align-items:stretch;flex-direction:column;gap:12px}.example-capture-action{width:100%}.example-capture-image-frame{height:220px;border-radius:14px}.image-preview-overlay{padding:14px}.image-preview-full{max-width:calc(100vw - 28px);max-height:calc(100vh - 28px);border-radius:10px}.image-preview-close{top:14px;right:14px}}@media (max-width:520px){.prediction-v2-list{gap:16px}.prediction-v2-card{width:100%;height:450px;border-radius:24px}.prediction-v2-image-shell{height:205px;flex-basis:205px;border-radius:24px 24px 0 0}.prediction-v2-content{padding:16px}.prediction-v2-title{font-size:18px}.prediction-v2-date{font-size:14px}.prediction-v2-status{min-width:100px;height:38px;padding:0 14px;font-size:14px}.prediction-v2-moisture-pill{min-width:136px;height:40px;padding:0 14px}.prediction-v2-description-label,.prediction-v2-description-scroll p,.prediction-v2-moisture-pill span,.prediction-v2-moisture-pill strong{font-size:14px}}@media (max-width:380px){.prediction-v2-card{height:435px}.prediction-v2-image-shell{height:190px;flex-basis:190px}.prediction-v2-pill-row{gap:8px}.prediction-v2-status{min-width:92px}.prediction-v2-moisture-pill{min-width:128px}}