:root{color-scheme:dark;--bg: #0f172a;--card: #1e293b;--accent: #38bdf8;--text: #e2e8f0;--muted: #94a3b8;--danger: #f87171;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}.app{max-width:480px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;gap:1.5rem}header h1{margin:0;font-size:1.75rem}.tabs{display:flex;gap:.5rem;margin-top:1rem;border-bottom:1px solid #1e293b}.tab{background:transparent;border:none;color:var(--muted);padding:.6rem .25rem;font-size:.95rem;cursor:pointer;border-bottom:2px solid transparent}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.muted{color:var(--muted);font-size:.9rem}main{display:flex;flex-direction:column;gap:1.25rem}.scan-button{align-self:center;width:200px;height:200px;border-radius:50%;border:none;background:radial-gradient(circle at 30% 30%,var(--accent),#0284c7);color:#04121f;font-size:1.4rem;font-weight:700;box-shadow:0 0 40px #38bdf859;cursor:pointer}.scan-button:active{transform:scale(.97)}.card{background:var(--card);border-radius:16px;padding:1.25rem}.status-card{display:flex;flex-direction:column;align-items:center;gap:.75rem}.pulse{width:48px;height:48px;border-radius:50%;background:var(--accent);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%{transform:scale(.8);opacity:.6}50%{transform:scale(1.15);opacity:1}to{transform:scale(.8);opacity:.6}}.prediction-label{font-size:1.6rem;font-weight:700;text-transform:capitalize;margin-bottom:.5rem}.confidence-bar{background:#0f172a;border-radius:999px;height:10px;overflow:hidden}.confidence-fill{height:100%;background:var(--accent)}.confidence-text{margin-top:.35rem;color:var(--muted);font-size:.85rem}.ranked-list{margin:.75rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.85rem;text-transform:capitalize}.button-row{display:flex;gap:.75rem}button.primary,button.secondary{flex:1;padding:.75rem 1rem;border-radius:12px;border:none;font-size:1rem;cursor:pointer}button.primary{background:var(--accent);color:#04121f;font-weight:600}button.secondary{background:transparent;border:1px solid #334155;color:var(--text)}button.secondary.danger{border-color:var(--danger);color:var(--danger)}.label-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.label-chip{border:1px solid #334155;background:transparent;color:var(--text);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer;text-transform:capitalize}.label-chip.selected{background:var(--accent);color:#04121f;border-color:var(--accent)}.feedback-form input[type=text]{width:100%;padding:.6rem .75rem;border-radius:10px;border:1px solid #334155;background:#0f172a;color:var(--text);margin-bottom:.75rem}.training-panel{border-top:1px solid #1e293b;padding-top:1rem}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.history-list li{display:flex;align-items:center;gap:.5rem;background:var(--card);border-radius:10px;padding:.5rem .75rem;font-size:.9rem}.history-time{color:var(--muted);font-variant-numeric:tabular-nums}.history-label{text-transform:capitalize;flex:1}.history-badge{background:var(--danger);color:#1c0a0a;font-size:.7rem;border-radius:999px;padding:.15rem .5rem;font-weight:600}.error{color:var(--danger);font-size:.9rem}.about{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.about h2{margin-top:0;font-size:1.15rem}.about p{color:var(--text);line-height:1.5;font-size:.95rem}.steps{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.6rem;line-height:1.5;font-size:.95rem}.pipeline{margin:0;display:flex;flex-direction:column;gap:.25rem}.pipeline dt{font-weight:600;margin-top:.75rem}.pipeline dt:first-child{margin-top:0}.pipeline dd{margin:.15rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}.feature-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;line-height:1.5}
