.oh *,.oh :after,.oh :before{box-sizing:border-box}.oh .num,.oh time{font-variant-numeric:tabular-nums}.oh a.oh-link{color:var(--n-blue);text-decoration:none}.oh a.oh-link:hover{text-decoration:underline;text-underline-offset:3px}.oh a.oh-link:focus-visible{outline:2px solid var(--n-blue);outline-offset:2px;border-radius:4px}.sp-main:has(>.cn-sample) .oh-sample,.ws-peek-body .oh-sample{display:none}.sp.sx3.os.cn.ws .oh-head p.k-sum{display:block;max-width:80ch;overflow:visible;-webkit-line-clamp:unset;color:var(--n-text-2);font-size:14px}.oh-anchor{margin-top:24px}.oh-anchor:first-child{margin-top:0}.oh-unknown{letter-spacing:0}.oh-suffix,.oh-unknown{color:var(--n-text-2);font-size:14px;font-weight:500}.oh-suffix{margin-left:4px}.oh-foot{max-width:80ch;margin:12px 0 0;color:var(--n-text-2);font-size:12px;line-height:16px}.oh-foot b{color:var(--n-text);font-weight:600}.oh-sub{margin:16px 0 4px;padding:0 8px;color:var(--n-text-2);font-size:12px;font-weight:500;line-height:16px}.oh-sub:first-child{margin-top:8px}.oh-code{font-family:var(--n-mono);font-size:14px;letter-spacing:0}.oh-quiet{color:var(--n-text-2)}.oh-hot{color:var(--n-red)}.oh-stack{display:grid;gap:0;min-width:0}.oh-stack small{overflow:hidden;color:var(--n-text-2);font-size:12px;line-height:16px;text-overflow:ellipsis}.oh-row{position:relative}.oh-row.is-on{background:var(--n-blue-soft)}.oh-row:has(>.oh-row-a):hover{background:var(--n-hover)}.oh-row-a{color:inherit;text-decoration:none;outline:0}.oh-row-a:after{content:"";position:absolute;inset:0}.oh-row-a:focus-visible:after{outline:2px solid var(--n-blue);outline-offset:-2px;border-radius:4px}.oh-row-meta{position:relative;z-index:1;flex-wrap:wrap;justify-content:flex-end;max-width:60%}.oh-decide .oh-row-main small,.oh-rows.is-two .oh-row-main small{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}.oh-icon-btn{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;color:var(--n-text-2);text-decoration:none}.oh-icon-btn:hover{background:var(--n-hover);color:var(--n-text)}.oh-icon-btn:focus-visible{outline:2px solid var(--n-blue);outline-offset:1px}select.oh-select{height:28px;max-width:160px;padding:0 8px;border:0;border-radius:8px;background:var(--n-bg);box-shadow:inset 0 0 0 1px var(--n-line-2);color:var(--n-text);font:500 14px/1 inherit;font-family:inherit;cursor:pointer}select.oh-select:hover{background:var(--n-hover)}select.oh-select:focus-visible{outline:2px solid var(--n-blue);outline-offset:2px}.oh-alert[data-acked=true]{opacity:.7}.oh-alert-group summary{list-style:none;cursor:pointer}.oh-alert-group summary::-webkit-details-marker{display:none}.oh-alert-group summary:hover{background:var(--n-hover)}.oh-alert-group summary:focus-visible{outline:2px solid var(--n-blue);outline-offset:-2px;border-radius:4px}.oh-alert-fold{display:inline-flex;align-items:center;gap:4px;color:var(--n-text-2);font-size:12px}.oh-alert-fold svg{transition:transform .18s}.oh-alert-group[open] .oh-alert-fold svg{transform:rotate(90deg)}.oh-alert-more{display:grid;gap:4px;margin:0;padding:0 8px 12px 44px;list-style:none;color:var(--n-text);font-size:14px}.oh-alert-more li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px}.oh-alert-more li>span:first-child{flex:1;min-width:0}.oh-alert-more small{color:var(--n-text-2);font-size:12px}.oh-loading{display:grid;border-top:1px solid var(--n-line)}.oh-skel{display:flex;align-items:center;height:44px;border-bottom:1px solid var(--n-line)}.oh-skel:before{content:"";width:var(--w,60%);height:12px;margin:0 8px;border-radius:4px;background:linear-gradient(100deg,var(--n-fill) 30%,var(--n-hover) 50%,var(--n-fill) 70%) 0 0 /220% 100%;animation:oh-shimmer 1.3s linear infinite}@keyframes oh-shimmer{to{background-position:-220% 0}}.oh-seg{display:inline-flex;flex-wrap:wrap;gap:4px}.oh-seg label{position:relative}.oh-seg input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.oh-seg span{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--n-line-2);color:var(--n-text);font-size:14px;font-weight:500;white-space:nowrap;transition:background-color .1s ease-in}.oh-seg label:hover span{background:var(--n-hover)}.oh-seg input:checked+span{background:var(--n-blue-soft);box-shadow:inset 0 0 0 1px var(--n-blue);color:var(--n-blue-2)}.oh-seg input:focus-visible+span{outline:2px solid var(--n-blue);outline-offset:2px}.oh-seg input:disabled+span{opacity:.45}.oh-form{display:grid;gap:0;max-width:560px}.oh-fields{display:grid;gap:12px}.oh-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.oh-field{display:grid;gap:4px;min-width:0}.oh-field.full{grid-column:1/-1}.oh-field>span:first-child{color:var(--n-text);font-size:14px;font-weight:500;line-height:20px}.oh-field>small,.oh-field>span:first-child small{color:var(--n-text-2);font-size:12px;font-weight:400;line-height:16px}.oh-field input:not([type=checkbox]):not([type=radio]),.oh-field select,.oh-field textarea,.oh-input{width:100%;height:32px;padding:0 8px;border:0;border-radius:8px;background:var(--n-bg);box-shadow:inset 0 0 0 1px var(--n-line-2);color:var(--n-text);font:inherit;font-size:14px}.oh-field textarea{height:auto;min-height:72px;padding:8px;resize:vertical}.oh-field input::placeholder,.oh-field textarea::placeholder,.oh-input::placeholder{color:var(--n-text-3)}.oh-field input:focus,.oh-field select:focus,.oh-field textarea:focus,.oh-input:focus{outline:2px solid var(--n-blue);outline-offset:-1px}.oh-check{display:flex;align-items:flex-start;gap:8px;color:var(--n-text);font-size:14px;line-height:20px}.oh-check input{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--n-blue)}.oh-submit{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-top:24px}.oh-submit p{margin:0;color:var(--n-text-2);font-size:12px}.oh-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.oh-inline .oh-input{width:auto;flex:1 1 200px;max-width:320px}.oh-toggles{display:grid;margin:0 0 16px;padding:0;list-style:none;border-top:1px solid var(--n-line);border-bottom:1px solid var(--n-line)}.oh-toggle{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 8px;cursor:pointer}.oh-toggles li+li{box-shadow:inset 0 1px 0 var(--n-line)}.oh-toggle:hover{background:var(--n-hover)}.oh-toggle input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--n-blue)}.oh-toggle span{display:grid;min-width:0}.oh-toggle b{color:var(--n-text);font-size:14px;font-weight:500;line-height:20px}.oh-toggle small{color:var(--n-text-2);font-size:12px;line-height:16px}dialog.oh-sheet{width:min(520px,calc(100vw - 32px));max-width:none;max-height:min(720px,calc(100dvh - 64px));margin:auto;padding:0;border:0;border-radius:12px;background:var(--n-card);box-shadow:var(--k-shadow-up,0 12px 32px rgba(15,15,15,.2));color:var(--n-text);font:400 14px/20px var(--n-font);overflow:hidden}dialog.oh-sheet[open]{display:flex;flex-direction:column;animation:oh-pop .18s cubic-bezier(.2,.7,.2,1) both}dialog.oh-sheet::backdrop{background:rgba(15,15,15,.6)}.oh-sheet-head{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 12px 24px}.oh-sheet-head h2{margin:0;color:var(--n-text);font-size:16px;font-weight:600;line-height:24px;letter-spacing:-.01em}.oh-sheet-head p{margin:4px 0 0;color:var(--n-text-2);font-size:12px;line-height:16px}.oh-sheet-head button{display:grid;place-items:center;flex:none;width:28px;height:28px;margin-left:auto;padding:0;border:0;border-radius:8px;background:none;color:var(--n-text-2);cursor:pointer}.oh-sheet-head button:hover{background:var(--n-hover);color:var(--n-text)}.oh-sheet-head button:focus-visible{outline:2px solid var(--n-blue)}.oh-sheet-body{display:grid;gap:16px;align-content:start;flex:1;min-height:0;padding:4px 24px 16px;overflow-y:auto}.oh-sheet-body .k-note{margin:0}.oh-sheet-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 24px 16px;box-shadow:inset 0 1px 0 var(--n-line)}@keyframes oh-pop{0%{opacity:0;transform:translateY(8px)}}.oh-toast{position:fixed;z-index:90;left:50%;bottom:24px;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:8px 12px;border-radius:8px;background:var(--n-text);box-shadow:var(--k-shadow-up,0 12px 32px rgba(15,15,15,.2));color:var(--n-bg);font:400 14px/20px var(--n-font);transform:translateX(-50%);animation:oh-toast .2s cubic-bezier(.2,.7,.2,1) both}.oh-toast[data-tone=flame]{background:var(--n-red-bg);color:white}@keyframes oh-toast{0%{opacity:0;transform:translate(-50%,8px)}}.oh-picks{display:grid;gap:0;min-width:0;margin:0;padding:0;border:0}.oh-picks legend{margin-bottom:4px;padding:0;color:var(--n-text);font-size:14px;font-weight:500}.oh-pick{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-height:44px;padding:4px 8px;border-radius:4px;cursor:pointer}.oh-pick+.oh-pick{box-shadow:inset 0 1px 0 var(--n-line)}.oh-pick:hover{background:var(--n-hover)}.oh-pick.is-on{background:var(--n-blue-soft)}.oh-pick input{width:16px;height:16px;margin:0;accent-color:var(--n-blue)}.oh-pick-main{display:grid;min-width:0}.oh-pick-main b{overflow:hidden;color:var(--n-text);font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.oh-pick-main small,.oh-pick-meta small{color:var(--n-text-2);font-size:12px}.oh-pick-meta{display:grid;justify-items:end;gap:4px}.oh-pick:focus-within{outline:2px solid var(--n-blue);outline-offset:-2px}.oh-bars{margin:0}.oh-chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding:12px 4px 0;border-bottom:1px solid var(--n-line)}.oh-chart div{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-width:0;height:100%}.oh-chart i{width:100%;max-width:24px;border-radius:4px 4px 0 0;background:var(--n-blue)}.oh-chart i.supp{background:repeating-linear-gradient(135deg,var(--n-fill) 0 4px,var(--n-line-2) 4px 6px)}.oh-chart em{color:var(--n-text-2);font-size:12px;font-style:normal;font-variant-numeric:tabular-nums}.oh-chart-x{display:flex;gap:4px;padding:8px 4px 0}.oh-chart-x span{flex:1;overflow:hidden;color:var(--n-text-2);font-size:12px;text-align:center;white-space:nowrap}.oh-meter{position:relative;display:inline-block;width:96px;height:4px;border-radius:4px;background:var(--n-fill-2);vertical-align:middle}.oh-meter i{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--n-blue)}.oh-meter u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--n-text)}.oh-cov{display:inline-flex;align-items:center;gap:8px}.oh-map{position:relative;height:420px;border-radius:8px;overflow:hidden;background:var(--n-side)}.oh-map.is-none{display:grid;place-items:center}.oh-map .maplibregl-ctrl-attrib{font-size:12px}.oh-map-fill{position:absolute;inset:0}.oh-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;padding:0;list-style:none;color:var(--n-text-2);font-size:12px;line-height:16px}.oh-legend li{display:inline-flex;align-items:center;gap:8px}.oh-legend i{width:8px;height:8px;border-radius:50%}.oh-legend i.sq{border-radius:2px}.oh-legend i.ring{background:none;box-shadow:0 0 0 2px var(--n-red)}.oh-pin{width:16px;height:16px;padding:0;border:2px solid var(--n-bg);border-radius:50%;box-shadow:0 1px 4px rgba(15,15,15,.35);cursor:pointer;transition:transform .2s}.oh-pin[data-kind=laboratory]{border-radius:4px}.oh-pin:hover{transform:scale(1.25)}.oh-pin:focus-visible{outline:2px solid var(--n-blue);outline-offset:2px}.oh-pop{min-width:200px;color:#37352f;font:14px/20px var(--n-font)}.oh-pop b{display:block;margin-bottom:4px;font-weight:600}.oh-facs{max-height:420px;overflow-y:auto}.oh-doc p{margin:0 0 12px}.oh-doc ul.oh-plain{display:grid;gap:4px;margin:0;padding:0;list-style:none}.oh-doc ul.oh-plain b{font-weight:600}.oh-marks{display:flex;flex-wrap:wrap;gap:16px 24px;margin:0 0 8px;padding:0;list-style:none}.oh-marks li{display:grid;justify-items:center;gap:8px;width:96px;text-align:center}.oh-marks span:not(.om){color:var(--n-text-2);font-size:12px;line-height:16px}.oh-invite-out{display:grid;gap:8px;margin-top:12px;padding:12px;border-radius:8px;background:var(--n-side)}.oh-invite-out p{margin:0;color:var(--n-text);font-size:14px}.oh-invite-link{display:flex;align-items:center;gap:8px;min-width:0}.oh-invite-link code{flex:1;min-width:0;overflow:hidden;padding:8px;border-radius:8px;background:var(--n-bg);color:var(--n-text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.oh-invite-code{font:600 16px/1 var(--n-mono);letter-spacing:.08em}.oh-msg{margin:0;font-size:14px}.oh-msg[data-ok=false]{color:var(--n-red)}button.oh-role{cursor:pointer}button.oh-role:hover:not(:disabled){background:var(--n-hover)}button.oh-role:focus-visible{outline:2px solid var(--n-blue);outline-offset:-2px;border-radius:4px}button.oh-role:disabled{opacity:.6;cursor:default}.oh-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0;padding:0;list-style:none}.oh-roles li{box-shadow:inset 0 -1px 0 var(--n-line)}@media (max-width:860px){.oh-row:has(.oh-row-meta :is(button,select,a)){flex-wrap:wrap;padding-top:8px;padding-bottom:8px}.oh-row:has(.oh-row-meta :is(button,select,a)) .oh-row-main{flex:1 1 60%}.oh-row:has(.oh-row-meta :is(button,select,a)) .oh-row-meta{flex:1 1 100%;max-width:none;justify-content:flex-start;padding-left:36px}.oh-row-meta{max-width:50%}.oh-icon-btn,select.oh-select{height:40px}.oh-icon-btn{width:40px}.oh-seg span{height:40px}.oh-field input:not([type=checkbox]):not([type=radio]),.oh-field select,.oh-input{height:40px;font-size:16px}.oh-field textarea{font-size:16px}.oh-fields.two,.oh-roles{grid-template-columns:minmax(0,1fr)}.oh-alert-more{padding-left:12px}.oh-alert-more li{flex-wrap:wrap}.oh-map{height:320px}.oh-facs{max-height:none}dialog.oh-sheet{width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:12px 12px 0 0}.oh-sheet-foot{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.oh-sheet-foot .k-btn{flex:1}.oh-toast{bottom:calc(88px + env(safe-area-inset-bottom))}.oh-pick{grid-template-columns:auto minmax(0,1fr)}.oh-pick-meta{grid-column:2;grid-auto-flow:column;justify-content:start;justify-items:start;align-items:center;gap:8px}}@container peek (max-width: 640px){.oh-row:has(.oh-row-meta :is(button,select)){flex-wrap:wrap}.oh-row:has(.oh-row-meta :is(button,select)) .oh-row-meta{flex:1 1 100%;max-width:none;justify-content:flex-start;padding-left:36px}}@media (prefers-reduced-motion:reduce){.oh-skel:before,.oh-toast,dialog.oh-sheet[open]{animation:none}.oh-alert-fold svg,.oh-pin,.oh-seg span{transition:none}}@media print{.no-print,.oh .k-acts,.oh .k-tools{display:none!important}.k-page.oh{width:auto;margin:0;padding:0}}