:root{--green-deep:#1b4332;--green-mid:#2d6a4f;--green-light:#40916c;--green-pale:#d8f3dc;--gold:#b8860b;--gold-light:#daa520;--gold-pale:#fff8e7;--gold-glow:#daa52026;--cream:#fefcf6;--warm-white:#fffdf7;--text:#2c2c2c;--text-mid:#555;--text-light:#888;--border:#e0d8cc;--border-light:#ede8de;--sire-bg:#eff6ff;--sire-border:#bfdbfe;--dam-bg:#fff1f2;--dam-border:#fecdd3;--shadow:0 2px 12px #0000000f;--shadow-lg:0 4px 24px #00000014}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--text);background-image:radial-gradient(at 20% 0,#d8f3dc66 0%,#0000 50%),radial-gradient(at 80% 100%,#fff8e799 0%,#0000 50%);min-height:100vh;font-family:Noto Sans JP,sans-serif}header{background:var(--green-deep);align-items:center;gap:16px;height:64px;padding:0 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 16px #1b433233}header:before{content:"";background:repeating-linear-gradient(120deg,#0000,#0000 40px,#ffffff05 40px 80px);position:absolute;inset:0}header h1{color:#fff;letter-spacing:.04em;font-family:Shippori Mincho,serif;font-size:1.4rem;font-weight:700;position:relative}header .badge{background:var(--gold);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:4px;padding:4px 12px;font-size:.7rem;font-weight:700;position:relative}.container{max-width:1200px;margin:0 auto;padding:28px 20px 48px}.hint{text-align:center;color:var(--text-mid);letter-spacing:.02em;margin-bottom:24px;font-size:.9rem}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}button{border:1px solid var(--border);cursor:pointer;color:var(--text-mid);background:#fff;border-radius:6px;padding:8px 20px;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:500;transition:all .2s}button:hover{border-color:var(--gold-light);color:var(--text);background:#f5f0e8}#result{margin-bottom:24px}.result-card{box-shadow:var(--shadow);background:#fff;border:2px solid #0000;border-radius:12px;padding:20px 24px;animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.result-card.hit{border-color:var(--gold-light);background:linear-gradient(135deg, #fff 60%, var(--gold-pale) 100%)}.result-card.miss{border-color:var(--border)}.result-title{align-items:center;gap:8px;margin-bottom:12px;font-family:Shippori Mincho,serif;font-size:1.25rem;font-weight:700;display:flex}.result-title.hit{color:var(--gold)}.result-title.miss{color:var(--text-light)}.shime-list{list-style:none}.shime-list li{border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:12px 16px;font-size:.95rem;display:flex}.shime-list li.found{background:var(--gold-glow);border:1px solid #b8860b40}.shime-list li .horse-name{color:var(--gold);font-size:1rem;font-weight:700}.shime-list li .detail{color:var(--text-mid);margin-top:4px;font-size:.85rem;line-height:1.6}.pedigree-view{box-shadow:var(--shadow);border:1px solid var(--border-light);background:#fff;border-radius:12px;padding:24px}.legend{color:var(--text-mid);flex-wrap:wrap;gap:20px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-swatch{border:1px solid;border-radius:3px;width:14px;height:14px}.ped-table{border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:8px;width:100%;font-size:.9rem;overflow:hidden}.ped-table td{border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);vertical-align:middle;padding:0;position:relative}.ped-table tr:last-child td{border-bottom:none}.ped-table td:last-child{border-right:none}.ped-table td.sire-side{background:var(--sire-bg)}.ped-table td.dam-side{background:var(--dam-bg)}.ped-table input{width:100%;color:var(--text);background:0 0;border:none;outline:none;padding:10px 12px;font-family:Noto Sans JP,sans-serif;font-size:.9rem;transition:background .15s}.ped-table input:focus{background:#2d6a4f0f}.ped-table input::placeholder{color:#bbb;font-size:.8rem}.ped-table td.highlight{background:var(--gold-pale);box-shadow:inset 0 0 0 2px var(--gold-light)}.ped-table td.highlight input{color:var(--gold);font-weight:700}.ped-table td.auto-filled input{color:var(--green-mid)}.ped-table .gen-header{background:var(--green-deep);color:#fff;text-align:center;letter-spacing:.08em;border-bottom:1px solid #ffffff26;border-right:1px solid #ffffff26;padding:10px 8px;font-size:.75rem;font-weight:700}.ped-table thead tr:first-child .gen-header:last-child{border-right:none}.ped-table .side-header{color:#fff;text-align:center;writing-mode:vertical-rl;letter-spacing:.2em;border-right:1px solid #ffffff26;padding:8px 6px;font-size:.8rem;font-weight:700}.ped-table .side-header.sire-header{background:#2563eb}.ped-table .side-header.dam-header{background:#e11d48}.ac-dropdown{border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:100;background:#fff;border-top:none;border-radius:0 0 6px 6px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.ac-item{cursor:pointer;border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;display:flex}.ac-item:last-child{border-bottom:none}.ac-item:hover,.ac-item.selected{background:var(--green-pale)}.ac-item .ac-match{color:var(--green-deep);font-weight:700}.ac-item .ac-parent{color:var(--text-light);font-size:.72rem}.db-info{color:var(--text-light);margin-left:auto;font-size:.75rem}@media (width<=700px){header h1{font-size:1.15rem}.container{padding:16px 10px 32px}.pedigree-view{padding:14px}.ped-table input{padding:8px 6px;font-size:.8rem}.ped-table .gen-header{padding:8px 4px;font-size:.65rem}}
