.jleague-page{--jl-wrap-max: 920px;--jl-panel-bg: #ffffff;--jl-panel-border: #e4e8f2;--jl-panel-shadow: 0 4px 18px rgba(33, 61, 110, .08);--jl-accent: #2f5597;--jl-accent-soft: rgba(47, 85, 151, .14);--jl-marker-size: 44px}.jleague-page[data-marker-size=small]{--jl-marker-size: 32px}.jleague-page[data-marker-size=medium]{--jl-marker-size: 44px}.jleague-page[data-marker-size=large]{--jl-marker-size: 58px}.jleague-wrap{max-width:var(--jl-wrap-max);margin:0 auto;display:grid;gap:18px}.jleague-title{font-size:clamp(1.8rem,2.6vw,2.4rem);margin:0;color:#14335f}.jleague-lead{margin:6px 0 0;color:#3f4b5d;line-height:1.7}.jleague-controls{background:var(--jl-panel-bg);border:1px solid var(--jl-panel-border);border-radius:14px;box-shadow:var(--jl-panel-shadow);padding:18px 20px 20px;display:grid;gap:12px}.jleague-label{font-weight:600;color:#1d3a63}.jleague-selectors{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.jleague-selectors__item{display:flex;flex-direction:column;gap:6px}.jleague-select{width:100%;max-width:100%;padding:.5rem .75rem;border-radius:10px;border:1px solid #ccd4e4;font-size:1rem;background-color:#f7f8fb}.jleague-select--league,.jleague-select--season,.jleague-select--marker{max-width:200px}.jleague-select--team{max-width:420px}.jleague-hint{font-size:.88rem;color:#5c6b84;margin-top:2px}.jleague-buttons{display:flex;flex-wrap:wrap;gap:8px}.jleague-buttons--secondary{padding-top:8px;border-top:1px dashed rgba(47,85,151,.18)}.jleague-buttons--secondary .btn{flex:1 1 220px;min-width:180px}.jleague-help-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f182880;display:none;align-items:center;justify-content:center;padding:20px;z-index:1100}.jleague-help-modal.is-open{display:flex}.jleague-help-modal__dialog{width:min(720px,100%);max-height:90vh;overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 24px 60px #142b5a40;display:flex;flex-direction:column}.jleague-help-modal__header{padding:18px 24px;border-bottom:1px solid rgba(47,85,151,.12);display:flex;justify-content:space-between;align-items:center;gap:12px}.jleague-help-modal__header h2{margin:0;font-size:clamp(1.4rem,2.2vw,1.8rem);color:#14335f}.jleague-help-modal__close{margin:0;white-space:nowrap}.jleague-help-modal__body{padding:20px 24px 28px;display:grid;gap:18px}.jleague-help-modal__body h3{margin:0 0 8px;font-size:1.1rem;color:#1d3a63}.jleague-help-modal__body ul{margin:0;padding-left:1.2em;color:#344357;line-height:1.7}.jleague-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0}.jleague-page .btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid transparent;background:var(--jl-accent);color:#fff;font-weight:600;font-size:.95rem;padding:.48rem .9rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.jleague-page .btn:hover{transform:translateY(-1px);box-shadow:0 6px 15px #2f55972e}.jleague-page .btn:active{transform:translateY(0);box-shadow:none}.jleague-page .btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.jleague-page .btn.ghost{background:#f4f6fb;color:#2f4d7a;border-color:#2f55972e}.jleague-page .btn.ghost:disabled{background:#e5ebf7cc;color:#52668cb3;border-color:#2f55971f}.jleague-map{background:var(--jl-panel-bg);border:1px solid var(--jl-panel-border);border-radius:20px;box-shadow:var(--jl-panel-shadow);padding:clamp(20px,3vw,28px)}.jleague-map__inner{position:relative;margin:0 auto}.jleague-map__image{display:block;width:100%;height:auto;filter:saturate(.9)}.jleague-map__markers{position:absolute;top:0;right:0;bottom:0;left:0}.jleague-marker{position:absolute;width:var(--jl-marker-size);height:var(--jl-marker-size);border-radius:999px;background:radial-gradient(circle at 30% 30%,#ffffffe0,#d9e8fffa 55%,#bdd5f7e6);border:2px solid rgba(47,85,151,.85);box-shadow:0 10px 20px #1b3d732e;color:#1c2f57;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:center;text-align:center;transform:translate(-50%,-50%);transition:transform .18s ease,box-shadow .18s ease;pointer-events:auto;cursor:grab;touch-action:none;font-size:calc(var(--jl-marker-size) * .38);line-height:1.1}.jleague-marker:focus-visible{outline:3px solid rgba(255,198,10,.95);outline-offset:4px}.jleague-marker:hover{transform:translate(-50%,-50%) scale(1.05);box-shadow:0 14px 28px #1b3d7342}.jleague-marker[data-team-region=north]{background:radial-gradient(circle at 30% 30%,#ffffffeb,#cce3fff2 60%,#abd1ffeb)}.jleague-marker[data-team-region=central]{background:radial-gradient(circle at 28% 28%,#ffffffe6,#dce7fff2 62%,#c7d6f7e6)}.jleague-marker[data-team-region=west]{background:radial-gradient(circle at 30% 30%,#ffffffeb,#dcf1e2f2 60%,#c1e6cdeb);border-color:#287a59ad;color:#205540}.jleague-marker[data-team-region=south]{background:radial-gradient(circle at 32% 32%,#ffffffeb,#ffecd2f0 58%,#ffd8a8e6);border-color:#bf7e20b8;color:#774712}.jleague-marker.is-highlight{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 16px 30px #e29c1b5c;border-color:#ebb115f2}.jleague-marker.is-dragging{cursor:grabbing;transition:none;box-shadow:0 18px 32px #1b3d7347}.jleague-summary{background:var(--jl-panel-bg);border:1px solid var(--jl-panel-border);border-radius:14px;padding:18px 20px 24px;box-shadow:var(--jl-panel-shadow)}.jleague-summary__header h2{margin:0;font-size:clamp(1.2rem,2vw,1.5rem);color:#17335b}.jleague-summary__header p{margin:6px 0 0;color:#536279;font-size:.9rem}.jleague-summary__list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.jleague-summary__empty{grid-column:1 / -1;background:#2f55970d;border:1px dashed rgba(47,85,151,.3);border-radius:10px;padding:.7rem .9rem;text-align:center;color:#546283;font-size:.92rem}.jleague-summary__list button{width:100%;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding:.45rem .65rem;border-radius:10px;border:1px solid rgba(47,85,151,.25);background:#2f559714;color:#1f3661;font-weight:600;cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.jleague-summary__list button:hover{transform:translateY(-1px);background:#2f559729;box-shadow:0 8px 16px #2f55972e}.jleague-summary__list button:focus-visible{outline:3px solid rgba(255,198,10,.95);outline-offset:2px}.jleague-summary__badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#2f5597d9;color:#fff;font-weight:700;font-size:.85rem}.jleague-summary__club{font-size:.92rem;line-height:1.35;text-align:left}@media (max-width: 720px){.jleague-controls{padding:16px}.jleague-selectors{grid-template-columns:1fr}.jleague-buttons{gap:6px}.jleague-page .btn{width:100%}}@media (max-width: 520px){.jleague-map{padding:16px}.jleague-summary__list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.jleague-summary__badge{width:26px;height:26px;font-size:.8rem}.jleague-summary__club{font-size:.88rem}}
