.castle-pass{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem;margin:1.8rem 0}.castle-pass .cp-heading{font-family:var(--font-display);font-size:1.3rem;margin:0 0 .4rem}.castle-pass .cp-lead{color:var(--muted);margin:0 0 1.1rem;max-width:68ch}.castle-pass .cp-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.3rem}.castle-pass .cp-field{margin:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);padding:.7rem .85rem .9rem}.castle-pass .cp-field-castles{grid-column:1 / -1}.castle-pass .cp-field legend{padding:0 .35rem;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.castle-pass .cp-castle-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1rem;padding:.4rem 0;border-bottom:1px solid var(--line)}.castle-pass .cp-castle-row:last-child{border-bottom:0}.castle-pass .cp-castle{display:flex;align-items:flex-start;gap:.55rem;cursor:pointer;min-width:0}.castle-pass .cp-castle input{margin-top:.25rem;accent-color:var(--accent)}.castle-pass .cp-castle-text{display:flex;flex-direction:column;gap:.1rem}.castle-pass .cp-castle-name{font-weight:700}.castle-pass .cp-castle-meta{font-size:.82rem;color:var(--muted)}.castle-pass .cp-audio{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted);cursor:pointer;white-space:nowrap}.castle-pass .cp-audio input{accent-color:var(--accent)}.castle-pass .cp-audio-off{font-size:.82rem;color:var(--muted);opacity:.75;white-space:nowrap}.castle-pass .cp-visitors{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.3rem 0;font-size:.92rem}.castle-pass .cp-visitors input{width:4.5rem;font:inherit;font-size:.92rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.35rem .5rem;text-align:center}.castle-pass .cp-visitors input:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.castle-pass .cp-radio{display:flex;align-items:center;gap:.5rem;padding:.4rem .45rem;border-radius:10px;font-size:.92rem;cursor:pointer;transition:background .18s ease}.castle-pass .cp-radio:hover{background:var(--accent-soft)}.castle-pass .cp-radio input{accent-color:var(--accent)}.castle-pass .cp-radio input:checked+span{font-weight:700;color:var(--accent-strong)}.castle-pass .cp-result{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:1.2rem 1.3rem}.castle-pass .cp-empty{color:var(--muted);margin:0}.castle-pass .cp-warning{margin:0 0 1rem;padding:.7rem .9rem;background:color-mix(in srgb,var(--gold) 22%,var(--surface));border-left:4px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.9rem}.castle-pass .cp-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-bottom:1.2rem}.castle-pass .cp-total{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.15rem}.castle-pass .cp-total-main{background:var(--accent);border-color:var(--accent-strong);color:#fff}.castle-pass .cp-total-label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.8}.castle-pass .cp-total-value{font-family:var(--font-display);font-size:1.35rem;line-height:1.2}.castle-pass .cp-total-sub{font-size:.84rem;color:var(--muted)}.castle-pass .cp-total-main .cp-total-sub{color:#ffffffd1}.castle-pass .cp-table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius-sm);margin:0 0 .9rem}.castle-pass .cp-table th,.castle-pass .cp-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}.castle-pass .cp-table th{font-family:var(--font-display);background:var(--accent-soft);font-size:.82rem}.castle-pass .cp-table th:not(:first-child),.castle-pass .cp-table td:not(:first-child){text-align:right;white-space:nowrap}.castle-pass .cp-table tr:last-child td{border-bottom:0}.castle-pass .cp-table-total td{font-weight:700;background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface))}.castle-pass .cp-note{color:var(--muted);font-size:.84rem;margin:0 0 .35rem}.castle-pass .cp-note:last-child{margin-bottom:0}@media(max-width:620px){.castle-pass{padding:1.1rem}.castle-pass .cp-castle-row{flex-direction:column;align-items:flex-start}}
