:root{--bg: #f6f7f9;--card: #ffffff;--ink: #1a2330;--ink-soft: #5b6675;--ink-faint: #8b96a5;--line: #e4e8ee;--brand: #157a54;--brand-hover: #0f5f42;--accent: #2563eb;--debit: #b4232a;--shadow: 0 10px 30px rgba(20, 30, 45, .08);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);min-height:100%}.wrap{max-width:860px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.hero{text-align:center;margin-bottom:2rem}.hero h1{font-size:clamp(1.8rem,4.5vw,2.6rem);margin:0 0 .4rem;letter-spacing:-.02em}.sub{color:var(--ink-soft);margin:0 auto 1rem;max-width:44ch;font-size:1.05rem}.privacy{display:inline-block;background:#e9f6f0;border:1px solid #c7e8db;color:#175c43;padding:.5rem .9rem;border-radius:10px;font-size:.9rem;margin:0}.privacy strong{color:#0f4632}.dropzone{background:var(--card);border:2px dashed #c4ccd6;border-radius:16px;padding:2.75rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease;box-shadow:var(--shadow)}.dropzone:hover,.dropzone:focus-visible{border-color:var(--brand);outline:none}.dropzone.over{border-color:var(--brand);background:#f0faf5}.drop-icon{font-size:2.4rem;margin-bottom:.5rem}.drop-main{font-size:1.15rem;font-weight:600;margin:0 0 .35rem}.drop-main .link{color:var(--brand);text-decoration:underline}.drop-sub{color:var(--ink-faint);margin:0;font-size:.92rem}.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;padding:0}.status{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1rem;color:var(--ink-soft);font-size:1rem}.spinner{width:22px;height:22px;border:3px solid #d6dde6;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.notice{border-radius:12px;padding:1rem 1.2rem;margin-top:1.25rem}.notice.error{background:#fdecec;border:1px solid #f6c9c9;color:#8a1f24}.notice.error p{margin:0 0 .4rem}.error-help{color:#a35257;font-size:.88rem}.result{margin-top:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.result-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.count{font-weight:700;font-size:1.05rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:.5rem .85rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease}.btn:hover{border-color:#c4ccd6}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn.ghost{background:transparent;color:var(--ink-soft)}.table-scroll{max-height:60vh;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}thead th{position:sticky;top:0;background:#f2f5f8;text-align:left;padding:.6rem .9rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line)}tbody td{padding:.55rem .9rem;border-bottom:1px solid #eef1f5;white-space:nowrap}tbody td:nth-child(2){white-space:normal;min-width:14rem}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr.debit td.num:nth-child(3){color:var(--debit)}tbody tr:hover td{background:#f8fafc}.more{margin:0;padding:.7rem 1.25rem;color:var(--ink-faint);font-size:.85rem;background:#fafbfc}.foot{margin-top:2.5rem;color:var(--ink-soft);font-size:.88rem}.foot details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.5rem 1rem}.foot summary{cursor:pointer;font-weight:600;color:var(--ink);padding:.4rem 0}.foot a{color:var(--accent)}.disclaimer{color:var(--ink-faint);font-size:.82rem;text-align:center;margin-top:1.25rem}
