:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.4 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{color:#222;background:#fafafa;margin:0}h1,h2{font-weight:600}a{color:#2f6f9f}.court-stage{width:100%;line-height:0}.panel{background:#f4f4f4;border-radius:8px;padding:.75rem 1rem 1rem}.panel__title{color:#333;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem;font-size:.95rem;font-weight:600}.rotation-graph,.phase-graph{background:#4596bf}.phase-graph{position:relative}.rotation-graph .panel__title,.phase-graph .panel__title{color:#eef7fc}.phase-graph__connector{pointer-events:none;height:1.7rem;position:absolute;top:-.9rem;left:0;right:0}.phase-graph__connector svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.phase-graph__connector-line{stroke:#eef7fc;stroke-width:2px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.rotation-graph__headers{height:1.4rem;position:relative}.rotation-graph__headers span{color:#eef7fc;white-space:nowrap;font-size:.8rem;position:absolute;top:0;transform:translate(-50%)}.rotation-graph__body{height:26rem;position:relative}.phase-graph__body{height:5.5rem;position:relative}.rotation-graph__lines,.phase-graph__lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.rotation-graph__line,.phase-graph__line{stroke:#eef7fc;stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.rotation-graph__col{pointer-events:none;position:absolute;inset:0}.rotation-graph__dot{pointer-events:auto;color:#eef7fc;cursor:pointer;border:2px solid #eef7fc;border-radius:50%;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:.85rem;font-weight:600;display:flex;position:absolute;transform:translate(-50%,-50%)}.rotation-graph__dot--a{background:#65b6df}.rotation-graph__dot--b{background:#4596bf}.rotation-graph__dot.is-active{color:#245;background:#eef7fc}.phase-graph__dot{white-space:nowrap;color:#eef7fc;cursor:pointer;border:2px solid #eef7fc;border-radius:999px;padding:.45rem .8rem;font-size:.85rem;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.phase-graph__dot--a{background:#65b6df}.phase-graph__dot--b{background:#4596bf}.phase-graph__dot.is-active{color:#234;background:#eef7fc}.schema-switcher{position:relative}.schema-switcher__trigger{color:#555;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;font-size:1rem;font-weight:500;display:inline-flex}.schema-switcher__trigger:hover{color:#222}.schema-switcher__caret{font-size:.7rem}.schema-switcher__menu{z-index:20;background:#fff;border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:.15rem;min-width:260px;margin-top:.4rem;padding:.4rem;display:flex;position:absolute;top:100%;left:0;box-shadow:0 6px 20px #00000026}.schema-switcher__row{align-items:center;gap:.25rem;display:flex}.schema-switcher__option{text-align:left;color:#333;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:.4rem .5rem}.schema-switcher__option:hover{background:#f0f0f0}.schema-switcher__option.is-active{color:#fff;background:#4596bf}.schema-switcher__edit{cursor:pointer;color:#666;background:0 0;border:none;border-radius:6px;padding:.4rem .5rem}.schema-switcher__edit:hover{color:#222;background:#f0f0f0}.schema-switcher__add{color:#333;cursor:pointer;text-align:center;background:0 0;border:1px dashed #aaa;border-radius:6px;margin-top:.2rem;padding:.5rem;font-weight:600}.schema-switcher__add:hover{background:#f0f0f0}.header-dropdown{position:relative}.header-dropdown__trigger{color:#fff;cursor:pointer;background:#0f7d8c;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:.4rem .9rem;font-size:.8rem;font-weight:600;display:inline-flex}.header-dropdown__caret{font-size:.65rem}.header-dropdown__menu{z-index:20;background:#fff;border:1px solid #ddd;border-radius:8px;min-width:280px;margin-top:.4rem;padding:.75rem;position:absolute;top:100%;right:0;box-shadow:0 6px 20px #00000026}.tutorial-overlay{z-index:1000;position:fixed;inset:0}.tutorial-overlay__spotlight{pointer-events:none;border:3px solid #0f7d8c;border-radius:8px;transition:all .2s;position:fixed;box-shadow:0 0 0 9999px #3c3c3ccc}.tutorial-overlay__callout{color:#fff;background:#0f7d8c;border-radius:8px;max-width:min(90vw,420px);padding:1rem 1.25rem;font-size:.95rem;line-height:1.4;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.tutorial-overlay__actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.tutorial-overlay__actions button{color:#0f7d8c;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:.45rem 1rem;font-weight:600}.export-menu__group{border:none;flex-direction:column;gap:.3rem;margin:0 0 .6rem;padding:0;display:flex}.export-menu__group legend{color:#666;margin-bottom:.2rem;padding:0;font-size:.8rem}.export-menu__group label{align-items:center;gap:.4rem;font-size:.9rem;display:flex}.export-menu__submit{color:#fff;cursor:pointer;background:#4596bf;border:none;border-radius:6px;padding:.55rem 1.2rem;font-weight:600}.export-menu__submit:disabled{opacity:.6;cursor:wait}.export-menu__disabled{opacity:.55}.export-menu__error{color:#b3261e;margin-top:.5rem;font-size:.85rem}.export-menu__saved{color:#1a7a3c;margin-top:.5rem;font-size:.85rem}.export-menu__note,.export-menu__config-note{color:#555;margin:.5rem 0 0;font-size:.8rem}.export-menu__config{border-top:1px solid #dde3ea;margin-top:.9rem;padding-top:.75rem}.export-menu__config-btn{color:#1f5f80;cursor:pointer;background:#fff;border:1px solid #4596bf;border-radius:6px;align-self:flex-start;padding:.45rem .9rem;font-weight:600}.export-menu__config-btn:disabled{opacity:.6;cursor:wait}.export-menu__config-title{color:#666;font-size:.8rem}.fault-panel__toggle{color:#164863;cursor:pointer;background:#fff;border:2px solid #164863;border-radius:6px;padding:.4rem .9rem;font-size:.8rem;font-weight:600}.fault-panel__toggle.is-active{color:#fff;background:#164863}.fault-panel__toggle:disabled{opacity:.5;cursor:not-allowed}.fault-panel__heading{margin:.75rem 0 .25rem;font-weight:700}.fault-panel__summary{margin:.75rem 0 .25rem;font-weight:600}.fault-panel__list{flex-direction:column;gap:.3rem;margin:.25rem 0;padding:0;list-style:none;display:flex}.fault-panel__list li{align-items:baseline;gap:.5rem;display:flex}.fault-panel__mark{width:1em;font-weight:700}.is-ok,.is-ok .fault-panel__mark{color:#1b7a3a}.is-fault,.is-fault .fault-panel__mark{color:#d0021b}.fault-panel__list li.is-ok>span:last-child{color:#1a1a1a}.fault-panel__note{color:#555;margin:.5rem 0 0;font-size:.8rem}.fault-panel__alert{color:#8a0012;background:#fdecee;border:1px solid #f1a7af;border-left:4px solid #d0021b;border-radius:6px;margin:.75rem 0 0;padding:.5rem .75rem;font-weight:600}.fault-panel__views{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.fault-panel__view{color:#164863;cursor:pointer;background:#fff;border:1px solid #164863;border-radius:999px;padding:.3rem .65rem;font-size:.8rem;font-weight:600}.fault-panel__view.has-fault{color:#d0021b;border-color:#d0021b}.fault-panel__view[aria-pressed=true]{color:#fff;background:#164863;border-color:#164863}.fault-panel__view.has-fault[aria-pressed=true]{background:#d0021b;border-color:#d0021b}.config-editor{background:#fafafa;max-width:1100px;min-height:100svh;margin:0 auto;padding:0 1rem 2rem}.config-editor__header{align-items:center;gap:1rem;padding:1rem 0;display:flex}.config-editor__header h2{margin:0;font-size:1.3rem}.config-editor__back{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.5rem 1rem;font-weight:600}.config-editor__start{flex-direction:column;gap:.75rem;max-width:420px;display:flex}.config-editor__start label,.config-editor__import{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.config-editor__or{text-align:center;color:#888;margin:0}.config-editor__workspace{flex-direction:column;gap:1.25rem;display:flex}.config-editor__court{flex-direction:column;gap:.6rem;display:flex}.config-editor__canvas{border-radius:8px;overflow:hidden}.config-editor__side{flex-direction:column;gap:.75rem;display:flex}.config-editor__name,.config-editor__description{color:#444;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.config-editor__name input{font-size:1.1rem;font-weight:600}.config-editor__name input,.config-editor__description textarea{border:1px solid #ccc;border-radius:6px;padding:.4rem .5rem;font-family:inherit}.config-editor__description textarea{font-size:.85rem}.config-editor__libero-note{padding:.25rem .25rem 0}.config-editor__libero-note h3{color:#777;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .15rem;font-size:.7rem}.config-editor__libero-note .config-editor__hint{font-size:.75rem}.config-editor__hint{color:#555;margin:0;font-size:.85rem}.config-editor__actions{flex-wrap:wrap;gap:.5rem;display:flex}.config-editor__actions button{color:#fff;cursor:pointer;background:#4596bf;border:none;border-radius:6px;padding:.5rem .9rem;font-weight:600}.config-editor__error{color:#b3261e;margin:0;padding-left:1.1rem;font-size:.85rem}@media (width>=860px){.config-editor__workspace{flex-direction:row;align-items:flex-start}.config-editor__court{flex:55%;min-width:0}.config-editor__side{flex:320px;max-width:360px}}.config-editor__second-setter{align-items:flex-start;gap:.6rem;display:flex}.config-editor__badge{color:#4596bf;cursor:pointer;background:#fff;border:2px solid #4596bf;border-radius:50%;flex:none;width:2.2rem;height:2.2rem;font-weight:700}.config-editor__badge.is-on{color:#fff;background:#4596bf}.config-editor__actions .config-editor__delete{background:#c0392b}.comment-panel{margin-top:1rem}.comment-panel__textarea{width:100%;min-height:4.5rem;font:inherit;resize:vertical;box-sizing:border-box;border:1px solid #ccc;border-radius:6px;padding:.6rem .75rem}.info-page{background:#fafafa;max-width:1100px;min-height:100svh;margin:0 auto;padding:0 1rem 2rem}.info-page__header{flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 0;display:flex}.info-page__header h2{margin:0;font-size:1.4rem}.info-page__back{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.5rem 1rem;font-weight:600}.info-page__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:1rem;display:grid}.info-page__card{overflow-wrap:anywhere;background:#fff;border:1px solid #e1e6ec;border-radius:10px;min-width:0;padding:1.25rem 1.5rem;font-size:1rem}.info-page__card h3{text-transform:uppercase;letter-spacing:.03em;color:#164863;margin:0 0 .6rem;font-size:.95rem}.info-page__card p{margin:0;line-height:1.6}.info-page__card p+p{margin-top:.7rem}.info-page__note{color:#666;font-size:.9rem}.info-page__check{cursor:pointer;align-items:flex-start;gap:.55rem;display:flex}.info-page__check input{flex:none;margin-top:.3rem}.info-downloads{margin:.4rem 0 .6rem;padding-left:1.2rem;line-height:1.6}.info-support__button{color:#1f2933;background:#fff;border:1px solid #c9d2dc;border-radius:6px;align-items:center;gap:.6rem;max-width:100%;padding:.45rem .8rem;font-weight:600;text-decoration:none;display:inline-flex}.info-support__button:hover{color:#00457c;background:#f2f6fa;border-color:#0079c1}.info-support__button img{flex:none;display:block}.update-notice{background:#eaf4fa;border:1px solid #c3e0ee;border-radius:8px;margin-bottom:.75rem;padding:.7rem .9rem}.update-notice p{margin:0;font-size:.9rem;line-height:1.5}.update-notice__actions{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.update-notice__btn{color:#fff;cursor:pointer;background:#4596bf;border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-block}.update-notice__btn--secondary{background:#6b7280}.language-switcher{color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.35rem .6rem;font-size:.8rem;font-weight:600}.zones-panel__toolbar{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.zones-panel__toolbar .fault-panel__note{margin-top:.5rem}.zones-panel__toolbar .fault-panel__toggle{flex:none;margin-top:.4rem}.zones-panel__areas{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.zones-panel__area{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.zones-panel__swatch{cursor:pointer;border:2px solid #fff;border-radius:5px;flex:none;width:1.6rem;height:1.6rem;position:relative;box-shadow:0 0 0 1px #164863}.zones-panel__swatch input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.zones-panel__player{min-width:2rem;font-weight:700}.zones-panel__sides{flex-wrap:wrap;gap:.3rem;display:flex}.zones-panel__side{color:#164863;cursor:pointer;background:#fff;border:1px solid #164863;border-radius:6px;padding:.25rem .55rem;font-size:.78rem;font-weight:600}.zones-panel__side[aria-pressed=true]{color:#fff;background:#164863}.zones-panel__summary{margin-top:.75rem}.zones-panel__reset{color:#164863;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.zones-panel__remove{color:#d0021b;cursor:pointer;background:#fff;border:1px solid #d0021b;border-radius:6px;width:1.7rem;height:1.7rem;margin-left:auto;font-weight:700}.zones-panel__remove:disabled{opacity:.4;cursor:not-allowed}.zones-panel__add{align-items:center}.zones-panel__add-label{color:#555;font-size:.8rem;font-weight:600}.zones-panel__actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.zones-panel__save,.zones-panel__discard{font:inherit;cursor:pointer;border:1px solid #164863;border-radius:6px;padding:.4rem .9rem;font-weight:600}.zones-panel__save{color:#fff;background:#164863}.zones-panel__save:disabled{opacity:.45;cursor:not-allowed}.zones-panel__discard{color:#164863;background:#fff}.zones-panel__unsaved{color:#b45309;margin:.5rem 0 0;font-size:.8rem;font-weight:600}.zones-panel__swatch.is-readonly{cursor:default}.zones-dialog{z-index:1100;background:#141e288c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.zones-dialog__box{background:#fff;border-radius:10px;width:100%;max-width:420px;padding:1.25rem 1.5rem;box-shadow:0 10px 30px #00000040}.zones-dialog__box h2{margin:0 0 .5rem;font-size:1.1rem}.zones-dialog__box p{margin:0;line-height:1.5}.zones-dialog__check{align-items:center;gap:.5rem;margin-top:.9rem;font-size:.9rem;display:flex}.zones-dialog__actions{justify-content:flex-end;gap:.5rem;margin-top:1.1rem;display:flex}.zones-dialog__actions button{font:inherit;cursor:pointer;border-radius:6px;padding:.45rem 1rem;font-weight:600}.zones-dialog__cancel{color:#1f2933;background:#fff;border:1px solid #c9d2dc}.zones-dialog__confirm{color:#fff;background:#d0021b;border:1px solid #d0021b}.zones-panel__side:disabled{cursor:default}.zones-panel__side:disabled:not([aria-pressed=true]){opacity:.45}.court-tools{margin-top:1rem}.court-tools__tabs{border-bottom:2px solid #d4dbe1;flex-wrap:wrap;gap:.25rem;display:flex}.court-tools__tab{color:#4b5b68;font:inherit;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:.4rem;margin-bottom:-2px;padding:.5rem .85rem;font-size:.85rem;font-weight:700;display:inline-flex}.court-tools__tab:hover{color:#164863}.court-tools__tab[aria-selected=true]{color:#164863;border-bottom-color:#164863}.court-tools__badge{color:#fff;letter-spacing:0;background:#d0021b;border-radius:999px;padding:.05rem .4rem;font-size:.72rem}.court-tools__body{padding-top:.25rem}.court-tools__hint{color:#555;margin:.6rem 0 0;font-size:.8rem}.court-tools__sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;max-width:1100px;min-height:100svh;margin:0 auto;padding:0 1rem 2rem;display:flex}.app__header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;padding:1rem 0;display:flex}.app__header-titles{flex-direction:column;gap:.15rem;display:flex}.app__header h1{margin:0;font-size:1.4rem}.app__header-actions{align-items:center;gap:.75rem;display:flex}.app__layout{flex-direction:column;flex:1;gap:1.25rem;display:flex}.app__court{width:100%}.app__controls{flex-direction:column;gap:.75rem;display:flex}.app__header-btn{color:#fff;cursor:pointer;background:#6b7280;border:none;border-radius:6px;padding:.4rem .9rem;font-size:.8rem;font-weight:600}@media (width>=860px){.app__layout{flex-direction:row;align-items:flex-start}.app__court{flex:60%;min-width:0}.app__controls{flex:320px;max-width:340px}}
