:root{ --bg:#0b1020; --card:#111a33; --card2:#0f1730; --text:#e9eefc; --muted:#a8b3d6; --accent:#7aa2ff; --ok:#57d39b; --err:#ff6b6b; --border:rgba(255,255,255,.08); } *{box-sizing:border-box} body{ margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial; background: radial-gradient(1200px 600px at 50% -10%, rgba(122,162,255,.25), transparent 70%), var(--bg); color:var(--text); } .page{max-width:1100px;margin:0 auto;padding:28px 18px 40px} .header h1{margin:0 0 8px;font-size:40px;letter-spacing:.2px} .header p{margin:0;color:var(--muted)} .card{ margin-top:18px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:1px solid var(--border); border-radius:18px; padding:18px; box-shadow: 0 20px 60px rgba(0,0,0,.35); } .controls{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; } .file{ display:inline-flex; align-items:center; gap:10px; background:var(--card2); border:1px solid var(--border); border-radius:12px; padding:10px 12px; cursor:pointer; } .file input{display:none} .file span{color:var(--text);font-weight:600} .btn{ background:var(--accent); border:none; color:#0b1020; font-weight:800; padding:10px 14px; border-radius:12px; cursor:pointer; } .btn:disabled{opacity:.5;cursor:not-allowed} .btn.secondary{ background:transparent; color:var(--text); border:1px solid var(--border); font-weight:700; } .status{color:var(--muted);font-weight:600} .status.loading{color:var(--accent)} .status.ok{color:var(--ok)} .status.err{color:var(--err)} .grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap:14px; } @media (max-width: 900px){ .grid{grid-template-columns:1fr} } .panel{ background:rgba(17,26,51,.65); border:1px solid var(--border); border-radius:16px; padding:14px; } .panel h2{margin:0 0 12px;font-size:20px} .panel h3{margin:14px 0 8px;font-size:16px;color:var(--muted)} .preview{ position:relative; min-height:280px; border-radius:14px; overflow:hidden; border:1px dashed rgba(255,255,255,.15); background:rgba(0,0,0,.12); display:flex; align-items:center; justify-content:center; } .preview img{ max-width:100%; max-height:420px; display:none; } .placeholder{ color:var(--muted); padding:12px; text-align:center; } .result-card{ background:rgba(15,23,48,.55); border:1px solid var(--border); border-radius:14px; padding:12px; } .result-main{ display:flex; justify-content:space-between; gap:12px; align-items:flex-end; } .label{color:var(--muted);font-size:12px;font-weight:700} .pred-class{font-size:26px;font-weight:900;letter-spacing:.3px} .pred-conf{font-size:20px;font-weight:900} .bar-wrap{display:flex;align-items:center;gap:10px;margin:12px 0} .bar{ flex:1; height:10px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; } .bar-fill{ height:100%; background:linear-gradient(90deg, var(--accent), rgba(122,162,255,.4)); border-radius:999px; width:0%; } .bar-text{color:var(--muted);font-weight:800} .table{ width:100%; border-collapse:collapse; margin-top:6px; } .table th,.table td{ text-align:left; padding:10px 8px; border-bottom:1px solid rgba(255,255,255,.08); } .table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.8px} .json{ margin-top:10px; max-height:260px; overflow:auto; background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:10px; font-size:12px; line-height:1.35; } .empty{color:var(--muted);padding:8px 2px} .links{ margin-top:12px; display:flex; gap:12px; } .links a{ color:var(--accent); text-decoration:none; font-weight:700; } .links a:hover{text-decoration:underline} .footer{margin-top:14px;color:var(--muted)} .hidden{display:none !important}