.lo .oh{display:grid;grid-gap:16px;gap:16px}.lo .oh-empty{margin:0;padding:4px 0;color:var(--muted);font-size:13px}.lo .oh-hello{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}.lo .oh-hello h1{margin:0;font-size:24px;line-height:1.4;letter-spacing:-.4px}.lo .oh-hello span{color:var(--muted);font-size:14px;font-weight:500}.lo .oh-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 1px 2px rgba(20,26,43,.04)}.lo .oh-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:10px 14px 10px 18px;border-bottom:1px solid var(--line)}.lo .oh-card-head h2{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;margin:0;font-size:17px;font-weight:700;letter-spacing:-.2px}.lo .oh-head-note{color:var(--muted);font-size:13px;font-weight:500;letter-spacing:0}.lo .oh-card-body{padding:14px 18px 16px}.lo .oh-pair .oh-card-body{padding:11px 8px 10px}.lo .oh-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-count.is-alert{background:var(--accent-soft);color:var(--accent)}.lo .oh-col{display:grid;grid-gap:16px;gap:16px;align-content:start;min-width:0}.lo .oh-unfold{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:40px;margin-top:10px;padding:0 14px;border:1px dashed #d5dae3;border-radius:10px;background:var(--surface);color:var(--muted);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.lo .oh-unfold:hover{border-color:#b8c0cc;color:var(--ink)}.lo .oh-unfold:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .oh-head-tools{display:flex;flex:none;align-items:center;gap:8px;margin-left:auto}.lo .oh-fold{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:9px;background:var(--canvas);color:var(--muted);cursor:pointer}.lo .oh-fold:hover{background:#eceff4;color:var(--ink)}.lo .oh-fold:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .oh-fold-arrow{transition:transform var(--motion-fast)}.lo .oh-fold.is-folded .oh-fold-arrow{transform:rotate(-90deg)}.lo .oh-card.is-folded>.oh-card-head{border-bottom:0}.lo .oh-head-link,.lo .oh-rate-foot{display:inline-flex;align-items:center;gap:2px;color:var(--accent);font-size:13px;font-weight:500;white-space:nowrap}.lo .oh-head-link:hover,.lo .oh-rate-foot:hover{text-decoration:underline}.lo .oh-head-link:focus-visible,.lo .oh-rate-foot:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;border-radius:3px}.lo .oh-card-link,.lo .oh-rate-foot{font-size:13px;font-weight:400}.lo .oh-head-add{gap:4px;padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:500;cursor:pointer}.lo .oh-absent-chip,.lo .oh-wait-chip{display:inline-flex;align-items:center;align-self:center;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:0;white-space:nowrap}.lo .oh-absent-chip{background:var(--alert-soft);color:var(--alert)}.lo .oh-wait-chip{background:var(--accent-soft);color:var(--accent)}.lo .oh-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:start}.lo .oh-todo-group{margin:0 0 2px;padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600}.lo .oh-todo-group:not(:first-child){margin-top:14px}.lo .oh-todo-empty{padding:2px 0 4px}.lo .oh-autos{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.lo .oh-auto{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:#f6f7f9;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:box-shadow var(--motion-fast)}.lo .oh-auto:hover{box-shadow:inset 0 0 0 1px #c9d4f5}.lo .oh-auto:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .oh-auto:disabled{cursor:default}.lo .oh-auto-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border:0;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px #c9d4f5;color:var(--accent-bright)}.lo .oh-auto-main{display:grid;flex:1 1;grid-gap:1px;gap:1px;min-width:0}.lo .oh-auto-main b{font-size:15px;font-weight:700;word-break:keep-all}.lo .oh-auto-main span{color:var(--muted);font-size:13px;word-break:keep-all;overflow-wrap:anywhere}.lo .oh-auto .ui-button{flex:none;font-size:14px;pointer-events:none}.lo .oh-todos{display:grid;margin:0;padding:0;list-style:none}.lo .oh-todos li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.lo .oh-todo-check{flex:none;width:22px;height:22px;margin:0 1px;border:1.5px solid #8a919a;border-radius:7px;background:var(--surface);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.lo .oh-todo-check:checked{border-color:var(--ok);background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center /14px no-repeat}.lo .oh-todo-check:disabled{cursor:progress}.lo .oh-todo-check:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .oh-todo-main{display:grid;flex:1 1;grid-gap:2px;gap:2px;min-width:0}.lo .oh-todo-text{font-size:14px;font-weight:700;word-break:keep-all;overflow-wrap:anywhere}.lo .oh-todos li.is-done .oh-todo-text{color:#8a919a;font-weight:500;text-decoration:line-through}.lo .oh-todo-rep{display:inline-flex;align-items:center;gap:3px;margin-left:5px;padding:1px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700;vertical-align:1px;white-space:nowrap}.lo .oh-todo-sub{display:flex;flex-wrap:wrap;gap:2px 10px;color:var(--muted);font-size:12px}.lo .oh-todo-sub .is-late{color:var(--alert);font-weight:600}.lo .oh-todo-bin{flex:none;color:#64748b}.lo .oh-at-today .oh-card-head h2{flex-wrap:nowrap;white-space:nowrap}.lo .oh-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0;margin:0 0 12px;padding:0 4px;border:0}.lo .oh-chips .ui-chip{gap:4px;height:28px;padding:0 10px;font-size:13px;font-weight:500}.lo .oh-chips .ui-chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);font-weight:700}.lo .oh-chips .ui-chip b,.lo .oh-chips .ui-chip[aria-pressed=true] b{min-width:0;height:auto;padding:0;border-radius:0;background:none;color:inherit;font-size:inherit;font-weight:inherit}.lo .oh-meets{display:grid;grid-gap:9px;gap:9px;margin:0;padding:0;list-style:none}.lo .oh-meet{display:flex;align-items:center;padding:7px 10px 7px 12px;border:1px solid transparent;border-radius:12px;background:#f7f8fa}.lo .oh-meet-row{display:grid;flex:1 1;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;grid-gap:0 10px;gap:0 10px;min-width:0}.lo .oh-meet-time{color:var(--ink);font-size:13px;font-weight:700;line-height:1.4;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.lo a.oh-meet-time:hover{color:var(--accent)}.lo .oh-meet-main{min-width:0}.lo .oh-meet-title{display:block;overflow:hidden;color:var(--ink);font-size:15px;font-weight:700;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.lo .oh-meet-title:hover{color:var(--accent)}.lo .oh-meet.is-cancelled .oh-meet-title{color:var(--muted);text-decoration:line-through}.lo .oh-meet-meta{color:var(--muted);font-size:12px;line-height:1.4;word-break:keep-all}.lo .oh-meet-end{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:0}.lo .oh-meet-side{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.lo .oh-meet-side .ui-button{font-weight:700}.lo .oh-meet-note{color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}.lo .oh-meet-absent{display:inline-flex;align-items:center;gap:2px;max-width:100%;min-width:0;padding:0;border:0;border-radius:3px;background:none;color:var(--alert);font:inherit;font-size:13px;font-weight:600;text-align:right;word-break:keep-all;overflow-wrap:anywhere;cursor:pointer}.lo .oh-meet-absent:hover{text-decoration:underline;text-underline-offset:2px}.lo .oh-meet-absent:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .oh-meet.is-done :is(.oh-meet-time,.oh-meet-title){color:#9ca3af}.lo .oh-meet.is-done .oh-meet-meta{color:#b0b6bf}.lo .oh-meet.is-done .oh-meet-absent{color:#9ca3af}.lo :is(.oh-card-body,.oh-meets-fold)>.oh-unfold{margin:6px 0}.lo :is(.oh-card-body,.oh-meets-fold)>.oh-unfold:last-child{margin-bottom:0}.lo .oh-meets-fold{scroll-margin:16px}.lo .lo-modal h2.oh-box-title{display:flex;align-items:center;gap:10px}.lo .oh-box-rows{display:grid;margin:-8px 0 0}.lo .oh-box-rows>div{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;grid-gap:12px;gap:12px;min-height:48px;padding:10px 0;border-bottom:1px solid var(--line)}.lo .oh-box-rows dt{color:var(--muted);font-size:14px}.lo .oh-box-rows dd{margin:0;font-size:15px;font-weight:700;word-break:keep-all;overflow-wrap:anywhere}.lo .oh-box-note{margin:16px 0 0;color:var(--muted);font-size:14px}.lo .oh-box-sub{margin:-6px 0 0;padding-bottom:14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.lo .oh-absents{display:grid;margin:0;padding:0;list-style:none}.lo .oh-absents li{border-bottom:1px solid var(--line)}.lo .oh-absents li:last-child{border-bottom:0}.lo .oh-absents-row{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:15px 2px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.lo .oh-absents-row:hover{background:#f8fafc}.lo .oh-absents-row:focus-visible{outline:2px solid var(--accent-bright);outline-offset:-2px}.lo .oh-absents-row b{flex:none;font-size:15px;font-weight:700}.lo .oh-absent-tag{flex:none;padding:2px 10px;border-radius:999px;background:#feeceb;color:var(--alert);font-size:12px;font-weight:700}.lo .oh-absent-tag.is-planned{background:#fdf4e4;color:#a16207}.lo .oh-absents-why{min-width:0;color:var(--muted);font-size:13px;word-break:keep-all;overflow-wrap:anywhere}.lo .oh-notices{display:grid;grid-gap:10px;gap:10px;margin:0;padding:0;list-style:none}.lo .oh-notices li{display:grid;grid-gap:8px;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px}.lo .oh-notice-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.lo .oh-notice-class{color:var(--muted);font-size:13px}.lo .oh-notice-week{color:var(--alert);font-size:12px;font-weight:600}.lo .oh-notices textarea{width:100%}.lo .oh-notice-actions{display:flex;justify-content:flex-end;gap:6px}.lo .oh-run{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px 28px;gap:16px 28px}.lo .oh-rate{display:grid;align-content:start;grid-gap:8px;gap:8px;min-width:0}.lo .oh-rate-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:15px;font-weight:700}.lo .oh-rate-head b{font-size:28px;font-weight:800;letter-spacing:-.3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-rate-head small{margin-left:1px;color:var(--muted);font-size:13px;font-weight:700}.lo .oh-rate-bar{display:flex;gap:2px;height:10px;overflow:hidden;border-radius:999px;background:var(--line)}.lo .oh-rate-bar i{display:block;height:100%}.lo .oh-rate .is-ok{--tone:#14804e}.lo .oh-rate .is-warn{--tone:#c27c11}.lo .oh-rate .is-alert{--tone:#c3403c}.lo .oh-rate-bar i{background:var(--tone)}.lo .oh-rate-legend{display:flex;flex-wrap:wrap;gap:2px 12px;color:#475569;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-rate-legend span{display:inline-flex;align-items:center;gap:5px}.lo .oh-rate-legend span:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--tone)}.lo .oh-rate-foot{justify-self:start}.lo .oh-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:stretch}.lo .oh-chart{display:flex;flex-direction:column}.lo .oh-chart>.oh-card-body{display:flex;flex:1 1;flex-direction:column}.lo .oh-donut-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px 32px;padding-top:10px}.lo .oh-donut{position:relative;flex:none;width:134px;height:134px}.lo .oh-donut svg{display:block;width:100%;height:100%}.lo .oh-donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.lo .oh-donut-center b{font-size:29px;font-weight:800;line-height:1.1;letter-spacing:-.4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-donut-center small{color:var(--muted);font-size:13px;font-weight:600}.lo .oh-donut-legend{display:grid;grid-gap:8px;gap:8px;min-width:120px;margin:0;padding:0;list-style:none}.lo .oh-donut-legend li{display:flex;align-items:center;gap:8px;font-size:14px}.lo .oh-donut-legend i{flex:none;width:11px;height:11px;border-radius:50%}.lo .oh-donut-legend span{flex:1 1;color:#475569}.lo .oh-donut-legend b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-line{display:block;max-width:100%;overflow:visible}.lo .oh-line-grid{stroke:var(--line);stroke-width:1}.lo .oh-line-y{fill:var(--muted);font-size:12px;text-anchor:end;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lo .oh-line-x{fill:var(--muted);font-size:12px;text-anchor:middle}.lo .oh-line-area{fill:#eaeefd}.lo .oh-line-avg{stroke:#7c7f86;stroke-width:1.5;stroke-dasharray:5 4}.lo .oh-line-path{fill:none;stroke:var(--accent-bright);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.lo .oh-line-dot{fill:var(--accent-bright)}.lo .oh-lower{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:start}.lo .oh-feed{margin:0;padding:0;list-style:none}.lo .oh-feed li{display:flex;align-items:center;gap:10px;padding:11px 18px;border-top:1px solid var(--line)}.lo .oh-feed li:first-child{border-top:0}.lo .oh-note-icon{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--canvas);color:var(--muted)}.lo .oh-feed-text{flex:1 1;min-width:0;font-size:14px;word-break:keep-all;overflow-wrap:anywhere}.lo .oh-feed-text b{font-weight:700}.lo .oh-feed time{flex:none;color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:1180px){.lo .oh-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.lo .oh-charts>:first-child{grid-column:1/-1}}@media (max-width:1000px){.lo .oh-pair{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){.lo .oh-run{gap:18px}.lo .oh-charts,.lo .oh-lower,.lo .oh-run{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.lo .oh{gap:12px}.lo .oh-hello h1{font-size:24px}.lo .oh-card-head{flex-wrap:wrap;padding-left:14px}.lo .oh-at-today>.oh-card-head{flex-wrap:nowrap;gap:8px}.lo .oh-at-today .oh-card-head h2{flex:0 1 auto;overflow:hidden;gap:4px 8px}.lo .oh-at-today .oh-head-note{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lo .oh-at-today .oh-absent-chip{flex:none}.lo .oh-card-body{padding:12px 14px 14px}.lo .oh-pair .oh-card-body{padding:11px 10px 10px}.lo .oh-meets{gap:8px}.lo .oh-todo-group{font-size:11px}.lo .oh-chips .ui-chip{height:26px}.lo .oh-feed li{align-items:flex-start;padding:10px 14px}.lo .oh-feed li>time{padding-top:1px}.lo .oh-meet-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 8px}.lo .oh-meet-time{grid-column:1;grid-row:1;color:#565b61;font-size:13px;font-weight:600}.lo .oh-meet{min-height:0;padding:9px 10px 9px 12px}.lo .oh-meet-title{font-size:15px}.lo .oh-meet-main{grid-column:1;grid-row:2}.lo .oh-meet-end{grid-column:2;grid-row:1/span 2;max-width:50vw}.lo .oh-auto{padding:10px;gap:10px}.lo .oh-donut-wrap{flex-wrap:nowrap;gap:28px;min-height:0;padding:8px 0 12px}.lo .oh-donut-legend{min-width:0}.lo .oh-donut-legend li{gap:12px}.lo .oh-donut-legend span{flex:none;min-width:44px}}@media (prefers-reduced-motion:reduce){.lo .oh-auto,.lo .oh-fold-arrow{transition:none}}