:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f4f8f7;background-color:#1b1b1b;--bg-body: #1b1b1b;--bg-viewer: #1b1b1b;--bg-panel: #222426;--bg-panel-alt: #24282a;--bg-card: #1f2326;--bg-soft: #1d2024;--stroke: rgba(255, 255, 255, .06);--stroke-strong: rgba(4, 212, 212, .35);--text-primary: #f4f7f7;--text-muted: #9da6ae;--accent: #04d4d4;--accent-strong: #00a3a3;--accent-soft: rgba(4, 212, 212, .1);--radius-sm: 10px;--radius-lg: 20px;--shadow-soft: 0 25px 60px rgba(0, 0, 0, .55)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(4,212,212,.08),transparent 50%),radial-gradient(circle at 80% 0%,rgba(4,212,212,.05),transparent 60%),var(--bg-body);color:var(--text-primary)}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;display:flex;min-height:0;align-items:stretch;background:linear-gradient(120deg,#1b1b1bf2,#121619fa)}.viewer-panel{flex:3;position:relative;background:var(--bg-viewer);display:flex;flex-direction:column}.viewer-brand-badge{position:absolute;top:1rem;left:1rem;z-index:2;display:inline-flex;align-items:center;gap:.75rem;padding:0;border-radius:0;background:transparent;border:none;box-shadow:none}.brand-logo{width:56px;height:46px;border-radius:12px;box-shadow:0 12px 25px #00000059;background:#c7e2e659;padding:.35rem}.viewer-brand-text{display:flex;flex-direction:column;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.viewer-brand-text span{color:var(--text-primary);letter-spacing:.08em}.viewer-brand-text p{margin:0;font-size:.7rem}.viewer-canvas{flex:1;width:100%;height:100%;display:block}.viewer-loader{position:absolute;bottom:1.25rem;left:1.25rem;padding:.5rem 1rem;border-radius:var(--radius-sm);background:#0a0c0ee6;border:1px solid var(--stroke);font-size:.9rem;letter-spacing:.01em;color:var(--text-primary);display:flex;align-items:center;gap:.65rem;box-shadow:0 18px 35px #00000073}.viewer-status-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em}.viewer-status-overlay .status-pill{display:inline-flex;align-items:center;gap:.65rem;padding:.85rem 1.35rem;border-radius:999px;border:1px solid var(--stroke);background:#080c0eeb;box-shadow:0 20px 50px #0009}.control-panel{flex:0 0 400px;width:400px;max-width:460px;padding:1.5rem;background:var(--bg-viewer);border-left:none;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.control-card{padding:1.25rem;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--stroke);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:1rem}.control-card.primary-card{background:var(--bg-panel);border-color:#ffffff14;box-shadow:0 20px 40px #00000073}.panel-eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.12em;margin:0 0 .35rem;color:var(--accent)}.panel-eyebrow.subtle{color:var(--text-muted);letter-spacing:.1em}.case-id-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.case-id-row .panel-eyebrow{margin-bottom:0}.case-id-copy{border:1px dashed var(--stroke);background:#04d4d414;color:var(--text-primary);padding:.3rem .55rem;border-radius:var(--radius-sm);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;cursor:copy;transition:border-color .2s ease,color .2s ease}.case-id-copy:hover{border-color:var(--accent);color:var(--accent)}.control-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.button-row{display:flex;gap:.5rem}.button-row.compact{flex-wrap:wrap}.mode-button{flex:1;min-width:110px;border-radius:999px;border:1px solid var(--stroke);padding:.5rem .9rem;background:linear-gradient(135deg,#ffffff05,#04d4d40d);color:var(--text-primary);font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;box-shadow:inset 0 1px #ffffff0f}.mode-button.active{background:linear-gradient(135deg,var(--accent),#03b5b5);color:#052020;border-color:var(--accent-strong);box-shadow:0 15px 20px #04d4d440}.mode-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mode-button:disabled{opacity:.4;cursor:not-allowed}.card-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.card-header h2{margin:0;font-size:1.1rem;font-weight:500;letter-spacing:.03em}.chip{padding:.25rem .8rem;border-radius:999px;border:1px solid var(--stroke-strong);background:var(--accent-soft);color:var(--accent);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.card-subtext{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.result-json{margin:0;background:var(--bg-soft);border-radius:var(--radius-sm);border:1px solid var(--stroke);padding:.9rem;font-size:.85rem;max-height:280px;overflow:auto}.information-text{display:flex;flex-direction:column;gap:.35rem}.information-text p{margin:0;font-size:.95rem;color:var(--text-primary)}.defect-jaw-group{display:flex;flex-direction:column;gap:.25rem}.defect-jaw-group+.defect-jaw-group{margin-top:.75rem}.defect-jaw-label{font-weight:600;font-size:.9rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .15rem}.defect-issue-line{display:flex;align-items:baseline;gap:.4rem;margin:0;font-size:.9rem;color:var(--text-primary);padding-left:.75rem}.defect-dot{display:inline-block;width:.5rem;height:.5rem;min-width:.5rem;border-radius:50%;position:relative;top:-.04rem}.defect-issue-label{color:var(--text-muted)}.information-text p.fdi-footnote{margin-top:1.5rem;font-size:.8rem;color:var(--text-muted);font-style:italic;letter-spacing:.02em}.control-hint{margin:0;color:var(--text-muted);font-size:.9rem}.image-carousel{display:flex;gap:.9rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:-.25rem;scroll-snap-type:x proximity}.image-carousel::-webkit-scrollbar{height:6px}.image-carousel::-webkit-scrollbar-thumb{background:#fff3;border-radius:999px}.image-card{margin:0;flex:0 0 clamp(144px,22.5vw,272px);border-radius:var(--radius-sm);background:var(--bg-soft);border:1px solid var(--stroke);box-shadow:0 20px 30px #00000059;overflow:hidden;scroll-snap-align:start;display:flex;flex-direction:column}.image-card button{all:unset;cursor:zoom-in;display:block;width:100%;aspect-ratio:4 / 3}.image-card img{width:100%;height:100%;object-fit:cover;display:block}.image-card figcaption{margin:0;padding:.5rem .75rem;font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--stroke)}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;padding:2rem}.image-lightbox img{max-width:min(90vw,1100px);max-height:85vh;border-radius:var(--radius-lg);border:1px solid var(--stroke);box-shadow:0 40px 60px #000000b3}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;border:none;background:var(--accent);color:#041313;padding:.4rem .8rem;border-radius:999px;cursor:pointer;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.loading-screen,.invalid-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#05060700,#02040500),url(/notfound.avif) center / 33% no-repeat;text-align:center;padding:2rem}.loading-spinner{width:48px;height:48px;border-radius:50%;border:4px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin 1s linear infinite}.loading-spinner.inline{width:22px;height:22px;border-width:3px}.loading-screen p{margin-top:1rem;color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.invalid-label{font-size:3.5rem;font-weight:600;margin:0;color:#ffffffbf;letter-spacing:.1em}.invalid-message{font-size:1rem;margin:.5rem 0 0;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3}.invalid-details{font-size:.85rem;margin:.75rem 0 0;color:#fff6;letter-spacing:.05em}@media (max-width: 1024px){.app-main{flex-direction:column}.control-panel{border-left:none;width:100%;flex-basis:auto;border-top:1px solid var(--stroke)}.viewer-panel{min-height:50vh}}@media (max-width: 640px){.viewer-brand-badge{left:.75rem;top:.75rem}.mode-button{min-width:100px;padding:.45rem .75rem}.image-card{flex-basis:clamp(128px,48vw,224px)}}@media (min-width: 1025px){.viewer-panel{position:sticky;top:0;height:100vh;min-height:100vh}}
