*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#eef7f5;color:#17333a}
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0e8076,#56b7a7)}
.page{min-height:100vh;padding:45px 20px;background:linear-gradient(135deg,#eef8f6,#eaf2fb)}
.card{width:min(760px,94vw);margin:auto;background:#fff;border-radius:20px;padding:38px;box-shadow:0 15px 45px rgba(0,0,0,.14)}
.wide{width:min(1150px,96vw)}
h1{text-align:center;color:#106d67;margin-top:0;font-size:32px}
.subtitle{text-align:center;color:#667b80;font-size:17px}
.upload-box{margin-top:35px;padding:30px;text-align:center;border:2px dashed #8accc1;border-radius:16px;background:#f5fffd}
.upload-box h2{color:#126f67}
input[type=file]{display:block;margin:20px auto;padding:10px}
button{border:0;border-radius:9px;padding:13px 28px;font-size:16px;font-weight:bold;cursor:pointer;color:#fff}
.green{background:#168875}.green:hover{background:#0e6c5e}
.blue{background:#2368b7;margin-top:25px}.blue:hover{background:#174e8d}
.note,.muted{text-align:center;color:#718187;margin-top:20px}
.dataset-info{background:#f4f8fa;border-radius:12px;padding:16px;margin:22px 0}
.radio{display:block;padding:16px;margin:10px 0;border:1px solid #d5e2e5;border-radius:10px;cursor:pointer;background:#fafcfc}
.radio:hover{background:#eef9f7}
.radio input{margin-right:12px}
.back{display:inline-block;margin-top:25px;color:#146c86;text-decoration:none;font-weight:bold}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0}
.metrics div{background:#f4f8fa;border-radius:12px;padding:18px;text-align:center;border-top:4px solid #168875}
.metrics span{display:block;font-size:25px;font-weight:bold;color:#146c86}
.metrics small{color:#607278}
.section{margin-top:30px;padding:24px;border-radius:14px;background:#fafdfd;border:1px solid #e0eaec}
.section h2,.visual h2{color:#126f67;margin-top:0}
.visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}
.visual{padding:20px;background:#fff;border-radius:14px;border:1px solid #e0eaec;text-align:center}
.visual img{max-width:100%;height:auto;border-radius:8px}
.tree{max-width:100%;overflow:auto}
.data-table{width:100%;border-collapse:collapse;background:#fff}
.data-table th,.data-table td{padding:10px;border:1px solid #d8e2e5;text-align:center}
.data-table th{background:#e8f5f2;color:#135f59}
pre{white-space:pre-wrap;background:#18252a;color:#eaf6f5;padding:20px;border-radius:10px;overflow:auto}
.toast{position:fixed;right:20px;top:20px;background:#a62c2c;color:#fff;padding:14px 20px;border-radius:8px}
.actions{text-align:center}
@media(max-width:800px){.metrics{grid-template-columns:repeat(2,1fr)}.visual-grid{grid-template-columns:1fr}}
