/* A service directory with a proper eight-position selector and drawer index. */
.service-indexer{width:min(255px,100%);margin-top:26px;color:var(--green);position:relative}
.service-knob{position:relative;width:225px;max-width:100%;aspect-ratio:1;outline-offset:6px;border-radius:50%;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;cursor:grab}
.service-knob:focus-visible{outline:3px solid var(--blue)}
.service-knob>svg{display:block;width:100%;overflow:visible;pointer-events:none}
.knob-rim-shadow{fill:var(--green);opacity:.2}
.knob-field{fill:var(--green);stroke:var(--green);stroke-width:2}
.knob-ticks{stroke:var(--cream);stroke-width:1;opacity:.5}
.knob-stop{fill:var(--cream);stroke:var(--cream);opacity:.55;transition:opacity .18s}
.knob-stop>path{stroke-width:2}
.knob-stop>text{font:700 10px YardSans,Arial,sans-serif;stroke:none;fill:inherit}
.knob-stop.is-current{fill:var(--yellow);stroke:var(--yellow);opacity:1}
.knob-stop.is-current>path{stroke-width:4}
.knob-bed{fill:var(--cream);stroke:var(--yellow);stroke-width:3}
.knob-rotor{transform-origin:120px 120px;transition:transform .58s cubic-bezier(.2,.8,.2,1.12);will-change:transform}
.knob-grip{fill:var(--cream);stroke:var(--green);stroke-width:2}
.knob-bevel{stroke:var(--green);stroke-width:1;opacity:.45}
.knob-tooth{fill:var(--blue);stroke:var(--blue);stroke-width:2}
.knob-grooves{stroke:var(--green);stroke-width:1;opacity:.45}
.knob-number{font:700 51px YardDisplay,Arial,sans-serif;fill:var(--green);letter-spacing:-3px}
.knob-of{font:700 9px YardSans,Arial,sans-serif;fill:var(--green);letter-spacing:1.5px;opacity:.7}
.knob-fixed-pointer{position:absolute;left:50%;top:0;width:8px;height:19px;transform:translateX(-50%);transform-origin:50% 0;background:var(--yellow);clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%);pointer-events:none}
.selector-note{margin-top:17px}
.selector-hint{display:block;font-size:8px;font-weight:700;letter-spacing:1.5px;color:var(--blue);margin-bottom:5px}
.slide-hint{display:none}
.selector-open{display:flex;align-items:center;justify-content:space-between;gap:17px;width:100%;min-height:47px;text-align:left;font-size:17px;font-weight:700;line-height:1.15;padding:3px 0 9px}
.selector-open>.icon{flex:none;width:21px;height:21px;transition:transform .4s var(--yard-spring)}
.selector-title{max-width:195px}
.selector-open:is(:hover,:focus-visible)>.icon{transform:translate(4px,-4px)}
.selector-controls{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-top:1px solid var(--green);border-bottom:1px solid var(--green)}
.selector-controls>button{min-height:44px;display:grid;place-items:center;transition:background .2s,color .2s}
.selector-controls>button>.icon{width:19px;height:19px}
.selector-controls>button:first-child{border-right:1px solid var(--line)}
.selector-controls>button:last-child{border-left:1px solid var(--line)}
.selector-controls>button:disabled{opacity:.3;cursor:default}
.selector-controls>button:is(:hover,:focus-visible):not(:disabled){background:var(--blue);color:var(--cream)}
.selector-position{text-align:center;font:700 11px YardSans,sans-serif;letter-spacing:1px;font-variant-numeric:tabular-nums}
.selector-position i{font-style:normal;padding:0 7px;opacity:.4}
.points-left{rotate:180deg}
.service-indexer.is-dragging .service-knob{cursor:grabbing}
.service-indexer.is-dragging .knob-rotor{transition:none}
.service-indexer.is-dragging .knob-grip{fill:#eeeddf}
.service-row.is-indexed:not(:hover):not(:focus-visible){background:rgba(255,212,42,.08);box-shadow:inset -3px 0 0 var(--yellow)}
.service-row.is-indexed:before{opacity:1;transform:scaleY(1)}
.service-index-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.service-dialog{overflow-x:hidden}
.service-dialog .dialog-top{gap:14px}
.service-dialog .dialog-top>[data-close]{flex:none;min-width:44px;min-height:44px}
.drawer-browse{display:flex;align-items:center;gap:8px;margin-left:auto}
.drawer-browse>button{width:44px;height:44px;display:grid;place-items:center;color:var(--yellow);border:1px solid rgba(245,244,237,.3);transition:background .2s,color .2s}
.drawer-browse>button>.icon{width:18px;height:18px}
.drawer-browse>button:is(:hover,:focus-visible):not(:disabled){color:var(--green);background:var(--yellow);outline-color:var(--yellow)}
.drawer-browse>button:disabled{opacity:.3;cursor:default}
.drawer-holes{display:flex;gap:5px;padding:0 5px}
.drawer-holes>i{width:5px;height:13px;border:1px solid var(--cream);opacity:.5;transform:skewY(-17deg);transition:background .15s,transform .45s var(--yard-spring),opacity .15s}
.drawer-holes>i.is-current{background:var(--yellow);border-color:var(--yellow);opacity:1;transform:skewY(-17deg) translateY(-3px)}
.service-dialog .drawer-edge{background-position:calc(var(--drawer-index,0) * 14px) 0;transition:background-position .65s var(--yard-land)}

@media(min-width:1900px){.service-indexer{width:290px;margin-top:30px}.service-knob{width:260px}.selector-open{font-size:20px;min-height:53px}.selector-title{max-width:240px}.selector-hint{font-size:10px}.selector-position{font-size:13px}}
@media(min-width:701px) and (max-width:1100px){.service-indexer{width:205px}.service-knob{width:172px}.selector-open{font-size:15px;min-height:46px}.selector-hint{font-size:7px;letter-spacing:1px}}
@media(min-width:701px) and (max-width:820px){.service-indexer{width:185px}.service-knob{width:165px}.selector-open{font-size:14px;min-height:43px}.selector-controls{grid-template-columns:44px 1fr 44px}.selector-position{font-size:10px}}
@media(max-width:700px){
  .service-indexer{display:grid;grid-template-columns:144px minmax(0,1fr);align-items:center;gap:18px;width:100%;border-top:1px solid var(--line);margin-top:25px;padding-top:22px}
  .service-knob{width:144px}
  .knob-fixed-pointer{width:6px;height:14px}
  .selector-note{margin:0}
  .selector-open{font-size:16px;gap:9px;min-height:60px;padding-top:7px;padding-bottom:10px}
  .selector-title{max-width:none}
  .selector-open>.icon{width:18px;height:18px}
  .selector-hint{font-size:7px;letter-spacing:1px}
  .selector-position{font-size:10px;letter-spacing:0}
  .selector-position i{padding:0 3px}
  .service-dialog .dialog-top{gap:8px;padding-left:15px;padding-right:11px}
  .service-dialog .dialog-top>#service-number{font-size:7px;letter-spacing:.7px;white-space:nowrap}
  .drawer-browse{gap:5px}
  .drawer-holes{gap:3px;padding:0 3px}
  .drawer-holes>i{width:4px;height:11px}
}
@media(max-width:359px){.service-indexer{grid-template-columns:120px minmax(0,1fr);gap:12px}.service-knob{width:120px}.selector-open{font-size:14px}.selector-position{font-size:9px}.selector-position i{padding:0 1px}.drawer-holes{display:none}}
@media(hover:none),(pointer:coarse){.turn-hint{display:none}.slide-hint{display:inline}}
html[data-motion=off] .knob-rotor,html[data-motion=off] .drawer-holes>i,html[data-motion=off] .service-dialog .drawer-edge{transition:none}
@media(prefers-reduced-motion:reduce){.knob-rotor,.drawer-holes>i,.service-dialog .drawer-edge{transition:none}}
@media(forced-colors:active){
  .service-knob{border:1px solid ButtonText;cursor:grab}
  .knob-field,.knob-grip,.knob-bed{fill:Canvas;stroke:ButtonText}
  .knob-number,.knob-of{fill:CanvasText}
  .knob-ticks,.knob-bevel,.knob-grooves{stroke:ButtonText}
  .knob-stop{fill:CanvasText;stroke:ButtonText;opacity:1}
  .knob-stop.is-current,.knob-tooth{fill:Highlight;stroke:Highlight}
  .knob-fixed-pointer{background:Highlight}
  .knob-rim-shadow{display:none}
  .selector-controls,.selector-controls>button,.drawer-browse>button{border-color:ButtonText}
  .service-row.is-indexed{outline:1px solid Highlight}
  .drawer-holes>i{border-color:ButtonText}
  .drawer-holes>i.is-current{background:Highlight;border-color:Highlight}
}
